pi-linux/arch/arm64/boot/dts/sunxi/sun60i-a733-bananapi-m8.dts

2056 lines
46 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// SPDX-License-Identifier: (GPL-2.0+ or MIT)
/dts-v1/;
#include "sun60iw2p1.dtsi"
#include <dt-bindings/input/linux-event-codes.h>
/{
board = "A733", "A733-PRO3";
compatible = "allwinner,a733", "arm,sun60iw2p1";
aliases {
standby_param = &standby_param;
arisc-config = &arisc_config;
pmu0 = &pmu0;
mmc0 = &sdc0;
mmc1 = &sdc2;
mmc2 = &sdc1;
sunxi-mmc2 = &sdc2;
};
leds {
compatible = "gpio-leds";
pwr-led {
label = "bpi-m8:pwr";
gpios = <&pio PD 14 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
sys-led {
label = "bpi-m8:sys";
gpios = <&pio PD 15 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
};
};
/* CH334F downstream HOST-D1/HOST-D2 external 5V enable. */
reg_usb_hub_d12_vbus: usb-hub-d12-vbus {
compatible = "regulator-fixed";
regulator-name = "usb-hub-d12-vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-enable-ramp-delay = <1000>;
gpio = <&r_pio PL 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
regulator-boot-on;
};
/* HOST-D3 plus USB3 SS port external 5V enable. */
reg_usb3_hub_d3_vbus: usb3-hub-d3-vbus {
compatible = "regulator-fixed";
regulator-name = "usb3-hub-d3-vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-enable-ramp-delay = <1000>;
gpio = <&r_pio PL 2 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
regulator-boot-on;
};
standby_param: standby_param {
vdd-cpub = <0x00000004 0x00000000>;
vdd-cpu = <0x00000010 0x00000000>;
vdd-sys = <0x00000002 0x00000000>;
vdd-gpu = <0x00000008 0x00000000>;
vdd-npu = <0x00000002 0x00000000>;
vcc-pll = <0x01000000 0x00000000>;
vcc18-hdmi = <0x00800000 0x00000000>;
avdd-h-combo = <0x04000000 0x00000000>;
vcc-io = <0x00000400 0x00000000>;
vcc25-ufs = <0x00000000 0x00000001>;
vcc18-12-ufs = <0x00000080 0x00000000>;
vcc-efuse = <0x08000000 0x00000000>;
vdd-usb = <0x00000001>;
osc24m-on = <0>;
};
arisc_config: arisc_config {
s_uart_config{
pins = "PL2", "PL3";
function = <3>, <3>;
status = "disabled";
};
};
backlight0: backlight0 {
compatible = "pwm-backlight";
status = "okay";
brightness-levels = <
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71
72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95
96 97 98 99 100 101 102 103
104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119
120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135
136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151
152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167
168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183
184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199
200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215
216 217 218 219 220 221 222 223
224 225 226 227 228 229 230 231
232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247
248 249 250 251 252 253 254 255>;
default-brightness-level = <73>;
pwms = <&pwm0 4 25000 0>;
};
fan0: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
cooling-levels = <1 64 128 192 255>;
pwms = <&s_pwm0 1 25000 0>;
};
sunxi-keyboard {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
key_vol0 {
label = "VOL+";
gpios = <&pio PB 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
};
key_vol1 {
label = "VOL-";
gpios = <&pio PB 0 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
};
};
panel_0: panel_0@0 {
compatible = "allwinner,panel-dsi";
status = "okay";
power-delay-ms = <10>;
power-num = <2>;
power0-supply = <&reg_dc1sw1>;
power1-supply = <&reg_bldo2>;
// avdd-supply = <&reg_ext_ocp2131_avdd>;
// avdd-output-voltage = <6000000>;
// avee-supply = <&reg_ext_ocp2131_avee>;
// avee-output-voltage = <6000000>;
gpio-num = <3>;
enable0-gpios = <&pio PH 9 GPIO_ACTIVE_HIGH>; // reset
enable1-gpios = <&pio PH 10 GPIO_ACTIVE_HIGH>; // reset
// enable2-gpios = <&pio PD 22 GPIO_ACTIVE_HIGH>; // backlight-gpio
reset-num = <2>;
reset-delay-ms = <10>;
reset-gpios = <&pio PD 21 GPIO_ACTIVE_HIGH>; //reset
backlight = <&backlight0>;
width-mm = <143>;
height-mm = <238>;
// dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_SLAVE_MODE)>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_ASYNC_INCELL)>;
dsi,lanes = <4>;
dsi,format = <0>;
panel-init-sequence = [
15 00 02 00 00
15 00 02 FA 5A
15 00 02 00 00
39 00 04 FF 82 05 01
15 00 02 00 80
39 00 03 FF 82 05
15 00 02 00 93
15 00 02 C5 6B
15 00 02 00 97
15 00 02 C5 6B
15 00 02 00 9E
15 00 02 C5 0A
15 00 02 00 9A
15 00 02 C5 CD
15 00 02 00 9C
15 00 02 C5 CD
15 00 02 00 B6
39 00 03 C5 57 57
15 00 02 00 B8
39 00 03 C5 43 43
15 00 02 00 A0
15 00 02 A5 04
15 00 02 00 00
39 00 03 D8 B4 B4
15 00 02 00 82
15 00 02 C5 95
15 00 02 00 83
15 00 02 C5 07
15 00 02 00 D9
15 00 02 CB 40
15 00 02 00 00
39 00 11 E1 00 04 11 1E 27 31 41 4F 52 5F 63 79 88 73 71 65
15 00 02 00 10
39 00 09 E1 5B 4F 3E 34 2B 1E 16 15
15 00 02 00 00
39 00 11 E2 00 04 11 1E 27 31 41 4F 52 5F 63 79 88 73 71 65
15 00 02 00 10
39 00 09 E2 5B 4F 3E 34 2B 1B 0C 0A
15 00 02 00 A1
39 00 03 B3 04 B0
15 00 02 00 A3
39 00 03 B3 07 D0
15 00 02 00 A5
39 00 03 B3 80 13
15 00 02 00 80
39 00 08 CB 3C 3C 3C 3C 3C 3C 3C
15 00 02 00 87
15 00 02 CB 3C
15 00 02 00 88
39 00 09 CB 3C 3C 3C 3C 3C 3C 3C 3C
15 00 02 00 90
39 00 07 CB 03 3C 3C 3C 3C 3C
15 00 02 00 97
15 00 02 CB 33
15 00 02 00 98
39 00 09 CB 34 34 34 34 34 34 34 34
15 00 02 00 A0
39 00 09 CB 34 34 34 37 34 34 34 34
15 00 02 00 A8
39 00 07 CB C8 34 34 34 34 34
15 00 02 00 B0
39 00 08 CB 00 00 00 00 00 00 00
15 00 02 00 B7
15 00 02 CB 00
15 00 02 00 B8
39 00 09 CB 00 00 00 00 00 00 00 00
15 00 02 00 C0
39 00 08 CB 00 00 00 00 00 00 00
15 00 02 00 C7
15 00 02 CB 00
15 00 02 00 80
39 00 09 CC 2F 2F 2F 27 31 32 01 2C
15 00 02 00 88
39 00 09 CC 2D 1B 1D 1F 21 0B 0D 0F
15 00 02 00 90
39 00 07 CC 11 13 15 03 2F 2F
15 00 02 00 80
39 00 09 CD 2F 2F 2F 27 31 32 02 2C
15 00 02 00 88
39 00 09 CD 2D 1C 1E 20 22 0C 0E 10
15 00 02 00 90
39 00 07 CD 12 14 16 04 2F 2F
15 00 02 00 80
39 00 05 C2 8C 0A 7A AA
15 00 02 00 84
39 00 05 C2 8B 0A 7A AA
15 00 02 00 C0
39 00 08 C2 86 87 00 06 7A AA 0B
15 00 02 00 C7
39 00 08 C2 85 86 00 06 7A AA 0B
15 00 02 00 D0
39 00 08 C2 84 85 00 06 7A AA 0B
15 00 02 00 D7
39 00 08 C2 83 84 00 06 7A AA 0B
15 00 02 00 E0
39 00 08 C2 82 83 00 06 7A AA 0B
15 00 02 00 E7
39 00 08 C2 81 82 00 06 7A AA 0B
15 00 02 00 F0
39 00 08 C2 80 81 00 06 7A AA 0B
15 00 02 00 F7
39 00 08 C2 01 80 00 06 7A AA 0B
15 00 02 00 80
39 00 08 C3 02 8B 00 06 7A AA 0B
15 00 02 00 87
39 00 08 C3 03 8A 00 06 7A AA 0B
15 00 02 00 90
39 00 08 C3 04 89 00 06 7A AA 0B
15 00 02 00 97
39 00 08 C3 05 88 00 06 7A AA 0B
15 00 02 00 A0
39 00 05 C2 06 46 7A AA
15 00 02 00 A4
39 00 05 C2 05 46 7A AA
15 00 02 00 A8
39 00 05 C2 04 46 7A AA
15 00 02 00 AC
39 00 05 C2 03 46 7A AA
15 00 02 00 B0
39 00 05 C2 02 46 7A AA
15 00 02 00 B4
39 00 05 C2 01 46 7A AA
15 00 02 00 B8
39 00 05 C2 00 06 7A AA
15 00 02 00 BC
39 00 05 C2 01 06 7A AA
15 00 02 00 A0
39 00 09 C3 00 70 D3 0A 7A AA 00 00
15 00 02 00 A8
39 00 09 C3 00 70 D4 0B 7A AA 00 00
15 00 02 00 F0
39 00 06 CC 3D 8E 8E 18 18
15 00 02 00 A2
15 00 02 F3 55
15 00 02 00 E0
39 00 05 C3 27 00 00 00
15 00 02 00 E4
39 00 05 C3 27 00 00 00
15 00 02 00 EC
39 00 03 C3 C2 C2
15 00 02 00 E8
39 00 05 C3 44 00 0C 70
15 00 02 00 EE
15 00 02 C3 02
15 00 02 00 80
39 00 07 C0 00 8C 00 DC 00 10
15 00 02 00 90
39 00 07 C0 00 8C 00 DC 00 10
15 00 02 00 A0
39 00 07 C0 00 F0 00 DC 00 10
15 00 02 00 B0
39 00 06 C0 00 A7 00 DC 10
15 00 02 00 A3
39 00 07 C1 00 24 00 24 00 04
15 00 02 00 80
39 00 0D CE 01 81 0B 21 00 35 00 AC 00 2A 00 3A
15 00 02 00 90
39 00 0F CE 00 88 0C 66 00 88 80 0B 21 00 03 00 1C 0C
15 00 02 00 A0
39 00 04 CE 10 00 00
15 00 02 00 B0
39 00 04 CE 62 00 00
15 00 02 00 CC
39 00 03 CE 07 F8
15 00 02 00 D0
39 00 09 CE 01 00 0F 01 01 00 DE 01
15 00 02 00 E1
39 00 08 CE 0A 01 6B 02 37 00 82
15 00 02 00 F0
39 00 0B CE 00 11 08 01 2D 01 D6 00 EC 1A
15 00 02 00 B0
39 00 05 CF 07 07 DA DE
15 00 02 00 B5
39 00 05 CF 03 03 A6 AA
15 00 02 00 C0
39 00 05 CF 07 07 DA DE
15 00 02 00 C5
39 00 05 CF 00 07 1C D0
15 00 02 00 90
15 00 02 C1 22
15 00 02 00 9C
15 00 02 C1 08
15 00 02 00 00
15 00 02 35 01
15 00 02 00 9F
15 00 02 C5 00
15 00 02 00 98
15 00 02 C5 54
15 00 02 00 91
15 00 02 C5 4C
15 00 02 00 8C
39 00 03 CF 40 40
15 00 02 00 93
15 00 02 C4 90
15 00 02 00 D7
15 00 02 C0 F0
15 00 02 00 A2
15 00 02 F5 1F
15 00 02 00 90
15 00 02 E9 10
15 00 02 00 B1
15 00 02 F5 02
15 00 02 00 80
15 00 02 A4 2C
15 00 02 00 84
15 00 02 C5 FD
15 00 02 00 88
15 00 02 B0 07
15 00 02 00 00
15 00 02 FA 01
15 00 02 00 A8
15 00 02 C5 99
15 00 02 00 B6
39 00 03 C5 55 55
15 00 02 00 B8
39 00 03 C5 41 41
15 00 02 00 9A
15 00 02 F5 00
15 00 02 00 B2
15 00 02 CE 92
15 00 02 00 00
15 00 02 FA 5A
15 00 02 00 88
15 00 02 B0 01
15 00 02 00 00
39 00 04 FF 00 00 00
15 00 02 00 80
39 00 03 FF 00 00
15 96 02 11 00
15 32 02 29 00
15 00 02 35 00
];
panel-exit-sequence = [
05 00 01 28
05 78 01 10
];
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <171993120>;
hback-porch = <26>;
hactive = <1200>;
hfront-porch = <46>;
hsync-len = <10>;
vback-porch = <20>;
vactive = <2000>;
vfront-porch = <212>;
vsync-len = <4>;
};
};
port {
panel0_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_output_0>;
};
};
};
};
&ccu {
clk-init-gate = <1>;
};
&pio {
uart0_pins_active: uart0_pins@0 {
pins = "PB9", "PB10";
function = "uart0";
drive-strength = <10>;
bias-pull-up;
};
uart0_pins_sleep: uart0_pins@1 {
pins = "PB9", "PB10";
function = "gpio_in";
};
uart1_pins_active: uart1_pins@0 {
pins = "PG6", "PG7", "PG8", "PG9";
function = "uart1";
drive-strength = <10>;
bias-pull-up;
};
uart1_pins_sleep: uart1_pins@1 {
pins = "PG6", "PG7", "PG8", "PG9";
function = "gpio_in";
};
uart2_pins_active: uart2_pins@0 {
pins = "PB0", "PB1", "PB2", "PB3";
function = "uart2";
drive-strength = <10>;
};
uart2_pins_sleep: uart2_pins@1 {
pins = "PB0", "PB1", "PB2", "PB3";
function = "io_disabled";
drive-strength = <10>;
};
uart4_pins_active: uart4_pins@0 {
pins = "PJ24", "PJ25", "PJ26", "PJ27";
function = "uart4";
drive-strength = <10>;
};
uart4_pins_sleep: uart4_pins@1 {
pins = "PJ24", "PJ25", "PJ26", "PJ27";
function = "io_disabled";
drive-strength = <10>;
};
uart5_pins_active: uart5_pins@0 {
pins = "PH13", "PH14", "PH15", "PH16";
function = "uart5";
drive-strength = <10>;
};
uart5_pins_sleep: uart5_pins@1 {
pins = "PH13", "PH14", "PH15", "PH16";
function = "io_disabled";
drive-strength = <10>;
};
uart6_pins_active: uart6_pins@0 {
pins = "PK0", "PK1", "PK2", "PK3";
function = "uart6";
drive-strength = <10>;
};
uart6_pins_sleep: uart6_pins@1 {
pins = "PK0", "PK1", "PK2", "PK3";
function = "io_disabled";
drive-strength = <10>;
};
uart7_pins_active: uart7_pins@0 {
pins = "PL10", "PL11";
function = "uart7";
drive-strength = <10>;
};
uart7_pins_sleep: uart7_pins@1 {
pins = "PL10", "PL11";
function = "io_disabled";
drive-strength = <10>;
};
uart8_pins_active: uart8_pins@0 {
pins = "PL2", "PL3";
function = "uart8";
drive-strength = <10>;
};
uart8_pins_sleep: uart8_pins@1 {
pins = "PL2", "PL3";
function = "io_disabled";
drive-strength = <10>;
};
twi1_pins_default: twi1@0 {
pins = "PH2", "PH3";
function = "twi1";
drive-strength = <10>;
bias-pull-up;
};
twi1_pins_sleep: twi1@1 {
pins = "PH2", "PH3";
function = "gpio_in";
};
twi2_pins_default: twi2@0 {
pins = "PD16", "PD17";
function = "twi2";
drive-strength = <10>;
bias-pull-up;
};
twi2_pins_sleep: twi2@1 {
pins = "PD16", "PD17";
function = "gpio_in";
};
twi3_pins_default: twi3@0 {
pins = "PE3", "PE4";
function = "twi3";
drive-strength = <10>;
bias-pull-up;
};
twi3_pins_sleep: twi3@1 {
pins = "PE3", "PE4";
function = "gpio_in";
};
twi4_pins_default: twi4@0 {
pins = "PE10", "PE11";
function = "twi4";
drive-strength = <10>;
bias-pull-up;
};
twi4_pins_sleep: twi4@1 {
pins = "PE10", "PE11";
function = "gpio_in";
};
pwm0_4_pins_active: pwm0@0 {
pins = "PD22";
function = "pwm0_4";
};
pwm0_4_pins_sleep: pwm0@1 {
pins = "PD22";
function = "gpio_in";
bias-pull-down;
};
gmac0_pins_default: gmac0@0 {
pins = "PH0", "PH1", "PH2", "PH3",
"PH4", "PH5", "PH6", "PH7",
"PH8", "PH9", "PH10", "PH11",
"PH12","PH13", "PH14", "PH15";
function = "rgmii0";
drive-strength = <40>;
bias-pull-up;
};
gmac0_pins_sleep: gmac0@1 {
pins = "PH0", "PH1", "PH2", "PH3",
"PH4", "PH5", "PH6", "PH7",
"PH8", "PH9", "PH10", "PH11",
"PH12","PH13", "PH14", "PH15";
function = "io_disabled";
};
/* i2s0 pins */
i2s0_pins_a: i2s0@0 {
pins = "PB4";
function = "i2s0_mclk";
drive-strength = <10>;
bias-disable;
};
i2s0_pins_b: i2s0@1 {
pins = "PB5";
function = "i2s0_bclk";
drive-strength = <10>;
bias-disable;
};
i2s0_pins_c: i2s0@2 {
pins = "PB6";
function = "i2s0_lrck";
drive-strength = <10>;
bias-disable;
};
i2s0_pins_d: i2s0@3 {
pins = "PB7";
function = "i2s0_dout0";
drive-strength = <10>;
bias-disable;
};
i2s0_pins_e: i2s0@4 {
pins = "PB8";
function = "i2s0_din0";
drive-strength = <10>;
bias-pull-down;
};
i2s0_pins_f: i2s0@5 {
pins = "PB4", "PB5", "PB6", "PB7", "PB8";
function = "io_disabled";
drive-strength = <10>;
bias-disable;
};
/* i2s1 pins */
i2s1_pins_a: i2s1@1 {
pins = "PG11";
function = "i2s1_bclk";
drive-strength = <20>;
bias-disable;
};
i2s1_pins_b: i2s1@2 {
pins = "PG12";
function = "i2s1_lrck";
drive-strength = <20>;
bias-disable;
};
i2s1_pins_c: i2s1@3 {
pins = "PG13";
function = "i2s1_dout0";
drive-strength = <20>;
bias-disable;
};
i2s1_pins_d: i2s1@4 {
pins = "PG14";
function = "i2s1_din0";
drive-strength = <20>;
bias-disable;
};
i2s1_pins_e: i2s1@5 {
pins = "PG11", "PG12", "PG13", "PG14";
function = "io_disabled";
drive-strength = <20>;
bias-disable;
};
ledc_pins_a: ledc@0 {
pins = "PE4";
function = "ledc";
drive-strength = <10>;
};
ledc_pins_b: ledc@1 {
pins = "PE4";
function = "gpio_in";
};
};
&r_pio {
twi13_pins_default: twi13@0 {
pins = "PL0", "PL1";
function = "s_twi0";
drive-strength = <10>;
bias-pull-up;
};
twi13_pins_sleep: twi13@1 {
pins = "PL0", "PL1";
function = "gpio_in";
};
s_twi1_pins_default: s_twi1@0 {
pins = "PL8", "PL9";
function = "s_twi1";
drive-strength = <10>;
bias-pull-up;
};
s_twi1_pins_sleep: s_twi1@1 {
pins = "PL8", "PL9";
function = "gpio_in";
};
s_twi2_pins_default: s_twi2@0 {
pins = "PL10", "PL11";
function = "s_twi2";
drive-strength = <10>;
bias-pull-up;
};
s_twi2_pins_sleep: s_twi2@1 {
pins = "PL10", "PL11";
function = "gpio_in";
};
s_pwm0_1_pins_active: s_pwm0@0 {
pins = "PM5";
function = "s_pwm0_1";
drive-strength = <10>;
};
s_pwm0_1_pins_sleep: s_pwm0@1 {
pins = "PM5";
function = "gpio_in";
bias-pull-down;
};
};
&soc {
auto_print@54321 {
reg = <0x0 0x54321 0x0 0x0>;
device_type = "auto_print";
status = "okay";
};
};
&msgbox {
status = "okay";
};
&hwspinlock {
status = "okay";
};
&uart0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart0_pins_active>;
pinctrl-1 = <&uart0_pins_sleep>;
status = "okay";
};
&uart1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart1_pins_active>;
pinctrl-1 = <&uart1_pins_sleep>;
status = "okay";
};
&uart2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart2_pins_active>;
pinctrl-1 = <&uart2_pins_sleep>;
status = "disabled";
};
&uart4 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart4_pins_active>;
pinctrl-1 = <&uart4_pins_sleep>;
status = "disabled";
};
&uart5 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart5_pins_active>;
pinctrl-1 = <&uart5_pins_sleep>;
status = "disabled";
};
&uart6 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart6_pins_active>;
pinctrl-1 = <&uart6_pins_sleep>;
status = "disabled";
};
&uart7 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart7_pins_active>;
pinctrl-1 = <&uart7_pins_sleep>;
status = "disabled";
};
&uart8 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart8_pins_active>;
pinctrl-1 = <&uart8_pins_sleep>;
status = "disabled";
};
&sdc2 {
non-removable;
bus-width = <8>;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
/* HS400/200MHz is unstable on BPI-M8 eMMC. */
/*mmc-hs400-1_8v;*/
no-sdio;
no-sd;
ctl-spec-caps = <0x328>;
cap-mmc-highspeed;
sunxi-power-save-mode;
sunxi-dis-signal-vol-sw;
mmc-bootpart-noacc;
/*cap-hsq;*/
/* CQE is disabled for BPI-M8 eMMC stability. */
/*cqe-on;*/
/*ctl-cmdq-md = <0x2>;*/
max-frequency = <150000000>;
/*vmmc-supply = <&reg_cldo3>;*/
/*emmc io vol 3.3v*/
/*vqmmc-supply = <&reg_aldo1>;*/
/*emmc io vol 1.8v*/
/*vqmmc-supply = <&reg_cldo1>;*/
status = "okay";
};
&sdc3 {
status = "disabled";
};
&sdc0 {
bus-width = <4>;
cd-gpios = <&pio PF 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
/*data3-detect;*/
/*card-pwr-gpios = <&pio PH 14 1 1 2 0xffffffff>;*/
cd-used-24M;
cd-set-debounce = <0x1>;
cap-sd-highspeed;
sd-uhs-sdr50;
sd-uhs-ddr50;
sd-uhs-sdr104;
no-sdio;
no-mmc;
sunxi-power-save-mode;
/*sunxi-dis-signal-vol-sw;*/
max-frequency = <150000000>;
ctl-spec-caps = <0x428>;
/*vmmc-supply = <&reg_cldo3>;*/
/*vqmmc33sw-supply = <&reg_cldo3>;*/
/*vdmmc33sw-supply = <&reg_cldo3>;*/
/*vqmmc18sw-supply = <&reg_cldo1>;*/
/*vdmmc18sw-supply = <&reg_cldo1>;*/
status = "okay";
};
&sdc1 {
bus-width = <4>;
no-mmc;
no-sd;
non-removable;
cap-sd-highspeed;
/*sunxi-power-save-mode;*/
sunxi-dis-signal-vol-sw;
cap-sdio-irq;
keep-power-in-suspend;
ignore-pm-notify;
/*
* The on-board Wi-Fi SDIO link is unstable at SDR104/200MHz on BPI-M8:
* the card can probe once, then hit cmd7/cmd52 timeouts and re-enumerate.
* Keep it at high-speed 50MHz until reliable UHS timing is validated.
*/
max-frequency = <50000000>;
ctl-spec-caps = <0x428>;
status = "okay";
};
/*
* usb_port_type: usb mode. 0-device, 1-host, 2-otg.
* usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-pmu detect, 3-tcpm detect.
* usb_detect_mode: 0-thread scan, 1-id gpio interrupt, 2-pmu notify.
* usb_id_gpio: gpio for id detect.
* usb_det_vbus_gpio: gpio for id detect. gpio or "axp_ctrl".
* usb_wakeup_suspend0-SUPER_STANDBY, 1-USB_STANDBY.
*/
&usbc0 {
device_type = "usbc0";
usb_port_type = <0x0>;
usb_detect_type = <0x2>;
usb_detect_mode = <0x2>;
usb_id_gpio;
usb_det_vbus_gpio = "axp_ctrl";
detvbus_io-supply = <&reg_cldo1>;
usb_regulator_io = "nocare";
usb_wakeup_suspend = <0>;
usb_luns = <3>;
usb_serial_unique = <0>;
usb_serial_number = "20080411";
rndis_wceis = <1>;
status = "okay";
};
&udc {
phy_range = <0x188>;
status = "okay";
};
&ehci0 {
phy_range = <0x188>;
status = "okay";
};
&ohci0 {
phy_range = <0x188>;
status = "okay";
};
&usbc1 {
device_type = "usbc1";
usb_regulator_io = "nocare";
usb_wakeup_suspend = <0>;
status = "okay";
};
&ehci1 {
phy_range = <0x188>;
drvvbus-supply = <&reg_usb3_hub_d3_vbus>;
status = "okay";
};
&ohci1 {
phy_range = <0x188>;
drvvbus-supply = <&reg_usb3_hub_d3_vbus>;
status = "okay";
};
&usbc2 {
device_type = "usbc2";
drvvbus-supply = <&reg_usb3_hub_d3_vbus>;
status = "okay";
};
&xhci2 {
dr_mode = "host";
drvvbus-supply = <&reg_usb3_hub_d3_vbus>;
phys = <&u2phy>, <&combo0_usb>;
phy-names = "usb2-phy", "usb3-phy";
status = "okay";
};
&u2phy {
status = "okay";
};
&serdes {
serdes1v8-supply = <&reg_cldo5>;
status = "okay";
};
&twi1 {
clock-frequency = <400000>;
pinctrl-0 = <&twi1_pins_default>;
pinctrl-1 = <&twi1_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
twi-supply = <&reg_dc1sw2>;
status = "disabled";
};
&twi2 {
clock-frequency = <400000>;
pinctrl-0 = <&twi2_pins_default>;
pinctrl-1 = <&twi2_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
twi-supply = <&reg_bldo2>;
status = "okay";
};
&s_twi2 {
clock-frequency = <400000>;
pinctrl-0 = <&s_twi2_pins_default>;
pinctrl-1 = <&s_twi2_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
no_suspend = <1>;
status = "okay";
ac101: ac101@1a {
#sound-dai-cells = <0>;
compatible = "allwinner,sunxi-ac101";
reg = <0x1a>;
pllclk-src = "MCLK";
sysclk-src = "MCLK";
pcm-bit-first = "MSB";
frame-sync-width = <1>;
reset-gpios = <&pio PD 10 GPIO_ACTIVE_LOW>;
irq-gpio = <&pio PD 11 GPIO_ACTIVE_LOW>;
hp-det-gpio = <&r_pio PL 4 GPIO_ACTIVE_HIGH>;
jack-det-gpio = <&r_pio PL 4 GPIO_ACTIVE_HIGH>;
jack-det-gpio-level = <1>;
jack-swpin-max = <3>;
jack-swpin-0 = <&pio PH 6 GPIO_ACTIVE_HIGH>;
jack-swpin-1 = <&pio PH 8 GPIO_ACTIVE_HIGH>;
jack-swpin-2 = <&pio PH 7 GPIO_ACTIVE_HIGH>;
jack-mode-off = <0xf 0 0>;
jack-mode-usb = <0xf 1 1>;
jack-mode-hp = <0xf 1 0>;
jack-mode-micn = <1 0xf 0xf>;
jack-mode-mici = <0 0xf 0xf>;
jack-det-level = <1>;
jack-det-threshold = <1>;
jack-key-det-threshold = <10>;
jack-det-debouce-time = <15>;
jack-key-det-debouce-time = <2>;
/* jack-key-det-voltage = <min max> */
jack-key-det-voltage-hook = <23 24>;
jack-key-det-voltage-up = <21 22>;
jack-key-det-voltage-down = <18 20>;
// jack-key-det-voltage-voice = <1 1>;
/* rglt */
rglt-max = <2>;
rglt0-mode = "PMU";
rglt0-voltage = <3300000>;
rglt0-supply = <&reg_aldo5>;
rglt1-mode = "PMU";
rglt1-voltage = <1800000>;
rglt1-supply = <&reg_bldo4>;
status = "okay";
};
};
&twi3 {
clock-frequency = <400000>;
pinctrl-0 = <&twi3_pins_default>;
pinctrl-1 = <&twi3_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
//twi-supply = <&reg_bldo1>;
status = "okay";
};
&twi4 {
clock-frequency = <400000>;
pinctrl-0 = <&twi4_pins_default>;
pinctrl-1 = <&twi4_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
//twi-supply = <&reg_bldo1>;
status = "okay";
};
&s_twi0 {
clock-frequency = <400000>;
pinctrl-0 = <&twi13_pins_default>;
pinctrl-1 = <&twi13_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting twi_drv_used to 1 */
twi_drv_used = <1>;
//twi-supply = <&reg_aldo1>;
no_suspend = <1>;
status = "okay";
pmu0: pmu@36 {
compatible = "x-powers,axp8191";
reg = <0x36>;
status = "okay";
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&nmi_intc>;
pmu_irq_wakeup = <1>;
pmu_hot_shutdown = <1>;
powerkey1: powerkey@1 {
compatible = "x-powers,axp2101-pek";
status = "okay";
pmu_powkey_off_en = <1>;
pmu_powkey_off_func = <1>;
pmu_powkey_off_time = <6000>;
pmu_powkey_long_time = <1500>;
pmu_powkey_on_time = <1000>;
wakeup_rising;
wakeup_falling;
};
power_temp_ctrl0: power_temp_ctrl@0 {
compatible = "x-powers,axp8191-temp-ctrl";
status = "disabled";
};
regulator0: regulators@0 {
reg_dcdc1: dcdc1 {
regulator-name = "axp8191-dcdc1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3800000>;
regulator-enable-ramp-delay = <1000>;
regulator-ramp-delay = <250>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc2: dcdc2 {
regulator-name = "axp8191-dcdc2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1540000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc3: dcdc3 {
regulator-name = "axp8191-dcdc3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1540000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc4: dcdc4 {
regulator-name = "axp8191-dcdc4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1540000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc5: dcdc5 {
regulator-name = "axp8191-dcdc5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1540000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc6: dcdc6 {
regulator-name = "axp8191-dcdc6";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <2760000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc7: dcdc7 {
regulator-name = "axp8191-dcdc7";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1840000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc8: dcdc8 {
regulator-name = "axp8191-dcdc8";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dcdc9: dcdc9 {
regulator-name = "axp8191-dcdc9";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-ramp-delay = <250>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_rtcldo: rtcldo {
/* RTC_LDO is a fixed, always-on regulator */
regulator-name = "axp8191-rtcldo";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_aldo1: aldo1 {
regulator-name = "axp8191-aldo1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_aldo2: aldo2 {
regulator-name = "axp8191-aldo2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_aldo3: aldo3 {
regulator-name = "axp8191-aldo3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_aldo4: aldo4 {
regulator-name = "axp8191-aldo4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_aldo5: aldo5 {
regulator-name = "axp8191-aldo5";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_aldo6: aldo6 {
regulator-name = "axp8191-aldo6";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_bldo1: bldo1 {
regulator-name = "axp8191-bldo1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_bldo2: bldo2 {
regulator-name = "axp8191-bldo2";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_bldo3: bldo3 {
regulator-name = "axp8191-bldo3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_bldo4: bldo4 {
regulator-name = "axp8191-bldo4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_bldo5: bldo5 {
regulator-name = "axp8191-bldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_cldo1: cldo1 {
regulator-name = "axp8191-cldo1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_cldo2: cldo2 {
regulator-name = "axp8191-cldo2";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_cldo3: cldo3 {
regulator-name = "axp8191-cldo3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_cldo4: cldo4 {
regulator-name = "axp8191-cldo4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3500000>;
regulator-enable-ramp-delay = <1000>;
};
reg_cldo5: cldo5 {
regulator-name = "axp8191-cldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dldo1: dldo1 {
regulator-name = "axp8191-dldo1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dldo2: dldo2 {
regulator-name = "axp8191-dldo2";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_dldo3: dldo3 {
regulator-name = "axp8191-dldo3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_dldo4: dldo4 {
regulator-name = "axp8191-dldo4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_dldo5: dldo5 {
regulator-name = "axp8191-dldo5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_dldo6: dldo6 {
regulator-name = "axp8191-dldo6";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_eldo1: eldo1 {
regulator-name = "axp8191-eldo1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_eldo2: eldo2 {
regulator-name = "axp8191-eldo2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
regulator-boot-on;
regulator-always-on;
};
reg_eldo3: eldo3 {
regulator-name = "axp8191-eldo3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_eldo4: eldo4 {
regulator-name = "axp8191-eldo4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_eldo5: eldo5 {
regulator-name = "axp8191-eldo5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <1000>;
};
reg_eldo6: eldo6 {
regulator-name = "axp8191-eldo6";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-enable-ramp-delay = <1000>;
regulator-always-on;
regulator-boot-on;
};
reg_dc1sw1: dc1sw1 {
regulator-name = "axp8191-dc1sw1";
swin-supply = <&reg_dcdc1>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
reg_dc1sw2: dc1sw2 {
regulator-name = "axp8191-dc1sw2";
swin-supply = <&reg_dcdc1>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
virtual-dcdc1 {
compatible = "xpower-vregulator,dcdc1";
dcdc1-supply = <&reg_dcdc1>;
};
virtual-dcdc2 {
compatible = "xpower-vregulator,dcdc2";
dcdc2-supply = <&reg_dcdc2>;
};
virtual-dcdc3 {
compatible = "xpower-vregulator,dcdc3";
dcdc3-supply = <&reg_dcdc3>;
};
virtual-dcdc4 {
compatible = "xpower-vregulator,dcdc4";
dcdc4-supply = <&reg_dcdc4>;
};
virtual-dcdc5 {
compatible = "xpower-vregulator,dcdc5";
dcdc5-supply = <&reg_dcdc5>;
};
virtual-dcdc6 {
compatible = "xpower-vregulator,dcdc6";
dcdc6-supply = <&reg_dcdc6>;
};
virtual-dcdc7 {
compatible = "xpower-vregulator,dcdc7";
dcdc7-supply = <&reg_dcdc7>;
};
virtual-dcdc8 {
compatible = "xpower-vregulator,dcdc8";
dcdc8-supply = <&reg_dcdc8>;
};
virtual-dcdc9 {
compatible = "xpower-vregulator,dcdc9";
dcdc9-supply = <&reg_dcdc9>;
};
virtual-rtcldo {
compatible = "xpower-vregulator,rtcldo";
rtcldo-supply = <&reg_rtcldo>;
};
virtual-aldo1 {
compatible = "xpower-vregulator,aldo1";
aldo1-supply = <&reg_aldo1>;
};
virtual-aldo2 {
compatible = "xpower-vregulator,aldo2";
aldo2-supply = <&reg_aldo2>;
};
virtual-aldo3 {
compatible = "xpower-vregulator,aldo3";
aldo3-supply = <&reg_aldo3>;
};
virtual-aldo4 {
compatible = "xpower-vregulator,aldo4";
aldo4-supply = <&reg_aldo4>;
};
virtual-aldo5 {
compatible = "xpower-vregulator,aldo5";
aldo5-supply = <&reg_aldo5>;
};
virtual-aldo6 {
compatible = "xpower-vregulator,aldo6";
aldo6-supply = <&reg_aldo6>;
};
virtual-bldo1 {
compatible = "xpower-vregulator,bldo1";
bldo1-supply = <&reg_bldo1>;
};
virtual-bldo2 {
compatible = "xpower-vregulator,bldo2";
bldo2-supply = <&reg_bldo2>;
};
virtual-bldo3 {
compatible = "xpower-vregulator,bldo3";
bldo3-supply = <&reg_bldo3>;
};
virtual-bldo4 {
compatible = "xpower-vregulator,bldo4";
bldo4-supply = <&reg_bldo4>;
};
virtual-bldo5 {
compatible = "xpower-vregulator,bldo5";
bldo5-supply = <&reg_bldo5>;
};
virtual-cldo1 {
compatible = "xpower-vregulator,cldo1";
cldo1-supply = <&reg_cldo1>;
};
virtual-cldo2 {
compatible = "xpower-vregulator,cldo2";
cldo2-supply = <&reg_cldo2>;
};
virtual-cldo3 {
compatible = "xpower-vregulator,cldo3";
cldo3-supply = <&reg_cldo3>;
};
virtual-cldo4 {
compatible = "xpower-vregulator,cldo4";
cldo4-supply = <&reg_cldo4>;
};
virtual-cldo5 {
compatible = "xpower-vregulator,cldo5";
cldo5-supply = <&reg_cldo5>;
};
virtual-dldo1 {
compatible = "xpower-vregulator,dldo1";
dldo1-supply = <&reg_dldo1>;
};
virtual-dldo2 {
compatible = "xpower-vregulator,dldo2";
dldo2-supply = <&reg_dldo2>;
};
virtual-dldo3 {
compatible = "xpower-vregulator,dldo3";
dldo3-supply = <&reg_dldo3>;
};
virtual-dldo4 {
compatible = "xpower-vregulator,dldo4";
dldo4-supply = <&reg_dldo4>;
};
virtual-dldo5 {
compatible = "xpower-vregulator,dldo5";
dldo5-supply = <&reg_dldo5>;
};
virtual-dldo6 {
compatible = "xpower-vregulator,dldo6";
dldo6-supply = <&reg_dldo6>;
};
virtual-eldo1 {
compatible = "xpower-vregulator,eldo1";
eldo1-supply = <&reg_eldo1>;
};
virtual-eldo2 {
compatible = "xpower-vregulator,eldo2";
eldo2-supply = <&reg_eldo2>;
};
virtual-eldo3 {
compatible = "xpower-vregulator,eldo3";
eldo3-supply = <&reg_eldo3>;
};
virtual-eldo4 {
compatible = "xpower-vregulator,eldo4";
eldo4-supply = <&reg_eldo4>;
};
virtual-eldo5 {
compatible = "xpower-vregulator,eldo5";
eldo5-supply = <&reg_eldo5>;
};
virtual-eldo6 {
compatible = "xpower-vregulator,eldo6";
eldo6-supply = <&reg_eldo6>;
};
virtual-dc1sw1 {
compatible = "xpower-vregulator,dc1sw1";
dc1sw-supply = <&reg_dc1sw1>;
};
virtual-dc1sw2 {
compatible = "xpower-vregulator,dc1sw2";
dc1sw-supply = <&reg_dc1sw2>;
};
};
};
&s_twi1 {
clock-frequency = <400000>;
pinctrl-0 = <&s_twi1_pins_default>;
pinctrl-1 = <&s_twi1_pins_sleep>;
pinctrl-names = "default", "sleep";
/* For stability and backwards compatibility, we recommend setting 'twi_drv_used' to 1 */
twi_drv_used = <1>;
status = "okay";
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
pagesize = <8>;
wp-gpios = <&pio PC 7 GPIO_ACTIVE_HIGH>;
};
};
&pwm0_4 {
pinctrl-names = "active", "sleep";
pinctrl-0 = <&pwm0_4_pins_active>;
pinctrl-1 = <&pwm0_4_pins_sleep>;
status = "okay";
};
&s_pwm0_1 {
pinctrl-names = "active", "sleep";
pinctrl-0 = <&s_pwm0_1_pins_active>;
pinctrl-1 = <&s_pwm0_1_pins_sleep>;
status = "okay";
};
&rtc {
status = "okay";
};
&cpul_thermal_zone {
cooling-maps {
map1 {
trip = <&cpul_threshold>;
cooling-device = <&fan0 0 THERMAL_NO_LIMIT>;
contribution = <1024>;
};
};
};
&cpub_thermal_zone {
cooling-maps {
map1 {
trip = <&cpub_threshold>;
cooling-device = <&fan0 0 THERMAL_NO_LIMIT>;
contribution = <1024>;
};
};
};
&rfkill {
compatible = "allwinner,sunxi-rfkill";
chip_en;
power_en;
pinctrl-0;
pinctrl-names;
status = "okay";
/* wlan session */
wlan {
compatible = "allwinner,sunxi-wlan";
clocks;
clock-names;
wlan_power = "axp8191-bldo5", "axp8191-cldo1"; /* vcc-pg/vcc-pm */
wlan_power_vol= <1800000>, <1800000>;
wlan_busnum = <0x1>;
wlan_regon = <&r_pio PM 1 GPIO_ACTIVE_HIGH>;
wlan_hostwake = <&r_pio PM 0 GPIO_ACTIVE_HIGH>;
wakeup-source;
};
/* bt session */
bt {
compatible = "allwinner,sunxi-bt";
clocks;
clock-names;
bt_power = "axp8191-bldo5", "axp8191-cldo1"; /* vcc-pg/vcc-pm */
bt_power_vol= <1800000>, <1800000>;
bt_rst_n = <&r_pio PM 2 GPIO_ACTIVE_LOW>;
};
};
&pd_vi_test {
status = "disabled";
};
&pd_ve_dec_test {
status = "disabled";
};
&pd_ve_enc_test {
status = "disabled";
};
&pd_npu_test {
status = "disabled";
};
&pd_gpu_top_test {
status = "disabled";
};
&pd_gpu_core_test {
status = "disabled";
};
&pd_pcie_test {
status = "disabled";
};
&pd_usb2_test {
status = "disabled";
};
&pd_de_sys_test {
status = "disabled";
};
&pd_vo_test {
status = "disabled";
};
&pd_vo1_test {
status = "disabled";
};
&addr_mgt {
compatible = "allwinner,sunxi-addr_mgt";
type_addr_wifi = <0x0>;
type_addr_bt = <0x0>;
type_addr_eth = <0x0>;
status = "okay";
};
&btlpm {
compatible = "allwinner,sunxi-btlpm";
uart_index = <0x1>;
bt_wake = <&r_pio PM 3 GPIO_ACTIVE_HIGH>;
bt_hostwake = <&r_pio PM 4 GPIO_ACTIVE_HIGH>;
wakeup-source;
status = "okay";
};
&de {
assigned-clock-rates = <600000000>;
chn_cfg_mode = <2>;
status = "okay";
};
&vo0 {
status = "okay";
};
&vo1 {
status = "okay";
};
&tv0 {
status = "okay";
};
&tv1 {
status = "okay";
};
&dlcd0 {
status = "disabled";
};
&dsi0 {
status = "disabled";
pinctrl-0 = <&dsi0_4lane_pins_a>;
pinctrl-1 = <&dsi0_4lane_pins_b>;
pinctrl-names = "active","sleep";
ports {
dsi0_out: port@1{
dsi_out_panel: endpoint {
remote-endpoint = <&panel_input>;
};
};
};
panel: panel@0 {
// panel-out-reg = <0x00000001>; /* TODO: need to be fixed in the uboot */
compatible = "allwinner,virtual-panel";
status = "okay";
reg = <0>;
ports {
panel_in: port@0 {
reg = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&dsi_out_panel>;
};
};
panel_out: port@1 {
reg = <1>;
panel_output_0: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel0_in>;
};
};
};
};
};
&dsi0combophy {
status = "okay";
};
&lradc {
key_cnt = <2>;
key0 = <646 115>;
key1 = <900 114>;
status = "disabled";
};
&hdmi0 {
dcdc2-supply = <&reg_dcdc2>;
cldo2-supply = <&reg_cldo2>;
hdmi_power0 = "dcdc2";
hdmi_power1 = "cldo2";
hdmi_power_cnt = <2>;
hdmi_hdcp1x_enable = <0>;
hdmi_hdcp2x_enable = <0>;
hdmi_cec_enable = <0>;
hdmi_clock_source = <0>;
hdmi_resistor_select = <1>;
hdmi_ddc_index = <20>;
priority = <6>;
force-output = <0>;
force-output-timing = "440000-3440-3450-4500-4800-1440-1455-1464-1494";
snps_phy = <
25000 185625 0x0007 0x8160 0x8188
185625 185625 0x0007 0x8160 0x8198
185625 340000 0x0004 0x8040 0x8E85
340000 600000 0x0000 0x80c0 0x82F6>;
status = "okay";
};
&gmac0_phy0 {
compatible = "ethernet-phy-id001c.c916";
reg = <1>;
max-speed = <1000>;
reset-gpios = <&pio PH 16 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
reset-deassert-us = <150000>;
realtek,led1-link-led2-activity;
};
&gmac0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&gmac0_pins_default>;
pinctrl-1 = <&gmac0_pins_sleep>;
phy-mode = "rgmii";
aw,soc-phy25m;
tx-delay = <12>;
rx-delay = <21>;
dwmac3v3-supply = <&reg_dc1sw2>;
phy3v3-supply = <&reg_dc1sw2>;
status = "okay";
};
&hdmi_codec {
extcon = <&hdmi0>;
status = "okay";
};
/* audio dirver module -> I2S/PCM */
&i2s0_plat {
tdm-num = <0>;
tx-pin = <0>;
rx-pin = <0>;
pinctrl-used;
pinctrl-names = "default","sleep";
pinctrl-0 = <&i2s0_pins_a &i2s0_pins_b &i2s0_pins_c &i2s0_pins_d &i2s0_pins_e>;
pinctrl-1 = <&i2s0_pins_f>;
tx-hub-en;
rx-sync-en;
status = "okay";
};
&i2s0_mach {
soundcard-mach,format = "i2s";
soundcard-mach,frame-master = <&i2s0_cpu>;
soundcard-mach,bitclock-master = <&i2s0_cpu>;
/* soundcard-mach,frame-inversion; */
/* soundcard-mach,bitclock-inversion; */
soundcard-mach,slot-num = <4>;
soundcard-mach,slot-width = <16>;
soundcard-mach,jack-support = <4>;
soundcard-mach,widgets = "Microphone", "HS MIC Jack",
"Headphone", "HP Jack";
soundcard-mach,pin-switches = "MIC1", "MIC2",
"LINEINL","LINEINR",
"HPOUTL","HPOUTR",
"LINEOUTL","LINEOUTR",
"SPK";
soundcard-mach,routing = "MIC1P_PIN", "MIC1",
"MIC1N_PIN", "MIC1",
"MIC2P_PIN", "MIC2",
"MIC2N_PIN", "MIC2",
"LINEINL_PIN", "LINEINL",
"LINEINR_PIN", "LINEINR",
"LINEOUTL", "LINEOUTLP_PIN",
"LINEOUTL", "LINEOUTLN_PIN",
"LINEOUTR", "LINEOUTRP_PIN",
"LINEOUTR", "LINEOUTRN_PIN",
"SPK", "LINEOUTLP_PIN",
"SPK", "LINEOUTLN_PIN",
"SPK", "LINEOUTRP_PIN",
"SPK", "LINEOUTRN_PIN",
"HPOUTL", "HPOUTL_PIN",
"HPOUTR", "HPOUTR_PIN";
status = "okay";
i2s0_cpu: soundcard-mach,cpu {
sound-dai = <&i2s0_plat>;
/* note: pll freq = 24.576M or 22.5792M * pll-fs */
soundcard-mach,pll-fs = <1>;
soundcard-mach,mclk-fs = <2>;
soundcard-mach,mclk-fp = <11289600 12288000>;
};
i2s0_codec: soundcard-mach,codec {
sound-dai = <&ac101>;
};
};
&i2s1_plat {
tdm-num = <1>;
tx-pin = <0>;
rx-pin = <0>;
pinctrl-used;
pinctrl-names = "default","sleep";
pinctrl-0 = <&i2s1_pins_a &i2s1_pins_b &i2s1_pins_c &i2s1_pins_d>;
pinctrl-1 = <&i2s1_pins_e>;
tx-hub-en;
rx-sync-en;
status = "okay";
};
&i2s3_plat {
tdm-num = <3>;
tx-pin = <0 1 2 3>;
tx-pin0-map0 = <0x76543210>;
tx-pin0-map1 = <0xFEDCBA98>;
tx-pin1-map0 = <0x76543210>;
tx-pin1-map1 = <0xFEDCBA98>;
tx-pin2-map0 = <0x76543210>;
tx-pin2-map1 = <0xFEDCBA98>;
tx-pin3-map0 = <0x76543210>;
tx-pin3-map1 = <0xFEDCBA98>;
rx-pin = <0>;
tx-hub-en;
rx-sync-en;
dai-type = "hdmi";
status = "okay";
};
&i2s3_mach {
soundcard-mach,format = "i2s";
soundcard-mach,frame-master = <&i2s3_cpu>;
soundcard-mach,bitclock-master = <&i2s3_cpu>;
/* soundcard-mach,frame-inversion; */
/* soundcard-mach,bitclock-inversion; */
soundcard-mach,name = "allwinner-hdmi";
soundcard-mach,slot-num = <2>;
soundcard-mach,slot-width = <32>;
status = "okay";
i2s3_cpu: soundcard-mach,cpu {
sound-dai = <&i2s3_plat>;
soundcard-mach,pll-fs = <1>;
soundcard-mach,mclk-fs = <0>;
};
i2s3_codec: soundcard-mach,codec {
sound-dai = <&hdmi_codec>;
};
};
&ledc {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&ledc_pins_a>;
pinctrl-1 = <&ledc_pins_b>;
led_count = <34>;
output_mode = "GRB";
reset_ns = <84>;
t1h_ns = <800>;
t1l_ns = <320>;
t0h_ns = <300>;
t0l_ns = <800>;
wait_time0_ns = <84>;
wait_time1_ns = <84>;
wait_data_time_ns = <600000>;
status = "disabled";
};
&cpu0 {
cpu-supply = <&reg_dcdc5>;
};
&dsufreq {
dsu-supply = <&reg_dcdc5>;
};
&cpu6 {
cpu-supply = <&reg_dcdc3>;
};
&i2s1_mach {
soundcard-mach,format = "dsp_a";
soundcard-mach,frame-master = <&i2s1_cpu>;
soundcard-mach,bitclock-master = <&i2s1_cpu>;
/* soundcard-mach,frame-inversion; */
soundcard-mach,bitclock-inversion;
soundcard-mach,slot-num = <2>;
soundcard-mach,slot-width = <16>;
status = "disabled";
i2s1_cpu: soundcard-mach,cpu {
sound-dai = <&i2s1_plat>;
soundcard-mach,pll-fs = <1>;
soundcard-mach,mclk-fp;
soundcard-mach,mclk-fs = <1>;
};
i2s1_codec: soundcard-mach,codec {
soundcard-mach,pll-fs = <1>;
};
};
&npu {
npu-setvol = <0>;
npu-supply = <&reg_dcdc2>;
status = "okay";
};
&gpu {
gpu-supply = <&reg_dcdc4>;
};