mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 14:12:51 +00:00
arm64: dts: allwinner: Add initial support for Pine64 PinePhone
At the moment PinePhone comes in two slightly incompatible variants: - 1.0: Early Developer Batch - 1.1: Braveheart Batch There will be at least one more incompatible variant in the very near future, so let's start by sharing the dtsi among multiple variants, right away, even though the HW description doesn't yet include the different bits. The differences between 1.0 and 1.1 are: change in pins that control the flash LED, differences in modem power status signal routing, and maybe some other subtler things, that have not been determined yet. This is a basic DT that includes only features that are already supported by mainline drivers. Co-developed-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Samuel Holland <samuel@sholland.org> Co-developed-by: Martijn Braam <martijn@brixit.nl> Signed-off-by: Martijn Braam <martijn@brixit.nl> Co-developed-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Bhushan Shah <bshah@kde.org> Signed-off-by: Icenowy Zheng <icenowy@aosc.io> Signed-off-by: Ondrej Jirman <megous@megous.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This commit is contained in:
parent
a886ed2656
commit
91f480d409
@ -9,6 +9,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.0.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
|
||||
|
11
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
Normal file
11
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
Normal file
@ -0,0 +1,11 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
// Copyright (C) 2020 Ondrej Jirman <megous@megous.com>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-a64-pinephone.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Pine64 PinePhone Developer Batch (1.0)";
|
||||
compatible = "pine64,pinephone-1.0", "allwinner,sun50i-a64";
|
||||
};
|
11
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
Normal file
11
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
Normal file
@ -0,0 +1,11 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
// Copyright (C) 2020 Ondrej Jirman <megous@megous.com>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-a64-pinephone.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Pine64 PinePhone Braveheart (1.1)";
|
||||
compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64";
|
||||
};
|
379
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
Normal file
379
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
Normal file
@ -0,0 +1,379 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
// Copyright (C) 2019 Icenowy Zheng <icenowy@aosc.xyz>
|
||||
// Copyright (C) 2020 Martijn Braam <martijn@brixit.nl>
|
||||
// Copyright (C) 2020 Ondrej Jirman <megous@megous.com>
|
||||
|
||||
#include "sun50i-a64.dtsi"
|
||||
#include "sun50i-a64-cpu-opp.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blue {
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
|
||||
};
|
||||
|
||||
green {
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
|
||||
};
|
||||
|
||||
red {
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */
|
||||
};
|
||||
};
|
||||
|
||||
speaker_amp: audio-amplifier {
|
||||
compatible = "simple-audio-amplifier";
|
||||
enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */
|
||||
sound-name-prefix = "Speaker Amp";
|
||||
};
|
||||
|
||||
vibrator {
|
||||
compatible = "gpio-vibrator";
|
||||
enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */
|
||||
vcc-supply = <®_dcdc1>;
|
||||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec_analog {
|
||||
cpvdd-supply = <®_eldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&cpu1 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&cpu2 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&cpu3 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&dai {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
|
||||
/* Magnetometer */
|
||||
lis3mdl@1e {
|
||||
compatible = "st,lis3mdl-magn";
|
||||
reg = <0x1e>;
|
||||
vdd-supply = <®_dldo1>;
|
||||
vddio-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
/* Accelerometer/gyroscope */
|
||||
mpu6050@68 {
|
||||
compatible = "invensense,mpu6050";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */
|
||||
vdd-supply = <®_dldo1>;
|
||||
vddio-supply = <®_dldo1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Connected to pogo pins (external spring based pinheader for user addons) */
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lradc {
|
||||
vref-supply = <®_aldo3>;
|
||||
status = "okay";
|
||||
|
||||
button-200 {
|
||||
label = "Volume Up";
|
||||
linux,code = <KEY_VOLUMEUP>;
|
||||
channel = <0>;
|
||||
voltage = <200000>;
|
||||
};
|
||||
|
||||
button-400 {
|
||||
label = "Volume Down";
|
||||
linux,code = <KEY_VOLUMEDOWN>;
|
||||
channel = <0>;
|
||||
voltage = <400000>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_dcdc1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
disable-wp;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_dcdc1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_dcdc1>;
|
||||
vcc-pc-supply = <®_dcdc1>;
|
||||
vcc-pd-supply = <®_dcdc1>;
|
||||
vcc-pe-supply = <®_aldo1>;
|
||||
vcc-pf-supply = <®_dcdc1>;
|
||||
vcc-pg-supply = <®_dldo4>;
|
||||
vcc-ph-supply = <®_dcdc1>;
|
||||
};
|
||||
|
||||
&r_pio {
|
||||
/*
|
||||
* FIXME: We can't add that supply for now since it would
|
||||
* create a circular dependency between pinctrl, the regulator
|
||||
* and the RSB Bus.
|
||||
*
|
||||
* vcc-pl-supply = <®_aldo2>;
|
||||
*/
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
axp803: pmic@3a3 {
|
||||
compatible = "x-powers,axp803";
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp803.dtsi"
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&battery_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_aldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dovdd-csi";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pl";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <2700000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-pll-avcc";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-3v3";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-name = "vdd-cpux";
|
||||
};
|
||||
|
||||
/* DCDC3 is polyphased with DCDC2 */
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
®_dcdc6 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dldo1 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-dsi-sensor";
|
||||
};
|
||||
|
||||
®_dldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-mipi-io";
|
||||
};
|
||||
|
||||
®_dldo3 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "avdd-csi";
|
||||
};
|
||||
|
||||
®_dldo4 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-wifi-io";
|
||||
};
|
||||
|
||||
®_eldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-lpddr";
|
||||
};
|
||||
|
||||
®_eldo3 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dvdd-1v8-csi";
|
||||
};
|
||||
|
||||
®_fldo1 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vcc-1v2-hsic";
|
||||
};
|
||||
|
||||
®_fldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
®_ldo_io0 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-lcd-ctp-stk";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_ldo_io1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-1v8-typec";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_rtc_ldo {
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
&sound {
|
||||
status = "okay";
|
||||
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
||||
simple-audio-card,widgets = "Microphone", "Headset Microphone",
|
||||
"Microphone", "Internal Microphone",
|
||||
"Headphone", "Headphone Jack",
|
||||
"Speaker", "Internal Earpiece",
|
||||
"Speaker", "Internal Speaker";
|
||||
simple-audio-card,routing =
|
||||
"Headphone Jack", "HP",
|
||||
"Internal Earpiece", "EARPIECE",
|
||||
"Internal Speaker", "Speaker Amp OUTL",
|
||||
"Internal Speaker", "Speaker Amp OUTR",
|
||||
"Speaker Amp INL", "LINEOUT",
|
||||
"Speaker Amp INR", "LINEOUT",
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC",
|
||||
"Internal Microphone", "MBIAS",
|
||||
"MIC1", "Internal Microphone",
|
||||
"Headset Microphone", "HBIAS",
|
||||
"MIC2", "Headset Microphone";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Connected to the modem (hardware flow control can't be used) */
|
||||
&uart3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart3_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
Loading…
Reference in New Issue
Block a user