diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-10-02 04:28:14 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-10-02 04:28:23 -0400 |
commit | f6cfb90582388df120083ff2c5aa90f178787076 (patch) | |
tree | bcc24ec81a3e393c5d398694dc566c1c2561d805 | |
parent | 26220da2ab08cca61378359f5e1e00848062cc1b (diff) | |
parent | 679294497be31596e1c9c61507746d72b6b05f26 (diff) |
Merge tag 'sunxi-dt64-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt
Allwinner arm64 DT changes for 4.20
Our usual set of DT changes for the arm64 Allwinner SoCs.
The most notable things are:
- HDMI support on the A64
- New boards: OrangePi One Plus
* tag 'sunxi-dt64-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (28 commits)
arm64: dts: allwinner: a64: a64-olinuxino: set the PHY TX delay
arm64: dts: allwinner: a64: Enable HDMI output on A64 boards w/ HDMI
arm64: dts: allwinner: a64: Add display pipeline
arm64: dts: allwinner: h6: add system controller device tree node
arm64: dts: allwinner: h6: Add OrangePi One Plus initial support
arm64: dts: allwinner: a64: Rename r_i2c_pins_a label to r_i2c_pl89_pins
arm64: dts: allwinner: a64: Rename uart0_pins_a label to uart0_pb_pins
arm64: dts: allwinner: a64: Split out data strobe pin from mmc2 pinmux
arm64: dts: allwinner: a64: NanoPi-A64: Add blue status LED
arm64: dts: allwinner: a64: NanoPi-A64: Add Wifi chip
arm64: dts: allwinner: a64: NanoPi-A64: Add Ethernet
arm64: dts: allwinner: a64: NanoPi-A64: Fix DCDC1 voltage
arm64: dts: allwinner: a64: Olinuxino: enable USB
arm64: dts: allwinner: a64: Olinuxino: add Ethernet nodes
arm64: dts: allwinner: a64: Olinuxino: fix DRAM voltage
arm64: dts: allwinner: a64: Orange Pi Win: Adjust CSI power rails
arm64: dts: allwinner: a64: Orange Pi Win: Add SPI flash node
arm64: dts: allwinner: a64: Orange Pi Win: Add SDIO node
arm64: dts: allwinner: a64: Orange Pi Win: Add LED node
arm64: dts: allwinner: a64: Orange Pi Win: Add UARTs
...
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
14 files changed, 812 insertions, 27 deletions
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile index b7f6cfbeb615..8d4f97f279e0 100644 --- a/arch/arm64/boot/dts/allwinner/Makefile +++ b/arch/arm64/boot/dts/allwinner/Makefile | |||
@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb | |||
4 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb | 4 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb |
5 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb | 5 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb |
6 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb | 6 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb |
7 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb | ||
7 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb | 8 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb |
8 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb | 9 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb |
9 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb | 10 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb |
@@ -17,4 +18,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb | |||
17 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb | 18 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb |
18 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb | 19 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb |
19 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb | 20 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb |
21 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb | ||
20 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb | 22 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts index eac4793c8502..6cb2b7f0c817 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts | |||
@@ -203,7 +203,7 @@ | |||
203 | 203 | ||
204 | &uart0 { | 204 | &uart0 { |
205 | pinctrl-names = "default"; | 205 | pinctrl-names = "default"; |
206 | pinctrl-0 = <&uart0_pins_a>; | 206 | pinctrl-0 = <&uart0_pb_pins>; |
207 | status = "okay"; | 207 | status = "okay"; |
208 | }; | 208 | }; |
209 | 209 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts index 094cfed13df9..ef1c90401bb2 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | |||
@@ -60,6 +60,17 @@ | |||
60 | stdout-path = "serial0:115200n8"; | 60 | stdout-path = "serial0:115200n8"; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | hdmi-connector { | ||
64 | compatible = "hdmi-connector"; | ||
65 | type = "a"; | ||
66 | |||
67 | port { | ||
68 | hdmi_con_in: endpoint { | ||
69 | remote-endpoint = <&hdmi_out_con>; | ||
70 | }; | ||
71 | }; | ||
72 | }; | ||
73 | |||
63 | leds { | 74 | leds { |
64 | compatible = "gpio-leds"; | 75 | compatible = "gpio-leds"; |
65 | 76 | ||
@@ -86,6 +97,10 @@ | |||
86 | }; | 97 | }; |
87 | }; | 98 | }; |
88 | 99 | ||
100 | &de { | ||
101 | status = "okay"; | ||
102 | }; | ||
103 | |||
89 | &ehci0 { | 104 | &ehci0 { |
90 | status = "okay"; | 105 | status = "okay"; |
91 | }; | 106 | }; |
@@ -103,6 +118,17 @@ | |||
103 | status = "okay"; | 118 | status = "okay"; |
104 | }; | 119 | }; |
105 | 120 | ||
121 | &hdmi { | ||
122 | hvcc-supply = <®_dldo1>; | ||
123 | status = "okay"; | ||
124 | }; | ||
125 | |||
126 | &hdmi_out { | ||
127 | hdmi_out_con: endpoint { | ||
128 | remote-endpoint = <&hdmi_con_in>; | ||
129 | }; | ||
130 | }; | ||
131 | |||
106 | &i2c1 { | 132 | &i2c1 { |
107 | pinctrl-names = "default"; | 133 | pinctrl-names = "default"; |
108 | pinctrl-0 = <&i2c1_pins>; | 134 | pinctrl-0 = <&i2c1_pins>; |
@@ -151,7 +177,7 @@ | |||
151 | 177 | ||
152 | &mmc2 { | 178 | &mmc2 { |
153 | pinctrl-names = "default"; | 179 | pinctrl-names = "default"; |
154 | pinctrl-0 = <&mmc2_pins>; | 180 | pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; |
155 | vmmc-supply = <®_dcdc1>; | 181 | vmmc-supply = <®_dcdc1>; |
156 | bus-width = <8>; | 182 | bus-width = <8>; |
157 | non-removable; | 183 | non-removable; |
@@ -302,7 +328,7 @@ | |||
302 | 328 | ||
303 | &uart0 { | 329 | &uart0 { |
304 | pinctrl-names = "default"; | 330 | pinctrl-names = "default"; |
305 | pinctrl-0 = <&uart0_pins_a>; | 331 | pinctrl-0 = <&uart0_pb_pins>; |
306 | status = "okay"; | 332 | status = "okay"; |
307 | }; | 333 | }; |
308 | 334 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts index 98dbff19f5cc..31884dbc8838 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | |||
@@ -51,12 +51,44 @@ | |||
51 | compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; | 51 | compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; |
52 | 52 | ||
53 | aliases { | 53 | aliases { |
54 | ethernet0 = &emac; | ||
54 | serial0 = &uart0; | 55 | serial0 = &uart0; |
55 | }; | 56 | }; |
56 | 57 | ||
57 | chosen { | 58 | chosen { |
58 | stdout-path = "serial0:115200n8"; | 59 | stdout-path = "serial0:115200n8"; |
59 | }; | 60 | }; |
61 | |||
62 | hdmi-connector { | ||
63 | compatible = "hdmi-connector"; | ||
64 | type = "a"; | ||
65 | |||
66 | port { | ||
67 | hdmi_con_in: endpoint { | ||
68 | remote-endpoint = <&hdmi_out_con>; | ||
69 | }; | ||
70 | }; | ||
71 | }; | ||
72 | |||
73 | leds { | ||
74 | compatible = "gpio-leds"; | ||
75 | |||
76 | blue { | ||
77 | label = "nanopi-a64:blue:status"; | ||
78 | gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ | ||
79 | }; | ||
80 | }; | ||
81 | |||
82 | wifi_pwrseq: wifi_pwrseq { | ||
83 | compatible = "mmc-pwrseq-simple"; | ||
84 | clocks = <&rtc 1>; | ||
85 | clock-names = "ext_clock"; | ||
86 | reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ | ||
87 | }; | ||
88 | }; | ||
89 | |||
90 | &de { | ||
91 | status = "okay"; | ||
60 | }; | 92 | }; |
61 | 93 | ||
62 | &ehci0 { | 94 | &ehci0 { |
@@ -67,6 +99,26 @@ | |||
67 | status = "okay"; | 99 | status = "okay"; |
68 | }; | 100 | }; |
69 | 101 | ||
102 | &emac { | ||
103 | pinctrl-names = "default"; | ||
104 | pinctrl-0 = <&rgmii_pins>; | ||
105 | phy-mode = "rgmii"; | ||
106 | phy-handle = <&ext_rgmii_phy>; | ||
107 | phy-supply = <®_dcdc1>; | ||
108 | status = "okay"; | ||
109 | }; | ||
110 | |||
111 | &hdmi { | ||
112 | hvcc-supply = <®_dldo1>; | ||
113 | status = "okay"; | ||
114 | }; | ||
115 | |||
116 | &hdmi_out { | ||
117 | hdmi_out_con: endpoint { | ||
118 | remote-endpoint = <&hdmi_con_in>; | ||
119 | }; | ||
120 | }; | ||
121 | |||
70 | /* i2c1 connected with gpio headers like pine64, bananapi */ | 122 | /* i2c1 connected with gpio headers like pine64, bananapi */ |
71 | &i2c1 { | 123 | &i2c1 { |
72 | pinctrl-names = "default"; | 124 | pinctrl-names = "default"; |
@@ -78,6 +130,13 @@ | |||
78 | bias-pull-up; | 130 | bias-pull-up; |
79 | }; | 131 | }; |
80 | 132 | ||
133 | &mdio { | ||
134 | ext_rgmii_phy: ethernet-phy@1 { | ||
135 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
136 | reg = <7>; | ||
137 | }; | ||
138 | }; | ||
139 | |||
81 | &mmc0 { | 140 | &mmc0 { |
82 | pinctrl-names = "default"; | 141 | pinctrl-names = "default"; |
83 | pinctrl-0 = <&mmc0_pins>; | 142 | pinctrl-0 = <&mmc0_pins>; |
@@ -88,6 +147,24 @@ | |||
88 | status = "okay"; | 147 | status = "okay"; |
89 | }; | 148 | }; |
90 | 149 | ||
150 | &mmc1 { | ||
151 | pinctrl-names = "default"; | ||
152 | pinctrl-0 = <&mmc1_pins>; | ||
153 | vmmc-supply = <®_dcdc1>; | ||
154 | vqmmc-supply = <®_dldo4>; | ||
155 | mmc-pwrseq = <&wifi_pwrseq>; | ||
156 | bus-width = <4>; | ||
157 | non-removable; | ||
158 | status = "okay"; | ||
159 | |||
160 | rtl8189etv: wifi@1 { | ||
161 | reg = <1>; | ||
162 | interrupt-parent = <&r_pio>; | ||
163 | interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ | ||
164 | interrupt-names = "host-wake"; | ||
165 | }; | ||
166 | }; | ||
167 | |||
91 | &ohci0 { | 168 | &ohci0 { |
92 | status = "okay"; | 169 | status = "okay"; |
93 | }; | 170 | }; |
@@ -125,9 +202,9 @@ | |||
125 | 202 | ||
126 | ®_dcdc1 { | 203 | ®_dcdc1 { |
127 | regulator-always-on; | 204 | regulator-always-on; |
128 | regulator-min-microvolt = <3000000>; | 205 | regulator-min-microvolt = <3300000>; |
129 | regulator-max-microvolt = <3000000>; | 206 | regulator-max-microvolt = <3300000>; |
130 | regulator-name = "vcc-3v"; | 207 | regulator-name = "vcc-3v3"; |
131 | }; | 208 | }; |
132 | 209 | ||
133 | ®_dcdc2 { | 210 | ®_dcdc2 { |
@@ -201,7 +278,7 @@ | |||
201 | 278 | ||
202 | &uart0 { | 279 | &uart0 { |
203 | pinctrl-names = "default"; | 280 | pinctrl-names = "default"; |
204 | pinctrl-0 = <&uart0_pins_a>; | 281 | pinctrl-0 = <&uart0_pb_pins>; |
205 | status = "okay"; | 282 | status = "okay"; |
206 | }; | 283 | }; |
207 | 284 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts index 3f531393eaee..f7a4bccaa5d4 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts | |||
@@ -51,6 +51,7 @@ | |||
51 | compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; | 51 | compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; |
52 | 52 | ||
53 | aliases { | 53 | aliases { |
54 | ethernet0 = &emac; | ||
54 | serial0 = &uart0; | 55 | serial0 = &uart0; |
55 | }; | 56 | }; |
56 | 57 | ||
@@ -58,12 +59,74 @@ | |||
58 | stdout-path = "serial0:115200n8"; | 59 | stdout-path = "serial0:115200n8"; |
59 | }; | 60 | }; |
60 | 61 | ||
62 | hdmi-connector { | ||
63 | compatible = "hdmi-connector"; | ||
64 | type = "a"; | ||
65 | |||
66 | port { | ||
67 | hdmi_con_in: endpoint { | ||
68 | remote-endpoint = <&hdmi_out_con>; | ||
69 | }; | ||
70 | }; | ||
71 | }; | ||
72 | |||
73 | reg_usb1_vbus: usb1-vbus { | ||
74 | compatible = "regulator-fixed"; | ||
75 | regulator-name = "usb1-vbus"; | ||
76 | regulator-min-microvolt = <5000000>; | ||
77 | regulator-max-microvolt = <5000000>; | ||
78 | regulator-boot-on; | ||
79 | enable-active-high; | ||
80 | gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */ | ||
81 | status = "okay"; | ||
82 | }; | ||
83 | |||
61 | wifi_pwrseq: wifi_pwrseq { | 84 | wifi_pwrseq: wifi_pwrseq { |
62 | compatible = "mmc-pwrseq-simple"; | 85 | compatible = "mmc-pwrseq-simple"; |
63 | reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ | 86 | reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ |
64 | }; | 87 | }; |
65 | }; | 88 | }; |
66 | 89 | ||
90 | &de { | ||
91 | status = "okay"; | ||
92 | }; | ||
93 | |||
94 | &ehci0 { | ||
95 | status = "okay"; | ||
96 | }; | ||
97 | |||
98 | &ehci1 { | ||
99 | status = "okay"; | ||
100 | }; | ||
101 | |||
102 | &emac { | ||
103 | pinctrl-names = "default"; | ||
104 | pinctrl-0 = <&rgmii_pins>; | ||
105 | phy-mode = "rgmii"; | ||
106 | phy-handle = <&ext_rgmii_phy>; | ||
107 | phy-supply = <®_dcdc1>; | ||
108 | allwinner,tx-delay-ps = <600>; | ||
109 | status = "okay"; | ||
110 | }; | ||
111 | |||
112 | &hdmi { | ||
113 | hvcc-supply = <®_dldo1>; | ||
114 | status = "okay"; | ||
115 | }; | ||
116 | |||
117 | &hdmi_out { | ||
118 | hdmi_out_con: endpoint { | ||
119 | remote-endpoint = <&hdmi_con_in>; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | &mdio { | ||
124 | ext_rgmii_phy: ethernet-phy@1 { | ||
125 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
126 | reg = <1>; | ||
127 | }; | ||
128 | }; | ||
129 | |||
67 | &mmc0 { | 130 | &mmc0 { |
68 | pinctrl-names = "default"; | 131 | pinctrl-names = "default"; |
69 | pinctrl-0 = <&mmc0_pins>; | 132 | pinctrl-0 = <&mmc0_pins>; |
@@ -92,6 +155,14 @@ | |||
92 | }; | 155 | }; |
93 | }; | 156 | }; |
94 | 157 | ||
158 | &ohci0 { | ||
159 | status = "okay"; | ||
160 | }; | ||
161 | |||
162 | &ohci1 { | ||
163 | status = "okay"; | ||
164 | }; | ||
165 | |||
95 | &r_rsb { | 166 | &r_rsb { |
96 | status = "okay"; | 167 | status = "okay"; |
97 | 168 | ||
@@ -100,6 +171,7 @@ | |||
100 | reg = <0x3a3>; | 171 | reg = <0x3a3>; |
101 | interrupt-parent = <&r_intc>; | 172 | interrupt-parent = <&r_intc>; |
102 | interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | 173 | interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
174 | x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ | ||
103 | }; | 175 | }; |
104 | }; | 176 | }; |
105 | 177 | ||
@@ -142,10 +214,14 @@ | |||
142 | 214 | ||
143 | /* DCDC3 is polyphased with DCDC2 */ | 215 | /* DCDC3 is polyphased with DCDC2 */ |
144 | 216 | ||
217 | /* | ||
218 | * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal | ||
219 | * 1.35V that the PMIC can drive. | ||
220 | */ | ||
145 | ®_dcdc5 { | 221 | ®_dcdc5 { |
146 | regulator-always-on; | 222 | regulator-always-on; |
147 | regulator-min-microvolt = <1500000>; | 223 | regulator-min-microvolt = <1360000>; |
148 | regulator-max-microvolt = <1500000>; | 224 | regulator-max-microvolt = <1360000>; |
149 | regulator-name = "vcc-ddr3"; | 225 | regulator-name = "vcc-ddr3"; |
150 | }; | 226 | }; |
151 | 227 | ||
@@ -180,6 +256,11 @@ | |||
180 | regulator-name = "vcc-wifi-io"; | 256 | regulator-name = "vcc-wifi-io"; |
181 | }; | 257 | }; |
182 | 258 | ||
259 | ®_drivevbus { | ||
260 | regulator-name = "usb0-vbus"; | ||
261 | status = "okay"; | ||
262 | }; | ||
263 | |||
183 | ®_eldo1 { | 264 | ®_eldo1 { |
184 | regulator-min-microvolt = <1800000>; | 265 | regulator-min-microvolt = <1800000>; |
185 | regulator-max-microvolt = <1800000>; | 266 | regulator-max-microvolt = <1800000>; |
@@ -220,6 +301,18 @@ | |||
220 | 301 | ||
221 | &uart0 { | 302 | &uart0 { |
222 | pinctrl-names = "default"; | 303 | pinctrl-names = "default"; |
223 | pinctrl-0 = <&uart0_pins_a>; | 304 | pinctrl-0 = <&uart0_pb_pins>; |
305 | status = "okay"; | ||
306 | }; | ||
307 | |||
308 | &usb_otg { | ||
309 | dr_mode = "otg"; | ||
310 | status = "okay"; | ||
311 | }; | ||
312 | |||
313 | &usbphy { | ||
224 | status = "okay"; | 314 | status = "okay"; |
315 | usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ | ||
316 | usb0_vbus-supply = <®_drivevbus>; | ||
317 | usb1_vbus-supply = <®_usb1_vbus>; | ||
225 | }; | 318 | }; |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts index 1221764f5719..b0c64f75792c 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | |||
@@ -1,5 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> | 2 | * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> |
3 | * Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org> | ||
3 | * | 4 | * |
4 | * This file is dual-licensed: you can use it either under the terms | 5 | * This file is dual-licensed: you can use it either under the terms |
5 | * of the GPL or the X11 license, at your option. Note that this dual | 6 | * of the GPL or the X11 license, at your option. Note that this dual |
@@ -51,23 +52,127 @@ | |||
51 | compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; | 52 | compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; |
52 | 53 | ||
53 | aliases { | 54 | aliases { |
55 | ethernet0 = &emac; | ||
54 | serial0 = &uart0; | 56 | serial0 = &uart0; |
57 | serial1 = &uart1; | ||
58 | serial2 = &uart2; | ||
59 | serial3 = &uart3; | ||
60 | serial4 = &uart4; | ||
55 | }; | 61 | }; |
56 | 62 | ||
57 | chosen { | 63 | chosen { |
58 | stdout-path = "serial0:115200n8"; | 64 | stdout-path = "serial0:115200n8"; |
59 | }; | 65 | }; |
66 | |||
67 | hdmi-connector { | ||
68 | compatible = "hdmi-connector"; | ||
69 | type = "a"; | ||
70 | |||
71 | port { | ||
72 | hdmi_con_in: endpoint { | ||
73 | remote-endpoint = <&hdmi_out_con>; | ||
74 | }; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | leds { | ||
79 | compatible = "gpio-leds"; | ||
80 | |||
81 | status { | ||
82 | label = "orangepi:green:status"; | ||
83 | gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ | ||
84 | }; | ||
85 | }; | ||
86 | |||
87 | reg_gmac_3v3: gmac-3v3 { | ||
88 | compatible = "regulator-fixed"; | ||
89 | regulator-name = "gmac-3v3"; | ||
90 | regulator-min-microvolt = <3300000>; | ||
91 | regulator-max-microvolt = <3300000>; | ||
92 | regulator-boot-on; | ||
93 | enable-active-high; | ||
94 | gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */ | ||
95 | status = "okay"; | ||
96 | }; | ||
97 | |||
98 | reg_usb1_vbus: usb1-vbus { | ||
99 | compatible = "regulator-fixed"; | ||
100 | regulator-name = "usb1-vbus"; | ||
101 | regulator-min-microvolt = <5000000>; | ||
102 | regulator-max-microvolt = <5000000>; | ||
103 | regulator-boot-on; | ||
104 | enable-active-high; | ||
105 | gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */ | ||
106 | status = "okay"; | ||
107 | }; | ||
108 | |||
109 | wifi_pwrseq: wifi_pwrseq { | ||
110 | compatible = "mmc-pwrseq-simple"; | ||
111 | reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */ | ||
112 | }; | ||
113 | }; | ||
114 | |||
115 | &de { | ||
116 | status = "okay"; | ||
117 | }; | ||
118 | |||
119 | &ehci0 { | ||
120 | status = "okay"; | ||
60 | }; | 121 | }; |
61 | 122 | ||
62 | &ehci1 { | 123 | &ehci1 { |
63 | status = "okay"; | 124 | status = "okay"; |
64 | }; | 125 | }; |
65 | 126 | ||
127 | &emac { | ||
128 | pinctrl-names = "default"; | ||
129 | pinctrl-0 = <&rgmii_pins>; | ||
130 | phy-mode = "rgmii"; | ||
131 | phy-handle = <&ext_rgmii_phy>; | ||
132 | phy-supply = <®_gmac_3v3>; | ||
133 | status = "okay"; | ||
134 | }; | ||
135 | |||
136 | &hdmi { | ||
137 | hvcc-supply = <®_dldo1>; | ||
138 | status = "okay"; | ||
139 | }; | ||
140 | |||
141 | &hdmi_out { | ||
142 | hdmi_out_con: endpoint { | ||
143 | remote-endpoint = <&hdmi_con_in>; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | &mdio { | ||
148 | ext_rgmii_phy: ethernet-phy@1 { | ||
149 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
150 | reg = <1>; | ||
151 | }; | ||
152 | }; | ||
153 | |||
66 | &mmc0 { | 154 | &mmc0 { |
67 | pinctrl-names = "default"; | 155 | pinctrl-names = "default"; |
68 | pinctrl-0 = <&mmc0_pins>; | 156 | pinctrl-0 = <&mmc0_pins>; |
69 | vmmc-supply = <®_dcdc1>; | 157 | vmmc-supply = <®_dcdc1>; |
70 | cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; | 158 | cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ |
159 | disable-wp; | ||
160 | bus-width = <4>; | ||
161 | status = "okay"; | ||
162 | }; | ||
163 | |||
164 | &mmc1 { | ||
165 | pinctrl-names = "default"; | ||
166 | pinctrl-0 = <&mmc1_pins>; | ||
167 | vmmc-supply = <®_dldo2>; | ||
168 | vqmmc-supply = <®_dldo4>; | ||
169 | mmc-pwrseq = <&wifi_pwrseq>; | ||
170 | bus-width = <4>; | ||
171 | non-removable; | ||
172 | status = "okay"; | ||
173 | }; | ||
174 | |||
175 | &ohci0 { | ||
71 | status = "okay"; | 176 | status = "okay"; |
72 | }; | 177 | }; |
73 | 178 | ||
@@ -89,9 +194,8 @@ | |||
89 | #include "axp803.dtsi" | 194 | #include "axp803.dtsi" |
90 | 195 | ||
91 | ®_aldo1 { | 196 | ®_aldo1 { |
92 | regulator-always-on; | 197 | regulator-min-microvolt = <2800000>; |
93 | regulator-min-microvolt = <1800000>; | 198 | regulator-max-microvolt = <2800000>; |
94 | regulator-max-microvolt = <3300000>; | ||
95 | regulator-name = "afvcc-csi"; | 199 | regulator-name = "afvcc-csi"; |
96 | }; | 200 | }; |
97 | 201 | ||
@@ -163,12 +267,23 @@ | |||
163 | regulator-name = "vcc-wifi-io"; | 267 | regulator-name = "vcc-wifi-io"; |
164 | }; | 268 | }; |
165 | 269 | ||
270 | ®_drivevbus { | ||
271 | regulator-name = "usb0-vbus"; | ||
272 | status = "okay"; | ||
273 | }; | ||
274 | |||
166 | ®_eldo1 { | 275 | ®_eldo1 { |
167 | regulator-min-microvolt = <1800000>; | 276 | regulator-min-microvolt = <1800000>; |
168 | regulator-max-microvolt = <1800000>; | 277 | regulator-max-microvolt = <1800000>; |
169 | regulator-name = "cpvdd"; | 278 | regulator-name = "cpvdd"; |
170 | }; | 279 | }; |
171 | 280 | ||
281 | ®_eldo3 { | ||
282 | regulator-min-microvolt = <1500000>; | ||
283 | regulator-max-microvolt = <1800000>; | ||
284 | regulator-name = "dvdd-csi"; | ||
285 | }; | ||
286 | |||
172 | ®_fldo1 { | 287 | ®_fldo1 { |
173 | regulator-min-microvolt = <1200000>; | 288 | regulator-min-microvolt = <1200000>; |
174 | regulator-max-microvolt = <1200000>; | 289 | regulator-max-microvolt = <1200000>; |
@@ -195,13 +310,61 @@ | |||
195 | vcc-hdmi-supply = <®_dldo1>; | 310 | vcc-hdmi-supply = <®_dldo1>; |
196 | }; | 311 | }; |
197 | 312 | ||
313 | &spi0 { | ||
314 | status = "okay"; | ||
315 | |||
316 | spi-flash@0 { | ||
317 | compatible = "mxicy,mx25l1606e", "jedec,spi-nor"; | ||
318 | reg = <0>; | ||
319 | spi-max-frequency = <80000000>; | ||
320 | m25p,fast-read; | ||
321 | status = "okay"; | ||
322 | }; | ||
323 | }; | ||
324 | |||
325 | /* On debug connector */ | ||
198 | &uart0 { | 326 | &uart0 { |
199 | pinctrl-names = "default"; | 327 | pinctrl-names = "default"; |
200 | pinctrl-0 = <&uart0_pins_a>; | 328 | pinctrl-0 = <&uart0_pb_pins>; |
201 | status = "okay"; | 329 | status = "okay"; |
202 | }; | 330 | }; |
203 | 331 | ||
204 | &usbphy { | 332 | /* Bluetooth */ |
333 | &uart1 { | ||
334 | pinctrl-names = "default"; | ||
335 | pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; | ||
205 | status = "okay"; | 336 | status = "okay"; |
206 | }; | 337 | }; |
207 | 338 | ||
339 | /* On Pi-2 connector, RTS/CTS optional */ | ||
340 | &uart2 { | ||
341 | pinctrl-names = "default"; | ||
342 | pinctrl-0 = <&uart2_pins>; | ||
343 | status = "disabled"; | ||
344 | }; | ||
345 | |||
346 | /* On Pi-2 connector, RTS/CTS optional */ | ||
347 | &uart3 { | ||
348 | pinctrl-names = "default"; | ||
349 | pinctrl-0 = <&uart3_pins>; | ||
350 | status = "disabled"; | ||
351 | }; | ||
352 | |||
353 | /* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */ | ||
354 | &uart4 { | ||
355 | pinctrl-names = "default"; | ||
356 | pinctrl-0 = <&uart4_pins>; | ||
357 | status = "disabled"; | ||
358 | }; | ||
359 | |||
360 | &usb_otg { | ||
361 | dr_mode = "otg"; | ||
362 | status = "okay"; | ||
363 | }; | ||
364 | |||
365 | &usbphy { | ||
366 | usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ | ||
367 | usb0_vbus-supply = <®_drivevbus>; | ||
368 | usb1_vbus-supply = <®_usb1_vbus>; | ||
369 | status = "okay"; | ||
370 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts new file mode 100644 index 000000000000..72d6961dc312 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts | |||
@@ -0,0 +1,13 @@ | |||
1 | /* | ||
2 | * SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
3 | * | ||
4 | * Copyright (c) 2018 ARM Ltd. | ||
5 | */ | ||
6 | |||
7 | #include "sun50i-a64-sopine-baseboard.dts" | ||
8 | |||
9 | / { | ||
10 | model = "Pine64 LTS"; | ||
11 | compatible = "pine64,pine64-lts", "allwinner,sun50i-r18", | ||
12 | "allwinner,sun50i-a64"; | ||
13 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts index 1b9b92e541d2..c077b6c1f458 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | |||
@@ -62,6 +62,21 @@ | |||
62 | chosen { | 62 | chosen { |
63 | stdout-path = "serial0:115200n8"; | 63 | stdout-path = "serial0:115200n8"; |
64 | }; | 64 | }; |
65 | |||
66 | hdmi-connector { | ||
67 | compatible = "hdmi-connector"; | ||
68 | type = "a"; | ||
69 | |||
70 | port { | ||
71 | hdmi_con_in: endpoint { | ||
72 | remote-endpoint = <&hdmi_out_con>; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | &de { | ||
79 | status = "okay"; | ||
65 | }; | 80 | }; |
66 | 81 | ||
67 | &ehci0 { | 82 | &ehci0 { |
@@ -82,6 +97,17 @@ | |||
82 | 97 | ||
83 | }; | 98 | }; |
84 | 99 | ||
100 | &hdmi { | ||
101 | hvcc-supply = <®_dldo1>; | ||
102 | status = "okay"; | ||
103 | }; | ||
104 | |||
105 | &hdmi_out { | ||
106 | hdmi_out_con: endpoint { | ||
107 | remote-endpoint = <&hdmi_con_in>; | ||
108 | }; | ||
109 | }; | ||
110 | |||
85 | &i2c1 { | 111 | &i2c1 { |
86 | pinctrl-names = "default"; | 112 | pinctrl-names = "default"; |
87 | pinctrl-0 = <&i2c1_pins>; | 113 | pinctrl-0 = <&i2c1_pins>; |
@@ -241,7 +267,7 @@ | |||
241 | /* On Exp and Euler connectors */ | 267 | /* On Exp and Euler connectors */ |
242 | &uart0 { | 268 | &uart0 { |
243 | pinctrl-names = "default"; | 269 | pinctrl-names = "default"; |
244 | pinctrl-0 = <&uart0_pins_a>; | 270 | pinctrl-0 = <&uart0_pb_pins>; |
245 | status = "okay"; | 271 | status = "okay"; |
246 | }; | 272 | }; |
247 | 273 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts index 897e60cbe38d..77fac84797e9 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts | |||
@@ -80,8 +80,7 @@ | |||
80 | pinctrl-names = "default"; | 80 | pinctrl-names = "default"; |
81 | pinctrl-0 = <&mmc0_pins>; | 81 | pinctrl-0 = <&mmc0_pins>; |
82 | vmmc-supply = <®_dcdc1>; | 82 | vmmc-supply = <®_dcdc1>; |
83 | cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; | 83 | cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; |
84 | cd-inverted; | ||
85 | disable-wp; | 84 | disable-wp; |
86 | bus-width = <4>; | 85 | bus-width = <4>; |
87 | status = "okay"; | 86 | status = "okay"; |
@@ -104,7 +103,7 @@ | |||
104 | 103 | ||
105 | &mmc2 { | 104 | &mmc2 { |
106 | pinctrl-names = "default"; | 105 | pinctrl-names = "default"; |
107 | pinctrl-0 = <&mmc2_pins>; | 106 | pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; |
108 | vmmc-supply = <®_dcdc1>; | 107 | vmmc-supply = <®_dcdc1>; |
109 | vqmmc-supply = <®_eldo1>; | 108 | vqmmc-supply = <®_eldo1>; |
110 | bus-width = <8>; | 109 | bus-width = <8>; |
@@ -143,7 +142,7 @@ | |||
143 | &r_i2c { | 142 | &r_i2c { |
144 | clock-frequency = <100000>; | 143 | clock-frequency = <100000>; |
145 | pinctrl-names = "default"; | 144 | pinctrl-names = "default"; |
146 | pinctrl-0 = <&r_i2c_pins_a>; | 145 | pinctrl-0 = <&r_i2c_pl89_pins>; |
147 | status = "okay"; | 146 | status = "okay"; |
148 | }; | 147 | }; |
149 | 148 | ||
@@ -270,7 +269,7 @@ | |||
270 | 269 | ||
271 | &uart0 { | 270 | &uart0 { |
272 | pinctrl-names = "default"; | 271 | pinctrl-names = "default"; |
273 | pinctrl-0 = <&uart0_pins_a>; | 272 | pinctrl-0 = <&uart0_pb_pins>; |
274 | status = "okay"; | 273 | status = "okay"; |
275 | }; | 274 | }; |
276 | 275 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts index c21f2331add6..53fcc9098df3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | |||
@@ -61,6 +61,17 @@ | |||
61 | stdout-path = "serial0:115200n8"; | 61 | stdout-path = "serial0:115200n8"; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | hdmi-connector { | ||
65 | compatible = "hdmi-connector"; | ||
66 | type = "a"; | ||
67 | |||
68 | port { | ||
69 | hdmi_con_in: endpoint { | ||
70 | remote-endpoint = <&hdmi_out_con>; | ||
71 | }; | ||
72 | }; | ||
73 | }; | ||
74 | |||
64 | reg_vcc1v8: vcc1v8 { | 75 | reg_vcc1v8: vcc1v8 { |
65 | compatible = "regulator-fixed"; | 76 | compatible = "regulator-fixed"; |
66 | regulator-name = "vcc1v8"; | 77 | regulator-name = "vcc1v8"; |
@@ -69,6 +80,10 @@ | |||
69 | }; | 80 | }; |
70 | }; | 81 | }; |
71 | 82 | ||
83 | &de { | ||
84 | status = "okay"; | ||
85 | }; | ||
86 | |||
72 | &ehci0 { | 87 | &ehci0 { |
73 | status = "okay"; | 88 | status = "okay"; |
74 | }; | 89 | }; |
@@ -86,6 +101,17 @@ | |||
86 | status = "okay"; | 101 | status = "okay"; |
87 | }; | 102 | }; |
88 | 103 | ||
104 | &hdmi { | ||
105 | hvcc-supply = <®_dldo1>; | ||
106 | status = "okay"; | ||
107 | }; | ||
108 | |||
109 | &hdmi_out { | ||
110 | hdmi_out_con: endpoint { | ||
111 | remote-endpoint = <&hdmi_con_in>; | ||
112 | }; | ||
113 | }; | ||
114 | |||
89 | &mdio { | 115 | &mdio { |
90 | ext_rgmii_phy: ethernet-phy@1 { | 116 | ext_rgmii_phy: ethernet-phy@1 { |
91 | compatible = "ethernet-phy-ieee802.3-c22"; | 117 | compatible = "ethernet-phy-ieee802.3-c22"; |
@@ -140,7 +166,7 @@ | |||
140 | 166 | ||
141 | &uart0 { | 167 | &uart0 { |
142 | pinctrl-names = "default"; | 168 | pinctrl-names = "default"; |
143 | pinctrl-0 = <&uart0_pins_a>; | 169 | pinctrl-0 = <&uart0_pb_pins>; |
144 | status = "okay"; | 170 | status = "okay"; |
145 | }; | 171 | }; |
146 | 172 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts index 81f8e0098699..c455b24dd079 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts | |||
@@ -260,7 +260,7 @@ | |||
260 | 260 | ||
261 | &uart0 { | 261 | &uart0 { |
262 | pinctrl-names = "default"; | 262 | pinctrl-names = "default"; |
263 | pinctrl-0 = <&uart0_pins_a>; | 263 | pinctrl-0 = <&uart0_pb_pins>; |
264 | status = "okay"; | 264 | status = "okay"; |
265 | }; | 265 | }; |
266 | 266 | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi index d3daf90a8715..f3a66f888205 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | |||
@@ -88,6 +88,7 @@ | |||
88 | device_type = "cpu"; | 88 | device_type = "cpu"; |
89 | reg = <0>; | 89 | reg = <0>; |
90 | enable-method = "psci"; | 90 | enable-method = "psci"; |
91 | next-level-cache = <&L2>; | ||
91 | }; | 92 | }; |
92 | 93 | ||
93 | cpu1: cpu@1 { | 94 | cpu1: cpu@1 { |
@@ -95,6 +96,7 @@ | |||
95 | device_type = "cpu"; | 96 | device_type = "cpu"; |
96 | reg = <1>; | 97 | reg = <1>; |
97 | enable-method = "psci"; | 98 | enable-method = "psci"; |
99 | next-level-cache = <&L2>; | ||
98 | }; | 100 | }; |
99 | 101 | ||
100 | cpu2: cpu@2 { | 102 | cpu2: cpu@2 { |
@@ -102,6 +104,7 @@ | |||
102 | device_type = "cpu"; | 104 | device_type = "cpu"; |
103 | reg = <2>; | 105 | reg = <2>; |
104 | enable-method = "psci"; | 106 | enable-method = "psci"; |
107 | next-level-cache = <&L2>; | ||
105 | }; | 108 | }; |
106 | 109 | ||
107 | cpu3: cpu@3 { | 110 | cpu3: cpu@3 { |
@@ -109,7 +112,20 @@ | |||
109 | device_type = "cpu"; | 112 | device_type = "cpu"; |
110 | reg = <3>; | 113 | reg = <3>; |
111 | enable-method = "psci"; | 114 | enable-method = "psci"; |
115 | next-level-cache = <&L2>; | ||
112 | }; | 116 | }; |
117 | |||
118 | L2: l2-cache { | ||
119 | compatible = "cache"; | ||
120 | cache-level = <2>; | ||
121 | }; | ||
122 | }; | ||
123 | |||
124 | de: display-engine { | ||
125 | compatible = "allwinner,sun50i-a64-display-engine"; | ||
126 | allwinner,pipelines = <&mixer0>, | ||
127 | <&mixer1>; | ||
128 | status = "disabled"; | ||
113 | }; | 129 | }; |
114 | 130 | ||
115 | osc24M: osc24M_clk { | 131 | osc24M: osc24M_clk { |
@@ -194,6 +210,52 @@ | |||
194 | #clock-cells = <1>; | 210 | #clock-cells = <1>; |
195 | #reset-cells = <1>; | 211 | #reset-cells = <1>; |
196 | }; | 212 | }; |
213 | |||
214 | mixer0: mixer@100000 { | ||
215 | compatible = "allwinner,sun50i-a64-de2-mixer-0"; | ||
216 | reg = <0x100000 0x100000>; | ||
217 | clocks = <&display_clocks CLK_BUS_MIXER0>, | ||
218 | <&display_clocks CLK_MIXER0>; | ||
219 | clock-names = "bus", | ||
220 | "mod"; | ||
221 | resets = <&display_clocks RST_MIXER0>; | ||
222 | |||
223 | ports { | ||
224 | #address-cells = <1>; | ||
225 | #size-cells = <0>; | ||
226 | |||
227 | mixer0_out: port@1 { | ||
228 | reg = <1>; | ||
229 | |||
230 | mixer0_out_tcon0: endpoint { | ||
231 | remote-endpoint = <&tcon0_in_mixer0>; | ||
232 | }; | ||
233 | }; | ||
234 | }; | ||
235 | }; | ||
236 | |||
237 | mixer1: mixer@200000 { | ||
238 | compatible = "allwinner,sun50i-a64-de2-mixer-1"; | ||
239 | reg = <0x200000 0x100000>; | ||
240 | clocks = <&display_clocks CLK_BUS_MIXER1>, | ||
241 | <&display_clocks CLK_MIXER1>; | ||
242 | clock-names = "bus", | ||
243 | "mod"; | ||
244 | resets = <&display_clocks RST_MIXER1>; | ||
245 | |||
246 | ports { | ||
247 | #address-cells = <1>; | ||
248 | #size-cells = <0>; | ||
249 | |||
250 | mixer1_out: port@1 { | ||
251 | reg = <1>; | ||
252 | |||
253 | mixer1_out_tcon1: endpoint { | ||
254 | remote-endpoint = <&tcon1_in_mixer1>; | ||
255 | }; | ||
256 | }; | ||
257 | }; | ||
258 | }; | ||
197 | }; | 259 | }; |
198 | 260 | ||
199 | syscon: syscon@1c00000 { | 261 | syscon: syscon@1c00000 { |
@@ -228,6 +290,75 @@ | |||
228 | #dma-cells = <1>; | 290 | #dma-cells = <1>; |
229 | }; | 291 | }; |
230 | 292 | ||
293 | tcon0: lcd-controller@1c0c000 { | ||
294 | compatible = "allwinner,sun50i-a64-tcon-lcd", | ||
295 | "allwinner,sun8i-a83t-tcon-lcd"; | ||
296 | reg = <0x01c0c000 0x1000>; | ||
297 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; | ||
298 | clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; | ||
299 | clock-names = "ahb", "tcon-ch0"; | ||
300 | clock-output-names = "tcon-pixel-clock"; | ||
301 | resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; | ||
302 | reset-names = "lcd", "lvds"; | ||
303 | |||
304 | ports { | ||
305 | #address-cells = <1>; | ||
306 | #size-cells = <0>; | ||
307 | |||
308 | tcon0_in: port@0 { | ||
309 | #address-cells = <1>; | ||
310 | #size-cells = <0>; | ||
311 | reg = <0>; | ||
312 | |||
313 | tcon0_in_mixer0: endpoint@0 { | ||
314 | reg = <0>; | ||
315 | remote-endpoint = <&mixer0_out_tcon0>; | ||
316 | }; | ||
317 | }; | ||
318 | |||
319 | tcon0_out: port@1 { | ||
320 | #address-cells = <1>; | ||
321 | #size-cells = <0>; | ||
322 | reg = <1>; | ||
323 | }; | ||
324 | }; | ||
325 | }; | ||
326 | |||
327 | tcon1: lcd-controller@1c0d000 { | ||
328 | compatible = "allwinner,sun50i-a64-tcon-tv", | ||
329 | "allwinner,sun8i-a83t-tcon-tv"; | ||
330 | reg = <0x01c0d000 0x1000>; | ||
331 | interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; | ||
332 | clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>; | ||
333 | clock-names = "ahb", "tcon-ch1"; | ||
334 | resets = <&ccu RST_BUS_TCON1>; | ||
335 | reset-names = "lcd"; | ||
336 | |||
337 | ports { | ||
338 | #address-cells = <1>; | ||
339 | #size-cells = <0>; | ||
340 | |||
341 | tcon1_in: port@0 { | ||
342 | reg = <0>; | ||
343 | |||
344 | tcon1_in_mixer1: endpoint { | ||
345 | remote-endpoint = <&mixer1_out_tcon1>; | ||
346 | }; | ||
347 | }; | ||
348 | |||
349 | tcon1_out: port@1 { | ||
350 | #address-cells = <1>; | ||
351 | #size-cells = <0>; | ||
352 | reg = <1>; | ||
353 | |||
354 | tcon1_out_hdmi: endpoint@1 { | ||
355 | reg = <1>; | ||
356 | remote-endpoint = <&hdmi_in_tcon1>; | ||
357 | }; | ||
358 | }; | ||
359 | }; | ||
360 | }; | ||
361 | |||
231 | mmc0: mmc@1c0f000 { | 362 | mmc0: mmc@1c0f000 { |
232 | compatible = "allwinner,sun50i-a64-mmc"; | 363 | compatible = "allwinner,sun50i-a64-mmc"; |
233 | reg = <0x01c0f000 0x1000>; | 364 | reg = <0x01c0f000 0x1000>; |
@@ -270,6 +401,11 @@ | |||
270 | #size-cells = <0>; | 401 | #size-cells = <0>; |
271 | }; | 402 | }; |
272 | 403 | ||
404 | sid: eeprom@1c14000 { | ||
405 | compatible = "allwinner,sun50i-a64-sid"; | ||
406 | reg = <0x1c14000 0x400>; | ||
407 | }; | ||
408 | |||
273 | usb_otg: usb@1c19000 { | 409 | usb_otg: usb@1c19000 { |
274 | compatible = "allwinner,sun8i-a33-musb"; | 410 | compatible = "allwinner,sun8i-a33-musb"; |
275 | reg = <0x01c19000 0x0400>; | 411 | reg = <0x01c19000 0x0400>; |
@@ -399,7 +535,7 @@ | |||
399 | }; | 535 | }; |
400 | 536 | ||
401 | mmc2_pins: mmc2-pins { | 537 | mmc2_pins: mmc2-pins { |
402 | pins = "PC1", "PC5", "PC6", "PC8", "PC9", | 538 | pins = "PC5", "PC6", "PC8", "PC9", |
403 | "PC10","PC11", "PC12", "PC13", | 539 | "PC10","PC11", "PC12", "PC13", |
404 | "PC14", "PC15", "PC16"; | 540 | "PC14", "PC15", "PC16"; |
405 | function = "mmc2"; | 541 | function = "mmc2"; |
@@ -407,6 +543,13 @@ | |||
407 | bias-pull-up; | 543 | bias-pull-up; |
408 | }; | 544 | }; |
409 | 545 | ||
546 | mmc2_ds_pin: mmc2-ds-pin { | ||
547 | pins = "PC1"; | ||
548 | function = "mmc2"; | ||
549 | drive-strength = <30>; | ||
550 | bias-pull-up; | ||
551 | }; | ||
552 | |||
410 | pwm_pin: pwm_pin { | 553 | pwm_pin: pwm_pin { |
411 | pins = "PD22"; | 554 | pins = "PD22"; |
412 | function = "pwm"; | 555 | function = "pwm"; |
@@ -442,7 +585,7 @@ | |||
442 | function = "spi1"; | 585 | function = "spi1"; |
443 | }; | 586 | }; |
444 | 587 | ||
445 | uart0_pins_a: uart0 { | 588 | uart0_pb_pins: uart0-pb-pins { |
446 | pins = "PB8", "PB9"; | 589 | pins = "PB8", "PB9"; |
447 | function = "uart0"; | 590 | function = "uart0"; |
448 | }; | 591 | }; |
@@ -686,6 +829,50 @@ | |||
686 | status = "disabled"; | 829 | status = "disabled"; |
687 | }; | 830 | }; |
688 | 831 | ||
832 | hdmi: hdmi@1ee0000 { | ||
833 | compatible = "allwinner,sun50i-a64-dw-hdmi", | ||
834 | "allwinner,sun8i-a83t-dw-hdmi"; | ||
835 | reg = <0x01ee0000 0x10000>; | ||
836 | reg-io-width = <1>; | ||
837 | interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; | ||
838 | clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, | ||
839 | <&ccu CLK_HDMI>; | ||
840 | clock-names = "iahb", "isfr", "tmds"; | ||
841 | resets = <&ccu RST_BUS_HDMI1>; | ||
842 | reset-names = "ctrl"; | ||
843 | phys = <&hdmi_phy>; | ||
844 | phy-names = "hdmi-phy"; | ||
845 | status = "disabled"; | ||
846 | |||
847 | ports { | ||
848 | #address-cells = <1>; | ||
849 | #size-cells = <0>; | ||
850 | |||
851 | hdmi_in: port@0 { | ||
852 | reg = <0>; | ||
853 | |||
854 | hdmi_in_tcon1: endpoint { | ||
855 | remote-endpoint = <&tcon1_out_hdmi>; | ||
856 | }; | ||
857 | }; | ||
858 | |||
859 | hdmi_out: port@1 { | ||
860 | reg = <1>; | ||
861 | }; | ||
862 | }; | ||
863 | }; | ||
864 | |||
865 | hdmi_phy: hdmi-phy@1ef0000 { | ||
866 | compatible = "allwinner,sun50i-a64-hdmi-phy"; | ||
867 | reg = <0x01ef0000 0x10000>; | ||
868 | clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, | ||
869 | <&ccu 7>; | ||
870 | clock-names = "bus", "mod", "pll-0"; | ||
871 | resets = <&ccu RST_BUS_HDMI0>; | ||
872 | reset-names = "phy"; | ||
873 | #phy-cells = <0>; | ||
874 | }; | ||
875 | |||
689 | rtc: rtc@1f00000 { | 876 | rtc: rtc@1f00000 { |
690 | compatible = "allwinner,sun6i-a31-rtc"; | 877 | compatible = "allwinner,sun6i-a31-rtc"; |
691 | reg = <0x01f00000 0x54>; | 878 | reg = <0x01f00000 0x54>; |
@@ -749,7 +936,7 @@ | |||
749 | interrupt-controller; | 936 | interrupt-controller; |
750 | #interrupt-cells = <3>; | 937 | #interrupt-cells = <3>; |
751 | 938 | ||
752 | r_i2c_pins_a: i2c-a { | 939 | r_i2c_pl89_pins: r-i2c-pl89-pins { |
753 | pins = "PL8", "PL9"; | 940 | pins = "PL8", "PL9"; |
754 | function = "s_i2c"; | 941 | function = "s_i2c"; |
755 | }; | 942 | }; |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts new file mode 100644 index 000000000000..0612c19cd994 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts | |||
@@ -0,0 +1,150 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ or MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2018 Amarula Solutions | ||
4 | * Author: Jagan Teki <jagan@amarulasolutions.com> | ||
5 | */ | ||
6 | |||
7 | /dts-v1/; | ||
8 | |||
9 | #include "sun50i-h6.dtsi" | ||
10 | |||
11 | #include <dt-bindings/gpio/gpio.h> | ||
12 | |||
13 | / { | ||
14 | model = "OrangePi One Plus"; | ||
15 | compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; | ||
16 | |||
17 | aliases { | ||
18 | serial0 = &uart0; | ||
19 | }; | ||
20 | |||
21 | chosen { | ||
22 | stdout-path = "serial0:115200n8"; | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | &mmc0 { | ||
27 | pinctrl-names = "default"; | ||
28 | pinctrl-0 = <&mmc0_pins>; | ||
29 | vmmc-supply = <®_cldo1>; | ||
30 | cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; | ||
31 | bus-width = <4>; | ||
32 | status = "okay"; | ||
33 | }; | ||
34 | |||
35 | &r_i2c { | ||
36 | status = "okay"; | ||
37 | |||
38 | axp805: pmic@36 { | ||
39 | compatible = "x-powers,axp805", "x-powers,axp806"; | ||
40 | reg = <0x36>; | ||
41 | interrupt-parent = <&r_intc>; | ||
42 | interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | ||
43 | interrupt-controller; | ||
44 | #interrupt-cells = <1>; | ||
45 | x-powers,self-working-mode; | ||
46 | |||
47 | regulators { | ||
48 | reg_aldo1: aldo1 { | ||
49 | regulator-always-on; | ||
50 | regulator-min-microvolt = <3300000>; | ||
51 | regulator-max-microvolt = <3300000>; | ||
52 | regulator-name = "vcc-pl"; | ||
53 | }; | ||
54 | |||
55 | reg_aldo2: aldo2 { | ||
56 | regulator-min-microvolt = <3300000>; | ||
57 | regulator-max-microvolt = <3300000>; | ||
58 | regulator-name = "vcc-ac200"; | ||
59 | }; | ||
60 | |||
61 | reg_aldo3: aldo3 { | ||
62 | regulator-always-on; | ||
63 | regulator-min-microvolt = <3300000>; | ||
64 | regulator-max-microvolt = <3300000>; | ||
65 | regulator-name = "vcc25-dram"; | ||
66 | }; | ||
67 | |||
68 | reg_bldo1: bldo1 { | ||
69 | regulator-always-on; | ||
70 | regulator-min-microvolt = <1800000>; | ||
71 | regulator-max-microvolt = <1800000>; | ||
72 | regulator-name = "vcc-bias-pll"; | ||
73 | }; | ||
74 | |||
75 | reg_bldo2: bldo2 { | ||
76 | regulator-always-on; | ||
77 | regulator-min-microvolt = <1800000>; | ||
78 | regulator-max-microvolt = <1800000>; | ||
79 | regulator-name = "vcc-efuse-pcie-hdmi-io"; | ||
80 | }; | ||
81 | |||
82 | reg_bldo3: bldo3 { | ||
83 | regulator-always-on; | ||
84 | regulator-min-microvolt = <1800000>; | ||
85 | regulator-max-microvolt = <1800000>; | ||
86 | regulator-name = "vcc-dcxoio"; | ||
87 | }; | ||
88 | |||
89 | bldo4 { | ||
90 | /* unused */ | ||
91 | }; | ||
92 | |||
93 | reg_cldo1: cldo1 { | ||
94 | regulator-always-on; | ||
95 | regulator-min-microvolt = <3300000>; | ||
96 | regulator-max-microvolt = <3300000>; | ||
97 | regulator-name = "vcc-3v3"; | ||
98 | }; | ||
99 | |||
100 | reg_cldo2: cldo2 { | ||
101 | regulator-min-microvolt = <3300000>; | ||
102 | regulator-max-microvolt = <3300000>; | ||
103 | regulator-name = "vcc-wifi-1"; | ||
104 | }; | ||
105 | |||
106 | reg_cldo3: cldo3 { | ||
107 | regulator-min-microvolt = <3300000>; | ||
108 | regulator-max-microvolt = <3300000>; | ||
109 | regulator-name = "vcc-wifi-2"; | ||
110 | }; | ||
111 | |||
112 | reg_dcdca: dcdca { | ||
113 | regulator-always-on; | ||
114 | regulator-min-microvolt = <810000>; | ||
115 | regulator-max-microvolt = <1080000>; | ||
116 | regulator-name = "vdd-cpu"; | ||
117 | }; | ||
118 | |||
119 | reg_dcdcc: dcdcc { | ||
120 | regulator-min-microvolt = <810000>; | ||
121 | regulator-max-microvolt = <1080000>; | ||
122 | regulator-name = "vdd-gpu"; | ||
123 | }; | ||
124 | |||
125 | reg_dcdcd: dcdcd { | ||
126 | regulator-always-on; | ||
127 | regulator-min-microvolt = <960000>; | ||
128 | regulator-max-microvolt = <960000>; | ||
129 | regulator-name = "vdd-sys"; | ||
130 | }; | ||
131 | |||
132 | reg_dcdce: dcdce { | ||
133 | regulator-always-on; | ||
134 | regulator-min-microvolt = <1200000>; | ||
135 | regulator-max-microvolt = <1200000>; | ||
136 | regulator-name = "vcc-dram"; | ||
137 | }; | ||
138 | |||
139 | sw { | ||
140 | /* unused */ | ||
141 | }; | ||
142 | }; | ||
143 | }; | ||
144 | }; | ||
145 | |||
146 | &uart0 { | ||
147 | pinctrl-names = "default"; | ||
148 | pinctrl-0 = <&uart0_ph_pins>; | ||
149 | status = "okay"; | ||
150 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index cfa5fffcf62b..040828d2e2c0 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | |||
@@ -92,6 +92,29 @@ | |||
92 | #size-cells = <1>; | 92 | #size-cells = <1>; |
93 | ranges; | 93 | ranges; |
94 | 94 | ||
95 | syscon: syscon@3000000 { | ||
96 | compatible = "allwinner,sun50i-h6-system-control", | ||
97 | "allwinner,sun50i-a64-system-control"; | ||
98 | reg = <0x03000000 0x1000>; | ||
99 | #address-cells = <1>; | ||
100 | #size-cells = <1>; | ||
101 | ranges; | ||
102 | |||
103 | sram_c: sram@28000 { | ||
104 | compatible = "mmio-sram"; | ||
105 | reg = <0x00028000 0x1e000>; | ||
106 | #address-cells = <1>; | ||
107 | #size-cells = <1>; | ||
108 | ranges = <0 0x00028000 0x1e000>; | ||
109 | |||
110 | de2_sram: sram-section@0 { | ||
111 | compatible = "allwinner,sun50i-h6-sram-c", | ||
112 | "allwinner,sun50i-a64-sram-c"; | ||
113 | reg = <0x0000 0x1e000>; | ||
114 | }; | ||
115 | }; | ||
116 | }; | ||
117 | |||
95 | ccu: clock@3001000 { | 118 | ccu: clock@3001000 { |
96 | compatible = "allwinner,sun50i-h6-ccu"; | 119 | compatible = "allwinner,sun50i-h6-ccu"; |
97 | reg = <0x03001000 0x1000>; | 120 | reg = <0x03001000 0x1000>; |