aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-09-19 11:53:38 -0400
committerArnd Bergmann <arnd@arndb.de>2016-09-19 11:53:38 -0400
commitc3a66272d681403a8111ed14b5708f237d77b867 (patch)
tree369ba41e24b926ad1aa92d393b4de86b0a42eed9
parent53570cbc189257d2e95c79e6baa9e12b0a3b3cdf (diff)
parente1e4a1a4fad203f8a02b887149809966e128a3d8 (diff)
Merge tag 'amlogic-dt64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/late
Pull "Amlogic 64-bit DT changes for v4.9, round 2" from Kevin Hilman: Primarily adding support for newly added drivers - USB host - I2C - SPI flash controller - PWM - mailbox, MHU - pinctrl: add pins for SPI, I2C, SDIO and then enabling these drivers on various boards. * tag 'amlogic-dt64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM64: dts: meson-gxbb-vega-s95: Enable USB Nodes ARM64: dts: meson-gxbb-p20x: Enable USB Nodes ARM64: dts: meson-gxbb: add USB Nodes ARM64: dts: gxbb: add i2c bus ARM64: dts: meson-gxbb: add I2C nodes ARM64: dts: meson-gxbb: add pins for I2C ARM64: dts: meson-gxbb: Add SPIFC node ARM64: dts: meson-gxbb: add the SDIO pins ARM64: dts: amlogic: add spi nor pins ARM64: dts: meson-gxbb: use the new GXBB DWMAC glue driver ARM64: dts: meson-gxbb: Add Meson GXBB PWM Controller nodes ARM64: dts: meson-gxbb: Add Meson MHU Node ARM64: dts: amlogic: enable ethernet on all Tronsmart Vega S95 devices
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts6
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts6
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi30
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi36
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi198
5 files changed, 273 insertions, 3 deletions
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 233703529201..e6e3491d48a5 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -92,3 +92,9 @@
92 pinctrl-0 = <&remote_input_ao_pins>; 92 pinctrl-0 = <&remote_input_ao_pins>;
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
94}; 94};
95
96&i2c_A {
97 status = "okay";
98 pinctrl-0 = <&i2c_a_pins>;
99 pinctrl-names = "default";
100};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
index 62979076e250..03e3d76626dd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
@@ -50,3 +50,9 @@
50 compatible = "amlogic,p200", "amlogic,meson-gxbb"; 50 compatible = "amlogic,p200", "amlogic,meson-gxbb";
51 model = "Amlogic Meson GXBB P200 Development Board"; 51 model = "Amlogic Meson GXBB P200 Development Board";
52}; 52};
53
54&i2c_B {
55 status = "okay";
56 pinctrl-0 = <&i2c_b_pins>;
57 pinctrl-names = "default";
58};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
index 0eaca7277cfd..06a34dc6002f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
@@ -57,6 +57,19 @@
57 device_type = "memory"; 57 device_type = "memory";
58 reg = <0x0 0x0 0x0 0x40000000>; 58 reg = <0x0 0x0 0x0 0x40000000>;
59 }; 59 };
60
61 usb_pwr: regulator-usb-pwrs {
62 compatible = "regulator-fixed";
63
64 regulator-name = "USB_PWR";
65
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5000000>;
68
69 /* signal name in schematic: USB_PWR_EN */
70 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
71 enable-active-high;
72 };
60}; 73};
61 74
62/* This UART is brought out to the DB9 connector */ 75/* This UART is brought out to the DB9 connector */
@@ -77,3 +90,20 @@
77 pinctrl-0 = <&remote_input_ao_pins>; 90 pinctrl-0 = <&remote_input_ao_pins>;
78 pinctrl-names = "default"; 91 pinctrl-names = "default";
79}; 92};
93
94&usb0_phy {
95 status = "okay";
96 phy-supply = <&usb_pwr>;
97};
98
99&usb1_phy {
100 status = "okay";
101};
102
103&usb0 {
104 status = "okay";
105};
106
107&usb1 {
108 status = "okay";
109};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index 560770e6c648..73f159370188 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -52,6 +52,19 @@
52 chosen { 52 chosen {
53 stdout-path = "serial0:115200n8"; 53 stdout-path = "serial0:115200n8";
54 }; 54 };
55
56 usb_vbus: regulator-usb0-vbus {
57 compatible = "regulator-fixed";
58
59 regulator-name = "USB0_VBUS";
60
61 regulator-min-microvolt = <5000000>;
62 regulator-max-microvolt = <5000000>;
63
64 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
65 enable-active-high;
66 };
67
55}; 68};
56 69
57&uart_AO { 70&uart_AO {
@@ -66,3 +79,26 @@
66 pinctrl-0 = <&remote_input_ao_pins>; 79 pinctrl-0 = <&remote_input_ao_pins>;
67 pinctrl-names = "default"; 80 pinctrl-names = "default";
68}; 81};
82
83&ethmac {
84 status = "okay";
85 pinctrl-0 = <&eth_pins>;
86 pinctrl-names = "default";
87};
88
89&usb0_phy {
90 status = "okay";
91 phy-supply = <&usb_vbus>;
92};
93
94&usb1_phy {
95 status = "okay";
96};
97
98&usb0 {
99 status = "okay";
100};
101
102&usb1 {
103 status = "okay";
104};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 762f3681a49c..4e9cd01c60a7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -151,6 +151,25 @@
151 #size-cells = <2>; 151 #size-cells = <2>;
152 ranges; 152 ranges;
153 153
154 usb0_phy: phy@c0000000 {
155 compatible = "amlogic,meson-gxbb-usb2-phy";
156 #phy-cells = <0>;
157 reg = <0x0 0xc0000000 0x0 0x20>;
158 resets = <&reset RESET_USB_OTG>;
159 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
160 clock-names = "usb_general", "usb";
161 status = "disabled";
162 };
163
164 usb1_phy: phy@c0000020 {
165 compatible = "amlogic,meson-gxbb-usb2-phy";
166 #phy-cells = <0>;
167 reg = <0x0 0xc0000020 0x0 0x20>;
168 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
169 clock-names = "usb_general", "usb";
170 status = "disabled";
171 };
172
154 cbus: cbus@c1100000 { 173 cbus: cbus@c1100000 {
155 compatible = "simple-bus"; 174 compatible = "simple-bus";
156 reg = <0x0 0xc1100000 0x0 0x100000>; 175 reg = <0x0 0xc1100000 0x0 0x100000>;
@@ -180,6 +199,27 @@
180 status = "disabled"; 199 status = "disabled";
181 }; 200 };
182 201
202 pwm_ab: pwm@8550 {
203 compatible = "amlogic,meson-gxbb-pwm";
204 reg = <0x0 0x08550 0x0 0x10>;
205 #pwm-cells = <3>;
206 status = "disabled";
207 };
208
209 pwm_cd: pwm@8650 {
210 compatible = "amlogic,meson-gxbb-pwm";
211 reg = <0x0 0x08650 0x0 0x10>;
212 #pwm-cells = <3>;
213 status = "disabled";
214 };
215
216 pwm_ef: pwm@86c0 {
217 compatible = "amlogic,meson-gxbb-pwm";
218 reg = <0x0 0x086c0 0x0 0x10>;
219 #pwm-cells = <3>;
220 status = "disabled";
221 };
222
183 uart_C: serial@8700 { 223 uart_C: serial@8700 {
184 compatible = "amlogic,meson-uart"; 224 compatible = "amlogic,meson-uart";
185 reg = <0x0 0x8700 0x0 0x14>; 225 reg = <0x0 0x8700 0x0 0x14>;
@@ -193,6 +233,45 @@
193 reg = <0x0 0x098d0 0x0 0x10>; 233 reg = <0x0 0x098d0 0x0 0x10>;
194 clocks = <&xtal>; 234 clocks = <&xtal>;
195 }; 235 };
236
237 spifc: spi@8c80 {
238 compatible = "amlogic,meson-gxbb-spifc";
239 reg = <0x0 0x08c80 0x0 0x80>;
240 #address-cells = <1>;
241 #size-cells = <0>;
242 clocks = <&clkc CLKID_SPI>;
243 status = "disabled";
244 };
245
246 i2c_A: i2c@8500 {
247 compatible = "amlogic,meson-gxbb-i2c";
248 reg = <0x0 0x08500 0x0 0x20>;
249 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
250 clocks = <&clkc CLKID_I2C>;
251 #address-cells = <1>;
252 #size-cells = <0>;
253 status = "disabled";
254 };
255
256 i2c_B: i2c@87c0 {
257 compatible = "amlogic,meson-gxbb-i2c";
258 reg = <0x0 0x087c0 0x0 0x20>;
259 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
260 clocks = <&clkc CLKID_I2C>;
261 #address-cells = <1>;
262 #size-cells = <0>;
263 status = "disabled";
264 };
265
266 i2c_C: i2c@87e0 {
267 compatible = "amlogic,meson-gxbb-i2c";
268 reg = <0x0 0x087e0 0x0 0x20>;
269 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
270 clocks = <&clkc CLKID_I2C>;
271 #address-cells = <1>;
272 #size-cells = <0>;
273 status = "disabled";
274 };
196 }; 275 };
197 276
198 gic: interrupt-controller@c4301000 { 277 gic: interrupt-controller@c4301000 {
@@ -244,6 +323,14 @@
244 }; 323 };
245 }; 324 };
246 325
326 i2c_ao_pins: i2c_ao {
327 mux {
328 groups = "i2c_sck_ao",
329 "i2c_sda_ao";
330 function = "i2c_ao";
331 };
332 };
333
247 pwm_ao_a_3_pins: pwm_ao_a_3 { 334 pwm_ao_a_3_pins: pwm_ao_a_3 {
248 mux { 335 mux {
249 groups = "pwm_ao_a_3"; 336 groups = "pwm_ao_a_3";
@@ -294,6 +381,23 @@
294 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; 381 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
295 status = "disabled"; 382 status = "disabled";
296 }; 383 };
384
385 pwm_ab_AO: pwm@550 {
386 compatible = "amlogic,meson-gxbb-pwm";
387 reg = <0x0 0x0550 0x0 0x10>;
388 #pwm-cells = <3>;
389 status = "disabled";
390 };
391
392 i2c_AO: i2c@500 {
393 compatible = "amlogic,meson-gxbb-i2c";
394 reg = <0x0 0x500 0x0 0x20>;
395 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
396 clocks = <&clkc CLKID_AO_I2C>;
397 #address-cells = <1>;
398 #size-cells = <0>;
399 status = "disabled";
400 };
297 }; 401 };
298 402
299 periphs: periphs@c8834000 { 403 periphs: periphs@c8834000 {
@@ -333,6 +437,16 @@
333 }; 437 };
334 }; 438 };
335 439
440 nor_pins: nor {
441 mux {
442 groups = "nor_d",
443 "nor_q",
444 "nor_c",
445 "nor_cs";
446 function = "nor";
447 };
448 };
449
336 sdcard_pins: sdcard { 450 sdcard_pins: sdcard {
337 mux { 451 mux {
338 groups = "sdcard_d0", 452 groups = "sdcard_d0",
@@ -345,6 +459,25 @@
345 }; 459 };
346 }; 460 };
347 461
462 sdio_pins: sdio {
463 mux {
464 groups = "sdio_d0",
465 "sdio_d1",
466 "sdio_d2",
467 "sdio_d3",
468 "sdio_cmd",
469 "sdio_clk";
470 function = "sdio";
471 };
472 };
473
474 sdio_irq_pins: sdio_irq {
475 mux {
476 groups = "sdio_irq";
477 function = "sdio";
478 };
479 };
480
348 uart_a_pins: uart_a { 481 uart_a_pins: uart_a {
349 mux { 482 mux {
350 groups = "uart_tx_a", 483 groups = "uart_tx_a",
@@ -369,6 +502,30 @@
369 }; 502 };
370 }; 503 };
371 504
505 i2c_a_pins: i2c_a {
506 mux {
507 groups = "i2c_sck_a",
508 "i2c_sda_a";
509 function = "i2c_a";
510 };
511 };
512
513 i2c_b_pins: i2c_b {
514 mux {
515 groups = "i2c_sck_b",
516 "i2c_sda_b";
517 function = "i2c_b";
518 };
519 };
520
521 i2c_c_pins: i2c_c {
522 mux {
523 groups = "i2c_sck_c",
524 "i2c_sda_c";
525 function = "i2c_c";
526 };
527 };
528
372 eth_pins: eth_c { 529 eth_pins: eth_c {
373 mux { 530 mux {
374 groups = "eth_mdio", 531 groups = "eth_mdio",
@@ -452,6 +609,15 @@
452 #clock-cells = <1>; 609 #clock-cells = <1>;
453 reg = <0x0 0x0 0x0 0x3db>; 610 reg = <0x0 0x0 0x0 0x3db>;
454 }; 611 };
612
613 mailbox: mailbox@404 {
614 compatible = "amlogic,meson-gxbb-mhu";
615 reg = <0 0x404 0 0x4c>;
616 interrupts = <0 208 IRQ_TYPE_EDGE_RISING>,
617 <0 209 IRQ_TYPE_EDGE_RISING>,
618 <0 210 IRQ_TYPE_EDGE_RISING>;
619 #mbox-cells = <1>;
620 };
455 }; 621 };
456 622
457 apb: apb@d0000000 { 623 apb: apb@d0000000 {
@@ -462,14 +628,40 @@
462 ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>; 628 ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>;
463 }; 629 };
464 630
631 usb0: usb@c9000000 {
632 compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
633 reg = <0x0 0xc9000000 0x0 0x40000>;
634 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
635 clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
636 clock-names = "otg";
637 phys = <&usb0_phy>;
638 phy-names = "usb2-phy";
639 dr_mode = "host";
640 status = "disabled";
641 };
642
643 usb1: usb@c9100000 {
644 compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
645 reg = <0x0 0xc9100000 0x0 0x40000>;
646 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
647 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
648 clock-names = "otg";
649 phys = <&usb1_phy>;
650 phy-names = "usb2-phy";
651 dr_mode = "host";
652 status = "disabled";
653 };
654
465 ethmac: ethernet@c9410000 { 655 ethmac: ethernet@c9410000 {
466 compatible = "amlogic,meson6-dwmac", "snps,dwmac"; 656 compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
467 reg = <0x0 0xc9410000 0x0 0x10000 657 reg = <0x0 0xc9410000 0x0 0x10000
468 0x0 0xc8834540 0x0 0x4>; 658 0x0 0xc8834540 0x0 0x4>;
469 interrupts = <0 8 1>; 659 interrupts = <0 8 1>;
470 interrupt-names = "macirq"; 660 interrupt-names = "macirq";
471 clocks = <&clkc CLKID_ETH>; 661 clocks = <&clkc CLKID_ETH>,
472 clock-names = "stmmaceth"; 662 <&clkc CLKID_FCLK_DIV2>,
663 <&clkc CLKID_MPLL2>;
664 clock-names = "stmmaceth", "clkin0", "clkin1";
473 phy-mode = "rgmii"; 665 phy-mode = "rgmii";
474 status = "disabled"; 666 status = "disabled";
475 }; 667 };