summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-09-20 18:53:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-09-20 18:53:02 -0400
commitf97c81dc6ca5996560b3944064f63fc87eb18d00 (patch)
tree9d2aa5fa05542e9b1bf807e1207b5bc1fe5e7303
parenta703d279c57e1bfe2b6536c3a17c1c498b416d24 (diff)
parent2a7326caab479ca257c4b9bd67db42d1d49079bf (diff)
Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC late updates from Arnd Bergmann: "This is some material that we picked up into our tree late or that had complex inter-depondencies. The fact that there are these interdependencies tends to meant that these are often actually the most interesting new additions: - The new Aspeed AST2600 baseboard management controller is added, this is a Cortex-A7 based follow-up to the ARM11 based AST2500 and had some dependencies on other device drivers. - After many years, support for the MMP2 based OLPC XO-1.75 finally makes it into the kernel. - The Armada 3720 based Turris Mox open source router platform is a late addition and it follows some preparatory work across multiple branches. - The OMAP2+ platform had some large-scale cleanup involving driver changes and DT changes, here we finish it off, dropping a lot of the now-unused platform data. - The TI K3 platform that got added for 5.3 gains a lot more support for individual bits on the SoC, this part just came late for the merge window" [ This pull request itself wasn't actually sent late at all by Arnd, but I waited on the branches that it used to be pulled first, so it ends up being merged much later than the other ARM SoC pull requests this merge window - Linus ] * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits) ARM: dts: dir685: Drop spi-cpol from the display ARM: dts: aspeed: Add AST2600 pinmux nodes ARM: dts: aspeed: Add AST2600 and EVB ARM: exynos: Enable support for ARM architected timers ARM: samsung: Fix system restart on S3C6410 ARM: dts: mmp2: add OLPC XO 1.75 machine ARM: dts: mmp2: rename the USB PHY node ARM: dts: mmp2: specify reg-shift for the UARTs ARM: dts: mmp2: add camera interfaces ARM: dts: mmp2: fix the SPI nodes ARM: dts: mmp2: trivial whitespace fix arm64: dts: marvell: add DTS for Turris Mox dt-bindings: marvell: document Turris Mox compatible arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrl arm64: dts: ti: k3-j721e-main: Fix gic-its node unit-address arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address arm64: dts: ti: k3-j721e-main: Add hwspinlock node arm64: dts: ti: k3-am65-main: Add hwspinlock node arm64: dts: k3-j721e: Add gpio-keys on common processor board dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E ...
-rw-r--r--Documentation/devicetree/bindings/arm/marvell/armada-37xx.txt8
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/arm/boot/dts/Makefile4
-rw-r--r--arch/arm/boot/dts/am33xx-l4.dtsi4
-rw-r--r--arch/arm/boot/dts/am3517.dtsi24
-rw-r--r--arch/arm/boot/dts/am437x-l4.dtsi6
-rw-r--r--arch/arm/boot/dts/aspeed-ast2600-evb.dts80
-rw-r--r--arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi1154
-rw-r--r--arch/arm/boot/dts/aspeed-g6.dtsi261
-rw-r--r--arch/arm/boot/dts/dra7-l4.dtsi43
-rw-r--r--arch/arm/boot/dts/gemini-dlink-dir-685.dts1
-rw-r--r--arch/arm/boot/dts/mmp2-olpc-xo-1-75.dts244
-rw-r--r--arch/arm/boot/dts/mmp2.dtsi48
-rw-r--r--arch/arm/boot/dts/omap34xx.dtsi26
-rw-r--r--arch/arm/boot/dts/omap36xx.dtsi28
-rw-r--r--arch/arm/boot/dts/omap4-l4-abe.dtsi1
-rw-r--r--arch/arm/boot/dts/omap4-l4.dtsi39
-rw-r--r--arch/arm/boot/dts/omap4.dtsi1
-rw-r--r--arch/arm/boot/dts/omap5.dtsi23
-rw-r--r--arch/arm/boot/dts/omap54xx-clocks.dtsi14
-rw-r--r--arch/arm/mach-exynos/Kconfig1
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h3
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c6
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c50
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_33xx_data.c9
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_43xx_data.c9
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_44xx_data.c168
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_7xx_data.c475
-rw-r--r--arch/arm/plat-samsung/watchdog-reset.c1
-rw-r--r--arch/arm64/boot/dts/marvell/Makefile1
-rw-r--r--arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts840
-rw-r--r--arch/arm64/boot/dts/marvell/armada-37xx.dtsi5
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-main.dtsi52
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi10
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi6
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65.dtsi1
-rw-r--r--arch/arm64/boot/dts/ti/k3-am654-base-board.dts1
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts69
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721e-main.dtsi160
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi40
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721e.dtsi1
-rw-r--r--drivers/bus/ti-sysc.c101
-rw-r--r--drivers/clk/ti/clk-54xx.c34
-rw-r--r--include/dt-bindings/bus/ti-sysc.h1
-rw-r--r--include/dt-bindings/clock/omap5.h3
-rw-r--r--include/dt-bindings/pinctrl/k3.h3
-rw-r--r--include/linux/platform_data/ti-sysc.h8
47 files changed, 3186 insertions, 883 deletions
diff --git a/Documentation/devicetree/bindings/arm/marvell/armada-37xx.txt b/Documentation/devicetree/bindings/arm/marvell/armada-37xx.txt
index eddde4faef01..f6d6642d81c0 100644
--- a/Documentation/devicetree/bindings/arm/marvell/armada-37xx.txt
+++ b/Documentation/devicetree/bindings/arm/marvell/armada-37xx.txt
@@ -48,3 +48,11 @@ avs: avs@11500 {
48 compatible = "marvell,armada-3700-avs", "syscon"; 48 compatible = "marvell,armada-3700-avs", "syscon";
49 reg = <0x11500 0x40>; 49 reg = <0x11500 0x40>;
50} 50}
51
52
53CZ.NIC's Turris Mox SOHO router Device Tree Bindings
54----------------------------------------------------
55
56Required root node property:
57
58 - compatible: must contain "cznic,turris-mox"
diff --git a/MAINTAINERS b/MAINTAINERS
index fed7f9743f14..c590a37e87a1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11867,6 +11867,7 @@ S: Maintained
11867F: arch/arm/mach-omap2/ 11867F: arch/arm/mach-omap2/
11868F: arch/arm/plat-omap/ 11868F: arch/arm/plat-omap/
11869F: arch/arm/configs/omap2plus_defconfig 11869F: arch/arm/configs/omap2plus_defconfig
11870F: drivers/bus/ti-sysc.c
11870F: drivers/i2c/busses/i2c-omap.c 11871F: drivers/i2c/busses/i2c-omap.c
11871F: drivers/irqchip/irq-omap-intc.c 11872F: drivers/irqchip/irq-omap-intc.c
11872F: drivers/mfd/*omap*.c 11873F: drivers/mfd/*omap*.c
@@ -11887,6 +11888,7 @@ F: drivers/regulator/tps65910-regulator.c
11887F: drivers/regulator/twl-regulator.c 11888F: drivers/regulator/twl-regulator.c
11888F: drivers/regulator/twl6030-regulator.c 11889F: drivers/regulator/twl6030-regulator.c
11889F: include/linux/platform_data/i2c-omap.h 11890F: include/linux/platform_data/i2c-omap.h
11891F: include/linux/platform_data/ti-sysc.h
11890 11892
11891ONION OMEGA2+ BOARD 11893ONION OMEGA2+ BOARD
11892M: Harvey Hunt <harveyhuntnexus@gmail.com> 11894M: Harvey Hunt <harveyhuntnexus@gmail.com>
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index a24a6a132b07..b21b3a64641a 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -336,7 +336,8 @@ dtb-$(CONFIG_MACH_MESON8) += \
336dtb-$(CONFIG_ARCH_MMP) += \ 336dtb-$(CONFIG_ARCH_MMP) += \
337 pxa168-aspenite.dtb \ 337 pxa168-aspenite.dtb \
338 pxa910-dkb.dtb \ 338 pxa910-dkb.dtb \
339 mmp2-brownstone.dtb 339 mmp2-brownstone.dtb \
340 mmp2-olpc-xo-1-75.dtb
340dtb-$(CONFIG_ARCH_MPS2) += \ 341dtb-$(CONFIG_ARCH_MPS2) += \
341 mps2-an385.dtb \ 342 mps2-an385.dtb \
342 mps2-an399.dtb 343 mps2-an399.dtb
@@ -1278,6 +1279,7 @@ dtb-$(CONFIG_ARCH_MILBEAUT) += milbeaut-m10v-evb.dtb
1278dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb 1279dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
1279dtb-$(CONFIG_ARCH_ASPEED) += \ 1280dtb-$(CONFIG_ARCH_ASPEED) += \
1280 aspeed-ast2500-evb.dtb \ 1281 aspeed-ast2500-evb.dtb \
1282 aspeed-ast2600-evb.dtb \
1281 aspeed-bmc-arm-centriq2400-rep.dtb \ 1283 aspeed-bmc-arm-centriq2400-rep.dtb \
1282 aspeed-bmc-arm-stardragon4800-rep2.dtb \ 1284 aspeed-bmc-arm-stardragon4800-rep2.dtb \
1283 aspeed-bmc-facebook-cmm.dtb \ 1285 aspeed-bmc-facebook-cmm.dtb \
diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi
index 46849d6ecb3e..9915c891e05f 100644
--- a/arch/arm/boot/dts/am33xx-l4.dtsi
+++ b/arch/arm/boot/dts/am33xx-l4.dtsi
@@ -673,7 +673,6 @@
673 673
674 target-module@100000 { /* 0x4a100000, ap 3 08.0 */ 674 target-module@100000 { /* 0x4a100000, ap 3 08.0 */
675 compatible = "ti,sysc-omap4-simple", "ti,sysc"; 675 compatible = "ti,sysc-omap4-simple", "ti,sysc";
676 ti,hwmods = "cpgmac0";
677 reg = <0x101200 0x4>, 676 reg = <0x101200 0x4>,
678 <0x101208 0x4>, 677 <0x101208 0x4>,
679 <0x101204 0x4>; 678 <0x101204 0x4>;
@@ -719,9 +718,10 @@
719 718
720 davinci_mdio: mdio@1000 { 719 davinci_mdio: mdio@1000 {
721 compatible = "ti,cpsw-mdio","ti,davinci_mdio"; 720 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
721 clocks = <&cpsw_125mhz_clkctrl AM3_CPSW_125MHZ_CPGMAC0_CLKCTRL 0>;
722 clock-names = "fck";
722 #address-cells = <1>; 723 #address-cells = <1>;
723 #size-cells = <0>; 724 #size-cells = <0>;
724 ti,hwmods = "davinci_mdio";
725 bus_freq = <1000000>; 725 bus_freq = <1000000>;
726 reg = <0x1000 0x100>; 726 reg = <0x1000 0x100>;
727 status = "disabled"; 727 status = "disabled";
diff --git a/arch/arm/boot/dts/am3517.dtsi b/arch/arm/boot/dts/am3517.dtsi
index 23ea381d363f..bf3002009b00 100644
--- a/arch/arm/boot/dts/am3517.dtsi
+++ b/arch/arm/boot/dts/am3517.dtsi
@@ -88,6 +88,30 @@
88 interrupts = <24>; 88 interrupts = <24>;
89 clocks = <&hecc_ck>; 89 clocks = <&hecc_ck>;
90 }; 90 };
91
92 /*
93 * On am3517 the OCP registers do not seem to be accessible
94 * similar to the omap34xx. Maybe SGX is permanently set to
95 * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is
96 * write-only at 0x50000e10. We detect SGX based on the SGX
97 * revision register instead of the unreadable OCP revision
98 * register.
99 */
100 sgx_module: target-module@50000000 {
101 compatible = "ti,sysc-omap2", "ti,sysc";
102 reg = <0x50000014 0x4>;
103 reg-names = "rev";
104 clocks = <&sgx_fck>, <&sgx_ick>;
105 clock-names = "fck", "ick";
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges = <0 0x50000000 0x4000>;
109
110 /*
111 * Closed source PowerVR driver, no child device
112 * binding or driver in mainline
113 */
114 };
91 }; 115 };
92}; 116};
93 117
diff --git a/arch/arm/boot/dts/am437x-l4.dtsi b/arch/arm/boot/dts/am437x-l4.dtsi
index 04bee4ff9dcb..59770dd3785e 100644
--- a/arch/arm/boot/dts/am437x-l4.dtsi
+++ b/arch/arm/boot/dts/am437x-l4.dtsi
@@ -512,7 +512,6 @@
512 512
513 target-module@100000 { /* 0x4a100000, ap 3 04.0 */ 513 target-module@100000 { /* 0x4a100000, ap 3 04.0 */
514 compatible = "ti,sysc-omap4-simple", "ti,sysc"; 514 compatible = "ti,sysc-omap4-simple", "ti,sysc";
515 ti,hwmods = "cpgmac0";
516 reg = <0x101200 0x4>, 515 reg = <0x101200 0x4>,
517 <0x101208 0x4>, 516 <0x101208 0x4>,
518 <0x101204 0x4>; 517 <0x101204 0x4>;
@@ -559,11 +558,10 @@
559 davinci_mdio: mdio@1000 { 558 davinci_mdio: mdio@1000 {
560 compatible = "ti,am4372-mdio","ti,cpsw-mdio","ti,davinci_mdio"; 559 compatible = "ti,am4372-mdio","ti,cpsw-mdio","ti,davinci_mdio";
561 reg = <0x1000 0x100>; 560 reg = <0x1000 0x100>;
561 clocks = <&cpsw_125mhz_clkctrl AM4_CPSW_125MHZ_CPGMAC0_CLKCTRL 0>;
562 clock-names = "fck";
562 #address-cells = <1>; 563 #address-cells = <1>;
563 #size-cells = <0>; 564 #size-cells = <0>;
564 clocks = <&cpsw_125mhz_gclk>;
565 clock-names = "fck";
566 ti,hwmods = "davinci_mdio";
567 bus_freq = <1000000>; 565 bus_freq = <1000000>;
568 status = "disabled"; 566 status = "disabled";
569 }; 567 };
diff --git a/arch/arm/boot/dts/aspeed-ast2600-evb.dts b/arch/arm/boot/dts/aspeed-ast2600-evb.dts
new file mode 100644
index 000000000000..9870553919b7
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-ast2600-evb.dts
@@ -0,0 +1,80 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2019 IBM Corp.
3
4/dts-v1/;
5
6#include "aspeed-g6.dtsi"
7
8/ {
9 model = "AST2600 EVB";
10 compatible = "aspeed,ast2600";
11
12 aliases {
13 serial4 = &uart5;
14 };
15
16 chosen {
17 bootargs = "console=ttyS4,115200n8";
18 };
19
20 memory@80000000 {
21 device_type = "memory";
22 reg = <0x80000000 0x80000000>;
23 };
24};
25
26&mdio1 {
27 status = "okay";
28
29 ethphy1: ethernet-phy@0 {
30 compatible = "ethernet-phy-ieee802.3-c22";
31 reg = <0>;
32 };
33};
34
35&mdio2 {
36 status = "okay";
37
38 ethphy2: ethernet-phy@0 {
39 compatible = "ethernet-phy-ieee802.3-c22";
40 reg = <0>;
41 };
42};
43
44&mdio3 {
45 status = "okay";
46
47 ethphy3: ethernet-phy@0 {
48 compatible = "ethernet-phy-ieee802.3-c22";
49 reg = <0>;
50 };
51};
52
53&mac1 {
54 status = "okay";
55
56 phy-mode = "rgmii";
57 phy-handle = <&ethphy1>;
58};
59
60&mac2 {
61 status = "okay";
62
63 phy-mode = "rgmii";
64 phy-handle = <&ethphy2>;
65};
66
67&mac3 {
68 status = "okay";
69
70 phy-mode = "rgmii";
71 phy-handle = <&ethphy3>;
72};
73
74&emmc {
75 status = "okay";
76};
77
78&rtc {
79 status = "okay";
80};
diff --git a/arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi b/arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi
new file mode 100644
index 000000000000..5b8bf58e89cb
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi
@@ -0,0 +1,1154 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2019 IBM Corp.
3
4&pinctrl {
5 pinctrl_adc0_default: adc0_default {
6 function = "ADC0";
7 groups = "ADC0";
8 };
9
10 pinctrl_adc1_default: adc1_default {
11 function = "ADC1";
12 groups = "ADC1";
13 };
14
15 pinctrl_adc10_default: adc10_default {
16 function = "ADC10";
17 groups = "ADC10";
18 };
19
20 pinctrl_adc11_default: adc11_default {
21 function = "ADC11";
22 groups = "ADC11";
23 };
24
25 pinctrl_adc12_default: adc12_default {
26 function = "ADC12";
27 groups = "ADC12";
28 };
29
30 pinctrl_adc13_default: adc13_default {
31 function = "ADC13";
32 groups = "ADC13";
33 };
34
35 pinctrl_adc14_default: adc14_default {
36 function = "ADC14";
37 groups = "ADC14";
38 };
39
40 pinctrl_adc15_default: adc15_default {
41 function = "ADC15";
42 groups = "ADC15";
43 };
44
45 pinctrl_adc2_default: adc2_default {
46 function = "ADC2";
47 groups = "ADC2";
48 };
49
50 pinctrl_adc3_default: adc3_default {
51 function = "ADC3";
52 groups = "ADC3";
53 };
54
55 pinctrl_adc4_default: adc4_default {
56 function = "ADC4";
57 groups = "ADC4";
58 };
59
60 pinctrl_adc5_default: adc5_default {
61 function = "ADC5";
62 groups = "ADC5";
63 };
64
65 pinctrl_adc6_default: adc6_default {
66 function = "ADC6";
67 groups = "ADC6";
68 };
69
70 pinctrl_adc7_default: adc7_default {
71 function = "ADC7";
72 groups = "ADC7";
73 };
74
75 pinctrl_adc8_default: adc8_default {
76 function = "ADC8";
77 groups = "ADC8";
78 };
79
80 pinctrl_adc9_default: adc9_default {
81 function = "ADC9";
82 groups = "ADC9";
83 };
84
85 pinctrl_bmcint_default: bmcint_default {
86 function = "BMCINT";
87 groups = "BMCINT";
88 };
89
90 pinctrl_espi_default: espi_default {
91 function = "ESPI";
92 groups = "ESPI";
93 };
94
95 pinctrl_espialt_default: espialt_default {
96 function = "ESPIALT";
97 groups = "ESPIALT";
98 };
99
100 pinctrl_fsi1_default: fsi1_default {
101 function = "FSI1";
102 groups = "FSI1";
103 };
104
105 pinctrl_fsi2_default: fsi2_default {
106 function = "FSI2";
107 groups = "FSI2";
108 };
109
110 pinctrl_fwspiabr_default: fwspiabr_default {
111 function = "FWSPIABR";
112 groups = "FWSPIABR";
113 };
114
115 pinctrl_fwspid_default: fwspid_default {
116 function = "FWSPID";
117 groups = "FWSPID";
118 };
119
120 pinctrl_fwqspid_default: fwqspid_default {
121 function = "FWQSPID";
122 groups = "FWQSPID";
123 };
124
125 pinctrl_fwspiwp_default: fwspiwp_default {
126 function = "FWSPIWP";
127 groups = "FWSPIWP";
128 };
129
130 pinctrl_gpit0_default: gpit0_default {
131 function = "GPIT0";
132 groups = "GPIT0";
133 };
134
135 pinctrl_gpit1_default: gpit1_default {
136 function = "GPIT1";
137 groups = "GPIT1";
138 };
139
140 pinctrl_gpit2_default: gpit2_default {
141 function = "GPIT2";
142 groups = "GPIT2";
143 };
144
145 pinctrl_gpit3_default: gpit3_default {
146 function = "GPIT3";
147 groups = "GPIT3";
148 };
149
150 pinctrl_gpit4_default: gpit4_default {
151 function = "GPIT4";
152 groups = "GPIT4";
153 };
154
155 pinctrl_gpit5_default: gpit5_default {
156 function = "GPIT5";
157 groups = "GPIT5";
158 };
159
160 pinctrl_gpit6_default: gpit6_default {
161 function = "GPIT6";
162 groups = "GPIT6";
163 };
164
165 pinctrl_gpit7_default: gpit7_default {
166 function = "GPIT7";
167 groups = "GPIT7";
168 };
169
170 pinctrl_gpiu0_default: gpiu0_default {
171 function = "GPIU0";
172 groups = "GPIU0";
173 };
174
175 pinctrl_gpiu1_default: gpiu1_default {
176 function = "GPIU1";
177 groups = "GPIU1";
178 };
179
180 pinctrl_gpiu2_default: gpiu2_default {
181 function = "GPIU2";
182 groups = "GPIU2";
183 };
184
185 pinctrl_gpiu3_default: gpiu3_default {
186 function = "GPIU3";
187 groups = "GPIU3";
188 };
189
190 pinctrl_gpiu4_default: gpiu4_default {
191 function = "GPIU4";
192 groups = "GPIU4";
193 };
194
195 pinctrl_gpiu5_default: gpiu5_default {
196 function = "GPIU5";
197 groups = "GPIU5";
198 };
199
200 pinctrl_gpiu6_default: gpiu6_default {
201 function = "GPIU6";
202 groups = "GPIU6";
203 };
204
205 pinctrl_gpiu7_default: gpiu7_default {
206 function = "GPIU7";
207 groups = "GPIU7";
208 };
209
210 pinctrl_hvi3c3_default: hvi3c3_default {
211 function = "HVI3C3";
212 groups = "HVI3C3";
213 };
214
215 pinctrl_hvi3c4_default: hvi3c4_default {
216 function = "HVI3C4";
217 groups = "HVI3C4";
218 };
219
220 pinctrl_i2c1_default: i2c1_default {
221 function = "I2C1";
222 groups = "I2C1";
223 };
224
225 pinctrl_i2c10_default: i2c10_default {
226 function = "I2C10";
227 groups = "I2C10";
228 };
229
230 pinctrl_i2c11_default: i2c11_default {
231 function = "I2C11";
232 groups = "I2C11";
233 };
234
235 pinctrl_i2c12_default: i2c12_default {
236 function = "I2C12";
237 groups = "I2C12";
238 };
239
240 pinctrl_i2c13_default: i2c13_default {
241 function = "I2C13";
242 groups = "I2C13";
243 };
244
245 pinctrl_i2c14_default: i2c14_default {
246 function = "I2C14";
247 groups = "I2C14";
248 };
249
250 pinctrl_i2c15_default: i2c15_default {
251 function = "I2C15";
252 groups = "I2C15";
253 };
254
255 pinctrl_i2c16_default: i2c16_default {
256 function = "I2C16";
257 groups = "I2C16";
258 };
259
260 pinctrl_i2c2_default: i2c2_default {
261 function = "I2C2";
262 groups = "I2C2";
263 };
264
265 pinctrl_i2c3_default: i2c3_default {
266 function = "I2C3";
267 groups = "I2C3";
268 };
269
270 pinctrl_i2c4_default: i2c4_default {
271 function = "I2C4";
272 groups = "I2C4";
273 };
274
275 pinctrl_i2c5_default: i2c5_default {
276 function = "I2C5";
277 groups = "I2C5";
278 };
279
280 pinctrl_i2c6_default: i2c6_default {
281 function = "I2C6";
282 groups = "I2C6";
283 };
284
285 pinctrl_i2c7_default: i2c7_default {
286 function = "I2C7";
287 groups = "I2C7";
288 };
289
290 pinctrl_i2c8_default: i2c8_default {
291 function = "I2C8";
292 groups = "I2C8";
293 };
294
295 pinctrl_i2c9_default: i2c9_default {
296 function = "I2C9";
297 groups = "I2C9";
298 };
299
300 pinctrl_i3c3_default: i3c3_default {
301 function = "I3C3";
302 groups = "I3C3";
303 };
304
305 pinctrl_i3c4_default: i3c4_default {
306 function = "I3C4";
307 groups = "I3C4";
308 };
309
310 pinctrl_i3c5_default: i3c5_default {
311 function = "I3C5";
312 groups = "I3C5";
313 };
314
315 pinctrl_i3c6_default: i3c6_default {
316 function = "I3C6";
317 groups = "I3C6";
318 };
319
320 pinctrl_jtagm_default: jtagm_default {
321 function = "JTAGM";
322 groups = "JTAGM";
323 };
324
325 pinctrl_lhpd_default: lhpd_default {
326 function = "LHPD";
327 groups = "LHPD";
328 };
329
330 pinctrl_lhsirq_default: lhsirq_default {
331 function = "LHSIRQ";
332 groups = "LHSIRQ";
333 };
334
335 pinctrl_lpc_default: lpc_default {
336 function = "LPC";
337 groups = "LPC";
338 };
339
340 pinctrl_lpchc_default: lpchc_default {
341 function = "LPCHC";
342 groups = "LPCHC";
343 };
344
345 pinctrl_lpcpd_default: lpcpd_default {
346 function = "LPCPD";
347 groups = "LPCPD";
348 };
349
350 pinctrl_lpcpme_default: lpcpme_default {
351 function = "LPCPME";
352 groups = "LPCPME";
353 };
354
355 pinctrl_lpcsmi_default: lpcsmi_default {
356 function = "LPCSMI";
357 groups = "LPCSMI";
358 };
359
360 pinctrl_lsirq_default: lsirq_default {
361 function = "LSIRQ";
362 groups = "LSIRQ";
363 };
364
365 pinctrl_maclink1_default: maclink1_default {
366 function = "MACLINK1";
367 groups = "MACLINK1";
368 };
369
370 pinctrl_maclink2_default: maclink2_default {
371 function = "MACLINK2";
372 groups = "MACLINK2";
373 };
374
375 pinctrl_maclink3_default: maclink3_default {
376 function = "MACLINK3";
377 groups = "MACLINK3";
378 };
379
380 pinctrl_maclink4_default: maclink4_default {
381 function = "MACLINK4";
382 groups = "MACLINK4";
383 };
384
385 pinctrl_mdio1_default: mdio1_default {
386 function = "MDIO1";
387 groups = "MDIO1";
388 };
389
390 pinctrl_mdio2_default: mdio2_default {
391 function = "MDIO2";
392 groups = "MDIO2";
393 };
394
395 pinctrl_mdio3_default: mdio3_default {
396 function = "MDIO3";
397 groups = "MDIO3";
398 };
399
400 pinctrl_mdio4_default: mdio4_default {
401 function = "MDIO4";
402 groups = "MDIO4";
403 };
404
405 pinctrl_ncts1_default: ncts1_default {
406 function = "NCTS1";
407 groups = "NCTS1";
408 };
409
410 pinctrl_ncts2_default: ncts2_default {
411 function = "NCTS2";
412 groups = "NCTS2";
413 };
414
415 pinctrl_ncts3_default: ncts3_default {
416 function = "NCTS3";
417 groups = "NCTS3";
418 };
419
420 pinctrl_ncts4_default: ncts4_default {
421 function = "NCTS4";
422 groups = "NCTS4";
423 };
424
425 pinctrl_ndcd1_default: ndcd1_default {
426 function = "NDCD1";
427 groups = "NDCD1";
428 };
429
430 pinctrl_ndcd2_default: ndcd2_default {
431 function = "NDCD2";
432 groups = "NDCD2";
433 };
434
435 pinctrl_ndcd3_default: ndcd3_default {
436 function = "NDCD3";
437 groups = "NDCD3";
438 };
439
440 pinctrl_ndcd4_default: ndcd4_default {
441 function = "NDCD4";
442 groups = "NDCD4";
443 };
444
445 pinctrl_ndsr1_default: ndsr1_default {
446 function = "NDSR1";
447 groups = "NDSR1";
448 };
449
450 pinctrl_ndsr2_default: ndsr2_default {
451 function = "NDSR2";
452 groups = "NDSR2";
453 };
454
455 pinctrl_ndsr3_default: ndsr3_default {
456 function = "NDSR3";
457 groups = "NDSR3";
458 };
459
460 pinctrl_ndsr4_default: ndsr4_default {
461 function = "NDSR4";
462 groups = "NDSR4";
463 };
464
465 pinctrl_ndtr1_default: ndtr1_default {
466 function = "NDTR1";
467 groups = "NDTR1";
468 };
469
470 pinctrl_ndtr2_default: ndtr2_default {
471 function = "NDTR2";
472 groups = "NDTR2";
473 };
474
475 pinctrl_ndtr3_default: ndtr3_default {
476 function = "NDTR3";
477 groups = "NDTR3";
478 };
479
480 pinctrl_ndtr4_default: ndtr4_default {
481 function = "NDTR4";
482 groups = "NDTR4";
483 };
484
485 pinctrl_nri1_default: nri1_default {
486 function = "NRI1";
487 groups = "NRI1";
488 };
489
490 pinctrl_nri2_default: nri2_default {
491 function = "NRI2";
492 groups = "NRI2";
493 };
494
495 pinctrl_nri3_default: nri3_default {
496 function = "NRI3";
497 groups = "NRI3";
498 };
499
500 pinctrl_nri4_default: nri4_default {
501 function = "NRI4";
502 groups = "NRI4";
503 };
504
505 pinctrl_nrts1_default: nrts1_default {
506 function = "NRTS1";
507 groups = "NRTS1";
508 };
509
510 pinctrl_nrts2_default: nrts2_default {
511 function = "NRTS2";
512 groups = "NRTS2";
513 };
514
515 pinctrl_nrts3_default: nrts3_default {
516 function = "NRTS3";
517 groups = "NRTS3";
518 };
519
520 pinctrl_nrts4_default: nrts4_default {
521 function = "NRTS4";
522 groups = "NRTS4";
523 };
524
525 pinctrl_oscclk_default: oscclk_default {
526 function = "OSCCLK";
527 groups = "OSCCLK";
528 };
529
530 pinctrl_pewake_default: pewake_default {
531 function = "PEWAKE";
532 groups = "PEWAKE";
533 };
534
535 pinctrl_pwm0_default: pwm0_default {
536 function = "PWM0";
537 groups = "PWM0";
538 };
539
540 pinctrl_pwm1_default: pwm1_default {
541 function = "PWM1";
542 groups = "PWM1";
543 };
544
545 pinctrl_pwm10g0_default: pwm10g0_default {
546 function = "PWM10";
547 groups = "PWM10G0";
548 };
549
550 pinctrl_pwm10g1_default: pwm10g1_default {
551 function = "PWM10";
552 groups = "PWM10G1";
553 };
554
555 pinctrl_pwm11g0_default: pwm11g0_default {
556 function = "PWM11";
557 groups = "PWM11G0";
558 };
559
560 pinctrl_pwm11g1_default: pwm11g1_default {
561 function = "PWM11";
562 groups = "PWM11G1";
563 };
564
565 pinctrl_pwm12g0_default: pwm12g0_default {
566 function = "PWM12";
567 groups = "PWM12G0";
568 };
569
570 pinctrl_pwm12g1_default: pwm12g1_default {
571 function = "PWM12";
572 groups = "PWM12G1";
573 };
574
575 pinctrl_pwm13g0_default: pwm13g0_default {
576 function = "PWM13";
577 groups = "PWM13G0";
578 };
579
580 pinctrl_pwm13g1_default: pwm13g1_default {
581 function = "PWM13";
582 groups = "PWM13G1";
583 };
584
585 pinctrl_pwm14g0_default: pwm14g0_default {
586 function = "PWM14";
587 groups = "PWM14G0";
588 };
589
590 pinctrl_pwm14g1_default: pwm14g1_default {
591 function = "PWM14";
592 groups = "PWM14G1";
593 };
594
595 pinctrl_pwm15g0_default: pwm15g0_default {
596 function = "PWM15";
597 groups = "PWM15G0";
598 };
599
600 pinctrl_pwm15g1_default: pwm15g1_default {
601 function = "PWM15";
602 groups = "PWM15G1";
603 };
604
605 pinctrl_pwm2_default: pwm2_default {
606 function = "PWM2";
607 groups = "PWM2";
608 };
609
610 pinctrl_pwm3_default: pwm3_default {
611 function = "PWM3";
612 groups = "PWM3";
613 };
614
615 pinctrl_pwm4_default: pwm4_default {
616 function = "PWM4";
617 groups = "PWM4";
618 };
619
620 pinctrl_pwm5_default: pwm5_default {
621 function = "PWM5";
622 groups = "PWM5";
623 };
624
625 pinctrl_pwm6_default: pwm6_default {
626 function = "PWM6";
627 groups = "PWM6";
628 };
629
630 pinctrl_pwm7_default: pwm7_default {
631 function = "PWM7";
632 groups = "PWM7";
633 };
634
635 pinctrl_pwm8g0_default: pwm8g0_default {
636 function = "PWM8";
637 groups = "PWM8G0";
638 };
639
640 pinctrl_pwm8g1_default: pwm8g1_default {
641 function = "PWM8";
642 groups = "PWM8G1";
643 };
644
645 pinctrl_pwm9g0_default: pwm9g0_default {
646 function = "PWM9";
647 groups = "PWM9G0";
648 };
649
650 pinctrl_pwm9g1_default: pwm9g1_default {
651 function = "PWM9";
652 groups = "PWM9G1";
653 };
654
655 pinctrl_qspi1_default: qspi1_default {
656 function = "QSPI1";
657 groups = "QSPI1";
658 };
659
660 pinctrl_qspi2_default: qspi2_default {
661 function = "QSPI2";
662 groups = "QSPI2";
663 };
664
665 pinctrl_rgmii1_default: rgmii1_default {
666 function = "RGMII1";
667 groups = "RGMII1";
668 };
669
670 pinctrl_rgmii2_default: rgmii2_default {
671 function = "RGMII2";
672 groups = "RGMII2";
673 };
674
675 pinctrl_rgmii3_default: rgmii3_default {
676 function = "RGMII3";
677 groups = "RGMII3";
678 };
679
680 pinctrl_rgmii4_default: rgmii4_default {
681 function = "RGMII4";
682 groups = "RGMII4";
683 };
684
685 pinctrl_rmii1_default: rmii1_default {
686 function = "RMII1";
687 groups = "RMII1";
688 };
689
690 pinctrl_rmii2_default: rmii2_default {
691 function = "RMII2";
692 groups = "RMII2";
693 };
694
695 pinctrl_rmii3_default: rmii3_default {
696 function = "RMII3";
697 groups = "RMII3";
698 };
699
700 pinctrl_rmii4_default: rmii4_default {
701 function = "RMII4";
702 groups = "RMII4";
703 };
704
705 pinctrl_rxd1_default: rxd1_default {
706 function = "RXD1";
707 groups = "RXD1";
708 };
709
710 pinctrl_rxd2_default: rxd2_default {
711 function = "RXD2";
712 groups = "RXD2";
713 };
714
715 pinctrl_rxd3_default: rxd3_default {
716 function = "RXD3";
717 groups = "RXD3";
718 };
719
720 pinctrl_rxd4_default: rxd4_default {
721 function = "RXD4";
722 groups = "RXD4";
723 };
724
725 pinctrl_salt1_default: salt1_default {
726 function = "SALT1";
727 groups = "SALT1";
728 };
729
730 pinctrl_salt10g0_default: salt10g0_default {
731 function = "SALT10";
732 groups = "SALT10G0";
733 };
734
735 pinctrl_salt10g1_default: salt10g1_default {
736 function = "SALT10";
737 groups = "SALT10G1";
738 };
739
740 pinctrl_salt11g0_default: salt11g0_default {
741 function = "SALT11";
742 groups = "SALT11G0";
743 };
744
745 pinctrl_salt11g1_default: salt11g1_default {
746 function = "SALT11";
747 groups = "SALT11G1";
748 };
749
750 pinctrl_salt12g0_default: salt12g0_default {
751 function = "SALT12";
752 groups = "SALT12G0";
753 };
754
755 pinctrl_salt12g1_default: salt12g1_default {
756 function = "SALT12";
757 groups = "SALT12G1";
758 };
759
760 pinctrl_salt13g0_default: salt13g0_default {
761 function = "SALT13";
762 groups = "SALT13G0";
763 };
764
765 pinctrl_salt13g1_default: salt13g1_default {
766 function = "SALT13";
767 groups = "SALT13G1";
768 };
769
770 pinctrl_salt14g0_default: salt14g0_default {
771 function = "SALT14";
772 groups = "SALT14G0";
773 };
774
775 pinctrl_salt14g1_default: salt14g1_default {
776 function = "SALT14";
777 groups = "SALT14G1";
778 };
779
780 pinctrl_salt15g0_default: salt15g0_default {
781 function = "SALT15";
782 groups = "SALT15G0";
783 };
784
785 pinctrl_salt15g1_default: salt15g1_default {
786 function = "SALT15";
787 groups = "SALT15G1";
788 };
789
790 pinctrl_salt16g0_default: salt16g0_default {
791 function = "SALT16";
792 groups = "SALT16G0";
793 };
794
795 pinctrl_salt16g1_default: salt16g1_default {
796 function = "SALT16";
797 groups = "SALT16G1";
798 };
799
800 pinctrl_salt2_default: salt2_default {
801 function = "SALT2";
802 groups = "SALT2";
803 };
804
805 pinctrl_salt3_default: salt3_default {
806 function = "SALT3";
807 groups = "SALT3";
808 };
809
810 pinctrl_salt4_default: salt4_default {
811 function = "SALT4";
812 groups = "SALT4";
813 };
814
815 pinctrl_salt5_default: salt5_default {
816 function = "SALT5";
817 groups = "SALT5";
818 };
819
820 pinctrl_salt6_default: salt6_default {
821 function = "SALT6";
822 groups = "SALT6";
823 };
824
825 pinctrl_salt7_default: salt7_default {
826 function = "SALT7";
827 groups = "SALT7";
828 };
829
830 pinctrl_salt8_default: salt8_default {
831 function = "SALT8";
832 groups = "SALT8";
833 };
834
835 pinctrl_salt9g0_default: salt9g0_default {
836 function = "SALT9";
837 groups = "SALT9G0";
838 };
839
840 pinctrl_salt9g1_default: salt9g1_default {
841 function = "SALT9";
842 groups = "SALT9G1";
843 };
844
845 pinctrl_sd1_default: sd1_default {
846 function = "SD1";
847 groups = "SD1";
848 };
849
850 pinctrl_sd2_default: sd2_default {
851 function = "SD2";
852 groups = "SD2";
853 };
854
855 pinctrl_sd3_default: sd3_default {
856 function = "SD3";
857 groups = "SD3";
858 };
859
860 pinctrl_emmc_default: emmc_default {
861 function = "SD3";
862 groups = "EMMC";
863 };
864
865 pinctrl_sgpm1_default: sgpm1_default {
866 function = "SGPM1";
867 groups = "SGPM1";
868 };
869
870 pinctrl_sgps1_default: sgps1_default {
871 function = "SGPS1";
872 groups = "SGPS1";
873 };
874
875 pinctrl_sioonctrl_default: sioonctrl_default {
876 function = "SIOONCTRL";
877 groups = "SIOONCTRL";
878 };
879
880 pinctrl_siopbi_default: siopbi_default {
881 function = "SIOPBI";
882 groups = "SIOPBI";
883 };
884
885 pinctrl_siopbo_default: siopbo_default {
886 function = "SIOPBO";
887 groups = "SIOPBO";
888 };
889
890 pinctrl_siopwreq_default: siopwreq_default {
891 function = "SIOPWREQ";
892 groups = "SIOPWREQ";
893 };
894
895 pinctrl_siopwrgd_default: siopwrgd_default {
896 function = "SIOPWRGD";
897 groups = "SIOPWRGD";
898 };
899
900 pinctrl_sios3_default: sios3_default {
901 function = "SIOS3";
902 groups = "SIOS3";
903 };
904
905 pinctrl_sios5_default: sios5_default {
906 function = "SIOS5";
907 groups = "SIOS5";
908 };
909
910 pinctrl_siosci_default: siosci_default {
911 function = "SIOSCI";
912 groups = "SIOSCI";
913 };
914
915 pinctrl_spi1_default: spi1_default {
916 function = "SPI1";
917 groups = "SPI1";
918 };
919
920 pinctrl_spi1abr_default: spi1abr_default {
921 function = "SPI1ABR";
922 groups = "SPI1ABR";
923 };
924
925 pinctrl_spi1cs1_default: spi1cs1_default {
926 function = "SPI1CS1";
927 groups = "SPI1CS1";
928 };
929
930 pinctrl_spi1wp_default: spi1wp_default {
931 function = "SPI1WP";
932 groups = "SPI1WP";
933 };
934
935 pinctrl_spi2_default: spi2_default {
936 function = "SPI2";
937 groups = "SPI2";
938 };
939
940 pinctrl_spi2cs1_default: spi2cs1_default {
941 function = "SPI2CS1";
942 groups = "SPI2CS1";
943 };
944
945 pinctrl_spi2cs2_default: spi2cs2_default {
946 function = "SPI2CS2";
947 groups = "SPI2CS2";
948 };
949
950 pinctrl_tach0_default: tach0_default {
951 function = "TACH0";
952 groups = "TACH0";
953 };
954
955 pinctrl_tach1_default: tach1_default {
956 function = "TACH1";
957 groups = "TACH1";
958 };
959
960 pinctrl_tach10_default: tach10_default {
961 function = "TACH10";
962 groups = "TACH10";
963 };
964
965 pinctrl_tach11_default: tach11_default {
966 function = "TACH11";
967 groups = "TACH11";
968 };
969
970 pinctrl_tach12_default: tach12_default {
971 function = "TACH12";
972 groups = "TACH12";
973 };
974
975 pinctrl_tach13_default: tach13_default {
976 function = "TACH13";
977 groups = "TACH13";
978 };
979
980 pinctrl_tach14_default: tach14_default {
981 function = "TACH14";
982 groups = "TACH14";
983 };
984
985 pinctrl_tach15_default: tach15_default {
986 function = "TACH15";
987 groups = "TACH15";
988 };
989
990 pinctrl_tach2_default: tach2_default {
991 function = "TACH2";
992 groups = "TACH2";
993 };
994
995 pinctrl_tach3_default: tach3_default {
996 function = "TACH3";
997 groups = "TACH3";
998 };
999
1000 pinctrl_tach4_default: tach4_default {
1001 function = "TACH4";
1002 groups = "TACH4";
1003 };
1004
1005 pinctrl_tach5_default: tach5_default {
1006 function = "TACH5";
1007 groups = "TACH5";
1008 };
1009
1010 pinctrl_tach6_default: tach6_default {
1011 function = "TACH6";
1012 groups = "TACH6";
1013 };
1014
1015 pinctrl_tach7_default: tach7_default {
1016 function = "TACH7";
1017 groups = "TACH7";
1018 };
1019
1020 pinctrl_tach8_default: tach8_default {
1021 function = "TACH8";
1022 groups = "TACH8";
1023 };
1024
1025 pinctrl_tach9_default: tach9_default {
1026 function = "TACH9";
1027 groups = "TACH9";
1028 };
1029
1030 pinctrl_thru0_default: thru0_default {
1031 function = "THRU0";
1032 groups = "THRU0";
1033 };
1034
1035 pinctrl_thru1_default: thru1_default {
1036 function = "THRU1";
1037 groups = "THRU1";
1038 };
1039
1040 pinctrl_thru2_default: thru2_default {
1041 function = "THRU2";
1042 groups = "THRU2";
1043 };
1044
1045 pinctrl_thru3_default: thru3_default {
1046 function = "THRU3";
1047 groups = "THRU3";
1048 };
1049
1050 pinctrl_txd1_default: txd1_default {
1051 function = "TXD1";
1052 groups = "TXD1";
1053 };
1054
1055 pinctrl_txd2_default: txd2_default {
1056 function = "TXD2";
1057 groups = "TXD2";
1058 };
1059
1060 pinctrl_txd3_default: txd3_default {
1061 function = "TXD3";
1062 groups = "TXD3";
1063 };
1064
1065 pinctrl_txd4_default: txd4_default {
1066 function = "TXD4";
1067 groups = "TXD4";
1068 };
1069
1070 pinctrl_uart10_default: uart10_default {
1071 function = "UART10";
1072 groups = "UART10";
1073 };
1074
1075 pinctrl_uart11_default: uart11_default {
1076 function = "UART11";
1077 groups = "UART11";
1078 };
1079
1080 pinctrl_uart12g0_default: uart12g0_default {
1081 function = "UART12";
1082 groups = "UART12G0";
1083 };
1084
1085 pinctrl_uart12g1_default: uart12g1_default {
1086 function = "UART12";
1087 groups = "UART12G1";
1088 };
1089
1090 pinctrl_uart13g0_default: uart13g0_default {
1091 function = "UART13";
1092 groups = "UART13G0";
1093 };
1094
1095 pinctrl_uart13g1_default: uart13g1_default {
1096 function = "UART13";
1097 groups = "UART13G1";
1098 };
1099
1100 pinctrl_uart6_default: uart6_default {
1101 function = "UART6";
1102 groups = "UART6";
1103 };
1104
1105 pinctrl_uart7_default: uart7_default {
1106 function = "UART7";
1107 groups = "UART7";
1108 };
1109
1110 pinctrl_uart8_default: uart8_default {
1111 function = "UART8";
1112 groups = "UART8";
1113 };
1114
1115 pinctrl_uart9_default: uart9_default {
1116 function = "UART9";
1117 groups = "UART9";
1118 };
1119
1120 pinctrl_vb_default: vb_default {
1121 function = "VB";
1122 groups = "VB";
1123 };
1124
1125 pinctrl_vgahs_default: vgahs_default {
1126 function = "VGAHS";
1127 groups = "VGAHS";
1128 };
1129
1130 pinctrl_vgavs_default: vgavs_default {
1131 function = "VGAVS";
1132 groups = "VGAVS";
1133 };
1134
1135 pinctrl_wdtrst1_default: wdtrst1_default {
1136 function = "WDTRST1";
1137 groups = "WDTRST1";
1138 };
1139
1140 pinctrl_wdtrst2_default: wdtrst2_default {
1141 function = "WDTRST2";
1142 groups = "WDTRST2";
1143 };
1144
1145 pinctrl_wdtrst3_default: wdtrst3_default {
1146 function = "WDTRST3";
1147 groups = "WDTRST3";
1148 };
1149
1150 pinctrl_wdtrst4_default: wdtrst4_default {
1151 function = "WDTRST4";
1152 groups = "WDTRST4";
1153 };
1154};
diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi
new file mode 100644
index 000000000000..3a1422f7c49c
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-g6.dtsi
@@ -0,0 +1,261 @@
1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2019 IBM Corp.
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/ast2600-clock.h>
6
7/ {
8 model = "Aspeed BMC";
9 compatible = "aspeed,ast2600";
10 #address-cells = <1>;
11 #size-cells = <1>;
12 interrupt-parent = <&gic>;
13
14 aliases {
15 serial4 = &uart5;
16 };
17
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22 enable-method = "aspeed,ast2600-smp";
23
24 cpu@f00 {
25 compatible = "arm,cortex-a7";
26 device_type = "cpu";
27 reg = <0xf00>;
28 };
29
30 cpu@f01 {
31 compatible = "arm,cortex-a7";
32 device_type = "cpu";
33 reg = <0xf01>;
34 };
35 };
36
37 timer {
38 compatible = "arm,armv7-timer";
39 interrupt-parent = <&gic>;
40 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
41 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
42 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
43 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
44 clocks = <&syscon ASPEED_CLK_HPLL>;
45 arm,cpu-registers-not-fw-configured;
46 };
47
48 ahb {
49 compatible = "simple-bus";
50 #address-cells = <1>;
51 #size-cells = <1>;
52 device_type = "soc";
53 ranges;
54
55 gic: interrupt-controller@40461000 {
56 compatible = "arm,cortex-a7-gic";
57 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
58 #interrupt-cells = <3>;
59 interrupt-controller;
60 interrupt-parent = <&gic>;
61 reg = <0x40461000 0x1000>,
62 <0x40462000 0x1000>,
63 <0x40464000 0x2000>,
64 <0x40466000 0x2000>;
65 };
66
67 mdio0: mdio@1e650000 {
68 compatible = "aspeed,ast2600-mdio";
69 reg = <0x1e650000 0x8>;
70 #address-cells = <1>;
71 #size-cells = <0>;
72 status = "disabled";
73 };
74
75 mdio1: mdio@1e650008 {
76 compatible = "aspeed,ast2600-mdio";
77 reg = <0x1e650008 0x8>;
78 #address-cells = <1>;
79 #size-cells = <0>;
80 status = "disabled";
81 };
82
83 mdio2: mdio@1e650010 {
84 compatible = "aspeed,ast2600-mdio";
85 reg = <0x1e650010 0x8>;
86 #address-cells = <1>;
87 #size-cells = <0>;
88 status = "disabled";
89 };
90
91 mdio3: mdio@1e650018 {
92 compatible = "aspeed,ast2600-mdio";
93 reg = <0x1e650018 0x8>;
94 #address-cells = <1>;
95 #size-cells = <0>;
96 status = "disabled";
97 };
98
99 mac0: ftgmac@1e660000 {
100 compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
101 reg = <0x1e660000 0x180>;
102 #address-cells = <1>;
103 #size-cells = <0>;
104 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
105 clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>;
106 status = "disabled";
107 };
108
109 mac1: ftgmac@1e680000 {
110 compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
111 reg = <0x1e680000 0x180>;
112 #address-cells = <1>;
113 #size-cells = <0>;
114 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
115 clocks = <&syscon ASPEED_CLK_GATE_MAC2CLK>;
116 status = "disabled";
117 };
118
119 mac2: ftgmac@1e670000 {
120 compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
121 reg = <0x1e670000 0x180>;
122 #address-cells = <1>;
123 #size-cells = <0>;
124 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
125 clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>;
126 status = "disabled";
127 };
128
129 mac3: ftgmac@1e690000 {
130 compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
131 reg = <0x1e690000 0x180>;
132 #address-cells = <1>;
133 #size-cells = <0>;
134 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
135 clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>;
136 status = "disabled";
137 };
138
139 apb {
140 compatible = "simple-bus";
141 #address-cells = <1>;
142 #size-cells = <1>;
143 ranges;
144
145 syscon: syscon@1e6e2000 {
146 compatible = "aspeed,ast2600-scu", "syscon", "simple-mfd";
147 reg = <0x1e6e2000 0x1000>;
148 ranges = <0 0x1e6e2000 0x1000>;
149 #address-cells = <1>;
150 #size-cells = <1>;
151 #clock-cells = <1>;
152 #reset-cells = <1>;
153
154 pinctrl: pinctrl {
155 compatible = "aspeed,ast2600-pinctrl";
156 };
157
158 smp-memram@180 {
159 compatible = "aspeed,ast2600-smpmem";
160 reg = <0x180 0x40>;
161 };
162 };
163
164 rng: hwrng@1e6e2524 {
165 compatible = "timeriomem_rng";
166 reg = <0x1e6e2524 0x4>;
167 period = <1>;
168 quality = <100>;
169 };
170
171 rtc: rtc@1e781000 {
172 compatible = "aspeed,ast2600-rtc";
173 reg = <0x1e781000 0x18>;
174 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
175 status = "disabled";
176 };
177
178 uart5: serial@1e784000 {
179 compatible = "ns16550a";
180 reg = <0x1e784000 0x1000>;
181 reg-shift = <2>;
182 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
183 clocks = <&syscon ASPEED_CLK_GATE_UART5CLK>;
184 no-loopback-test;
185 };
186
187 wdt1: watchdog@1e785000 {
188 compatible = "aspeed,ast2600-wdt";
189 reg = <0x1e785000 0x40>;
190 };
191
192 wdt2: watchdog@1e785040 {
193 compatible = "aspeed,ast2600-wdt";
194 reg = <0x1e785040 0x40>;
195 status = "disabled";
196 };
197
198 wdt3: watchdog@1e785080 {
199 compatible = "aspeed,ast2600-wdt";
200 reg = <0x1e785080 0x40>;
201 status = "disabled";
202 };
203
204 wdt4: watchdog@1e7850C0 {
205 compatible = "aspeed,ast2600-wdt";
206 reg = <0x1e7850C0 0x40>;
207 status = "disabled";
208 };
209
210 sdc: sdc@1e740000 {
211 compatible = "aspeed,ast2600-sd-controller";
212 reg = <0x1e740000 0x100>;
213 #address-cells = <1>;
214 #size-cells = <1>;
215 ranges = <0 0x1e740000 0x10000>;
216 clocks = <&syscon ASPEED_CLK_GATE_SDCLK>;
217 status = "disabled";
218
219 sdhci0: sdhci@1e740100 {
220 compatible = "aspeed,ast2600-sdhci", "sdhci";
221 reg = <0x100 0x100>;
222 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
223 sdhci,auto-cmd12;
224 clocks = <&syscon ASPEED_CLK_SDIO>;
225 status = "disabled";
226 };
227
228 sdhci1: sdhci@1e740200 {
229 compatible = "aspeed,ast2600-sdhci", "sdhci";
230 reg = <0x200 0x100>;
231 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
232 sdhci,auto-cmd12;
233 clocks = <&syscon ASPEED_CLK_SDIO>;
234 status = "disabled";
235 };
236 };
237
238 emmc: sdc@1e750000 {
239 compatible = "aspeed,ast2600-sd-controller";
240 reg = <0x1e750000 0x100>;
241 #address-cells = <1>;
242 #size-cells = <1>;
243 ranges = <0 0x1e750000 0x10000>;
244 clocks = <&syscon ASPEED_CLK_GATE_EMMCCLK>;
245 status = "disabled";
246
247 sdhci@1e750100 {
248 compatible = "aspeed,ast2600-sdhci";
249 reg = <0x100 0x100>;
250 sdhci,auto-cmd12;
251 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
252 clocks = <&syscon ASPEED_CLK_EMMC>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_emmc_default>;
255 };
256 };
257 };
258 };
259};
260
261#include "aspeed-g6-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/dra7-l4.dtsi b/arch/arm/boot/dts/dra7-l4.dtsi
index 21e5914fdd62..ea0e7c19eb4e 100644
--- a/arch/arm/boot/dts/dra7-l4.dtsi
+++ b/arch/arm/boot/dts/dra7-l4.dtsi
@@ -1118,7 +1118,6 @@
1118 1118
1119 target-module@20000 { /* 0x48020000, ap 3 04.0 */ 1119 target-module@20000 { /* 0x48020000, ap 3 04.0 */
1120 compatible = "ti,sysc-omap2", "ti,sysc"; 1120 compatible = "ti,sysc-omap2", "ti,sysc";
1121 ti,hwmods = "uart3";
1122 reg = <0x20050 0x4>, 1121 reg = <0x20050 0x4>,
1123 <0x20054 0x4>, 1122 <0x20054 0x4>,
1124 <0x20058 0x4>; 1123 <0x20058 0x4>;
@@ -1263,7 +1262,6 @@
1263 1262
1264 gpio7_target: target-module@51000 { /* 0x48051000, ap 45 2e.0 */ 1263 gpio7_target: target-module@51000 { /* 0x48051000, ap 45 2e.0 */
1265 compatible = "ti,sysc-omap2", "ti,sysc"; 1264 compatible = "ti,sysc-omap2", "ti,sysc";
1266 ti,hwmods = "gpio7";
1267 reg = <0x51000 0x4>, 1265 reg = <0x51000 0x4>,
1268 <0x51010 0x4>, 1266 <0x51010 0x4>,
1269 <0x51114 0x4>; 1267 <0x51114 0x4>;
@@ -1297,7 +1295,6 @@
1297 1295
1298 target-module@53000 { /* 0x48053000, ap 35 36.0 */ 1296 target-module@53000 { /* 0x48053000, ap 35 36.0 */
1299 compatible = "ti,sysc-omap2", "ti,sysc"; 1297 compatible = "ti,sysc-omap2", "ti,sysc";
1300 ti,hwmods = "gpio8";
1301 reg = <0x53000 0x4>, 1298 reg = <0x53000 0x4>,
1302 <0x53010 0x4>, 1299 <0x53010 0x4>,
1303 <0x53114 0x4>; 1300 <0x53114 0x4>;
@@ -1331,7 +1328,6 @@
1331 1328
1332 target-module@55000 { /* 0x48055000, ap 13 0e.0 */ 1329 target-module@55000 { /* 0x48055000, ap 13 0e.0 */
1333 compatible = "ti,sysc-omap2", "ti,sysc"; 1330 compatible = "ti,sysc-omap2", "ti,sysc";
1334 ti,hwmods = "gpio2";
1335 reg = <0x55000 0x4>, 1331 reg = <0x55000 0x4>,
1336 <0x55010 0x4>, 1332 <0x55010 0x4>,
1337 <0x55114 0x4>; 1333 <0x55114 0x4>;
@@ -1365,7 +1361,6 @@
1365 1361
1366 target-module@57000 { /* 0x48057000, ap 15 06.0 */ 1362 target-module@57000 { /* 0x48057000, ap 15 06.0 */
1367 compatible = "ti,sysc-omap2", "ti,sysc"; 1363 compatible = "ti,sysc-omap2", "ti,sysc";
1368 ti,hwmods = "gpio3";
1369 reg = <0x57000 0x4>, 1364 reg = <0x57000 0x4>,
1370 <0x57010 0x4>, 1365 <0x57010 0x4>,
1371 <0x57114 0x4>; 1366 <0x57114 0x4>;
@@ -1399,7 +1394,6 @@
1399 1394
1400 target-module@59000 { /* 0x48059000, ap 17 16.0 */ 1395 target-module@59000 { /* 0x48059000, ap 17 16.0 */
1401 compatible = "ti,sysc-omap2", "ti,sysc"; 1396 compatible = "ti,sysc-omap2", "ti,sysc";
1402 ti,hwmods = "gpio4";
1403 reg = <0x59000 0x4>, 1397 reg = <0x59000 0x4>,
1404 <0x59010 0x4>, 1398 <0x59010 0x4>,
1405 <0x59114 0x4>; 1399 <0x59114 0x4>;
@@ -1433,7 +1427,6 @@
1433 1427
1434 target-module@5b000 { /* 0x4805b000, ap 19 1e.0 */ 1428 target-module@5b000 { /* 0x4805b000, ap 19 1e.0 */
1435 compatible = "ti,sysc-omap2", "ti,sysc"; 1429 compatible = "ti,sysc-omap2", "ti,sysc";
1436 ti,hwmods = "gpio5";
1437 reg = <0x5b000 0x4>, 1430 reg = <0x5b000 0x4>,
1438 <0x5b010 0x4>, 1431 <0x5b010 0x4>,
1439 <0x5b114 0x4>; 1432 <0x5b114 0x4>;
@@ -1467,7 +1460,6 @@
1467 1460
1468 target-module@5d000 { /* 0x4805d000, ap 21 26.0 */ 1461 target-module@5d000 { /* 0x4805d000, ap 21 26.0 */
1469 compatible = "ti,sysc-omap2", "ti,sysc"; 1462 compatible = "ti,sysc-omap2", "ti,sysc";
1470 ti,hwmods = "gpio6";
1471 reg = <0x5d000 0x4>, 1463 reg = <0x5d000 0x4>,
1472 <0x5d010 0x4>, 1464 <0x5d010 0x4>,
1473 <0x5d114 0x4>; 1465 <0x5d114 0x4>;
@@ -1501,7 +1493,6 @@
1501 1493
1502 target-module@60000 { /* 0x48060000, ap 23 32.0 */ 1494 target-module@60000 { /* 0x48060000, ap 23 32.0 */
1503 compatible = "ti,sysc-omap2", "ti,sysc"; 1495 compatible = "ti,sysc-omap2", "ti,sysc";
1504 ti,hwmods = "i2c3";
1505 reg = <0x60000 0x8>, 1496 reg = <0x60000 0x8>,
1506 <0x60010 0x8>, 1497 <0x60010 0x8>,
1507 <0x60090 0x8>; 1498 <0x60090 0x8>;
@@ -1534,7 +1525,6 @@
1534 1525
1535 target-module@66000 { /* 0x48066000, ap 63 14.0 */ 1526 target-module@66000 { /* 0x48066000, ap 63 14.0 */
1536 compatible = "ti,sysc-omap2", "ti,sysc"; 1527 compatible = "ti,sysc-omap2", "ti,sysc";
1537 ti,hwmods = "uart5";
1538 reg = <0x66050 0x4>, 1528 reg = <0x66050 0x4>,
1539 <0x66054 0x4>, 1529 <0x66054 0x4>,
1540 <0x66058 0x4>; 1530 <0x66058 0x4>;
@@ -1567,7 +1557,6 @@
1567 1557
1568 target-module@68000 { /* 0x48068000, ap 53 1c.0 */ 1558 target-module@68000 { /* 0x48068000, ap 53 1c.0 */
1569 compatible = "ti,sysc-omap2", "ti,sysc"; 1559 compatible = "ti,sysc-omap2", "ti,sysc";
1570 ti,hwmods = "uart6";
1571 reg = <0x68050 0x4>, 1560 reg = <0x68050 0x4>,
1572 <0x68054 0x4>, 1561 <0x68054 0x4>,
1573 <0x68058 0x4>; 1562 <0x68058 0x4>;
@@ -1600,7 +1589,6 @@
1600 1589
1601 target-module@6a000 { /* 0x4806a000, ap 24 24.0 */ 1590 target-module@6a000 { /* 0x4806a000, ap 24 24.0 */
1602 compatible = "ti,sysc-omap2", "ti,sysc"; 1591 compatible = "ti,sysc-omap2", "ti,sysc";
1603 ti,hwmods = "uart1";
1604 reg = <0x6a050 0x4>, 1592 reg = <0x6a050 0x4>,
1605 <0x6a054 0x4>, 1593 <0x6a054 0x4>,
1606 <0x6a058 0x4>; 1594 <0x6a058 0x4>;
@@ -1633,7 +1621,6 @@
1633 1621
1634 target-module@6c000 { /* 0x4806c000, ap 26 2c.0 */ 1622 target-module@6c000 { /* 0x4806c000, ap 26 2c.0 */
1635 compatible = "ti,sysc-omap2", "ti,sysc"; 1623 compatible = "ti,sysc-omap2", "ti,sysc";
1636 ti,hwmods = "uart2";
1637 reg = <0x6c050 0x4>, 1624 reg = <0x6c050 0x4>,
1638 <0x6c054 0x4>, 1625 <0x6c054 0x4>,
1639 <0x6c058 0x4>; 1626 <0x6c058 0x4>;
@@ -1666,7 +1653,6 @@
1666 1653
1667 target-module@6e000 { /* 0x4806e000, ap 28 0c.1 */ 1654 target-module@6e000 { /* 0x4806e000, ap 28 0c.1 */
1668 compatible = "ti,sysc-omap2", "ti,sysc"; 1655 compatible = "ti,sysc-omap2", "ti,sysc";
1669 ti,hwmods = "uart4";
1670 reg = <0x6e050 0x4>, 1656 reg = <0x6e050 0x4>,
1671 <0x6e054 0x4>, 1657 <0x6e054 0x4>,
1672 <0x6e058 0x4>; 1658 <0x6e058 0x4>;
@@ -1699,7 +1685,6 @@
1699 1685
1700 target-module@70000 { /* 0x48070000, ap 30 22.0 */ 1686 target-module@70000 { /* 0x48070000, ap 30 22.0 */
1701 compatible = "ti,sysc-omap2", "ti,sysc"; 1687 compatible = "ti,sysc-omap2", "ti,sysc";
1702 ti,hwmods = "i2c1";
1703 reg = <0x70000 0x8>, 1688 reg = <0x70000 0x8>,
1704 <0x70010 0x8>, 1689 <0x70010 0x8>,
1705 <0x70090 0x8>; 1690 <0x70090 0x8>;
@@ -1732,7 +1717,6 @@
1732 1717
1733 target-module@72000 { /* 0x48072000, ap 32 2a.0 */ 1718 target-module@72000 { /* 0x48072000, ap 32 2a.0 */
1734 compatible = "ti,sysc-omap2", "ti,sysc"; 1719 compatible = "ti,sysc-omap2", "ti,sysc";
1735 ti,hwmods = "i2c2";
1736 reg = <0x72000 0x8>, 1720 reg = <0x72000 0x8>,
1737 <0x72010 0x8>, 1721 <0x72010 0x8>,
1738 <0x72090 0x8>; 1722 <0x72090 0x8>;
@@ -1795,7 +1779,6 @@
1795 1779
1796 target-module@7a000 { /* 0x4807a000, ap 81 3a.0 */ 1780 target-module@7a000 { /* 0x4807a000, ap 81 3a.0 */
1797 compatible = "ti,sysc-omap2", "ti,sysc"; 1781 compatible = "ti,sysc-omap2", "ti,sysc";
1798 ti,hwmods = "i2c4";
1799 reg = <0x7a000 0x8>, 1782 reg = <0x7a000 0x8>,
1800 <0x7a010 0x8>, 1783 <0x7a010 0x8>,
1801 <0x7a090 0x8>; 1784 <0x7a090 0x8>;
@@ -1828,7 +1811,6 @@
1828 1811
1829 target-module@7c000 { /* 0x4807c000, ap 83 4a.0 */ 1812 target-module@7c000 { /* 0x4807c000, ap 83 4a.0 */
1830 compatible = "ti,sysc-omap2", "ti,sysc"; 1813 compatible = "ti,sysc-omap2", "ti,sysc";
1831 ti,hwmods = "i2c5";
1832 reg = <0x7c000 0x8>, 1814 reg = <0x7c000 0x8>,
1833 <0x7c010 0x8>, 1815 <0x7c010 0x8>,
1834 <0x7c090 0x8>; 1816 <0x7c090 0x8>;
@@ -1942,7 +1924,6 @@
1942 1924
1943 target-module@98000 { /* 0x48098000, ap 47 08.0 */ 1925 target-module@98000 { /* 0x48098000, ap 47 08.0 */
1944 compatible = "ti,sysc-omap4", "ti,sysc"; 1926 compatible = "ti,sysc-omap4", "ti,sysc";
1945 ti,hwmods = "mcspi1";
1946 reg = <0x98000 0x4>, 1927 reg = <0x98000 0x4>,
1947 <0x98010 0x4>; 1928 <0x98010 0x4>;
1948 reg-names = "rev", "sysc"; 1929 reg-names = "rev", "sysc";
@@ -1982,7 +1963,6 @@
1982 1963
1983 target-module@9a000 { /* 0x4809a000, ap 49 10.0 */ 1964 target-module@9a000 { /* 0x4809a000, ap 49 10.0 */
1984 compatible = "ti,sysc-omap4", "ti,sysc"; 1965 compatible = "ti,sysc-omap4", "ti,sysc";
1985 ti,hwmods = "mcspi2";
1986 reg = <0x9a000 0x4>, 1966 reg = <0x9a000 0x4>,
1987 <0x9a010 0x4>; 1967 <0x9a010 0x4>;
1988 reg-names = "rev", "sysc"; 1968 reg-names = "rev", "sysc";
@@ -2017,7 +1997,6 @@
2017 1997
2018 target-module@9c000 { /* 0x4809c000, ap 51 38.0 */ 1998 target-module@9c000 { /* 0x4809c000, ap 51 38.0 */
2019 compatible = "ti,sysc-omap4", "ti,sysc"; 1999 compatible = "ti,sysc-omap4", "ti,sysc";
2020 ti,hwmods = "mmc1";
2021 reg = <0x9c000 0x4>, 2000 reg = <0x9c000 0x4>,
2022 <0x9c010 0x4>; 2001 <0x9c010 0x4>;
2023 reg-names = "rev", "sysc"; 2002 reg-names = "rev", "sysc";
@@ -2077,7 +2056,6 @@
2077 2056
2078 target-module@ad000 { /* 0x480ad000, ap 61 20.0 */ 2057 target-module@ad000 { /* 0x480ad000, ap 61 20.0 */
2079 compatible = "ti,sysc-omap4", "ti,sysc"; 2058 compatible = "ti,sysc-omap4", "ti,sysc";
2080 ti,hwmods = "mmc3";
2081 reg = <0xad000 0x4>, 2059 reg = <0xad000 0x4>,
2082 <0xad010 0x4>; 2060 <0xad010 0x4>;
2083 reg-names = "rev", "sysc"; 2061 reg-names = "rev", "sysc";
@@ -2137,7 +2115,6 @@
2137 2115
2138 target-module@b4000 { /* 0x480b4000, ap 65 40.0 */ 2116 target-module@b4000 { /* 0x480b4000, ap 65 40.0 */
2139 compatible = "ti,sysc-omap4", "ti,sysc"; 2117 compatible = "ti,sysc-omap4", "ti,sysc";
2140 ti,hwmods = "mmc2";
2141 reg = <0xb4000 0x4>, 2118 reg = <0xb4000 0x4>,
2142 <0xb4010 0x4>; 2119 <0xb4010 0x4>;
2143 reg-names = "rev", "sysc"; 2120 reg-names = "rev", "sysc";
@@ -2174,7 +2151,6 @@
2174 2151
2175 target-module@b8000 { /* 0x480b8000, ap 67 48.0 */ 2152 target-module@b8000 { /* 0x480b8000, ap 67 48.0 */
2176 compatible = "ti,sysc-omap4", "ti,sysc"; 2153 compatible = "ti,sysc-omap4", "ti,sysc";
2177 ti,hwmods = "mcspi3";
2178 reg = <0xb8000 0x4>, 2154 reg = <0xb8000 0x4>,
2179 <0xb8010 0x4>; 2155 <0xb8010 0x4>;
2180 reg-names = "rev", "sysc"; 2156 reg-names = "rev", "sysc";
@@ -2206,7 +2182,6 @@
2206 2182
2207 target-module@ba000 { /* 0x480ba000, ap 69 18.0 */ 2183 target-module@ba000 { /* 0x480ba000, ap 69 18.0 */
2208 compatible = "ti,sysc-omap4", "ti,sysc"; 2184 compatible = "ti,sysc-omap4", "ti,sysc";
2209 ti,hwmods = "mcspi4";
2210 reg = <0xba000 0x4>, 2185 reg = <0xba000 0x4>,
2211 <0xba010 0x4>; 2186 <0xba010 0x4>;
2212 reg-names = "rev", "sysc"; 2187 reg-names = "rev", "sysc";
@@ -2238,7 +2213,6 @@
2238 2213
2239 target-module@d1000 { /* 0x480d1000, ap 71 28.0 */ 2214 target-module@d1000 { /* 0x480d1000, ap 71 28.0 */
2240 compatible = "ti,sysc-omap4", "ti,sysc"; 2215 compatible = "ti,sysc-omap4", "ti,sysc";
2241 ti,hwmods = "mmc4";
2242 reg = <0xd1000 0x4>, 2216 reg = <0xd1000 0x4>,
2243 <0xd1010 0x4>; 2217 <0xd1010 0x4>;
2244 reg-names = "rev", "sysc"; 2218 reg-names = "rev", "sysc";
@@ -2384,7 +2358,6 @@
2384 2358
2385 target-module@20000 { /* 0x48420000, ap 47 02.0 */ 2359 target-module@20000 { /* 0x48420000, ap 47 02.0 */
2386 compatible = "ti,sysc-omap2", "ti,sysc"; 2360 compatible = "ti,sysc-omap2", "ti,sysc";
2387 ti,hwmods = "uart7";
2388 reg = <0x20050 0x4>, 2361 reg = <0x20050 0x4>,
2389 <0x20054 0x4>, 2362 <0x20054 0x4>,
2390 <0x20058 0x4>; 2363 <0x20058 0x4>;
@@ -2415,7 +2388,6 @@
2415 2388
2416 target-module@22000 { /* 0x48422000, ap 49 0a.0 */ 2389 target-module@22000 { /* 0x48422000, ap 49 0a.0 */
2417 compatible = "ti,sysc-omap2", "ti,sysc"; 2390 compatible = "ti,sysc-omap2", "ti,sysc";
2418 ti,hwmods = "uart8";
2419 reg = <0x22050 0x4>, 2391 reg = <0x22050 0x4>,
2420 <0x22054 0x4>, 2392 <0x22054 0x4>,
2421 <0x22058 0x4>; 2393 <0x22058 0x4>;
@@ -2446,7 +2418,6 @@
2446 2418
2447 target-module@24000 { /* 0x48424000, ap 51 12.0 */ 2419 target-module@24000 { /* 0x48424000, ap 51 12.0 */
2448 compatible = "ti,sysc-omap2", "ti,sysc"; 2420 compatible = "ti,sysc-omap2", "ti,sysc";
2449 ti,hwmods = "uart9";
2450 reg = <0x24050 0x4>, 2421 reg = <0x24050 0x4>,
2451 <0x24054 0x4>, 2422 <0x24054 0x4>,
2452 <0x24058 0x4>; 2423 <0x24058 0x4>;
@@ -2735,7 +2706,6 @@
2735 2706
2736 target-module@60000 { /* 0x48460000, ap 9 0e.0 */ 2707 target-module@60000 { /* 0x48460000, ap 9 0e.0 */
2737 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2708 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2738 ti,hwmods = "mcasp1";
2739 reg = <0x60000 0x4>, 2709 reg = <0x60000 0x4>,
2740 <0x60004 0x4>; 2710 <0x60004 0x4>;
2741 reg-names = "rev", "sysc"; 2711 reg-names = "rev", "sysc";
@@ -2772,7 +2742,6 @@
2772 2742
2773 target-module@64000 { /* 0x48464000, ap 11 1e.0 */ 2743 target-module@64000 { /* 0x48464000, ap 11 1e.0 */
2774 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2744 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2775 ti,hwmods = "mcasp2";
2776 reg = <0x64000 0x4>, 2745 reg = <0x64000 0x4>,
2777 <0x64004 0x4>; 2746 <0x64004 0x4>;
2778 reg-names = "rev", "sysc"; 2747 reg-names = "rev", "sysc";
@@ -2809,7 +2778,6 @@
2809 2778
2810 target-module@68000 { /* 0x48468000, ap 13 26.0 */ 2779 target-module@68000 { /* 0x48468000, ap 13 26.0 */
2811 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2780 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2812 ti,hwmods = "mcasp3";
2813 reg = <0x68000 0x4>, 2781 reg = <0x68000 0x4>,
2814 <0x68004 0x4>; 2782 <0x68004 0x4>;
2815 reg-names = "rev", "sysc"; 2783 reg-names = "rev", "sysc";
@@ -2845,7 +2813,6 @@
2845 2813
2846 target-module@6c000 { /* 0x4846c000, ap 15 2e.0 */ 2814 target-module@6c000 { /* 0x4846c000, ap 15 2e.0 */
2847 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2815 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2848 ti,hwmods = "mcasp4";
2849 reg = <0x6c000 0x4>, 2816 reg = <0x6c000 0x4>,
2850 <0x6c004 0x4>; 2817 <0x6c004 0x4>;
2851 reg-names = "rev", "sysc"; 2818 reg-names = "rev", "sysc";
@@ -2881,7 +2848,6 @@
2881 2848
2882 target-module@70000 { /* 0x48470000, ap 19 36.0 */ 2849 target-module@70000 { /* 0x48470000, ap 19 36.0 */
2883 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2850 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2884 ti,hwmods = "mcasp5";
2885 reg = <0x70000 0x4>, 2851 reg = <0x70000 0x4>,
2886 <0x70004 0x4>; 2852 <0x70004 0x4>;
2887 reg-names = "rev", "sysc"; 2853 reg-names = "rev", "sysc";
@@ -2917,7 +2883,6 @@
2917 2883
2918 target-module@74000 { /* 0x48474000, ap 35 14.0 */ 2884 target-module@74000 { /* 0x48474000, ap 35 14.0 */
2919 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2885 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2920 ti,hwmods = "mcasp6";
2921 reg = <0x74000 0x4>, 2886 reg = <0x74000 0x4>,
2922 <0x74004 0x4>; 2887 <0x74004 0x4>;
2923 reg-names = "rev", "sysc"; 2888 reg-names = "rev", "sysc";
@@ -2953,7 +2918,6 @@
2953 2918
2954 target-module@78000 { /* 0x48478000, ap 39 0c.0 */ 2919 target-module@78000 { /* 0x48478000, ap 39 0c.0 */
2955 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2920 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2956 ti,hwmods = "mcasp7";
2957 reg = <0x78000 0x4>, 2921 reg = <0x78000 0x4>,
2958 <0x78004 0x4>; 2922 <0x78004 0x4>;
2959 reg-names = "rev", "sysc"; 2923 reg-names = "rev", "sysc";
@@ -2989,7 +2953,6 @@
2989 2953
2990 target-module@7c000 { /* 0x4847c000, ap 43 04.0 */ 2954 target-module@7c000 { /* 0x4847c000, ap 43 04.0 */
2991 compatible = "ti,sysc-dra7-mcasp", "ti,sysc"; 2955 compatible = "ti,sysc-dra7-mcasp", "ti,sysc";
2992 ti,hwmods = "mcasp8";
2993 reg = <0x7c000 0x4>, 2956 reg = <0x7c000 0x4>,
2994 <0x7c004 0x4>; 2957 <0x7c004 0x4>;
2995 reg-names = "rev", "sysc"; 2958 reg-names = "rev", "sysc";
@@ -3045,7 +3008,6 @@
3045 3008
3046 target-module@84000 { /* 0x48484000, ap 3 10.0 */ 3009 target-module@84000 { /* 0x48484000, ap 3 10.0 */
3047 compatible = "ti,sysc-omap4-simple", "ti,sysc"; 3010 compatible = "ti,sysc-omap4-simple", "ti,sysc";
3048 ti,hwmods = "gmac";
3049 reg = <0x85200 0x4>, 3011 reg = <0x85200 0x4>,
3050 <0x85208 0x4>, 3012 <0x85208 0x4>,
3051 <0x85204 0x4>; 3013 <0x85204 0x4>;
@@ -3103,9 +3065,10 @@
3103 3065
3104 davinci_mdio: mdio@1000 { 3066 davinci_mdio: mdio@1000 {
3105 compatible = "ti,cpsw-mdio","ti,davinci_mdio"; 3067 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
3068 clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>;
3069 clock-names = "fck";
3106 #address-cells = <1>; 3070 #address-cells = <1>;
3107 #size-cells = <0>; 3071 #size-cells = <0>;
3108 ti,hwmods = "davinci_mdio";
3109 bus_freq = <1000000>; 3072 bus_freq = <1000000>;
3110 reg = <0x1000 0x100>; 3073 reg = <0x1000 0x100>;
3111 }; 3074 };
@@ -4311,7 +4274,6 @@
4311 4274
4312 target-module@0 { /* 0x4ae10000, ap 5 20.0 */ 4275 target-module@0 { /* 0x4ae10000, ap 5 20.0 */
4313 compatible = "ti,sysc-omap2", "ti,sysc"; 4276 compatible = "ti,sysc-omap2", "ti,sysc";
4314 ti,hwmods = "gpio1";
4315 reg = <0x0 0x4>, 4277 reg = <0x0 0x4>,
4316 <0x10 0x4>, 4278 <0x10 0x4>,
4317 <0x114 0x4>; 4279 <0x114 0x4>;
@@ -4479,7 +4441,6 @@
4479 4441
4480 target-module@b000 { /* 0x4ae2b000, ap 28 02.0 */ 4442 target-module@b000 { /* 0x4ae2b000, ap 28 02.0 */
4481 compatible = "ti,sysc-omap2", "ti,sysc"; 4443 compatible = "ti,sysc-omap2", "ti,sysc";
4482 ti,hwmods = "uart10";
4483 reg = <0xb050 0x4>, 4444 reg = <0xb050 0x4>,
4484 <0xb054 0x4>, 4445 <0xb054 0x4>,
4485 <0xb058 0x4>; 4446 <0xb058 0x4>;
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
index bfaa2de63a10..e2030ba16512 100644
--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
@@ -72,7 +72,6 @@
72 reg = <0>; 72 reg = <0>;
73 /* 50 ns min period = 20 MHz */ 73 /* 50 ns min period = 20 MHz */
74 spi-max-frequency = <20000000>; 74 spi-max-frequency = <20000000>;
75 spi-cpol; /* Clock active low */
76 vcc-supply = <&vdisp>; 75 vcc-supply = <&vdisp>;
77 iovcc-supply = <&vdisp>; 76 iovcc-supply = <&vdisp>;
78 vci-supply = <&vdisp>; 77 vci-supply = <&vdisp>;
diff --git a/arch/arm/boot/dts/mmp2-olpc-xo-1-75.dts b/arch/arm/boot/dts/mmp2-olpc-xo-1-75.dts
new file mode 100644
index 000000000000..6cfa0d4a1884
--- /dev/null
+++ b/arch/arm/boot/dts/mmp2-olpc-xo-1-75.dts
@@ -0,0 +1,244 @@
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * OLPC XO 1.75 Laptop.
4 *
5 * Copyright (C) 2018,2019 Lubomir Rintel <lkundrak@v3.sk>
6 */
7
8/dts-v1/;
9#include "mmp2.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/linux-event-codes.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13
14/ {
15 model = "OLPC XO-1.75";
16 compatible = "olpc,xo-1.75", "mrvl,mmp2";
17
18 chosen {
19 #address-cells = <1>;
20 #size-cells = <1>;
21 ranges;
22
23 framebuffer@1fc00000 {
24 compatible = "simple-framebuffer";
25 reg = <0x1fc00000 (1200 * 900 * 2)>;
26 width = <1200>;
27 height = <900>;
28 stride = <(1200 * 2)>;
29 format = "r5g6b5";
30 clocks = <&soc_clocks MMP2_CLK_DISP0_LCDC>,
31 <&soc_clocks MMP2_CLK_DISP0>;
32 };
33 };
34
35 memory {
36 linux,usable-memory = <0x0 0x1f800000>;
37 available = <0xcf000 0x1ef31000 0x1000 0xbf000>;
38 reg = <0x0 0x20000000>;
39 device_type = "memory";
40 };
41
42 gpio-keys {
43 compatible = "gpio-keys";
44
45 lid {
46 label = "Lid";
47 gpios = <&gpio 129 GPIO_ACTIVE_LOW>;
48 linux,input-type = <EV_SW>;
49 linux,code = <SW_LID>;
50 wakeup-source;
51 };
52
53 tablet_mode {
54 label = "E-Book Mode";
55 gpios = <&gpio 128 GPIO_ACTIVE_LOW>;
56 linux,input-type = <EV_SW>;
57 linux,code = <SW_TABLET_MODE>;
58 wakeup-source;
59 };
60
61 microphone_insert {
62 label = "Microphone Plug";
63 gpios = <&gpio 96 GPIO_ACTIVE_HIGH>;
64 linux,input-type = <EV_SW>;
65 linux,code = <SW_MICROPHONE_INSERT>;
66 debounce-interval = <100>;
67 wakeup-source;
68 };
69
70 headphone_insert {
71 label = "Headphone Plug";
72 gpios = <&gpio 97 GPIO_ACTIVE_HIGH>;
73 linux,input-type = <EV_SW>;
74 linux,code = <SW_HEADPHONE_INSERT>;
75 debounce-interval = <100>;
76 wakeup-source;
77 };
78 };
79
80 camera_i2c {
81 compatible = "i2c-gpio";
82 gpios = <&gpio 109 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>,
83 <&gpio 108 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
84 #address-cells = <1>;
85 #size-cells = <0>;
86 i2c-gpio,timeout-ms = <1000>;
87 status = "okay";
88
89 camera@21 {
90 compatible = "ovti,ov7670";
91 reg = <0x21>;
92 reset-gpios = <&gpio 102 GPIO_ACTIVE_LOW>;
93 powerdown-gpios = <&gpio 150 GPIO_ACTIVE_LOW>;
94 clocks = <&camera0>;
95 clock-names = "xclk";
96
97 port {
98 ov7670_0: endpoint {
99 hsync-active = <1>;
100 vsync-active = <1>;
101 remote-endpoint = <&camera0_0>;
102 };
103 };
104 };
105 };
106
107 battery {
108 compatible = "olpc,xo1.5-battery", "olpc,xo1-battery";
109 };
110
111 wlan_reg: fixedregulator0 {
112 compatible = "regulator-fixed";
113 regulator-name = "wlan";
114 regulator-min-microvolt = <3300000>;
115 regulator-max-microvolt = <3300000>;
116 gpio = <&gpio 34 GPIO_ACTIVE_HIGH>;
117 enable-active-high;
118 };
119
120 wlan_pwrseq: pwrseq0 {
121 compatible = "mmc-pwrseq-sd8787";
122 powerdown-gpios = <&gpio 57 GPIO_ACTIVE_HIGH>;
123 reset-gpios = <&gpio 58 GPIO_ACTIVE_HIGH>;
124 };
125
126 soc {
127 axi@d4200000 {
128 ap-sp@d4290000 {
129 #address-cells = <1>;
130 #size-cells = <0>;
131 compatible = "olpc,ap-sp";
132 interrupts = <40>;
133 reg = <0xd4290000 0x1000>;
134 data-gpios = <&gpio 72 GPIO_ACTIVE_HIGH>;
135 clk-gpios = <&gpio 71 GPIO_ACTIVE_HIGH>;
136 status = "okay";
137 };
138 };
139 };
140};
141
142&uart3 {
143 status = "okay";
144};
145
146&uart4 {
147 status = "okay";
148};
149
150&rtc {
151 status = "okay";
152};
153
154&usb_phy0 {
155 status = "okay";
156};
157
158&usb_otg0 {
159 status = "okay";
160};
161
162&mmc1 {
163 clock-frequency = <50000000>;
164 no-1-8-v;
165 mrvl,clk-delay-cycles = <31>;
166 broken-cd;
167 status = "okay";
168};
169
170&mmc2 {
171 clock-frequency = <50000000>;
172 no-1-8-v;
173 bus-width = <4>;
174 non-removable;
175 broken-cd;
176 wakeup-source;
177 keep-power-in-suspend;
178 mmc-pwrseq = <&wlan_pwrseq>;
179 vmmc-supply = <&wlan_reg>;
180 status = "okay";
181};
182
183&mmc3 {
184 clock-frequency = <50000000>;
185 no-1-8-v;
186 bus-width = <8>;
187 non-removable;
188 broken-cd;
189 mrvl,clk-delay-cycles = <31>;
190 status = "okay";
191};
192
193&twsi1 {
194 status = "okay";
195
196 audio-codec@1a {
197 compatible = "realtek,alc5631";
198 reg = <0x1a>;
199 status = "okay";
200 };
201};
202
203&twsi2 {
204 status = "okay";
205
206 rtc@68 {
207 compatible = "dallas,ds1338";
208 reg = <0x68>;
209 status = "okay";
210 };
211};
212
213&twsi6 {
214 status = "okay";
215
216 accelerometer@1d {
217 compatible = "st,lis331dlh", "st,lis3lv02d";
218 reg = <0x1d>;
219 status = "okay";
220 };
221};
222
223&ssp3 {
224 #address-cells = <0>;
225 spi-slave;
226 status = "okay";
227 ready-gpio = <&gpio 125 GPIO_ACTIVE_HIGH>;
228
229 slave {
230 compatible = "olpc,xo1.75-ec";
231 spi-cpha;
232 cmd-gpio = <&gpio 155 GPIO_ACTIVE_HIGH>;
233 };
234};
235
236&camera0 {
237 status = "okay";
238
239 port {
240 camera0_0: endpoint {
241 remote-endpoint = <&ov7670_0>;
242 };
243 };
244};
diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
index b6f40743e07b..6a2f072c1d0a 100644
--- a/arch/arm/boot/dts/mmp2.dtsi
+++ b/arch/arm/boot/dts/mmp2.dtsi
@@ -117,7 +117,7 @@
117 mrvl,intc-nr-irqs = <2>; 117 mrvl,intc-nr-irqs = <2>;
118 }; 118 };
119 119
120 usb_otg_phy0: usb-otg-phy@d4207000 { 120 usb_phy0: usb-phy@d4207000 {
121 compatible = "marvell,mmp2-usb-phy"; 121 compatible = "marvell,mmp2-usb-phy";
122 reg = <0xd4207000 0x40>; 122 reg = <0xd4207000 0x40>;
123 #phy-cells = <0>; 123 #phy-cells = <0>;
@@ -130,7 +130,7 @@
130 interrupts = <44>; 130 interrupts = <44>;
131 clocks = <&soc_clocks MMP2_CLK_USB>; 131 clocks = <&soc_clocks MMP2_CLK_USB>;
132 clock-names = "USBCLK"; 132 clock-names = "USBCLK";
133 phys = <&usb_otg_phy0>; 133 phys = <&usb_phy0>;
134 phy-names = "usb"; 134 phy-names = "usb";
135 status = "disabled"; 135 status = "disabled";
136 }; 136 };
@@ -170,6 +170,28 @@
170 interrupts = <54>; 170 interrupts = <54>;
171 status = "disabled"; 171 status = "disabled";
172 }; 172 };
173
174 camera0: camera@d420a000 {
175 compatible = "marvell,mmp2-ccic";
176 reg = <0xd420a000 0x800>;
177 interrupts = <42>;
178 clocks = <&soc_clocks MMP2_CLK_CCIC0>;
179 clock-names = "axi";
180 #clock-cells = <0>;
181 clock-output-names = "mclk";
182 status = "disabled";
183 };
184
185 camera1: camera@d420a800 {
186 compatible = "marvell,mmp2-ccic";
187 reg = <0xd420a800 0x800>;
188 interrupts = <30>;
189 clocks = <&soc_clocks MMP2_CLK_CCIC1>;
190 clock-names = "axi";
191 #clock-cells = <0>;
192 clock-output-names = "mclk";
193 status = "disabled";
194 };
173 }; 195 };
174 196
175 apb@d4000000 { /* APB */ 197 apb@d4000000 { /* APB */
@@ -192,6 +214,7 @@
192 interrupts = <27>; 214 interrupts = <27>;
193 clocks = <&soc_clocks MMP2_CLK_UART0>; 215 clocks = <&soc_clocks MMP2_CLK_UART0>;
194 resets = <&soc_clocks MMP2_CLK_UART0>; 216 resets = <&soc_clocks MMP2_CLK_UART0>;
217 reg-shift = <2>;
195 status = "disabled"; 218 status = "disabled";
196 }; 219 };
197 220
@@ -201,6 +224,7 @@
201 interrupts = <28>; 224 interrupts = <28>;
202 clocks = <&soc_clocks MMP2_CLK_UART1>; 225 clocks = <&soc_clocks MMP2_CLK_UART1>;
203 resets = <&soc_clocks MMP2_CLK_UART1>; 226 resets = <&soc_clocks MMP2_CLK_UART1>;
227 reg-shift = <2>;
204 status = "disabled"; 228 status = "disabled";
205 }; 229 };
206 230
@@ -210,6 +234,7 @@
210 interrupts = <24>; 234 interrupts = <24>;
211 clocks = <&soc_clocks MMP2_CLK_UART2>; 235 clocks = <&soc_clocks MMP2_CLK_UART2>;
212 resets = <&soc_clocks MMP2_CLK_UART2>; 236 resets = <&soc_clocks MMP2_CLK_UART2>;
237 reg-shift = <2>;
213 status = "disabled"; 238 status = "disabled";
214 }; 239 };
215 240
@@ -219,6 +244,7 @@
219 interrupts = <46>; 244 interrupts = <46>;
220 clocks = <&soc_clocks MMP2_CLK_UART3>; 245 clocks = <&soc_clocks MMP2_CLK_UART3>;
221 resets = <&soc_clocks MMP2_CLK_UART3>; 246 resets = <&soc_clocks MMP2_CLK_UART3>;
247 reg-shift = <2>;
222 status = "disabled"; 248 status = "disabled";
223 }; 249 };
224 250
@@ -346,40 +372,48 @@
346 status = "disabled"; 372 status = "disabled";
347 }; 373 };
348 374
349 ssp1: ssp@d4035000 { 375 ssp1: spi@d4035000 {
350 compatible = "marvell,mmp2-ssp"; 376 compatible = "marvell,mmp2-ssp";
351 reg = <0xd4035000 0x1000>; 377 reg = <0xd4035000 0x1000>;
352 clocks = <&soc_clocks MMP2_CLK_SSP0>; 378 clocks = <&soc_clocks MMP2_CLK_SSP0>;
353 interrupts = <0>; 379 interrupts = <0>;
380 #address-cells = <1>;
381 #size-cells = <0>;
354 status = "disabled"; 382 status = "disabled";
355 }; 383 };
356 384
357 ssp2: ssp@d4036000 { 385 ssp2: spi@d4036000 {
358 compatible = "marvell,mmp2-ssp"; 386 compatible = "marvell,mmp2-ssp";
359 reg = <0xd4036000 0x1000>; 387 reg = <0xd4036000 0x1000>;
360 clocks = <&soc_clocks MMP2_CLK_SSP1>; 388 clocks = <&soc_clocks MMP2_CLK_SSP1>;
361 interrupts = <1>; 389 interrupts = <1>;
390 #address-cells = <1>;
391 #size-cells = <0>;
362 status = "disabled"; 392 status = "disabled";
363 }; 393 };
364 394
365 ssp3: ssp@d4037000 { 395 ssp3: spi@d4037000 {
366 compatible = "marvell,mmp2-ssp"; 396 compatible = "marvell,mmp2-ssp";
367 reg = <0xd4037000 0x1000>; 397 reg = <0xd4037000 0x1000>;
368 clocks = <&soc_clocks MMP2_CLK_SSP2>; 398 clocks = <&soc_clocks MMP2_CLK_SSP2>;
369 interrupts = <20>; 399 interrupts = <20>;
400 #address-cells = <1>;
401 #size-cells = <0>;
370 status = "disabled"; 402 status = "disabled";
371 }; 403 };
372 404
373 ssp4: ssp@d4039000 { 405 ssp4: spi@d4039000 {
374 compatible = "marvell,mmp2-ssp"; 406 compatible = "marvell,mmp2-ssp";
375 reg = <0xd4039000 0x1000>; 407 reg = <0xd4039000 0x1000>;
376 clocks = <&soc_clocks MMP2_CLK_SSP3>; 408 clocks = <&soc_clocks MMP2_CLK_SSP3>;
377 interrupts = <21>; 409 interrupts = <21>;
410 #address-cells = <1>;
411 #size-cells = <0>;
378 status = "disabled"; 412 status = "disabled";
379 }; 413 };
380 }; 414 };
381 415
382 soc_clocks: clocks{ 416 soc_clocks: clocks {
383 compatible = "marvell,mmp2-clock"; 417 compatible = "marvell,mmp2-clock";
384 reg = <0xd4050000 0x1000>, 418 reg = <0xd4050000 0x1000>,
385 <0xd4282800 0x400>, 419 <0xd4282800 0x400>,
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
index f572a477f74c..7b09cbee8bb8 100644
--- a/arch/arm/boot/dts/omap34xx.dtsi
+++ b/arch/arm/boot/dts/omap34xx.dtsi
@@ -100,6 +100,32 @@
100 interrupts = <18>; 100 interrupts = <18>;
101 }; 101 };
102 }; 102 };
103
104 /*
105 * On omap34xx the OCP registers do not seem to be accessible
106 * at all unlike on 36xx. Maybe SGX is permanently set to
107 * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is
108 * write-only at 0x50000e10. We detect SGX based on the SGX
109 * revision register instead of the unreadable OCP revision
110 * register. Also note that on early 34xx es1 revision there
111 * are also different clocks, but we do not have any dts users
112 * for it.
113 */
114 sgx_module: target-module@50000000 {
115 compatible = "ti,sysc-omap2", "ti,sysc";
116 reg = <0x50000014 0x4>;
117 reg-names = "rev";
118 clocks = <&sgx_fck>, <&sgx_ick>;
119 clock-names = "fck", "ick";
120 #address-cells = <1>;
121 #size-cells = <1>;
122 ranges = <0 0x50000000 0x4000>;
123
124 /*
125 * Closed source PowerVR driver, no child device
126 * binding or driver in mainline
127 */
128 };
103 }; 129 };
104 130
105 thermal_zones: thermal-zones { 131 thermal_zones: thermal-zones {
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index 6fb23ada1f64..1e552f08f120 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -139,6 +139,34 @@
139 interrupts = <18>; 139 interrupts = <18>;
140 }; 140 };
141 }; 141 };
142
143 /*
144 * Note that the sysconfig register layout is a subset of the
145 * "ti,sysc-omap4" type register with just sidle and midle bits
146 * available while omap34xx has "ti,sysc-omap2" type sysconfig.
147 */
148 sgx_module: target-module@50000000 {
149 compatible = "ti,sysc-omap4", "ti,sysc";
150 reg = <0x5000fe00 0x4>,
151 <0x5000fe10 0x4>;
152 reg-names = "rev", "sysc";
153 ti,sysc-midle = <SYSC_IDLE_FORCE>,
154 <SYSC_IDLE_NO>,
155 <SYSC_IDLE_SMART>;
156 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
157 <SYSC_IDLE_NO>,
158 <SYSC_IDLE_SMART>;
159 clocks = <&sgx_fck>, <&sgx_ick>;
160 clock-names = "fck", "ick";
161 #address-cells = <1>;
162 #size-cells = <1>;
163 ranges = <0 0x50000000 0x2000000>;
164
165 /*
166 * Closed source PowerVR driver, no child device
167 * binding or driver in mainline
168 */
169 };
142 }; 170 };
143 171
144 thermal_zones: thermal-zones { 172 thermal_zones: thermal-zones {
diff --git a/arch/arm/boot/dts/omap4-l4-abe.dtsi b/arch/arm/boot/dts/omap4-l4-abe.dtsi
index 67072df39bc7..8e6662bb9e83 100644
--- a/arch/arm/boot/dts/omap4-l4-abe.dtsi
+++ b/arch/arm/boot/dts/omap4-l4-abe.dtsi
@@ -255,7 +255,6 @@
255 255
256 target-module@30000 { /* 0x40130000, ap 14 0e.0 */ 256 target-module@30000 { /* 0x40130000, ap 14 0e.0 */
257 compatible = "ti,sysc-omap2", "ti,sysc"; 257 compatible = "ti,sysc-omap2", "ti,sysc";
258 ti,hwmods = "wd_timer3";
259 reg = <0x30000 0x4>, 258 reg = <0x30000 0x4>,
260 <0x30010 0x4>, 259 <0x30010 0x4>,
261 <0x30014 0x4>; 260 <0x30014 0x4>;
diff --git a/arch/arm/boot/dts/omap4-l4.dtsi b/arch/arm/boot/dts/omap4-l4.dtsi
index bea05dc4ef0f..d60d5e0ecc4c 100644
--- a/arch/arm/boot/dts/omap4-l4.dtsi
+++ b/arch/arm/boot/dts/omap4-l4.dtsi
@@ -456,17 +456,43 @@
456 }; 456 };
457 }; 457 };
458 458
459 /* d2d mdm */
459 target-module@36000 { /* 0x4a0b6000, ap 69 60.0 */ 460 target-module@36000 { /* 0x4a0b6000, ap 69 60.0 */
460 compatible = "ti,sysc"; 461 compatible = "ti,sysc-omap2", "ti,sysc";
461 status = "disabled"; 462 reg = <0x36000 0x4>,
463 <0x36010 0x4>,
464 <0x36014 0x4>;
465 reg-names = "rev", "sysc", "syss";
466 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET | SYSC_OMAP2_AUTOIDLE)>;
467 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
468 <SYSC_IDLE_NO>,
469 <SYSC_IDLE_SMART>,
470 <SYSC_IDLE_SMART_WKUP>;
471 ti,syss-mask = <1>;
472 /* Domains (V, P, C): core, core_pwrdm, d2d_clkdm */
473 clocks = <&d2d_clkctrl OMAP4_C2C_CLKCTRL 0>;
474 clock-names = "fck";
462 #address-cells = <1>; 475 #address-cells = <1>;
463 #size-cells = <1>; 476 #size-cells = <1>;
464 ranges = <0x0 0x36000 0x1000>; 477 ranges = <0x0 0x36000 0x1000>;
465 }; 478 };
466 479
480 /* d2d mpu */
467 target-module@4d000 { /* 0x4a0cd000, ap 78 58.0 */ 481 target-module@4d000 { /* 0x4a0cd000, ap 78 58.0 */
468 compatible = "ti,sysc"; 482 compatible = "ti,sysc-omap2", "ti,sysc";
469 status = "disabled"; 483 reg = <0x4d000 0x4>,
484 <0x4d010 0x4>,
485 <0x4d014 0x4>;
486 reg-names = "rev", "sysc", "syss";
487 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET | SYSC_OMAP2_AUTOIDLE)>;
488 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
489 <SYSC_IDLE_NO>,
490 <SYSC_IDLE_SMART>,
491 <SYSC_IDLE_SMART_WKUP>;
492 ti,syss-mask = <1>;
493 /* Domains (V, P, C): core, core_pwrdm, d2d_clkdm */
494 clocks = <&d2d_clkctrl OMAP4_C2C_CLKCTRL 0>;
495 clock-names = "fck";
470 #address-cells = <1>; 496 #address-cells = <1>;
471 #size-cells = <1>; 497 #size-cells = <1>;
472 ranges = <0x0 0x4d000 0x1000>; 498 ranges = <0x0 0x4d000 0x1000>;
@@ -1094,7 +1120,6 @@
1094 1120
1095 target-module@4000 { /* 0x4a314000, ap 7 18.0 */ 1121 target-module@4000 { /* 0x4a314000, ap 7 18.0 */
1096 compatible = "ti,sysc-omap2", "ti,sysc"; 1122 compatible = "ti,sysc-omap2", "ti,sysc";
1097 ti,hwmods = "wd_timer2";
1098 reg = <0x4000 0x4>, 1123 reg = <0x4000 0x4>,
1099 <0x4010 0x4>, 1124 <0x4010 0x4>,
1100 <0x4014 0x4>; 1125 <0x4014 0x4>;
@@ -1695,7 +1720,6 @@
1695 1720
1696 target-module@60000 { /* 0x48060000, ap 25 1e.0 */ 1721 target-module@60000 { /* 0x48060000, ap 25 1e.0 */
1697 compatible = "ti,sysc-omap2", "ti,sysc"; 1722 compatible = "ti,sysc-omap2", "ti,sysc";
1698 ti,hwmods = "i2c3";
1699 reg = <0x60000 0x8>, 1723 reg = <0x60000 0x8>,
1700 <0x60010 0x8>, 1724 <0x60010 0x8>,
1701 <0x60090 0x8>; 1725 <0x60090 0x8>;
@@ -1814,7 +1838,6 @@
1814 1838
1815 target-module@70000 { /* 0x48070000, ap 32 28.0 */ 1839 target-module@70000 { /* 0x48070000, ap 32 28.0 */
1816 compatible = "ti,sysc-omap2", "ti,sysc"; 1840 compatible = "ti,sysc-omap2", "ti,sysc";
1817 ti,hwmods = "i2c1";
1818 reg = <0x70000 0x8>, 1841 reg = <0x70000 0x8>,
1819 <0x70010 0x8>, 1842 <0x70010 0x8>,
1820 <0x70090 0x8>; 1843 <0x70090 0x8>;
@@ -1846,7 +1869,6 @@
1846 1869
1847 target-module@72000 { /* 0x48072000, ap 34 30.0 */ 1870 target-module@72000 { /* 0x48072000, ap 34 30.0 */
1848 compatible = "ti,sysc-omap2", "ti,sysc"; 1871 compatible = "ti,sysc-omap2", "ti,sysc";
1849 ti,hwmods = "i2c2";
1850 reg = <0x72000 0x8>, 1872 reg = <0x72000 0x8>,
1851 <0x72010 0x8>, 1873 <0x72010 0x8>,
1852 <0x72090 0x8>; 1874 <0x72090 0x8>;
@@ -2401,7 +2423,6 @@
2401 2423
2402 target-module@150000 { /* 0x48350000, ap 77 4c.0 */ 2424 target-module@150000 { /* 0x48350000, ap 77 4c.0 */
2403 compatible = "ti,sysc-omap2", "ti,sysc"; 2425 compatible = "ti,sysc-omap2", "ti,sysc";
2404 ti,hwmods = "i2c4";
2405 reg = <0x150000 0x8>, 2426 reg = <0x150000 0x8>,
2406 <0x150010 0x8>, 2427 <0x150010 0x8>,
2407 <0x150090 0x8>; 2428 <0x150090 0x8>;
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index c43e52fd5f65..7cc95bc1598b 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -330,7 +330,6 @@
330 330
331 target-module@56000000 { 331 target-module@56000000 {
332 compatible = "ti,sysc-omap4", "ti,sysc"; 332 compatible = "ti,sysc-omap4", "ti,sysc";
333 ti,hwmods = "gpu";
334 reg = <0x5601fc00 0x4>, 333 reg = <0x5601fc00 0x4>,
335 <0x5601fc10 0x4>; 334 <0x5601fc10 0x4>;
336 reg-names = "rev", "sysc"; 335 reg-names = "rev", "sysc";
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index edfd26c03462..1fb7937638f0 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -257,6 +257,29 @@
257 ports-implemented = <0x1>; 257 ports-implemented = <0x1>;
258 }; 258 };
259 259
260 target-module@56000000 {
261 compatible = "ti,sysc-omap4", "ti,sysc";
262 reg = <0x5600fe00 0x4>,
263 <0x5600fe10 0x4>;
264 reg-names = "rev", "sysc";
265 ti,sysc-midle = <SYSC_IDLE_FORCE>,
266 <SYSC_IDLE_NO>,
267 <SYSC_IDLE_SMART>;
268 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
269 <SYSC_IDLE_NO>,
270 <SYSC_IDLE_SMART>;
271 clocks = <&gpu_clkctrl OMAP5_GPU_CLKCTRL 0>;
272 clock-names = "fck";
273 #address-cells = <1>;
274 #size-cells = <1>;
275 ranges = <0 0x56000000 0x2000000>;
276
277 /*
278 * Closed source PowerVR driver, no child device
279 * binding or driver in mainline
280 */
281 };
282
260 dss: dss@58000000 { 283 dss: dss@58000000 {
261 compatible = "ti,omap5-dss"; 284 compatible = "ti,omap5-dss";
262 reg = <0x58000000 0x80>; 285 reg = <0x58000000 0x80>;
diff --git a/arch/arm/boot/dts/omap54xx-clocks.dtsi b/arch/arm/boot/dts/omap54xx-clocks.dtsi
index 33e8dd905bff..fac2e57dcca9 100644
--- a/arch/arm/boot/dts/omap54xx-clocks.dtsi
+++ b/arch/arm/boot/dts/omap54xx-clocks.dtsi
@@ -1146,6 +1146,20 @@
1146 }; 1146 };
1147 }; 1147 };
1148 1148
1149 gpu_cm: clock-controller@1500 {
1150 compatible = "ti,omap4-cm";
1151 reg = <0x1500 0x100>;
1152 #address-cells = <1>;
1153 #size-cells = <1>;
1154 ranges = <0 0x1500 0x100>;
1155
1156 gpu_clkctrl: clk@20 {
1157 compatible = "ti,clkctrl";
1158 reg = <0x20 0x4>;
1159 #clock-cells = <2>;
1160 };
1161 };
1162
1149 l3init_cm: l3init_cm@1600 { 1163 l3init_cm: l3init_cm@1600 {
1150 compatible = "ti,omap4-cm"; 1164 compatible = "ti,omap4-cm";
1151 reg = <0x1600 0x100>; 1165 reg = <0x1600 0x100>;
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index f83786640f94..9dab1f50a02f 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -19,6 +19,7 @@ menuconfig ARCH_EXYNOS
19 select EXYNOS_SROM 19 select EXYNOS_SROM
20 select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS 20 select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
21 select GPIOLIB 21 select GPIOLIB
22 select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5 && VIRTUALIZATION
22 select HAVE_ARM_SCU if SMP 23 select HAVE_ARM_SCU if SMP
23 select HAVE_S3C2410_I2C if I2C 24 select HAVE_S3C2410_I2C if I2C
24 select HAVE_S3C2410_WATCHDOG if WATCHDOG 25 select HAVE_S3C2410_WATCHDOG if WATCHDOG
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
index aaa6092426ea..3de3d7a115b3 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
@@ -30,7 +30,6 @@ extern struct omap_hwmod_ocp_if am33xx_l3_main__gfx;
30extern struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc; 30extern struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc;
31extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan0; 31extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan0;
32extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan1; 32extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan1;
33extern struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio;
34extern struct omap_hwmod_ocp_if am33xx_l4_ls__elm; 33extern struct omap_hwmod_ocp_if am33xx_l4_ls__elm;
35extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0; 34extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0;
36extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1; 35extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1;
@@ -72,8 +71,6 @@ extern struct omap_hwmod am33xx_rng_hwmod;
72extern struct omap_hwmod am33xx_ocmcram_hwmod; 71extern struct omap_hwmod am33xx_ocmcram_hwmod;
73extern struct omap_hwmod am33xx_smartreflex0_hwmod; 72extern struct omap_hwmod am33xx_smartreflex0_hwmod;
74extern struct omap_hwmod am33xx_smartreflex1_hwmod; 73extern struct omap_hwmod am33xx_smartreflex1_hwmod;
75extern struct omap_hwmod am33xx_cpgmac0_hwmod;
76extern struct omap_hwmod am33xx_mdio_hwmod;
77extern struct omap_hwmod am33xx_dcan0_hwmod; 74extern struct omap_hwmod am33xx_dcan0_hwmod;
78extern struct omap_hwmod am33xx_dcan1_hwmod; 75extern struct omap_hwmod am33xx_dcan1_hwmod;
79extern struct omap_hwmod am33xx_elm_hwmod; 76extern struct omap_hwmod am33xx_elm_hwmod;
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
index 47a0e301b193..63698ffa6d27 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
@@ -122,12 +122,6 @@ struct omap_hwmod_ocp_if am33xx_l4_per__dcan1 = {
122 .user = OCP_USER_MPU | OCP_USER_SDMA, 122 .user = OCP_USER_MPU | OCP_USER_SDMA,
123}; 123};
124 124
125struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = {
126 .master = &am33xx_cpgmac0_hwmod,
127 .slave = &am33xx_mdio_hwmod,
128 .user = OCP_USER_MPU,
129};
130
131struct omap_hwmod_ocp_if am33xx_l4_ls__elm = { 125struct omap_hwmod_ocp_if am33xx_l4_ls__elm = {
132 .master = &am33xx_l4_ls_hwmod, 126 .master = &am33xx_l4_ls_hwmod,
133 .slave = &am33xx_elm_hwmod, 127 .slave = &am33xx_elm_hwmod,
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
index adb6271f819b..dd939e1325c6 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
@@ -350,54 +350,6 @@ struct omap_hwmod_class am33xx_control_hwmod_class = {
350}; 350};
351 351
352/* 352/*
353 * 'cpgmac' class
354 * cpsw/cpgmac sub system
355 */
356static struct omap_hwmod_class_sysconfig am33xx_cpgmac_sysc = {
357 .rev_offs = 0x0,
358 .sysc_offs = 0x8,
359 .syss_offs = 0x4,
360 .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
361 SYSS_HAS_RESET_STATUS),
362 .idlemodes = (SIDLE_FORCE | SIDLE_NO | MSTANDBY_FORCE |
363 MSTANDBY_NO),
364 .sysc_fields = &omap_hwmod_sysc_type3,
365};
366
367static struct omap_hwmod_class am33xx_cpgmac0_hwmod_class = {
368 .name = "cpgmac0",
369 .sysc = &am33xx_cpgmac_sysc,
370};
371
372struct omap_hwmod am33xx_cpgmac0_hwmod = {
373 .name = "cpgmac0",
374 .class = &am33xx_cpgmac0_hwmod_class,
375 .clkdm_name = "cpsw_125mhz_clkdm",
376 .flags = (HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY),
377 .main_clk = "cpsw_125mhz_gclk",
378 .mpu_rt_idx = 1,
379 .prcm = {
380 .omap4 = {
381 .modulemode = MODULEMODE_SWCTRL,
382 },
383 },
384};
385
386/*
387 * mdio class
388 */
389static struct omap_hwmod_class am33xx_mdio_hwmod_class = {
390 .name = "davinci_mdio",
391};
392
393struct omap_hwmod am33xx_mdio_hwmod = {
394 .name = "davinci_mdio",
395 .class = &am33xx_mdio_hwmod_class,
396 .clkdm_name = "cpsw_125mhz_clkdm",
397 .main_clk = "cpsw_125mhz_gclk",
398};
399
400/*
401 * dcan class 353 * dcan class
402 */ 354 */
403static struct omap_hwmod_class am33xx_dcan_hwmod_class = { 355static struct omap_hwmod_class am33xx_dcan_hwmod_class = {
@@ -1072,7 +1024,6 @@ static void omap_hwmod_am33xx_clkctrl(void)
1072 CLKCTRL(am33xx_tptc1_hwmod, AM33XX_CM_PER_TPTC1_CLKCTRL_OFFSET); 1024 CLKCTRL(am33xx_tptc1_hwmod, AM33XX_CM_PER_TPTC1_CLKCTRL_OFFSET);
1073 CLKCTRL(am33xx_tptc2_hwmod, AM33XX_CM_PER_TPTC2_CLKCTRL_OFFSET); 1025 CLKCTRL(am33xx_tptc2_hwmod, AM33XX_CM_PER_TPTC2_CLKCTRL_OFFSET);
1074 CLKCTRL(am33xx_gfx_hwmod, AM33XX_CM_GFX_GFX_CLKCTRL_OFFSET); 1026 CLKCTRL(am33xx_gfx_hwmod, AM33XX_CM_GFX_GFX_CLKCTRL_OFFSET);
1075 CLKCTRL(am33xx_cpgmac0_hwmod, AM33XX_CM_PER_CPGMAC0_CLKCTRL_OFFSET);
1076 CLKCTRL(am33xx_pruss_hwmod, AM33XX_CM_PER_PRUSS_CLKCTRL_OFFSET); 1027 CLKCTRL(am33xx_pruss_hwmod, AM33XX_CM_PER_PRUSS_CLKCTRL_OFFSET);
1077 CLKCTRL(am33xx_mpu_hwmod , AM33XX_CM_MPU_MPU_CLKCTRL_OFFSET); 1028 CLKCTRL(am33xx_mpu_hwmod , AM33XX_CM_MPU_MPU_CLKCTRL_OFFSET);
1078 CLKCTRL(am33xx_l3_instr_hwmod , AM33XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET); 1029 CLKCTRL(am33xx_l3_instr_hwmod , AM33XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
@@ -1134,7 +1085,6 @@ static void omap_hwmod_am43xx_clkctrl(void)
1134 CLKCTRL(am33xx_tptc1_hwmod, AM43XX_CM_PER_TPTC1_CLKCTRL_OFFSET); 1085 CLKCTRL(am33xx_tptc1_hwmod, AM43XX_CM_PER_TPTC1_CLKCTRL_OFFSET);
1135 CLKCTRL(am33xx_tptc2_hwmod, AM43XX_CM_PER_TPTC2_CLKCTRL_OFFSET); 1086 CLKCTRL(am33xx_tptc2_hwmod, AM43XX_CM_PER_TPTC2_CLKCTRL_OFFSET);
1136 CLKCTRL(am33xx_gfx_hwmod, AM43XX_CM_GFX_GFX_CLKCTRL_OFFSET); 1087 CLKCTRL(am33xx_gfx_hwmod, AM43XX_CM_GFX_GFX_CLKCTRL_OFFSET);
1137 CLKCTRL(am33xx_cpgmac0_hwmod, AM43XX_CM_PER_CPGMAC0_CLKCTRL_OFFSET);
1138 CLKCTRL(am33xx_pruss_hwmod, AM43XX_CM_PER_PRUSS_CLKCTRL_OFFSET); 1088 CLKCTRL(am33xx_pruss_hwmod, AM43XX_CM_PER_PRUSS_CLKCTRL_OFFSET);
1139 CLKCTRL(am33xx_mpu_hwmod , AM43XX_CM_MPU_MPU_CLKCTRL_OFFSET); 1089 CLKCTRL(am33xx_mpu_hwmod , AM43XX_CM_MPU_MPU_CLKCTRL_OFFSET);
1140 CLKCTRL(am33xx_l3_instr_hwmod , AM43XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET); 1090 CLKCTRL(am33xx_l3_instr_hwmod , AM43XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index c965af275e34..2bcb6345b873 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -372,13 +372,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
372 .user = OCP_USER_MPU, 372 .user = OCP_USER_MPU,
373}; 373};
374 374
375static struct omap_hwmod_ocp_if am33xx_l4_hs__cpgmac0 = {
376 .master = &am33xx_l4_hs_hwmod,
377 .slave = &am33xx_cpgmac0_hwmod,
378 .clk = "cpsw_125mhz_gclk",
379 .user = OCP_USER_MPU,
380};
381
382static struct omap_hwmod_ocp_if am33xx_l3_main__lcdc = { 375static struct omap_hwmod_ocp_if am33xx_l3_main__lcdc = {
383 .master = &am33xx_l3_main_hwmod, 376 .master = &am33xx_l3_main_hwmod,
384 .slave = &am33xx_lcdc_hwmod, 377 .slave = &am33xx_lcdc_hwmod,
@@ -462,8 +455,6 @@ static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
462 &am33xx_l3_main__tptc2, 455 &am33xx_l3_main__tptc2,
463 &am33xx_l3_main__ocmc, 456 &am33xx_l3_main__ocmc,
464 &am33xx_l3_s__usbss, 457 &am33xx_l3_s__usbss,
465 &am33xx_l4_hs__cpgmac0,
466 &am33xx_cpgmac0__mdio,
467 &am33xx_l3_main__sha0, 458 &am33xx_l3_main__sha0,
468 &am33xx_l3_main__aes0, 459 &am33xx_l3_main__aes0,
469 &am33xx_l4_per__rng, 460 &am33xx_l4_per__rng,
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
index 69571abc14fd..5c3db6b6438b 100644
--- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
@@ -597,13 +597,6 @@ static struct omap_hwmod_ocp_if am43xx_l4_wkup__adc_tsc = {
597 .user = OCP_USER_MPU, 597 .user = OCP_USER_MPU,
598}; 598};
599 599
600static struct omap_hwmod_ocp_if am43xx_l4_hs__cpgmac0 = {
601 .master = &am43xx_l4_hs_hwmod,
602 .slave = &am33xx_cpgmac0_hwmod,
603 .clk = "cpsw_125mhz_gclk",
604 .user = OCP_USER_MPU,
605};
606
607static struct omap_hwmod_ocp_if am43xx_l4_wkup__timer1 = { 600static struct omap_hwmod_ocp_if am43xx_l4_wkup__timer1 = {
608 .master = &am33xx_l4_wkup_hwmod, 601 .master = &am33xx_l4_wkup_hwmod,
609 .slave = &am33xx_timer1_hwmod, 602 .slave = &am33xx_timer1_hwmod,
@@ -859,8 +852,6 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
859 &am33xx_l3_main__tptc1, 852 &am33xx_l3_main__tptc1,
860 &am33xx_l3_main__tptc2, 853 &am33xx_l3_main__tptc2,
861 &am33xx_l3_main__ocmc, 854 &am33xx_l3_main__ocmc,
862 &am43xx_l4_hs__cpgmac0,
863 &am33xx_cpgmac0__mdio,
864 &am33xx_l3_main__sha0, 855 &am33xx_l3_main__sha0,
865 &am33xx_l3_main__aes0, 856 &am33xx_l3_main__aes0,
866 &am43xx_l3_main__des, 857 &am43xx_l3_main__des,
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index a6f2a10cdc3e..28ea2960a9b2 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -28,7 +28,6 @@
28#include "cm2_44xx.h" 28#include "cm2_44xx.h"
29#include "prm44xx.h" 29#include "prm44xx.h"
30#include "prm-regbits-44xx.h" 30#include "prm-regbits-44xx.h"
31#include "wd_timer.h"
32 31
33/* Base offset for all OMAP4 interrupts external to MPUSS */ 32/* Base offset for all OMAP4 interrupts external to MPUSS */
34#define OMAP44XX_IRQ_GIC_START 32 33#define OMAP44XX_IRQ_GIC_START 32
@@ -276,29 +275,6 @@ static struct omap_hwmod omap44xx_aess_hwmod = {
276}; 275};
277 276
278/* 277/*
279 * 'c2c' class
280 * chip 2 chip interface used to plug the ape soc (omap) with an external modem
281 * soc
282 */
283
284static struct omap_hwmod_class omap44xx_c2c_hwmod_class = {
285 .name = "c2c",
286};
287
288/* c2c */
289static struct omap_hwmod omap44xx_c2c_hwmod = {
290 .name = "c2c",
291 .class = &omap44xx_c2c_hwmod_class,
292 .clkdm_name = "d2d_clkdm",
293 .prcm = {
294 .omap4 = {
295 .clkctrl_offs = OMAP4_CM_D2D_SAD2D_CLKCTRL_OFFSET,
296 .context_offs = OMAP4_RM_D2D_SAD2D_CONTEXT_OFFSET,
297 },
298 },
299};
300
301/*
302 * 'counter' class 278 * 'counter' class
303 * 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock 279 * 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock
304 */ 280 */
@@ -1086,41 +1062,6 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = {
1086}; 1062};
1087 1063
1088/* 1064/*
1089 * 'gpu' class
1090 * 2d/3d graphics accelerator
1091 */
1092
1093static struct omap_hwmod_class_sysconfig omap44xx_gpu_sysc = {
1094 .rev_offs = 0x1fc00,
1095 .sysc_offs = 0x1fc10,
1096 .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
1097 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
1098 SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
1099 MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
1100 .sysc_fields = &omap_hwmod_sysc_type2,
1101};
1102
1103static struct omap_hwmod_class omap44xx_gpu_hwmod_class = {
1104 .name = "gpu",
1105 .sysc = &omap44xx_gpu_sysc,
1106};
1107
1108/* gpu */
1109static struct omap_hwmod omap44xx_gpu_hwmod = {
1110 .name = "gpu",
1111 .class = &omap44xx_gpu_hwmod_class,
1112 .clkdm_name = "l3_gfx_clkdm",
1113 .main_clk = "sgx_clk_mux",
1114 .prcm = {
1115 .omap4 = {
1116 .clkctrl_offs = OMAP4_CM_GFX_GFX_CLKCTRL_OFFSET,
1117 .context_offs = OMAP4_RM_GFX_GFX_CONTEXT_OFFSET,
1118 .modulemode = MODULEMODE_SWCTRL,
1119 },
1120 },
1121};
1122
1123/*
1124 * 'hdq1w' class 1065 * 'hdq1w' class
1125 * hdq / 1-wire serial interface controller 1066 * hdq / 1-wire serial interface controller
1126 */ 1067 */
@@ -2434,61 +2375,6 @@ static struct omap_hwmod omap44xx_usb_tll_hs_hwmod = {
2434}; 2375};
2435 2376
2436/* 2377/*
2437 * 'wd_timer' class
2438 * 32-bit watchdog upward counter that generates a pulse on the reset pin on
2439 * overflow condition
2440 */
2441
2442static struct omap_hwmod_class_sysconfig omap44xx_wd_timer_sysc = {
2443 .rev_offs = 0x0000,
2444 .sysc_offs = 0x0010,
2445 .syss_offs = 0x0014,
2446 .sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_SIDLEMODE |
2447 SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
2448 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
2449 SIDLE_SMART_WKUP),
2450 .sysc_fields = &omap_hwmod_sysc_type1,
2451};
2452
2453static struct omap_hwmod_class omap44xx_wd_timer_hwmod_class = {
2454 .name = "wd_timer",
2455 .sysc = &omap44xx_wd_timer_sysc,
2456 .pre_shutdown = &omap2_wd_timer_disable,
2457 .reset = &omap2_wd_timer_reset,
2458};
2459
2460/* wd_timer2 */
2461static struct omap_hwmod omap44xx_wd_timer2_hwmod = {
2462 .name = "wd_timer2",
2463 .class = &omap44xx_wd_timer_hwmod_class,
2464 .clkdm_name = "l4_wkup_clkdm",
2465 .main_clk = "sys_32k_ck",
2466 .prcm = {
2467 .omap4 = {
2468 .clkctrl_offs = OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET,
2469 .context_offs = OMAP4_RM_WKUP_WDT2_CONTEXT_OFFSET,
2470 .modulemode = MODULEMODE_SWCTRL,
2471 },
2472 },
2473};
2474
2475/* wd_timer3 */
2476static struct omap_hwmod omap44xx_wd_timer3_hwmod = {
2477 .name = "wd_timer3",
2478 .class = &omap44xx_wd_timer_hwmod_class,
2479 .clkdm_name = "abe_clkdm",
2480 .main_clk = "sys_32k_ck",
2481 .prcm = {
2482 .omap4 = {
2483 .clkctrl_offs = OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET,
2484 .context_offs = OMAP4_RM_ABE_WDT3_CONTEXT_OFFSET,
2485 .modulemode = MODULEMODE_SWCTRL,
2486 },
2487 },
2488};
2489
2490
2491/*
2492 * interfaces 2378 * interfaces
2493 */ 2379 */
2494 2380
@@ -2596,14 +2482,6 @@ static struct omap_hwmod_ocp_if omap44xx_fdif__l3_main_2 = {
2596 .user = OCP_USER_MPU | OCP_USER_SDMA, 2482 .user = OCP_USER_MPU | OCP_USER_SDMA,
2597}; 2483};
2598 2484
2599/* gpu -> l3_main_2 */
2600static struct omap_hwmod_ocp_if omap44xx_gpu__l3_main_2 = {
2601 .master = &omap44xx_gpu_hwmod,
2602 .slave = &omap44xx_l3_main_2_hwmod,
2603 .clk = "l3_div_ck",
2604 .user = OCP_USER_MPU | OCP_USER_SDMA,
2605};
2606
2607/* hsi -> l3_main_2 */ 2485/* hsi -> l3_main_2 */
2608static struct omap_hwmod_ocp_if omap44xx_hsi__l3_main_2 = { 2486static struct omap_hwmod_ocp_if omap44xx_hsi__l3_main_2 = {
2609 .master = &omap44xx_hsi_hwmod, 2487 .master = &omap44xx_hsi_hwmod,
@@ -2788,14 +2666,6 @@ static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_abe__aess_dma = {
2788 .user = OCP_USER_SDMA, 2666 .user = OCP_USER_SDMA,
2789}; 2667};
2790 2668
2791/* l3_main_2 -> c2c */
2792static struct omap_hwmod_ocp_if omap44xx_l3_main_2__c2c = {
2793 .master = &omap44xx_l3_main_2_hwmod,
2794 .slave = &omap44xx_c2c_hwmod,
2795 .clk = "l3_div_ck",
2796 .user = OCP_USER_MPU | OCP_USER_SDMA,
2797};
2798
2799/* l4_wkup -> counter_32k */ 2669/* l4_wkup -> counter_32k */
2800static struct omap_hwmod_ocp_if omap44xx_l4_wkup__counter_32k = { 2670static struct omap_hwmod_ocp_if omap44xx_l4_wkup__counter_32k = {
2801 .master = &omap44xx_l4_wkup_hwmod, 2671 .master = &omap44xx_l4_wkup_hwmod,
@@ -3028,14 +2898,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = {
3028 .user = OCP_USER_MPU | OCP_USER_SDMA, 2898 .user = OCP_USER_MPU | OCP_USER_SDMA,
3029}; 2899};
3030 2900
3031/* l3_main_2 -> gpu */
3032static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpu = {
3033 .master = &omap44xx_l3_main_2_hwmod,
3034 .slave = &omap44xx_gpu_hwmod,
3035 .clk = "l3_div_ck",
3036 .user = OCP_USER_MPU | OCP_USER_SDMA,
3037};
3038
3039/* l4_per -> hdq1w */ 2901/* l4_per -> hdq1w */
3040static struct omap_hwmod_ocp_if omap44xx_l4_per__hdq1w = { 2902static struct omap_hwmod_ocp_if omap44xx_l4_per__hdq1w = {
3041 .master = &omap44xx_l4_per_hwmod, 2903 .master = &omap44xx_l4_per_hwmod,
@@ -3396,30 +3258,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usb_tll_hs = {
3396 .user = OCP_USER_MPU | OCP_USER_SDMA, 3258 .user = OCP_USER_MPU | OCP_USER_SDMA,
3397}; 3259};
3398 3260
3399/* l4_wkup -> wd_timer2 */
3400static struct omap_hwmod_ocp_if omap44xx_l4_wkup__wd_timer2 = {
3401 .master = &omap44xx_l4_wkup_hwmod,
3402 .slave = &omap44xx_wd_timer2_hwmod,
3403 .clk = "l4_wkup_clk_mux_ck",
3404 .user = OCP_USER_MPU | OCP_USER_SDMA,
3405};
3406
3407/* l4_abe -> wd_timer3 */
3408static struct omap_hwmod_ocp_if omap44xx_l4_abe__wd_timer3 = {
3409 .master = &omap44xx_l4_abe_hwmod,
3410 .slave = &omap44xx_wd_timer3_hwmod,
3411 .clk = "ocp_abe_iclk",
3412 .user = OCP_USER_MPU,
3413};
3414
3415/* l4_abe -> wd_timer3 (dma) */
3416static struct omap_hwmod_ocp_if omap44xx_l4_abe__wd_timer3_dma = {
3417 .master = &omap44xx_l4_abe_hwmod,
3418 .slave = &omap44xx_wd_timer3_hwmod,
3419 .clk = "ocp_abe_iclk",
3420 .user = OCP_USER_SDMA,
3421};
3422
3423/* mpu -> emif1 */ 3261/* mpu -> emif1 */
3424static struct omap_hwmod_ocp_if omap44xx_mpu__emif1 = { 3262static struct omap_hwmod_ocp_if omap44xx_mpu__emif1 = {
3425 .master = &omap44xx_mpu_hwmod, 3263 .master = &omap44xx_mpu_hwmod,
@@ -3450,7 +3288,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
3450 &omap44xx_debugss__l3_main_2, 3288 &omap44xx_debugss__l3_main_2,
3451 &omap44xx_dma_system__l3_main_2, 3289 &omap44xx_dma_system__l3_main_2,
3452 &omap44xx_fdif__l3_main_2, 3290 &omap44xx_fdif__l3_main_2,
3453 &omap44xx_gpu__l3_main_2,
3454 &omap44xx_hsi__l3_main_2, 3291 &omap44xx_hsi__l3_main_2,
3455 &omap44xx_ipu__l3_main_2, 3292 &omap44xx_ipu__l3_main_2,
3456 &omap44xx_iss__l3_main_2, 3293 &omap44xx_iss__l3_main_2,
@@ -3474,7 +3311,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
3474 &omap44xx_l4_cfg__ocp_wp_noc, 3311 &omap44xx_l4_cfg__ocp_wp_noc,
3475 &omap44xx_l4_abe__aess, 3312 &omap44xx_l4_abe__aess,
3476 &omap44xx_l4_abe__aess_dma, 3313 &omap44xx_l4_abe__aess_dma,
3477 &omap44xx_l3_main_2__c2c,
3478 &omap44xx_l4_wkup__counter_32k, 3314 &omap44xx_l4_wkup__counter_32k,
3479 &omap44xx_l4_cfg__ctrl_module_core, 3315 &omap44xx_l4_cfg__ctrl_module_core,
3480 &omap44xx_l4_cfg__ctrl_module_pad_core, 3316 &omap44xx_l4_cfg__ctrl_module_pad_core,
@@ -3503,7 +3339,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
3503 &omap44xx_l4_per__elm, 3339 &omap44xx_l4_per__elm,
3504 &omap44xx_l4_cfg__fdif, 3340 &omap44xx_l4_cfg__fdif,
3505 &omap44xx_l3_main_2__gpmc, 3341 &omap44xx_l3_main_2__gpmc,
3506 &omap44xx_l3_main_2__gpu,
3507 &omap44xx_l4_per__hdq1w, 3342 &omap44xx_l4_per__hdq1w,
3508 &omap44xx_l4_cfg__hsi, 3343 &omap44xx_l4_cfg__hsi,
3509 &omap44xx_l3_main_2__ipu, 3344 &omap44xx_l3_main_2__ipu,
@@ -3551,9 +3386,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
3551 &omap44xx_l4_cfg__usb_host_hs, 3386 &omap44xx_l4_cfg__usb_host_hs,
3552 &omap44xx_l4_cfg__usb_otg_hs, 3387 &omap44xx_l4_cfg__usb_otg_hs,
3553 &omap44xx_l4_cfg__usb_tll_hs, 3388 &omap44xx_l4_cfg__usb_tll_hs,
3554 &omap44xx_l4_wkup__wd_timer2,
3555 &omap44xx_l4_abe__wd_timer3,
3556 &omap44xx_l4_abe__wd_timer3_dma,
3557 &omap44xx_mpu__emif1, 3389 &omap44xx_mpu__emif1,
3558 &omap44xx_mpu__emif2, 3390 &omap44xx_mpu__emif2,
3559 &omap44xx_l3_main_2__aes1, 3391 &omap44xx_l3_main_2__aes1,
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index 1ec21e9ba1e9..e5bd549d2a5e 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -285,56 +285,6 @@ static struct omap_hwmod dra7xx_ctrl_module_wkup_hwmod = {
285}; 285};
286 286
287/* 287/*
288 * 'gmac' class
289 * cpsw/gmac sub system
290 */
291static struct omap_hwmod_class_sysconfig dra7xx_gmac_sysc = {
292 .rev_offs = 0x0,
293 .sysc_offs = 0x8,
294 .syss_offs = 0x4,
295 .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
296 SYSS_HAS_RESET_STATUS),
297 .idlemodes = (SIDLE_FORCE | SIDLE_NO | MSTANDBY_FORCE |
298 MSTANDBY_NO),
299 .sysc_fields = &omap_hwmod_sysc_type3,
300};
301
302static struct omap_hwmod_class dra7xx_gmac_hwmod_class = {
303 .name = "gmac",
304 .sysc = &dra7xx_gmac_sysc,
305};
306
307static struct omap_hwmod dra7xx_gmac_hwmod = {
308 .name = "gmac",
309 .class = &dra7xx_gmac_hwmod_class,
310 .clkdm_name = "gmac_clkdm",
311 .flags = (HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY),
312 .main_clk = "dpll_gmac_ck",
313 .mpu_rt_idx = 1,
314 .prcm = {
315 .omap4 = {
316 .clkctrl_offs = DRA7XX_CM_GMAC_GMAC_CLKCTRL_OFFSET,
317 .context_offs = DRA7XX_RM_GMAC_GMAC_CONTEXT_OFFSET,
318 .modulemode = MODULEMODE_SWCTRL,
319 },
320 },
321};
322
323/*
324 * 'mdio' class
325 */
326static struct omap_hwmod_class dra7xx_mdio_hwmod_class = {
327 .name = "davinci_mdio",
328};
329
330static struct omap_hwmod dra7xx_mdio_hwmod = {
331 .name = "davinci_mdio",
332 .class = &dra7xx_mdio_hwmod_class,
333 .clkdm_name = "gmac_clkdm",
334 .main_clk = "dpll_gmac_ck",
335};
336
337/*
338 * 'dcan' class 288 * 'dcan' class
339 * 289 *
340 */ 290 */
@@ -1047,281 +997,6 @@ static struct omap_hwmod dra7xx_mailbox13_hwmod = {
1047}; 997};
1048 998
1049/* 999/*
1050 * 'mcspi' class
1051 *
1052 */
1053
1054static struct omap_hwmod_class_sysconfig dra7xx_mcspi_sysc = {
1055 .rev_offs = 0x0000,
1056 .sysc_offs = 0x0010,
1057 .sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
1058 SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
1059 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
1060 SIDLE_SMART_WKUP),
1061 .sysc_fields = &omap_hwmod_sysc_type2,
1062};
1063
1064static struct omap_hwmod_class dra7xx_mcspi_hwmod_class = {
1065 .name = "mcspi",
1066 .sysc = &dra7xx_mcspi_sysc,
1067};
1068
1069/* mcspi1 */
1070static struct omap_hwmod dra7xx_mcspi1_hwmod = {
1071 .name = "mcspi1",
1072 .class = &dra7xx_mcspi_hwmod_class,
1073 .clkdm_name = "l4per_clkdm",
1074 .main_clk = "func_48m_fclk",
1075 .prcm = {
1076 .omap4 = {
1077 .clkctrl_offs = DRA7XX_CM_L4PER_MCSPI1_CLKCTRL_OFFSET,
1078 .context_offs = DRA7XX_RM_L4PER_MCSPI1_CONTEXT_OFFSET,
1079 .modulemode = MODULEMODE_SWCTRL,
1080 },
1081 },
1082};
1083
1084/* mcspi2 */
1085static struct omap_hwmod dra7xx_mcspi2_hwmod = {
1086 .name = "mcspi2",
1087 .class = &dra7xx_mcspi_hwmod_class,
1088 .clkdm_name = "l4per_clkdm",
1089 .main_clk = "func_48m_fclk",
1090 .prcm = {
1091 .omap4 = {
1092 .clkctrl_offs = DRA7XX_CM_L4PER_MCSPI2_CLKCTRL_OFFSET,
1093 .context_offs = DRA7XX_RM_L4PER_MCSPI2_CONTEXT_OFFSET,
1094 .modulemode = MODULEMODE_SWCTRL,
1095 },
1096 },
1097};
1098
1099/* mcspi3 */
1100static struct omap_hwmod dra7xx_mcspi3_hwmod = {
1101 .name = "mcspi3",
1102 .class = &dra7xx_mcspi_hwmod_class,
1103 .clkdm_name = "l4per_clkdm",
1104 .main_clk = "func_48m_fclk",
1105 .prcm = {
1106 .omap4 = {
1107 .clkctrl_offs = DRA7XX_CM_L4PER_MCSPI3_CLKCTRL_OFFSET,
1108 .context_offs = DRA7XX_RM_L4PER_MCSPI3_CONTEXT_OFFSET,
1109 .modulemode = MODULEMODE_SWCTRL,
1110 },
1111 },
1112};
1113
1114/* mcspi4 */
1115static struct omap_hwmod dra7xx_mcspi4_hwmod = {
1116 .name = "mcspi4",
1117 .class = &dra7xx_mcspi_hwmod_class,
1118 .clkdm_name = "l4per_clkdm",
1119 .main_clk = "func_48m_fclk",
1120 .prcm = {
1121 .omap4 = {
1122 .clkctrl_offs = DRA7XX_CM_L4PER_MCSPI4_CLKCTRL_OFFSET,
1123 .context_offs = DRA7XX_RM_L4PER_MCSPI4_CONTEXT_OFFSET,
1124 .modulemode = MODULEMODE_SWCTRL,
1125 },
1126 },
1127};
1128
1129/*
1130 * 'mcasp' class
1131 *
1132 */
1133static struct omap_hwmod_class_sysconfig dra7xx_mcasp_sysc = {
1134 .rev_offs = 0,
1135 .sysc_offs = 0x0004,
1136 .sysc_flags = SYSC_HAS_SIDLEMODE,
1137 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
1138 .sysc_fields = &omap_hwmod_sysc_type3,
1139};
1140
1141static struct omap_hwmod_class dra7xx_mcasp_hwmod_class = {
1142 .name = "mcasp",
1143 .sysc = &dra7xx_mcasp_sysc,
1144};
1145
1146/* mcasp1 */
1147static struct omap_hwmod_opt_clk mcasp1_opt_clks[] = {
1148 { .role = "ahclkx", .clk = "mcasp1_ahclkx_mux" },
1149 { .role = "ahclkr", .clk = "mcasp1_ahclkr_mux" },
1150};
1151
1152static struct omap_hwmod dra7xx_mcasp1_hwmod = {
1153 .name = "mcasp1",
1154 .class = &dra7xx_mcasp_hwmod_class,
1155 .clkdm_name = "ipu_clkdm",
1156 .main_clk = "mcasp1_aux_gfclk_mux",
1157 .flags = HWMOD_OPT_CLKS_NEEDED,
1158 .prcm = {
1159 .omap4 = {
1160 .clkctrl_offs = DRA7XX_CM_IPU_MCASP1_CLKCTRL_OFFSET,
1161 .context_offs = DRA7XX_RM_IPU_MCASP1_CONTEXT_OFFSET,
1162 .modulemode = MODULEMODE_SWCTRL,
1163 },
1164 },
1165 .opt_clks = mcasp1_opt_clks,
1166 .opt_clks_cnt = ARRAY_SIZE(mcasp1_opt_clks),
1167};
1168
1169/* mcasp2 */
1170static struct omap_hwmod_opt_clk mcasp2_opt_clks[] = {
1171 { .role = "ahclkx", .clk = "mcasp2_ahclkx_mux" },
1172 { .role = "ahclkr", .clk = "mcasp2_ahclkr_mux" },
1173};
1174
1175static struct omap_hwmod dra7xx_mcasp2_hwmod = {
1176 .name = "mcasp2",
1177 .class = &dra7xx_mcasp_hwmod_class,
1178 .clkdm_name = "l4per2_clkdm",
1179 .main_clk = "mcasp2_aux_gfclk_mux",
1180 .flags = HWMOD_OPT_CLKS_NEEDED,
1181 .prcm = {
1182 .omap4 = {
1183 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP2_CLKCTRL_OFFSET,
1184 .context_offs = DRA7XX_RM_L4PER2_MCASP2_CONTEXT_OFFSET,
1185 .modulemode = MODULEMODE_SWCTRL,
1186 },
1187 },
1188 .opt_clks = mcasp2_opt_clks,
1189 .opt_clks_cnt = ARRAY_SIZE(mcasp2_opt_clks),
1190};
1191
1192/* mcasp3 */
1193static struct omap_hwmod_opt_clk mcasp3_opt_clks[] = {
1194 { .role = "ahclkx", .clk = "mcasp3_ahclkx_mux" },
1195};
1196
1197static struct omap_hwmod dra7xx_mcasp3_hwmod = {
1198 .name = "mcasp3",
1199 .class = &dra7xx_mcasp_hwmod_class,
1200 .clkdm_name = "l4per2_clkdm",
1201 .main_clk = "mcasp3_aux_gfclk_mux",
1202 .flags = HWMOD_OPT_CLKS_NEEDED,
1203 .prcm = {
1204 .omap4 = {
1205 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP3_CLKCTRL_OFFSET,
1206 .context_offs = DRA7XX_RM_L4PER2_MCASP3_CONTEXT_OFFSET,
1207 .modulemode = MODULEMODE_SWCTRL,
1208 },
1209 },
1210 .opt_clks = mcasp3_opt_clks,
1211 .opt_clks_cnt = ARRAY_SIZE(mcasp3_opt_clks),
1212};
1213
1214/* mcasp4 */
1215static struct omap_hwmod_opt_clk mcasp4_opt_clks[] = {
1216 { .role = "ahclkx", .clk = "mcasp4_ahclkx_mux" },
1217};
1218
1219static struct omap_hwmod dra7xx_mcasp4_hwmod = {
1220 .name = "mcasp4",
1221 .class = &dra7xx_mcasp_hwmod_class,
1222 .clkdm_name = "l4per2_clkdm",
1223 .main_clk = "mcasp4_aux_gfclk_mux",
1224 .flags = HWMOD_OPT_CLKS_NEEDED,
1225 .prcm = {
1226 .omap4 = {
1227 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP4_CLKCTRL_OFFSET,
1228 .context_offs = DRA7XX_RM_L4PER2_MCASP4_CONTEXT_OFFSET,
1229 .modulemode = MODULEMODE_SWCTRL,
1230 },
1231 },
1232 .opt_clks = mcasp4_opt_clks,
1233 .opt_clks_cnt = ARRAY_SIZE(mcasp4_opt_clks),
1234};
1235
1236/* mcasp5 */
1237static struct omap_hwmod_opt_clk mcasp5_opt_clks[] = {
1238 { .role = "ahclkx", .clk = "mcasp5_ahclkx_mux" },
1239};
1240
1241static struct omap_hwmod dra7xx_mcasp5_hwmod = {
1242 .name = "mcasp5",
1243 .class = &dra7xx_mcasp_hwmod_class,
1244 .clkdm_name = "l4per2_clkdm",
1245 .main_clk = "mcasp5_aux_gfclk_mux",
1246 .flags = HWMOD_OPT_CLKS_NEEDED,
1247 .prcm = {
1248 .omap4 = {
1249 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP5_CLKCTRL_OFFSET,
1250 .context_offs = DRA7XX_RM_L4PER2_MCASP5_CONTEXT_OFFSET,
1251 .modulemode = MODULEMODE_SWCTRL,
1252 },
1253 },
1254 .opt_clks = mcasp5_opt_clks,
1255 .opt_clks_cnt = ARRAY_SIZE(mcasp5_opt_clks),
1256};
1257
1258/* mcasp6 */
1259static struct omap_hwmod_opt_clk mcasp6_opt_clks[] = {
1260 { .role = "ahclkx", .clk = "mcasp6_ahclkx_mux" },
1261};
1262
1263static struct omap_hwmod dra7xx_mcasp6_hwmod = {
1264 .name = "mcasp6",
1265 .class = &dra7xx_mcasp_hwmod_class,
1266 .clkdm_name = "l4per2_clkdm",
1267 .main_clk = "mcasp6_aux_gfclk_mux",
1268 .flags = HWMOD_OPT_CLKS_NEEDED,
1269 .prcm = {
1270 .omap4 = {
1271 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP6_CLKCTRL_OFFSET,
1272 .context_offs = DRA7XX_RM_L4PER2_MCASP6_CONTEXT_OFFSET,
1273 .modulemode = MODULEMODE_SWCTRL,
1274 },
1275 },
1276 .opt_clks = mcasp6_opt_clks,
1277 .opt_clks_cnt = ARRAY_SIZE(mcasp6_opt_clks),
1278};
1279
1280/* mcasp7 */
1281static struct omap_hwmod_opt_clk mcasp7_opt_clks[] = {
1282 { .role = "ahclkx", .clk = "mcasp7_ahclkx_mux" },
1283};
1284
1285static struct omap_hwmod dra7xx_mcasp7_hwmod = {
1286 .name = "mcasp7",
1287 .class = &dra7xx_mcasp_hwmod_class,
1288 .clkdm_name = "l4per2_clkdm",
1289 .main_clk = "mcasp7_aux_gfclk_mux",
1290 .flags = HWMOD_OPT_CLKS_NEEDED,
1291 .prcm = {
1292 .omap4 = {
1293 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP7_CLKCTRL_OFFSET,
1294 .context_offs = DRA7XX_RM_L4PER2_MCASP7_CONTEXT_OFFSET,
1295 .modulemode = MODULEMODE_SWCTRL,
1296 },
1297 },
1298 .opt_clks = mcasp7_opt_clks,
1299 .opt_clks_cnt = ARRAY_SIZE(mcasp7_opt_clks),
1300};
1301
1302/* mcasp8 */
1303static struct omap_hwmod_opt_clk mcasp8_opt_clks[] = {
1304 { .role = "ahclkx", .clk = "mcasp8_ahclkx_mux" },
1305};
1306
1307static struct omap_hwmod dra7xx_mcasp8_hwmod = {
1308 .name = "mcasp8",
1309 .class = &dra7xx_mcasp_hwmod_class,
1310 .clkdm_name = "l4per2_clkdm",
1311 .main_clk = "mcasp8_aux_gfclk_mux",
1312 .flags = HWMOD_OPT_CLKS_NEEDED,
1313 .prcm = {
1314 .omap4 = {
1315 .clkctrl_offs = DRA7XX_CM_L4PER2_MCASP8_CLKCTRL_OFFSET,
1316 .context_offs = DRA7XX_RM_L4PER2_MCASP8_CONTEXT_OFFSET,
1317 .modulemode = MODULEMODE_SWCTRL,
1318 },
1319 },
1320 .opt_clks = mcasp8_opt_clks,
1321 .opt_clks_cnt = ARRAY_SIZE(mcasp8_opt_clks),
1322};
1323
1324/*
1325 * 'mpu' class 1000 * 'mpu' class
1326 * 1001 *
1327 */ 1002 */
@@ -2303,19 +1978,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_wkup__ctrl_module_wkup = {
2303 .user = OCP_USER_MPU | OCP_USER_SDMA, 1978 .user = OCP_USER_MPU | OCP_USER_SDMA,
2304}; 1979};
2305 1980
2306static struct omap_hwmod_ocp_if dra7xx_l4_per2__cpgmac0 = {
2307 .master = &dra7xx_l4_per2_hwmod,
2308 .slave = &dra7xx_gmac_hwmod,
2309 .clk = "dpll_gmac_ck",
2310 .user = OCP_USER_MPU,
2311};
2312
2313static struct omap_hwmod_ocp_if dra7xx_gmac__mdio = {
2314 .master = &dra7xx_gmac_hwmod,
2315 .slave = &dra7xx_mdio_hwmod,
2316 .user = OCP_USER_MPU,
2317};
2318
2319/* l4_wkup -> dcan1 */ 1981/* l4_wkup -> dcan1 */
2320static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = { 1982static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = {
2321 .master = &dra7xx_l4_wkup_hwmod, 1983 .master = &dra7xx_l4_wkup_hwmod,
@@ -2412,94 +2074,6 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__sha0 = {
2412 .user = OCP_USER_MPU | OCP_USER_SDMA, 2074 .user = OCP_USER_MPU | OCP_USER_SDMA,
2413}; 2075};
2414 2076
2415/* l4_per2 -> mcasp1 */
2416static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp1 = {
2417 .master = &dra7xx_l4_per2_hwmod,
2418 .slave = &dra7xx_mcasp1_hwmod,
2419 .clk = "l4_root_clk_div",
2420 .user = OCP_USER_MPU | OCP_USER_SDMA,
2421};
2422
2423/* l3_main_1 -> mcasp1 */
2424static struct omap_hwmod_ocp_if dra7xx_l3_main_1__mcasp1 = {
2425 .master = &dra7xx_l3_main_1_hwmod,
2426 .slave = &dra7xx_mcasp1_hwmod,
2427 .clk = "l3_iclk_div",
2428 .user = OCP_USER_MPU | OCP_USER_SDMA,
2429};
2430
2431/* l4_per2 -> mcasp2 */
2432static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp2 = {
2433 .master = &dra7xx_l4_per2_hwmod,
2434 .slave = &dra7xx_mcasp2_hwmod,
2435 .clk = "l4_root_clk_div",
2436 .user = OCP_USER_MPU | OCP_USER_SDMA,
2437};
2438
2439/* l3_main_1 -> mcasp2 */
2440static struct omap_hwmod_ocp_if dra7xx_l3_main_1__mcasp2 = {
2441 .master = &dra7xx_l3_main_1_hwmod,
2442 .slave = &dra7xx_mcasp2_hwmod,
2443 .clk = "l3_iclk_div",
2444 .user = OCP_USER_MPU | OCP_USER_SDMA,
2445};
2446
2447/* l4_per2 -> mcasp3 */
2448static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp3 = {
2449 .master = &dra7xx_l4_per2_hwmod,
2450 .slave = &dra7xx_mcasp3_hwmod,
2451 .clk = "l4_root_clk_div",
2452 .user = OCP_USER_MPU | OCP_USER_SDMA,
2453};
2454
2455/* l3_main_1 -> mcasp3 */
2456static struct omap_hwmod_ocp_if dra7xx_l3_main_1__mcasp3 = {
2457 .master = &dra7xx_l3_main_1_hwmod,
2458 .slave = &dra7xx_mcasp3_hwmod,
2459 .clk = "l3_iclk_div",
2460 .user = OCP_USER_MPU | OCP_USER_SDMA,
2461};
2462
2463/* l4_per2 -> mcasp4 */
2464static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp4 = {
2465 .master = &dra7xx_l4_per2_hwmod,
2466 .slave = &dra7xx_mcasp4_hwmod,
2467 .clk = "l4_root_clk_div",
2468 .user = OCP_USER_MPU | OCP_USER_SDMA,
2469};
2470
2471/* l4_per2 -> mcasp5 */
2472static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp5 = {
2473 .master = &dra7xx_l4_per2_hwmod,
2474 .slave = &dra7xx_mcasp5_hwmod,
2475 .clk = "l4_root_clk_div",
2476 .user = OCP_USER_MPU | OCP_USER_SDMA,
2477};
2478
2479/* l4_per2 -> mcasp6 */
2480static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp6 = {
2481 .master = &dra7xx_l4_per2_hwmod,
2482 .slave = &dra7xx_mcasp6_hwmod,
2483 .clk = "l4_root_clk_div",
2484 .user = OCP_USER_MPU | OCP_USER_SDMA,
2485};
2486
2487/* l4_per2 -> mcasp7 */
2488static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp7 = {
2489 .master = &dra7xx_l4_per2_hwmod,
2490 .slave = &dra7xx_mcasp7_hwmod,
2491 .clk = "l4_root_clk_div",
2492 .user = OCP_USER_MPU | OCP_USER_SDMA,
2493};
2494
2495/* l4_per2 -> mcasp8 */
2496static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp8 = {
2497 .master = &dra7xx_l4_per2_hwmod,
2498 .slave = &dra7xx_mcasp8_hwmod,
2499 .clk = "l4_root_clk_div",
2500 .user = OCP_USER_MPU | OCP_USER_SDMA,
2501};
2502
2503/* l4_per1 -> elm */ 2077/* l4_per1 -> elm */
2504static struct omap_hwmod_ocp_if dra7xx_l4_per1__elm = { 2078static struct omap_hwmod_ocp_if dra7xx_l4_per1__elm = {
2505 .master = &dra7xx_l4_per1_hwmod, 2079 .master = &dra7xx_l4_per1_hwmod,
@@ -2628,38 +2202,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per3__mailbox13 = {
2628 .user = OCP_USER_MPU | OCP_USER_SDMA, 2202 .user = OCP_USER_MPU | OCP_USER_SDMA,
2629}; 2203};
2630 2204
2631/* l4_per1 -> mcspi1 */
2632static struct omap_hwmod_ocp_if dra7xx_l4_per1__mcspi1 = {
2633 .master = &dra7xx_l4_per1_hwmod,
2634 .slave = &dra7xx_mcspi1_hwmod,
2635 .clk = "l3_iclk_div",
2636 .user = OCP_USER_MPU | OCP_USER_SDMA,
2637};
2638
2639/* l4_per1 -> mcspi2 */
2640static struct omap_hwmod_ocp_if dra7xx_l4_per1__mcspi2 = {
2641 .master = &dra7xx_l4_per1_hwmod,
2642 .slave = &dra7xx_mcspi2_hwmod,
2643 .clk = "l3_iclk_div",
2644 .user = OCP_USER_MPU | OCP_USER_SDMA,
2645};
2646
2647/* l4_per1 -> mcspi3 */
2648static struct omap_hwmod_ocp_if dra7xx_l4_per1__mcspi3 = {
2649 .master = &dra7xx_l4_per1_hwmod,
2650 .slave = &dra7xx_mcspi3_hwmod,
2651 .clk = "l3_iclk_div",
2652 .user = OCP_USER_MPU | OCP_USER_SDMA,
2653};
2654
2655/* l4_per1 -> mcspi4 */
2656static struct omap_hwmod_ocp_if dra7xx_l4_per1__mcspi4 = {
2657 .master = &dra7xx_l4_per1_hwmod,
2658 .slave = &dra7xx_mcspi4_hwmod,
2659 .clk = "l3_iclk_div",
2660 .user = OCP_USER_MPU | OCP_USER_SDMA,
2661};
2662
2663/* l4_cfg -> mpu */ 2205/* l4_cfg -> mpu */
2664static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mpu = { 2206static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mpu = {
2665 .master = &dra7xx_l4_cfg_hwmod, 2207 .master = &dra7xx_l4_cfg_hwmod,
@@ -3021,19 +2563,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
3021 &dra7xx_l4_wkup__ctrl_module_wkup, 2563 &dra7xx_l4_wkup__ctrl_module_wkup,
3022 &dra7xx_l4_wkup__dcan1, 2564 &dra7xx_l4_wkup__dcan1,
3023 &dra7xx_l4_per2__dcan2, 2565 &dra7xx_l4_per2__dcan2,
3024 &dra7xx_l4_per2__cpgmac0,
3025 &dra7xx_l4_per2__mcasp1,
3026 &dra7xx_l3_main_1__mcasp1,
3027 &dra7xx_l4_per2__mcasp2,
3028 &dra7xx_l3_main_1__mcasp2,
3029 &dra7xx_l4_per2__mcasp3,
3030 &dra7xx_l3_main_1__mcasp3,
3031 &dra7xx_l4_per2__mcasp4,
3032 &dra7xx_l4_per2__mcasp5,
3033 &dra7xx_l4_per2__mcasp6,
3034 &dra7xx_l4_per2__mcasp7,
3035 &dra7xx_l4_per2__mcasp8,
3036 &dra7xx_gmac__mdio,
3037 &dra7xx_l4_cfg__dma_system, 2566 &dra7xx_l4_cfg__dma_system,
3038 &dra7xx_l3_main_1__tpcc, 2567 &dra7xx_l3_main_1__tpcc,
3039 &dra7xx_l3_main_1__tptc0, 2568 &dra7xx_l3_main_1__tptc0,
@@ -3060,10 +2589,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
3060 &dra7xx_l4_per3__mailbox11, 2589 &dra7xx_l4_per3__mailbox11,
3061 &dra7xx_l4_per3__mailbox12, 2590 &dra7xx_l4_per3__mailbox12,
3062 &dra7xx_l4_per3__mailbox13, 2591 &dra7xx_l4_per3__mailbox13,
3063 &dra7xx_l4_per1__mcspi1,
3064 &dra7xx_l4_per1__mcspi2,
3065 &dra7xx_l4_per1__mcspi3,
3066 &dra7xx_l4_per1__mcspi4,
3067 &dra7xx_l4_cfg__mpu, 2592 &dra7xx_l4_cfg__mpu,
3068 &dra7xx_l4_cfg__ocp2scp1, 2593 &dra7xx_l4_cfg__ocp2scp1,
3069 &dra7xx_l4_cfg__ocp2scp3, 2594 &dra7xx_l4_cfg__ocp2scp3,
diff --git a/arch/arm/plat-samsung/watchdog-reset.c b/arch/arm/plat-samsung/watchdog-reset.c
index ce42cc640a61..71d85ff323f7 100644
--- a/arch/arm/plat-samsung/watchdog-reset.c
+++ b/arch/arm/plat-samsung/watchdog-reset.c
@@ -62,6 +62,7 @@ void samsung_wdt_reset(void)
62#ifdef CONFIG_OF 62#ifdef CONFIG_OF
63static const struct of_device_id s3c2410_wdt_match[] = { 63static const struct of_device_id s3c2410_wdt_match[] = {
64 { .compatible = "samsung,s3c2410-wdt" }, 64 { .compatible = "samsung,s3c2410-wdt" },
65 { .compatible = "samsung,s3c6410-wdt" },
65 {}, 66 {},
66}; 67};
67 68
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index caed4334f27d..243338c914a4 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -2,6 +2,7 @@
2# Mvebu SoC Family 2# Mvebu SoC Family
3dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb 3dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
4dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb 4dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
5dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-turris-mox.dtb
5dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb 6dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
6dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb 7dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
7dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb 8dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
new file mode 100644
index 000000000000..d105986c6be1
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -0,0 +1,840 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device Tree file for CZ.NIC Turris Mox Board
4 * 2019 by Marek Behun <marek.behun@nic.cz>
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/bus/moxtet.h>
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12#include "armada-372x.dtsi"
13
14/ {
15 model = "CZ.NIC Turris Mox Board";
16 compatible = "cznic,turris-mox", "marvell,armada3720",
17 "marvell,armada3710";
18
19 aliases {
20 spi0 = &spi0;
21 ethernet1 = &eth1;
22 };
23
24 chosen {
25 stdout-path = "serial0:115200n8";
26 };
27
28 memory@0 {
29 device_type = "memory";
30 reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
31 };
32
33 leds {
34 compatible = "gpio-leds";
35 red {
36 label = "mox:red:activity";
37 gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>;
38 linux,default-trigger = "default-on";
39 };
40 };
41
42 gpio-keys {
43 compatible = "gpio-keys";
44
45 reset {
46 label = "reset";
47 linux,code = <KEY_RESTART>;
48 gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>;
49 debounce-interval = <60>;
50 };
51 };
52
53 exp_usb3_vbus: usb3-vbus {
54 compatible = "regulator-fixed";
55 regulator-name = "usb3-vbus";
56 regulator-min-microvolt = <5000000>;
57 regulator-max-microvolt = <5000000>;
58 enable-active-high;
59 regulator-always-on;
60 gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>;
61 };
62
63 usb3_phy: usb3-phy {
64 compatible = "usb-nop-xceiv";
65 vcc-supply = <&exp_usb3_vbus>;
66 };
67
68 vsdc_reg: vsdc-reg {
69 compatible = "regulator-gpio";
70 regulator-name = "vsdc";
71 regulator-min-microvolt = <1800000>;
72 regulator-max-microvolt = <3300000>;
73 regulator-boot-on;
74
75 gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>;
76 gpios-states = <0>;
77 states = <1800000 0x1
78 3300000 0x0>;
79 enable-active-high;
80 };
81
82 vsdio_reg: vsdio-reg {
83 compatible = "regulator-gpio";
84 regulator-name = "vsdio";
85 regulator-min-microvolt = <1800000>;
86 regulator-max-microvolt = <3300000>;
87 regulator-boot-on;
88
89 gpios = <&gpiosb 22 GPIO_ACTIVE_HIGH>;
90 gpios-states = <0>;
91 states = <1800000 0x1
92 3300000 0x0>;
93 enable-active-high;
94 };
95
96 sdhci1_pwrseq: sdhci1-pwrseq {
97 compatible = "mmc-pwrseq-simple";
98 reset-gpios = <&gpionb 19 GPIO_ACTIVE_HIGH>;
99 status = "okay";
100 };
101
102 sfp: sfp {
103 compatible = "sff,sfp+";
104 i2c-bus = <&i2c0>;
105 los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
106 tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
107 mod-def0-gpio = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
108 tx-disable-gpio = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
109 rate-select0-gpio = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
110
111 /* enabled by U-Boot if SFP module is present */
112 status = "disabled";
113 };
114};
115
116&i2c0 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&i2c1_pins>;
119 clock-frequency = <100000>;
120 status = "okay";
121
122 rtc@6f {
123 compatible = "microchip,mcp7940x";
124 reg = <0x6f>;
125 };
126};
127
128&pcie_reset_pins {
129 function = "gpio";
130};
131
132&pcie0 {
133 pinctrl-names = "default";
134 pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
135 status = "okay";
136 max-link-speed = <2>;
137 reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
138 phys = <&comphy1 0>;
139
140 /* enabled by U-Boot if PCIe module is present */
141 status = "disabled";
142};
143
144&uart0 {
145 status = "okay";
146};
147
148&eth0 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&rgmii_pins>;
151 phy-mode = "rgmii-id";
152 phy = <&phy1>;
153 status = "okay";
154};
155
156&eth1 {
157 phy-mode = "2500base-x";
158 managed = "in-band-status";
159 phys = <&comphy0 1>;
160};
161
162&sdhci0 {
163 wp-inverted;
164 bus-width = <4>;
165 cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>;
166 vqmmc-supply = <&vsdc_reg>;
167 marvell,pad-type = "sd";
168 status = "okay";
169};
170
171&sdhci1 {
172 pinctrl-names = "default";
173 pinctrl-0 = <&sdio_pins>;
174 non-removable;
175 bus-width = <4>;
176 marvell,pad-type = "sd";
177 vqmmc-supply = <&vsdio_reg>;
178 mmc-pwrseq = <&sdhci1_pwrseq>;
179 status = "okay";
180};
181
182&spi0 {
183 status = "okay";
184 pinctrl-names = "default";
185 pinctrl-0 = <&spi_quad_pins &spi_cs1_pins>;
186 assigned-clocks = <&nb_periph_clk 7>;
187 assigned-clock-parents = <&tbg 1>;
188 assigned-clock-rates = <20000000>;
189
190 spi-flash@0 {
191 #address-cells = <1>;
192 #size-cells = <1>;
193 compatible = "jedec,spi-nor";
194 reg = <0>;
195 spi-max-frequency = <20000000>;
196
197 partitions {
198 compatible = "fixed-partitions";
199 #address-cells = <1>;
200 #size-cells = <1>;
201
202 partition@0 {
203 label = "secure-firmware";
204 reg = <0x0 0x20000>;
205 };
206
207 partition@20000 {
208 label = "u-boot";
209 reg = <0x20000 0x160000>;
210 };
211
212 partition@180000 {
213 label = "u-boot-env";
214 reg = <0x180000 0x10000>;
215 };
216
217 partition@190000 {
218 label = "Rescue system";
219 reg = <0x190000 0x660000>;
220 };
221
222 partition@7f0000 {
223 label = "dtb";
224 reg = <0x7f0000 0x10000>;
225 };
226 };
227 };
228
229 moxtet: moxtet@1 {
230 #address-cells = <1>;
231 #size-cells = <0>;
232 compatible = "cznic,moxtet";
233 reg = <1>;
234 reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
235 spi-max-frequency = <10000000>;
236 spi-cpol;
237 spi-cpha;
238 interrupt-controller;
239 #interrupt-cells = <1>;
240 interrupt-parent = <&gpiosb>;
241 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
242 status = "okay";
243
244 moxtet_sfp: gpio@0 {
245 compatible = "cznic,moxtet-gpio";
246 gpio-controller;
247 #gpio-cells = <2>;
248 reg = <0>;
249 status = "disabled";
250 };
251 };
252};
253
254&usb2 {
255 status = "okay";
256};
257
258&usb3 {
259 status = "okay";
260 phys = <&comphy2 0>;
261 usb-phy = <&usb3_phy>;
262};
263
264&mdio {
265 pinctrl-names = "default";
266 pinctrl-0 = <&smi_pins>;
267 status = "okay";
268
269 phy1: ethernet-phy@1 {
270 reg = <1>;
271 };
272
273 /* switch nodes are enabled by U-Boot if modules are present */
274 switch0@10 {
275 compatible = "marvell,mv88e6190";
276 reg = <0x10 0>;
277 dsa,member = <0 0>;
278 interrupt-parent = <&moxtet>;
279 interrupts = <MOXTET_IRQ_PERIDOT(0)>;
280 status = "disabled";
281
282 mdio {
283 #address-cells = <1>;
284 #size-cells = <0>;
285
286 switch0phy1: switch0phy1@1 {
287 reg = <0x1>;
288 };
289
290 switch0phy2: switch0phy2@2 {
291 reg = <0x2>;
292 };
293
294 switch0phy3: switch0phy3@3 {
295 reg = <0x3>;
296 };
297
298 switch0phy4: switch0phy4@4 {
299 reg = <0x4>;
300 };
301
302 switch0phy5: switch0phy5@5 {
303 reg = <0x5>;
304 };
305
306 switch0phy6: switch0phy6@6 {
307 reg = <0x6>;
308 };
309
310 switch0phy7: switch0phy7@7 {
311 reg = <0x7>;
312 };
313
314 switch0phy8: switch0phy8@8 {
315 reg = <0x8>;
316 };
317 };
318
319 ports {
320 #address-cells = <1>;
321 #size-cells = <0>;
322
323 port@1 {
324 reg = <0x1>;
325 label = "lan1";
326 phy-handle = <&switch0phy1>;
327 };
328
329 port@2 {
330 reg = <0x2>;
331 label = "lan2";
332 phy-handle = <&switch0phy2>;
333 };
334
335 port@3 {
336 reg = <0x3>;
337 label = "lan3";
338 phy-handle = <&switch0phy3>;
339 };
340
341 port@4 {
342 reg = <0x4>;
343 label = "lan4";
344 phy-handle = <&switch0phy4>;
345 };
346
347 port@5 {
348 reg = <0x5>;
349 label = "lan5";
350 phy-handle = <&switch0phy5>;
351 };
352
353 port@6 {
354 reg = <0x6>;
355 label = "lan6";
356 phy-handle = <&switch0phy6>;
357 };
358
359 port@7 {
360 reg = <0x7>;
361 label = "lan7";
362 phy-handle = <&switch0phy7>;
363 };
364
365 port@8 {
366 reg = <0x8>;
367 label = "lan8";
368 phy-handle = <&switch0phy8>;
369 };
370
371 port@9 {
372 reg = <0x9>;
373 label = "cpu";
374 ethernet = <&eth1>;
375 phy-mode = "2500base-x";
376 managed = "in-band-status";
377 };
378
379 switch0port10: port@a {
380 reg = <0xa>;
381 label = "dsa";
382 phy-mode = "2500base-x";
383 managed = "in-band-status";
384 link = <&switch1port9 &switch2port9>;
385 status = "disabled";
386 };
387
388 port-sfp@a {
389 reg = <0xa>;
390 label = "sfp";
391 sfp = <&sfp>;
392 phy-mode = "sgmii";
393 managed = "in-band-status";
394 status = "disabled";
395 };
396 };
397 };
398
399 switch0@2 {
400 compatible = "marvell,mv88e6085";
401 reg = <0x2 0>;
402 dsa,member = <0 0>;
403 interrupt-parent = <&moxtet>;
404 interrupts = <MOXTET_IRQ_TOPAZ>;
405 status = "disabled";
406
407 mdio {
408 #address-cells = <1>;
409 #size-cells = <0>;
410
411 switch0phy1_topaz: switch0phy1@11 {
412 reg = <0x11>;
413 };
414
415 switch0phy2_topaz: switch0phy2@12 {
416 reg = <0x12>;
417 };
418
419 switch0phy3_topaz: switch0phy3@13 {
420 reg = <0x13>;
421 };
422
423 switch0phy4_topaz: switch0phy4@14 {
424 reg = <0x14>;
425 };
426 };
427
428 ports {
429 #address-cells = <1>;
430 #size-cells = <0>;
431
432 port@1 {
433 reg = <0x1>;
434 label = "lan1";
435 phy-handle = <&switch0phy1_topaz>;
436 };
437
438 port@2 {
439 reg = <0x2>;
440 label = "lan2";
441 phy-handle = <&switch0phy2_topaz>;
442 };
443
444 port@3 {
445 reg = <0x3>;
446 label = "lan3";
447 phy-handle = <&switch0phy3_topaz>;
448 };
449
450 port@4 {
451 reg = <0x4>;
452 label = "lan4";
453 phy-handle = <&switch0phy4_topaz>;
454 };
455
456 port@5 {
457 reg = <0x5>;
458 label = "cpu";
459 phy-mode = "2500base-x";
460 managed = "in-band-status";
461 ethernet = <&eth1>;
462 };
463 };
464 };
465
466 switch1@11 {
467 compatible = "marvell,mv88e6190";
468 reg = <0x11 0>;
469 dsa,member = <0 1>;
470 interrupt-parent = <&moxtet>;
471 interrupts = <MOXTET_IRQ_PERIDOT(1)>;
472 status = "disabled";
473
474 mdio {
475 #address-cells = <1>;
476 #size-cells = <0>;
477
478 switch1phy1: switch1phy1@1 {
479 reg = <0x1>;
480 };
481
482 switch1phy2: switch1phy2@2 {
483 reg = <0x2>;
484 };
485
486 switch1phy3: switch1phy3@3 {
487 reg = <0x3>;
488 };
489
490 switch1phy4: switch1phy4@4 {
491 reg = <0x4>;
492 };
493
494 switch1phy5: switch1phy5@5 {
495 reg = <0x5>;
496 };
497
498 switch1phy6: switch1phy6@6 {
499 reg = <0x6>;
500 };
501
502 switch1phy7: switch1phy7@7 {
503 reg = <0x7>;
504 };
505
506 switch1phy8: switch1phy8@8 {
507 reg = <0x8>;
508 };
509 };
510
511 ports {
512 #address-cells = <1>;
513 #size-cells = <0>;
514
515 port@1 {
516 reg = <0x1>;
517 label = "lan9";
518 phy-handle = <&switch1phy1>;
519 };
520
521 port@2 {
522 reg = <0x2>;
523 label = "lan10";
524 phy-handle = <&switch1phy2>;
525 };
526
527 port@3 {
528 reg = <0x3>;
529 label = "lan11";
530 phy-handle = <&switch1phy3>;
531 };
532
533 port@4 {
534 reg = <0x4>;
535 label = "lan12";
536 phy-handle = <&switch1phy4>;
537 };
538
539 port@5 {
540 reg = <0x5>;
541 label = "lan13";
542 phy-handle = <&switch1phy5>;
543 };
544
545 port@6 {
546 reg = <0x6>;
547 label = "lan14";
548 phy-handle = <&switch1phy6>;
549 };
550
551 port@7 {
552 reg = <0x7>;
553 label = "lan15";
554 phy-handle = <&switch1phy7>;
555 };
556
557 port@8 {
558 reg = <0x8>;
559 label = "lan16";
560 phy-handle = <&switch1phy8>;
561 };
562
563 switch1port9: port@9 {
564 reg = <0x9>;
565 label = "dsa";
566 phy-mode = "2500base-x";
567 managed = "in-band-status";
568 link = <&switch0port10>;
569 };
570
571 switch1port10: port@a {
572 reg = <0xa>;
573 label = "dsa";
574 phy-mode = "2500base-x";
575 managed = "in-band-status";
576 link = <&switch2port9>;
577 status = "disabled";
578 };
579
580 port-sfp@a {
581 reg = <0xa>;
582 label = "sfp";
583 sfp = <&sfp>;
584 phy-mode = "sgmii";
585 managed = "in-band-status";
586 status = "disabled";
587 };
588 };
589 };
590
591 switch1@2 {
592 compatible = "marvell,mv88e6085";
593 reg = <0x2 0>;
594 dsa,member = <0 1>;
595 interrupt-parent = <&moxtet>;
596 interrupts = <MOXTET_IRQ_TOPAZ>;
597 status = "disabled";
598
599 mdio {
600 #address-cells = <1>;
601 #size-cells = <0>;
602
603 switch1phy1_topaz: switch1phy1@11 {
604 reg = <0x11>;
605 };
606
607 switch1phy2_topaz: switch1phy2@12 {
608 reg = <0x12>;
609 };
610
611 switch1phy3_topaz: switch1phy3@13 {
612 reg = <0x13>;
613 };
614
615 switch1phy4_topaz: switch1phy4@14 {
616 reg = <0x14>;
617 };
618 };
619
620 ports {
621 #address-cells = <1>;
622 #size-cells = <0>;
623
624 port@1 {
625 reg = <0x1>;
626 label = "lan9";
627 phy-handle = <&switch1phy1_topaz>;
628 };
629
630 port@2 {
631 reg = <0x2>;
632 label = "lan10";
633 phy-handle = <&switch1phy2_topaz>;
634 };
635
636 port@3 {
637 reg = <0x3>;
638 label = "lan11";
639 phy-handle = <&switch1phy3_topaz>;
640 };
641
642 port@4 {
643 reg = <0x4>;
644 label = "lan12";
645 phy-handle = <&switch1phy4_topaz>;
646 };
647
648 port@5 {
649 reg = <0x5>;
650 label = "dsa";
651 phy-mode = "2500base-x";
652 managed = "in-band-status";
653 link = <&switch0port10>;
654 };
655 };
656 };
657
658 switch2@12 {
659 compatible = "marvell,mv88e6190";
660 reg = <0x12 0>;
661 dsa,member = <0 2>;
662 interrupt-parent = <&moxtet>;
663 interrupts = <MOXTET_IRQ_PERIDOT(2)>;
664 status = "disabled";
665
666 mdio {
667 #address-cells = <1>;
668 #size-cells = <0>;
669
670 switch2phy1: switch2phy1@1 {
671 reg = <0x1>;
672 };
673
674 switch2phy2: switch2phy2@2 {
675 reg = <0x2>;
676 };
677
678 switch2phy3: switch2phy3@3 {
679 reg = <0x3>;
680 };
681
682 switch2phy4: switch2phy4@4 {
683 reg = <0x4>;
684 };
685
686 switch2phy5: switch2phy5@5 {
687 reg = <0x5>;
688 };
689
690 switch2phy6: switch2phy6@6 {
691 reg = <0x6>;
692 };
693
694 switch2phy7: switch2phy7@7 {
695 reg = <0x7>;
696 };
697
698 switch2phy8: switch2phy8@8 {
699 reg = <0x8>;
700 };
701 };
702
703 ports {
704 #address-cells = <1>;
705 #size-cells = <0>;
706
707 port@1 {
708 reg = <0x1>;
709 label = "lan17";
710 phy-handle = <&switch2phy1>;
711 };
712
713 port@2 {
714 reg = <0x2>;
715 label = "lan18";
716 phy-handle = <&switch2phy2>;
717 };
718
719 port@3 {
720 reg = <0x3>;
721 label = "lan19";
722 phy-handle = <&switch2phy3>;
723 };
724
725 port@4 {
726 reg = <0x4>;
727 label = "lan20";
728 phy-handle = <&switch2phy4>;
729 };
730
731 port@5 {
732 reg = <0x5>;
733 label = "lan21";
734 phy-handle = <&switch2phy5>;
735 };
736
737 port@6 {
738 reg = <0x6>;
739 label = "lan22";
740 phy-handle = <&switch2phy6>;
741 };
742
743 port@7 {
744 reg = <0x7>;
745 label = "lan23";
746 phy-handle = <&switch2phy7>;
747 };
748
749 port@8 {
750 reg = <0x8>;
751 label = "lan24";
752 phy-handle = <&switch2phy8>;
753 };
754
755 switch2port9: port@9 {
756 reg = <0x9>;
757 label = "dsa";
758 phy-mode = "2500base-x";
759 managed = "in-band-status";
760 link = <&switch1port10 &switch0port10>;
761 };
762
763 port-sfp@a {
764 reg = <0xa>;
765 label = "sfp";
766 sfp = <&sfp>;
767 phy-mode = "sgmii";
768 managed = "in-band-status";
769 status = "disabled";
770 };
771 };
772 };
773
774 switch2@2 {
775 compatible = "marvell,mv88e6085";
776 reg = <0x2 0>;
777 dsa,member = <0 2>;
778 interrupt-parent = <&moxtet>;
779 interrupts = <MOXTET_IRQ_TOPAZ>;
780 status = "disabled";
781
782 mdio {
783 #address-cells = <1>;
784 #size-cells = <0>;
785
786 switch2phy1_topaz: switch2phy1@11 {
787 reg = <0x11>;
788 };
789
790 switch2phy2_topaz: switch2phy2@12 {
791 reg = <0x12>;
792 };
793
794 switch2phy3_topaz: switch2phy3@13 {
795 reg = <0x13>;
796 };
797
798 switch2phy4_topaz: switch2phy4@14 {
799 reg = <0x14>;
800 };
801 };
802
803 ports {
804 #address-cells = <1>;
805 #size-cells = <0>;
806
807 port@1 {
808 reg = <0x1>;
809 label = "lan17";
810 phy-handle = <&switch2phy1_topaz>;
811 };
812
813 port@2 {
814 reg = <0x2>;
815 label = "lan18";
816 phy-handle = <&switch2phy2_topaz>;
817 };
818
819 port@3 {
820 reg = <0x3>;
821 label = "lan19";
822 phy-handle = <&switch2phy3_topaz>;
823 };
824
825 port@4 {
826 reg = <0x4>;
827 label = "lan20";
828 phy-handle = <&switch2phy4_topaz>;
829 };
830
831 port@5 {
832 reg = <0x5>;
833 label = "dsa";
834 phy-mode = "2500base-x";
835 managed = "in-band-status";
836 link = <&switch1port10 &switch0port10>;
837 };
838 };
839 };
840};
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index 7f69e3dfcb13..000c135e39b7 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -215,6 +215,11 @@
215 function = "spi"; 215 function = "spi";
216 }; 216 };
217 217
218 spi_cs1_pins: spi-cs1-pins {
219 groups = "spi_cs1";
220 function = "spi";
221 };
222
218 i2c1_pins: i2c1-pins { 223 i2c1_pins: i2c1-pins {
219 groups = "i2c1"; 224 groups = "i2c1";
220 function = "i2c"; 225 function = "i2c";
diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index ca70ff73f171..799c75fa7981 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -42,7 +42,7 @@
42 */ 42 */
43 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 43 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
44 44
45 gic_its: gic-its@18200000 { 45 gic_its: gic-its@1820000 {
46 compatible = "arm,gic-v3-its"; 46 compatible = "arm,gic-v3-its";
47 reg = <0x00 0x01820000 0x00 0x10000>; 47 reg = <0x00 0x01820000 0x00 0x10000>;
48 socionext,synquacer-pre-its = <0x1000000 0x400000>; 48 socionext,synquacer-pre-its = <0x1000000 0x400000>;
@@ -67,7 +67,7 @@
67 reg = <0x0 0x900000 0x0 0x2000>; 67 reg = <0x0 0x900000 0x0 0x2000>;
68 reg-names = "serdes"; 68 reg-names = "serdes";
69 #phy-cells = <2>; 69 #phy-cells = <2>;
70 power-domains = <&k3_pds 153>; 70 power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
71 clocks = <&k3_clks 153 4>, <&k3_clks 153 1>, <&serdes1 AM654_SERDES_LO_REFCLK>; 71 clocks = <&k3_clks 153 4>, <&k3_clks 153 1>, <&serdes1 AM654_SERDES_LO_REFCLK>;
72 clock-output-names = "serdes0_cmu_refclk", "serdes0_lo_refclk", "serdes0_ro_refclk"; 72 clock-output-names = "serdes0_cmu_refclk", "serdes0_lo_refclk", "serdes0_ro_refclk";
73 assigned-clocks = <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>; 73 assigned-clocks = <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>;
@@ -82,7 +82,7 @@
82 reg = <0x0 0x910000 0x0 0x2000>; 82 reg = <0x0 0x910000 0x0 0x2000>;
83 reg-names = "serdes"; 83 reg-names = "serdes";
84 #phy-cells = <2>; 84 #phy-cells = <2>;
85 power-domains = <&k3_pds 154>; 85 power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
86 clocks = <&serdes0 AM654_SERDES_RO_REFCLK>, <&k3_clks 154 1>, <&k3_clks 154 5>; 86 clocks = <&serdes0 AM654_SERDES_RO_REFCLK>, <&k3_clks 154 1>, <&k3_clks 154 5>;
87 clock-output-names = "serdes1_cmu_refclk", "serdes1_lo_refclk", "serdes1_ro_refclk"; 87 clock-output-names = "serdes1_cmu_refclk", "serdes1_lo_refclk", "serdes1_ro_refclk";
88 assigned-clocks = <&k3_clks 154 5>, <&serdes1 AM654_SERDES_CMU_REFCLK>; 88 assigned-clocks = <&k3_clks 154 5>, <&serdes1 AM654_SERDES_CMU_REFCLK>;
@@ -100,7 +100,7 @@
100 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; 100 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
101 clock-frequency = <48000000>; 101 clock-frequency = <48000000>;
102 current-speed = <115200>; 102 current-speed = <115200>;
103 power-domains = <&k3_pds 146>; 103 power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
104 }; 104 };
105 105
106 main_uart1: serial@2810000 { 106 main_uart1: serial@2810000 {
@@ -110,7 +110,7 @@
110 reg-io-width = <4>; 110 reg-io-width = <4>;
111 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 111 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
112 clock-frequency = <48000000>; 112 clock-frequency = <48000000>;
113 power-domains = <&k3_pds 147>; 113 power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
114 }; 114 };
115 115
116 main_uart2: serial@2820000 { 116 main_uart2: serial@2820000 {
@@ -120,7 +120,7 @@
120 reg-io-width = <4>; 120 reg-io-width = <4>;
121 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; 121 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
122 clock-frequency = <48000000>; 122 clock-frequency = <48000000>;
123 power-domains = <&k3_pds 148>; 123 power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
124 }; 124 };
125 125
126 main_pmx0: pinmux@11c000 { 126 main_pmx0: pinmux@11c000 {
@@ -147,7 +147,7 @@
147 #size-cells = <0>; 147 #size-cells = <0>;
148 clock-names = "fck"; 148 clock-names = "fck";
149 clocks = <&k3_clks 110 1>; 149 clocks = <&k3_clks 110 1>;
150 power-domains = <&k3_pds 110>; 150 power-domains = <&k3_pds 110 TI_SCI_PD_EXCLUSIVE>;
151 }; 151 };
152 152
153 main_i2c1: i2c@2010000 { 153 main_i2c1: i2c@2010000 {
@@ -158,7 +158,7 @@
158 #size-cells = <0>; 158 #size-cells = <0>;
159 clock-names = "fck"; 159 clock-names = "fck";
160 clocks = <&k3_clks 111 1>; 160 clocks = <&k3_clks 111 1>;
161 power-domains = <&k3_pds 111>; 161 power-domains = <&k3_pds 111 TI_SCI_PD_EXCLUSIVE>;
162 }; 162 };
163 163
164 main_i2c2: i2c@2020000 { 164 main_i2c2: i2c@2020000 {
@@ -169,7 +169,7 @@
169 #size-cells = <0>; 169 #size-cells = <0>;
170 clock-names = "fck"; 170 clock-names = "fck";
171 clocks = <&k3_clks 112 1>; 171 clocks = <&k3_clks 112 1>;
172 power-domains = <&k3_pds 112>; 172 power-domains = <&k3_pds 112 TI_SCI_PD_EXCLUSIVE>;
173 }; 173 };
174 174
175 main_i2c3: i2c@2030000 { 175 main_i2c3: i2c@2030000 {
@@ -180,14 +180,14 @@
180 #size-cells = <0>; 180 #size-cells = <0>;
181 clock-names = "fck"; 181 clock-names = "fck";
182 clocks = <&k3_clks 113 1>; 182 clocks = <&k3_clks 113 1>;
183 power-domains = <&k3_pds 113>; 183 power-domains = <&k3_pds 113 TI_SCI_PD_EXCLUSIVE>;
184 }; 184 };
185 185
186 ecap0: pwm@3100000 { 186 ecap0: pwm@3100000 {
187 compatible = "ti,am654-ecap", "ti,am3352-ecap"; 187 compatible = "ti,am654-ecap", "ti,am3352-ecap";
188 #pwm-cells = <3>; 188 #pwm-cells = <3>;
189 reg = <0x0 0x03100000 0x0 0x60>; 189 reg = <0x0 0x03100000 0x0 0x60>;
190 power-domains = <&k3_pds 39>; 190 power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
191 clocks = <&k3_clks 39 0>; 191 clocks = <&k3_clks 39 0>;
192 clock-names = "fck"; 192 clock-names = "fck";
193 }; 193 };
@@ -197,7 +197,7 @@
197 reg = <0x0 0x2100000 0x0 0x400>; 197 reg = <0x0 0x2100000 0x0 0x400>;
198 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 198 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&k3_clks 137 1>; 199 clocks = <&k3_clks 137 1>;
200 power-domains = <&k3_pds 137>; 200 power-domains = <&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
201 #address-cells = <1>; 201 #address-cells = <1>;
202 #size-cells = <0>; 202 #size-cells = <0>;
203 }; 203 };
@@ -207,7 +207,7 @@
207 reg = <0x0 0x2110000 0x0 0x400>; 207 reg = <0x0 0x2110000 0x0 0x400>;
208 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; 208 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
209 clocks = <&k3_clks 138 1>; 209 clocks = <&k3_clks 138 1>;
210 power-domains = <&k3_pds 138>; 210 power-domains = <&k3_pds 138 TI_SCI_PD_EXCLUSIVE>;
211 #address-cells = <1>; 211 #address-cells = <1>;
212 #size-cells = <0>; 212 #size-cells = <0>;
213 assigned-clocks = <&k3_clks 137 1>; 213 assigned-clocks = <&k3_clks 137 1>;
@@ -219,7 +219,7 @@
219 reg = <0x0 0x2120000 0x0 0x400>; 219 reg = <0x0 0x2120000 0x0 0x400>;
220 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 220 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
221 clocks = <&k3_clks 139 1>; 221 clocks = <&k3_clks 139 1>;
222 power-domains = <&k3_pds 139>; 222 power-domains = <&k3_pds 139 TI_SCI_PD_EXCLUSIVE>;
223 #address-cells = <1>; 223 #address-cells = <1>;
224 #size-cells = <0>; 224 #size-cells = <0>;
225 }; 225 };
@@ -229,7 +229,7 @@
229 reg = <0x0 0x2130000 0x0 0x400>; 229 reg = <0x0 0x2130000 0x0 0x400>;
230 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 230 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&k3_clks 140 1>; 231 clocks = <&k3_clks 140 1>;
232 power-domains = <&k3_pds 140>; 232 power-domains = <&k3_pds 140 TI_SCI_PD_EXCLUSIVE>;
233 #address-cells = <1>; 233 #address-cells = <1>;
234 #size-cells = <0>; 234 #size-cells = <0>;
235 }; 235 };
@@ -239,7 +239,7 @@
239 reg = <0x0 0x2140000 0x0 0x400>; 239 reg = <0x0 0x2140000 0x0 0x400>;
240 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 240 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&k3_clks 141 1>; 241 clocks = <&k3_clks 141 1>;
242 power-domains = <&k3_pds 141>; 242 power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
243 #address-cells = <1>; 243 #address-cells = <1>;
244 #size-cells = <0>; 244 #size-cells = <0>;
245 }; 245 };
@@ -247,7 +247,7 @@
247 sdhci0: sdhci@4f80000 { 247 sdhci0: sdhci@4f80000 {
248 compatible = "ti,am654-sdhci-5.1"; 248 compatible = "ti,am654-sdhci-5.1";
249 reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>; 249 reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
250 power-domains = <&k3_pds 47>; 250 power-domains = <&k3_pds 47 TI_SCI_PD_EXCLUSIVE>;
251 clocks = <&k3_clks 47 0>, <&k3_clks 47 1>; 251 clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
252 clock-names = "clk_ahb", "clk_xin"; 252 clock-names = "clk_ahb", "clk_xin";
253 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 253 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
@@ -306,7 +306,7 @@
306 ranges = <0x0 0x0 0x4000000 0x20000>; 306 ranges = <0x0 0x0 0x4000000 0x20000>;
307 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 307 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
308 dma-coherent; 308 dma-coherent;
309 power-domains = <&k3_pds 151>; 309 power-domains = <&k3_pds 151 TI_SCI_PD_EXCLUSIVE>;
310 assigned-clocks = <&k3_clks 151 2>, <&k3_clks 151 7>; 310 assigned-clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
311 assigned-clock-parents = <&k3_clks 151 4>, /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */ 311 assigned-clock-parents = <&k3_clks 151 4>, /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
312 <&k3_clks 151 9>; /* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS only) */ 312 <&k3_clks 151 9>; /* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS only) */
@@ -345,7 +345,7 @@
345 ranges = <0x0 0x0 0x4020000 0x20000>; 345 ranges = <0x0 0x0 0x4020000 0x20000>;
346 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 346 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
347 dma-coherent; 347 dma-coherent;
348 power-domains = <&k3_pds 152>; 348 power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
349 assigned-clocks = <&k3_clks 152 2>; 349 assigned-clocks = <&k3_clks 152 2>;
350 assigned-clock-parents = <&k3_clks 152 4>; /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */ 350 assigned-clock-parents = <&k3_clks 152 4>; /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
351 351
@@ -413,6 +413,12 @@
413 ti,sci-rm-range-vint = <0x0>; 413 ti,sci-rm-range-vint = <0x0>;
414 ti,sci-rm-range-global-event = <0x1>; 414 ti,sci-rm-range-global-event = <0x1>;
415 }; 415 };
416
417 hwspinlock: spinlock@30e00000 {
418 compatible = "ti,am654-hwspinlock";
419 reg = <0x00 0x30e00000 0x00 0x1000>;
420 #hwlock-cells = <1>;
421 };
416 }; 422 };
417 423
418 main_gpio0: main_gpio0@600000 { 424 main_gpio0: main_gpio0@600000 {
@@ -451,7 +457,7 @@
451 compatible = "ti,am654-pcie-rc"; 457 compatible = "ti,am654-pcie-rc";
452 reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x2000>, <0x0 0x5506000 0x0 0x1000>; 458 reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x2000>, <0x0 0x5506000 0x0 0x1000>;
453 reg-names = "app", "dbics", "config", "atu"; 459 reg-names = "app", "dbics", "config", "atu";
454 power-domains = <&k3_pds 120>; 460 power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>;
455 #address-cells = <3>; 461 #address-cells = <3>;
456 #size-cells = <2>; 462 #size-cells = <2>;
457 ranges = <0x81000000 0 0 0x0 0x10020000 0 0x00010000 463 ranges = <0x81000000 0 0 0x0 0x10020000 0 0x00010000
@@ -470,7 +476,7 @@
470 compatible = "ti,am654-pcie-ep"; 476 compatible = "ti,am654-pcie-ep";
471 reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x8000000>, <0x0 0x5506000 0x0 0x1000>; 477 reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x8000000>, <0x0 0x5506000 0x0 0x1000>;
472 reg-names = "app", "dbics", "addr_space", "atu"; 478 reg-names = "app", "dbics", "addr_space", "atu";
473 power-domains = <&k3_pds 120>; 479 power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>;
474 ti,syscon-pcie-mode = <&pcie0_mode>; 480 ti,syscon-pcie-mode = <&pcie0_mode>;
475 num-ib-windows = <16>; 481 num-ib-windows = <16>;
476 num-ob-windows = <16>; 482 num-ob-windows = <16>;
@@ -483,7 +489,7 @@
483 compatible = "ti,am654-pcie-rc"; 489 compatible = "ti,am654-pcie-rc";
484 reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x2000>, <0x0 0x5606000 0x0 0x1000>; 490 reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x2000>, <0x0 0x5606000 0x0 0x1000>;
485 reg-names = "app", "dbics", "config", "atu"; 491 reg-names = "app", "dbics", "config", "atu";
486 power-domains = <&k3_pds 121>; 492 power-domains = <&k3_pds 121 TI_SCI_PD_EXCLUSIVE>;
487 #address-cells = <3>; 493 #address-cells = <3>;
488 #size-cells = <2>; 494 #size-cells = <2>;
489 ranges = <0x81000000 0 0 0x0 0x18020000 0 0x00010000 495 ranges = <0x81000000 0 0 0x0 0x18020000 0 0x00010000
@@ -502,7 +508,7 @@
502 compatible = "ti,am654-pcie-ep"; 508 compatible = "ti,am654-pcie-ep";
503 reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x4000000>, <0x0 0x5606000 0x0 0x1000>; 509 reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x4000000>, <0x0 0x5606000 0x0 0x1000>;
504 reg-names = "app", "dbics", "addr_space", "atu"; 510 reg-names = "app", "dbics", "addr_space", "atu";
505 power-domains = <&k3_pds 121>; 511 power-domains = <&k3_pds 121 TI_SCI_PD_EXCLUSIVE>;
506 ti,syscon-pcie-mode = <&pcie1_mode>; 512 ti,syscon-pcie-mode = <&pcie1_mode>;
507 num-ib-windows = <16>; 513 num-ib-windows = <16>;
508 num-ob-windows = <16>; 514 num-ob-windows = <16>;
diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
index afc29eaa2638..7bdf5342f58f 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
@@ -14,7 +14,7 @@
14 interrupts = <GIC_SPI 565 IRQ_TYPE_LEVEL_HIGH>; 14 interrupts = <GIC_SPI 565 IRQ_TYPE_LEVEL_HIGH>;
15 clock-frequency = <96000000>; 15 clock-frequency = <96000000>;
16 current-speed = <115200>; 16 current-speed = <115200>;
17 power-domains = <&k3_pds 149>; 17 power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
18 }; 18 };
19 19
20 mcu_ram: sram@41c00000 { 20 mcu_ram: sram@41c00000 {
@@ -33,7 +33,7 @@
33 #size-cells = <0>; 33 #size-cells = <0>;
34 clock-names = "fck"; 34 clock-names = "fck";
35 clocks = <&k3_clks 114 1>; 35 clocks = <&k3_clks 114 1>;
36 power-domains = <&k3_pds 114>; 36 power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
37 }; 37 };
38 38
39 mcu_spi0: spi@40300000 { 39 mcu_spi0: spi@40300000 {
@@ -41,7 +41,7 @@
41 reg = <0x0 0x40300000 0x0 0x400>; 41 reg = <0x0 0x40300000 0x0 0x400>;
42 interrupts = <GIC_SPI 560 IRQ_TYPE_LEVEL_HIGH>; 42 interrupts = <GIC_SPI 560 IRQ_TYPE_LEVEL_HIGH>;
43 clocks = <&k3_clks 142 1>; 43 clocks = <&k3_clks 142 1>;
44 power-domains = <&k3_pds 142>; 44 power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
45 #address-cells = <1>; 45 #address-cells = <1>;
46 #size-cells = <0>; 46 #size-cells = <0>;
47 }; 47 };
@@ -51,7 +51,7 @@
51 reg = <0x0 0x40310000 0x0 0x400>; 51 reg = <0x0 0x40310000 0x0 0x400>;
52 interrupts = <GIC_SPI 561 IRQ_TYPE_LEVEL_HIGH>; 52 interrupts = <GIC_SPI 561 IRQ_TYPE_LEVEL_HIGH>;
53 clocks = <&k3_clks 143 1>; 53 clocks = <&k3_clks 143 1>;
54 power-domains = <&k3_pds 143>; 54 power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
55 #address-cells = <1>; 55 #address-cells = <1>;
56 #size-cells = <0>; 56 #size-cells = <0>;
57 }; 57 };
@@ -61,7 +61,7 @@
61 reg = <0x0 0x40320000 0x0 0x400>; 61 reg = <0x0 0x40320000 0x0 0x400>;
62 interrupts = <GIC_SPI 562 IRQ_TYPE_LEVEL_HIGH>; 62 interrupts = <GIC_SPI 562 IRQ_TYPE_LEVEL_HIGH>;
63 clocks = <&k3_clks 144 1>; 63 clocks = <&k3_clks 144 1>;
64 power-domains = <&k3_pds 144>; 64 power-domains = <&k3_pds 144 TI_SCI_PD_EXCLUSIVE>;
65 #address-cells = <1>; 65 #address-cells = <1>;
66 #size-cells = <0>; 66 #size-cells = <0>;
67 }; 67 };
diff --git a/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
index 9cf2c0849a24..f4227e2743f2 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
@@ -20,7 +20,7 @@
20 20
21 k3_pds: power-controller { 21 k3_pds: power-controller {
22 compatible = "ti,sci-pm-domain"; 22 compatible = "ti,sci-pm-domain";
23 #power-domain-cells = <1>; 23 #power-domain-cells = <2>;
24 }; 24 };
25 25
26 k3_clks: clocks { 26 k3_clks: clocks {
@@ -50,7 +50,7 @@
50 interrupts = <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>; 50 interrupts = <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
51 clock-frequency = <48000000>; 51 clock-frequency = <48000000>;
52 current-speed = <115200>; 52 current-speed = <115200>;
53 power-domains = <&k3_pds 150>; 53 power-domains = <&k3_pds 150 TI_SCI_PD_EXCLUSIVE>;
54 }; 54 };
55 55
56 wkup_i2c0: i2c@42120000 { 56 wkup_i2c0: i2c@42120000 {
@@ -61,7 +61,7 @@
61 #size-cells = <0>; 61 #size-cells = <0>;
62 clock-names = "fck"; 62 clock-names = "fck";
63 clocks = <&k3_clks 115 1>; 63 clocks = <&k3_clks 115 1>;
64 power-domains = <&k3_pds 115>; 64 power-domains = <&k3_pds 115 TI_SCI_PD_EXCLUSIVE>;
65 }; 65 };
66 66
67 intr_wkup_gpio: interrupt-controller2 { 67 intr_wkup_gpio: interrupt-controller2 {
diff --git a/arch/arm64/boot/dts/ti/k3-am65.dtsi b/arch/arm64/boot/dts/ti/k3-am65.dtsi
index 82edf10b2378..6dfccd5d56c8 100644
--- a/arch/arm64/boot/dts/ti/k3-am65.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65.dtsi
@@ -9,6 +9,7 @@
9#include <dt-bindings/interrupt-controller/irq.h> 9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/pinctrl/k3.h> 11#include <dt-bindings/pinctrl/k3.h>
12#include <dt-bindings/soc/ti,sci_pm_domain.h>
12 13
13/ { 14/ {
14 model = "Texas Instruments K3 AM654 SoC"; 15 model = "Texas Instruments K3 AM654 SoC";
diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index 52c245d36db9..1102b84f853d 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -151,6 +151,7 @@
151&main_uart0 { 151&main_uart0 {
152 pinctrl-names = "default"; 152 pinctrl-names = "default";
153 pinctrl-0 = <&main_uart0_pins_default>; 153 pinctrl-0 = <&main_uart0_pins_default>;
154 power-domains = <&k3_pds 146 TI_SCI_PD_SHARED>;
154}; 155};
155 156
156&wkup_i2c0 { 157&wkup_i2c0 {
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
index c680123f067c..d2894d55fbbe 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
@@ -6,12 +6,49 @@
6/dts-v1/; 6/dts-v1/;
7 7
8#include "k3-j721e-som-p0.dtsi" 8#include "k3-j721e-som-p0.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
9 11
10/ { 12/ {
11 chosen { 13 chosen {
12 stdout-path = "serial2:115200n8"; 14 stdout-path = "serial2:115200n8";
13 bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000"; 15 bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
14 }; 16 };
17
18 gpio_keys: gpio-keys {
19 compatible = "gpio-keys";
20 autorepeat;
21 pinctrl-names = "default";
22 pinctrl-0 = <&sw10_button_pins_default &sw11_button_pins_default>;
23
24 sw10: sw10 {
25 label = "GPIO Key USER1";
26 linux,code = <BTN_0>;
27 gpios = <&main_gpio0 0 GPIO_ACTIVE_LOW>;
28 };
29
30 sw11: sw11 {
31 label = "GPIO Key USER2";
32 linux,code = <BTN_1>;
33 gpios = <&wkup_gpio0 7 GPIO_ACTIVE_LOW>;
34 };
35 };
36};
37
38&main_pmx0 {
39 sw10_button_pins_default: sw10_button_pins_default {
40 pinctrl-single,pins = <
41 J721E_IOPAD(0x0, PIN_INPUT, 7) /* (AC18) EXTINTn.GPIO0_0 */
42 >;
43 };
44};
45
46&wkup_pmx0 {
47 sw11_button_pins_default: sw11_button_pins_default {
48 pinctrl-single,pins = <
49 J721E_WKUP_IOPAD(0xcc, PIN_INPUT, 7) /* (G28) WKUP_GPIO0_7 */
50 >;
51 };
15}; 52};
16 53
17&wkup_uart0 { 54&wkup_uart0 {
@@ -19,6 +56,10 @@
19 status = "disabled"; 56 status = "disabled";
20}; 57};
21 58
59&main_uart0 {
60 power-domains = <&k3_pds 146 TI_SCI_PD_SHARED>;
61};
62
22&main_uart3 { 63&main_uart3 {
23 /* UART not brought out */ 64 /* UART not brought out */
24 status = "disabled"; 65 status = "disabled";
@@ -48,3 +89,31 @@
48 /* UART not brought out */ 89 /* UART not brought out */
49 status = "disabled"; 90 status = "disabled";
50}; 91};
92
93&main_gpio2 {
94 status = "disabled";
95};
96
97&main_gpio3 {
98 status = "disabled";
99};
100
101&main_gpio4 {
102 status = "disabled";
103};
104
105&main_gpio5 {
106 status = "disabled";
107};
108
109&main_gpio6 {
110 status = "disabled";
111};
112
113&main_gpio7 {
114 status = "disabled";
115};
116
117&wkup_gpio1 {
118 status = "disabled";
119};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index a01308142f77..698ef9a1d5b7 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -31,7 +31,7 @@
31 /* vcpumntirq: virtual CPU interface maintenance interrupt */ 31 /* vcpumntirq: virtual CPU interface maintenance interrupt */
32 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 32 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
33 33
34 gic_its: gic-its@18200000 { 34 gic_its: gic-its@1820000 {
35 compatible = "arm,gic-v3-its"; 35 compatible = "arm,gic-v3-its";
36 reg = <0x00 0x01820000 0x00 0x10000>; 36 reg = <0x00 0x01820000 0x00 0x10000>;
37 socionext,synquacer-pre-its = <0x1000000 0x400000>; 37 socionext,synquacer-pre-its = <0x1000000 0x400000>;
@@ -89,6 +89,12 @@
89 ti,sci-rm-range-vint = <0xa>; 89 ti,sci-rm-range-vint = <0xa>;
90 ti,sci-rm-range-global-event = <0xd>; 90 ti,sci-rm-range-global-event = <0xd>;
91 }; 91 };
92
93 hwspinlock: spinlock@30e00000 {
94 compatible = "ti,am654-hwspinlock";
95 reg = <0x00 0x30e00000 0x00 0x1000>;
96 #hwlock-cells = <1>;
97 };
92 }; 98 };
93 99
94 secure_proxy_main: mailbox@32c00000 { 100 secure_proxy_main: mailbox@32c00000 {
@@ -119,7 +125,7 @@
119 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; 125 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
120 clock-frequency = <48000000>; 126 clock-frequency = <48000000>;
121 current-speed = <115200>; 127 current-speed = <115200>;
122 power-domains = <&k3_pds 146>; 128 power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
123 clocks = <&k3_clks 146 0>; 129 clocks = <&k3_clks 146 0>;
124 clock-names = "fclk"; 130 clock-names = "fclk";
125 }; 131 };
@@ -132,7 +138,7 @@
132 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 138 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
133 clock-frequency = <48000000>; 139 clock-frequency = <48000000>;
134 current-speed = <115200>; 140 current-speed = <115200>;
135 power-domains = <&k3_pds 278>; 141 power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
136 clocks = <&k3_clks 278 0>; 142 clocks = <&k3_clks 278 0>;
137 clock-names = "fclk"; 143 clock-names = "fclk";
138 }; 144 };
@@ -145,7 +151,7 @@
145 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; 151 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
146 clock-frequency = <48000000>; 152 clock-frequency = <48000000>;
147 current-speed = <115200>; 153 current-speed = <115200>;
148 power-domains = <&k3_pds 279>; 154 power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
149 clocks = <&k3_clks 279 0>; 155 clocks = <&k3_clks 279 0>;
150 clock-names = "fclk"; 156 clock-names = "fclk";
151 }; 157 };
@@ -158,7 +164,7 @@
158 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 164 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
159 clock-frequency = <48000000>; 165 clock-frequency = <48000000>;
160 current-speed = <115200>; 166 current-speed = <115200>;
161 power-domains = <&k3_pds 280>; 167 power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
162 clocks = <&k3_clks 280 0>; 168 clocks = <&k3_clks 280 0>;
163 clock-names = "fclk"; 169 clock-names = "fclk";
164 }; 170 };
@@ -171,7 +177,7 @@
171 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; 177 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
172 clock-frequency = <48000000>; 178 clock-frequency = <48000000>;
173 current-speed = <115200>; 179 current-speed = <115200>;
174 power-domains = <&k3_pds 281>; 180 power-domains = <&k3_pds 281 TI_SCI_PD_EXCLUSIVE>;
175 clocks = <&k3_clks 281 0>; 181 clocks = <&k3_clks 281 0>;
176 clock-names = "fclk"; 182 clock-names = "fclk";
177 }; 183 };
@@ -184,7 +190,7 @@
184 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 190 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
185 clock-frequency = <48000000>; 191 clock-frequency = <48000000>;
186 current-speed = <115200>; 192 current-speed = <115200>;
187 power-domains = <&k3_pds 282>; 193 power-domains = <&k3_pds 282 TI_SCI_PD_EXCLUSIVE>;
188 clocks = <&k3_clks 282 0>; 194 clocks = <&k3_clks 282 0>;
189 clock-names = "fclk"; 195 clock-names = "fclk";
190 }; 196 };
@@ -197,7 +203,7 @@
197 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>; 203 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
198 clock-frequency = <48000000>; 204 clock-frequency = <48000000>;
199 current-speed = <115200>; 205 current-speed = <115200>;
200 power-domains = <&k3_pds 283>; 206 power-domains = <&k3_pds 283 TI_SCI_PD_EXCLUSIVE>;
201 clocks = <&k3_clks 283 0>; 207 clocks = <&k3_clks 283 0>;
202 clock-names = "fclk"; 208 clock-names = "fclk";
203 }; 209 };
@@ -210,7 +216,7 @@
210 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>; 216 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
211 clock-frequency = <48000000>; 217 clock-frequency = <48000000>;
212 current-speed = <115200>; 218 current-speed = <115200>;
213 power-domains = <&k3_pds 284>; 219 power-domains = <&k3_pds 284 TI_SCI_PD_EXCLUSIVE>;
214 clocks = <&k3_clks 284 0>; 220 clocks = <&k3_clks 284 0>;
215 clock-names = "fclk"; 221 clock-names = "fclk";
216 }; 222 };
@@ -223,7 +229,7 @@
223 interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>; 229 interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
224 clock-frequency = <48000000>; 230 clock-frequency = <48000000>;
225 current-speed = <115200>; 231 current-speed = <115200>;
226 power-domains = <&k3_pds 285>; 232 power-domains = <&k3_pds 285 TI_SCI_PD_EXCLUSIVE>;
227 clocks = <&k3_clks 285 0>; 233 clocks = <&k3_clks 285 0>;
228 clock-names = "fclk"; 234 clock-names = "fclk";
229 }; 235 };
@@ -236,8 +242,140 @@
236 interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; 242 interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
237 clock-frequency = <48000000>; 243 clock-frequency = <48000000>;
238 current-speed = <115200>; 244 current-speed = <115200>;
239 power-domains = <&k3_pds 286>; 245 power-domains = <&k3_pds 286 TI_SCI_PD_EXCLUSIVE>;
240 clocks = <&k3_clks 286 0>; 246 clocks = <&k3_clks 286 0>;
241 clock-names = "fclk"; 247 clock-names = "fclk";
242 }; 248 };
249
250 main_gpio0: gpio@600000 {
251 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
252 reg = <0x0 0x00600000 0x0 0x100>;
253 gpio-controller;
254 #gpio-cells = <2>;
255 interrupt-parent = <&main_gpio_intr>;
256 interrupts = <105 0>, <105 1>, <105 2>, <105 3>,
257 <105 4>, <105 5>, <105 6>, <105 7>;
258 interrupt-controller;
259 #interrupt-cells = <2>;
260 ti,ngpio = <128>;
261 ti,davinci-gpio-unbanked = <0>;
262 power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
263 clocks = <&k3_clks 105 0>;
264 clock-names = "gpio";
265 };
266
267 main_gpio1: gpio@601000 {
268 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
269 reg = <0x0 0x00601000 0x0 0x100>;
270 gpio-controller;
271 #gpio-cells = <2>;
272 interrupt-parent = <&main_gpio_intr>;
273 interrupts = <106 0>, <106 1>, <106 2>;
274 interrupt-controller;
275 #interrupt-cells = <2>;
276 ti,ngpio = <36>;
277 ti,davinci-gpio-unbanked = <0>;
278 power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
279 clocks = <&k3_clks 106 0>;
280 clock-names = "gpio";
281 };
282
283 main_gpio2: gpio@610000 {
284 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
285 reg = <0x0 0x00610000 0x0 0x100>;
286 gpio-controller;
287 #gpio-cells = <2>;
288 interrupt-parent = <&main_gpio_intr>;
289 interrupts = <107 0>, <107 1>, <107 2>, <107 3>,
290 <107 4>, <107 5>, <107 6>, <107 7>;
291 interrupt-controller;
292 #interrupt-cells = <2>;
293 ti,ngpio = <128>;
294 ti,davinci-gpio-unbanked = <0>;
295 power-domains = <&k3_pds 107 TI_SCI_PD_EXCLUSIVE>;
296 clocks = <&k3_clks 107 0>;
297 clock-names = "gpio";
298 };
299
300 main_gpio3: gpio@611000 {
301 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
302 reg = <0x0 0x00611000 0x0 0x100>;
303 gpio-controller;
304 #gpio-cells = <2>;
305 interrupt-parent = <&main_gpio_intr>;
306 interrupts = <108 0>, <108 1>, <108 2>;
307 interrupt-controller;
308 #interrupt-cells = <2>;
309 ti,ngpio = <36>;
310 ti,davinci-gpio-unbanked = <0>;
311 power-domains = <&k3_pds 108 TI_SCI_PD_EXCLUSIVE>;
312 clocks = <&k3_clks 108 0>;
313 clock-names = "gpio";
314 };
315
316 main_gpio4: gpio@620000 {
317 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
318 reg = <0x0 0x00620000 0x0 0x100>;
319 gpio-controller;
320 #gpio-cells = <2>;
321 interrupt-parent = <&main_gpio_intr>;
322 interrupts = <109 0>, <109 1>, <109 2>, <109 3>,
323 <109 4>, <109 5>, <109 6>, <109 7>;
324 interrupt-controller;
325 #interrupt-cells = <2>;
326 ti,ngpio = <128>;
327 ti,davinci-gpio-unbanked = <0>;
328 power-domains = <&k3_pds 109 TI_SCI_PD_EXCLUSIVE>;
329 clocks = <&k3_clks 109 0>;
330 clock-names = "gpio";
331 };
332
333 main_gpio5: gpio@621000 {
334 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
335 reg = <0x0 0x00621000 0x0 0x100>;
336 gpio-controller;
337 #gpio-cells = <2>;
338 interrupt-parent = <&main_gpio_intr>;
339 interrupts = <110 0>, <110 1>, <110 2>;
340 interrupt-controller;
341 #interrupt-cells = <2>;
342 ti,ngpio = <36>;
343 ti,davinci-gpio-unbanked = <0>;
344 power-domains = <&k3_pds 110 TI_SCI_PD_EXCLUSIVE>;
345 clocks = <&k3_clks 110 0>;
346 clock-names = "gpio";
347 };
348
349 main_gpio6: gpio@630000 {
350 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
351 reg = <0x0 0x00630000 0x0 0x100>;
352 gpio-controller;
353 #gpio-cells = <2>;
354 interrupt-parent = <&main_gpio_intr>;
355 interrupts = <111 0>, <111 1>, <111 2>, <111 3>,
356 <111 4>, <111 5>, <111 6>, <111 7>;
357 interrupt-controller;
358 #interrupt-cells = <2>;
359 ti,ngpio = <128>;
360 ti,davinci-gpio-unbanked = <0>;
361 power-domains = <&k3_pds 111 TI_SCI_PD_EXCLUSIVE>;
362 clocks = <&k3_clks 111 0>;
363 clock-names = "gpio";
364 };
365
366 main_gpio7: gpio@631000 {
367 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
368 reg = <0x0 0x00631000 0x0 0x100>;
369 gpio-controller;
370 #gpio-cells = <2>;
371 interrupt-parent = <&main_gpio_intr>;
372 interrupts = <112 0>, <112 1>, <112 2>;
373 interrupt-controller;
374 #interrupt-cells = <2>;
375 ti,ngpio = <36>;
376 ti,davinci-gpio-unbanked = <0>;
377 power-domains = <&k3_pds 112 TI_SCI_PD_EXCLUSIVE>;
378 clocks = <&k3_clks 112 0>;
379 clock-names = "gpio";
380 };
243}; 381};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
index 07b58eeebceb..555dc7b7aedc 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
@@ -20,7 +20,7 @@
20 20
21 k3_pds: power-controller { 21 k3_pds: power-controller {
22 compatible = "ti,sci-pm-domain"; 22 compatible = "ti,sci-pm-domain";
23 #power-domain-cells = <1>; 23 #power-domain-cells = <2>;
24 }; 24 };
25 25
26 k3_clks: clocks { 26 k3_clks: clocks {
@@ -59,7 +59,7 @@
59 interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>; 59 interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
60 clock-frequency = <48000000>; 60 clock-frequency = <48000000>;
61 current-speed = <115200>; 61 current-speed = <115200>;
62 power-domains = <&k3_pds 287>; 62 power-domains = <&k3_pds 287 TI_SCI_PD_EXCLUSIVE>;
63 clocks = <&k3_clks 287 0>; 63 clocks = <&k3_clks 287 0>;
64 clock-names = "fclk"; 64 clock-names = "fclk";
65 }; 65 };
@@ -72,7 +72,7 @@
72 interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>; 72 interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
73 clock-frequency = <96000000>; 73 clock-frequency = <96000000>;
74 current-speed = <115200>; 74 current-speed = <115200>;
75 power-domains = <&k3_pds 149>; 75 power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
76 clocks = <&k3_clks 149 0>; 76 clocks = <&k3_clks 149 0>;
77 clock-names = "fclk"; 77 clock-names = "fclk";
78 }; 78 };
@@ -87,4 +87,38 @@
87 ti,sci-dst-id = <14>; 87 ti,sci-dst-id = <14>;
88 ti,sci-rm-range-girq = <0x5>; 88 ti,sci-rm-range-girq = <0x5>;
89 }; 89 };
90
91 wkup_gpio0: gpio@42110000 {
92 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
93 reg = <0x0 0x42110000 0x0 0x100>;
94 gpio-controller;
95 #gpio-cells = <2>;
96 interrupt-parent = <&wkup_gpio_intr>;
97 interrupts = <113 0>, <113 1>, <113 2>,
98 <113 3>, <113 4>, <113 5>;
99 interrupt-controller;
100 #interrupt-cells = <2>;
101 ti,ngpio = <84>;
102 ti,davinci-gpio-unbanked = <0>;
103 power-domains = <&k3_pds 113 TI_SCI_PD_EXCLUSIVE>;
104 clocks = <&k3_clks 113 0>;
105 clock-names = "gpio";
106 };
107
108 wkup_gpio1: gpio@42100000 {
109 compatible = "ti,j721e-gpio", "ti,keystone-gpio";
110 reg = <0x0 0x42100000 0x0 0x100>;
111 gpio-controller;
112 #gpio-cells = <2>;
113 interrupt-parent = <&wkup_gpio_intr>;
114 interrupts = <114 0>, <114 1>, <114 2>,
115 <114 3>, <114 4>, <114 5>;
116 interrupt-controller;
117 #interrupt-cells = <2>;
118 ti,ngpio = <84>;
119 ti,davinci-gpio-unbanked = <0>;
120 power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
121 clocks = <&k3_clks 114 0>;
122 clock-names = "gpio";
123 };
90}; 124};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e.dtsi b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
index f8dd74b17bfb..43ea1ba97922 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
@@ -8,6 +8,7 @@
8#include <dt-bindings/interrupt-controller/irq.h> 8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/pinctrl/k3.h> 10#include <dt-bindings/pinctrl/k3.h>
11#include <dt-bindings/soc/ti,sci_pm_domain.h>
11 12
12/ { 13/ {
13 model = "Texas Instruments K3 J721E SoC"; 14 model = "Texas Instruments K3 J721E SoC";
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 2db474ab4c6b..9207ac291341 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1,14 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0
1/* 2/*
2 * ti-sysc.c - Texas Instruments sysc interconnect target driver 3 * ti-sysc.c - Texas Instruments sysc interconnect target driver
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
9 * kind, whether express or implied; without even the implied warranty
10 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */ 4 */
13 5
14#include <linux/io.h> 6#include <linux/io.h>
@@ -62,18 +54,26 @@ static const char * const clock_names[SYSC_MAX_CLOCKS] = {
62 * @module_size: size of the interconnect target module 54 * @module_size: size of the interconnect target module
63 * @module_va: virtual address of the interconnect target module 55 * @module_va: virtual address of the interconnect target module
64 * @offsets: register offsets from module base 56 * @offsets: register offsets from module base
57 * @mdata: ti-sysc to hwmod translation data for a module
65 * @clocks: clocks used by the interconnect target module 58 * @clocks: clocks used by the interconnect target module
66 * @clock_roles: clock role names for the found clocks 59 * @clock_roles: clock role names for the found clocks
67 * @nr_clocks: number of clocks used by the interconnect target module 60 * @nr_clocks: number of clocks used by the interconnect target module
61 * @rsts: resets used by the interconnect target module
68 * @legacy_mode: configured for legacy mode if set 62 * @legacy_mode: configured for legacy mode if set
69 * @cap: interconnect target module capabilities 63 * @cap: interconnect target module capabilities
70 * @cfg: interconnect target module configuration 64 * @cfg: interconnect target module configuration
65 * @cookie: data used by legacy platform callbacks
71 * @name: name if available 66 * @name: name if available
72 * @revision: interconnect target module revision 67 * @revision: interconnect target module revision
68 * @enabled: sysc runtime enabled status
73 * @needs_resume: runtime resume needed on resume from suspend 69 * @needs_resume: runtime resume needed on resume from suspend
70 * @child_needs_resume: runtime resume needed for child on resume from suspend
71 * @disable_on_idle: status flag used for disabling modules with resets
72 * @idle_work: work structure used to perform delayed idle on a module
74 * @clk_enable_quirk: module specific clock enable quirk 73 * @clk_enable_quirk: module specific clock enable quirk
75 * @clk_disable_quirk: module specific clock disable quirk 74 * @clk_disable_quirk: module specific clock disable quirk
76 * @reset_done_quirk: module specific reset done quirk 75 * @reset_done_quirk: module specific reset done quirk
76 * @module_enable_quirk: module specific enable quirk
77 */ 77 */
78struct sysc { 78struct sysc {
79 struct device *dev; 79 struct device *dev;
@@ -95,11 +95,11 @@ struct sysc {
95 unsigned int enabled:1; 95 unsigned int enabled:1;
96 unsigned int needs_resume:1; 96 unsigned int needs_resume:1;
97 unsigned int child_needs_resume:1; 97 unsigned int child_needs_resume:1;
98 unsigned int disable_on_idle:1;
99 struct delayed_work idle_work; 98 struct delayed_work idle_work;
100 void (*clk_enable_quirk)(struct sysc *sysc); 99 void (*clk_enable_quirk)(struct sysc *sysc);
101 void (*clk_disable_quirk)(struct sysc *sysc); 100 void (*clk_disable_quirk)(struct sysc *sysc);
102 void (*reset_done_quirk)(struct sysc *sysc); 101 void (*reset_done_quirk)(struct sysc *sysc);
102 void (*module_enable_quirk)(struct sysc *sysc);
103}; 103};
104 104
105static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np, 105static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
@@ -503,7 +503,7 @@ static void sysc_clkdm_allow_idle(struct sysc *ddata)
503static int sysc_init_resets(struct sysc *ddata) 503static int sysc_init_resets(struct sysc *ddata)
504{ 504{
505 ddata->rsts = 505 ddata->rsts =
506 devm_reset_control_get_optional(ddata->dev, "rstctrl"); 506 devm_reset_control_get_optional_shared(ddata->dev, "rstctrl");
507 if (IS_ERR(ddata->rsts)) 507 if (IS_ERR(ddata->rsts))
508 return PTR_ERR(ddata->rsts); 508 return PTR_ERR(ddata->rsts);
509 509
@@ -615,8 +615,8 @@ static void sysc_check_quirk_stdout(struct sysc *ddata,
615 * node but children have "ti,hwmods". These belong to the interconnect 615 * node but children have "ti,hwmods". These belong to the interconnect
616 * target node and are managed by this driver. 616 * target node and are managed by this driver.
617 */ 617 */
618static int sysc_check_one_child(struct sysc *ddata, 618static void sysc_check_one_child(struct sysc *ddata,
619 struct device_node *np) 619 struct device_node *np)
620{ 620{
621 const char *name; 621 const char *name;
622 622
@@ -626,22 +626,14 @@ static int sysc_check_one_child(struct sysc *ddata,
626 626
627 sysc_check_quirk_stdout(ddata, np); 627 sysc_check_quirk_stdout(ddata, np);
628 sysc_parse_dts_quirks(ddata, np, true); 628 sysc_parse_dts_quirks(ddata, np, true);
629
630 return 0;
631} 629}
632 630
633static int sysc_check_children(struct sysc *ddata) 631static void sysc_check_children(struct sysc *ddata)
634{ 632{
635 struct device_node *child; 633 struct device_node *child;
636 int error;
637
638 for_each_child_of_node(ddata->dev->of_node, child) {
639 error = sysc_check_one_child(ddata, child);
640 if (error)
641 return error;
642 }
643 634
644 return 0; 635 for_each_child_of_node(ddata->dev->of_node, child)
636 sysc_check_one_child(ddata, child);
645} 637}
646 638
647/* 639/*
@@ -794,9 +786,7 @@ static int sysc_map_and_check_registers(struct sysc *ddata)
794 if (error) 786 if (error)
795 return error; 787 return error;
796 788
797 error = sysc_check_children(ddata); 789 sysc_check_children(ddata);
798 if (error)
799 return error;
800 790
801 error = sysc_parse_registers(ddata); 791 error = sysc_parse_registers(ddata);
802 if (error) 792 if (error)
@@ -940,6 +930,9 @@ set_autoidle:
940 sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg); 930 sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
941 } 931 }
942 932
933 if (ddata->module_enable_quirk)
934 ddata->module_enable_quirk(ddata);
935
943 return 0; 936 return 0;
944} 937}
945 938
@@ -1031,8 +1024,7 @@ static int __maybe_unused sysc_runtime_suspend_legacy(struct device *dev,
1031 dev_err(dev, "%s: could not idle: %i\n", 1024 dev_err(dev, "%s: could not idle: %i\n",
1032 __func__, error); 1025 __func__, error);
1033 1026
1034 if (ddata->disable_on_idle) 1027 reset_control_assert(ddata->rsts);
1035 reset_control_assert(ddata->rsts);
1036 1028
1037 return 0; 1029 return 0;
1038} 1030}
@@ -1043,8 +1035,7 @@ static int __maybe_unused sysc_runtime_resume_legacy(struct device *dev,
1043 struct ti_sysc_platform_data *pdata; 1035 struct ti_sysc_platform_data *pdata;
1044 int error; 1036 int error;
1045 1037
1046 if (ddata->disable_on_idle) 1038 reset_control_deassert(ddata->rsts);
1047 reset_control_deassert(ddata->rsts);
1048 1039
1049 pdata = dev_get_platdata(ddata->dev); 1040 pdata = dev_get_platdata(ddata->dev);
1050 if (!pdata) 1041 if (!pdata)
@@ -1091,10 +1082,9 @@ static int __maybe_unused sysc_runtime_suspend(struct device *dev)
1091 ddata->enabled = false; 1082 ddata->enabled = false;
1092 1083
1093err_allow_idle: 1084err_allow_idle:
1094 sysc_clkdm_allow_idle(ddata); 1085 reset_control_assert(ddata->rsts);
1095 1086
1096 if (ddata->disable_on_idle) 1087 sysc_clkdm_allow_idle(ddata);
1097 reset_control_assert(ddata->rsts);
1098 1088
1099 return error; 1089 return error;
1100} 1090}
@@ -1109,11 +1099,11 @@ static int __maybe_unused sysc_runtime_resume(struct device *dev)
1109 if (ddata->enabled) 1099 if (ddata->enabled)
1110 return 0; 1100 return 0;
1111 1101
1112 if (ddata->disable_on_idle)
1113 reset_control_deassert(ddata->rsts);
1114 1102
1115 sysc_clkdm_deny_idle(ddata); 1103 sysc_clkdm_deny_idle(ddata);
1116 1104
1105 reset_control_deassert(ddata->rsts);
1106
1117 if (sysc_opt_clks_needed(ddata)) { 1107 if (sysc_opt_clks_needed(ddata)) {
1118 error = sysc_enable_opt_clocks(ddata); 1108 error = sysc_enable_opt_clocks(ddata);
1119 if (error) 1109 if (error)
@@ -1256,6 +1246,9 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
1256 SYSC_MODULE_QUIRK_I2C), 1246 SYSC_MODULE_QUIRK_I2C),
1257 SYSC_QUIRK("i2c", 0, 0, 0x10, 0x90, 0x5040000a, 0xfffff0f0, 1247 SYSC_QUIRK("i2c", 0, 0, 0x10, 0x90, 0x5040000a, 0xfffff0f0,
1258 SYSC_MODULE_QUIRK_I2C), 1248 SYSC_MODULE_QUIRK_I2C),
1249 SYSC_QUIRK("gpu", 0x50000000, 0x14, -1, -1, 0x00010201, 0xffffffff, 0),
1250 SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff,
1251 SYSC_MODULE_QUIRK_SGX),
1259 SYSC_QUIRK("wdt", 0, 0, 0x10, 0x14, 0x502a0500, 0xfffff0f0, 1252 SYSC_QUIRK("wdt", 0, 0, 0x10, 0x14, 0x502a0500, 0xfffff0f0,
1260 SYSC_MODULE_QUIRK_WDT), 1253 SYSC_MODULE_QUIRK_WDT),
1261 1254
@@ -1271,8 +1264,11 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
1271 SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0x4edb1902, 0xffffffff, 0), 1264 SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0x4edb1902, 0xffffffff, 0),
1272 SYSC_QUIRK("dmic", 0, 0, 0x10, -1, 0x50010000, 0xffffffff, 0), 1265 SYSC_QUIRK("dmic", 0, 0, 0x10, -1, 0x50010000, 0xffffffff, 0),
1273 SYSC_QUIRK("dwc3", 0, 0, 0x10, -1, 0x500a0200, 0xffffffff, 0), 1266 SYSC_QUIRK("dwc3", 0, 0, 0x10, -1, 0x500a0200, 0xffffffff, 0),
1267 SYSC_QUIRK("d2d", 0x4a0b6000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
1268 SYSC_QUIRK("d2d", 0x4a0cd000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
1274 SYSC_QUIRK("epwmss", 0, 0, 0x4, -1, 0x47400001, 0xffffffff, 0), 1269 SYSC_QUIRK("epwmss", 0, 0, 0x4, -1, 0x47400001, 0xffffffff, 0),
1275 SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -1, 0, 0, 0), 1270 SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -1, 0, 0, 0),
1271 SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, 0),
1276 SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0), 1272 SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0),
1277 SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0), 1273 SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0),
1278 SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff, 0), 1274 SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff, 0),
@@ -1424,6 +1420,15 @@ static void sysc_clk_disable_quirk_i2c(struct sysc *ddata)
1424 sysc_clk_quirk_i2c(ddata, false); 1420 sysc_clk_quirk_i2c(ddata, false);
1425} 1421}
1426 1422
1423/* 36xx SGX needs a quirk for to bypass OCP IPG interrupt logic */
1424static void sysc_module_enable_quirk_sgx(struct sysc *ddata)
1425{
1426 int offset = 0xff08; /* OCP_DEBUG_CONFIG */
1427 u32 val = BIT(31); /* THALIA_INT_BYPASS */
1428
1429 sysc_write(ddata, offset, val);
1430}
1431
1427/* Watchdog timer needs a disable sequence after reset */ 1432/* Watchdog timer needs a disable sequence after reset */
1428static void sysc_reset_done_quirk_wdt(struct sysc *ddata) 1433static void sysc_reset_done_quirk_wdt(struct sysc *ddata)
1429{ 1434{
@@ -1466,6 +1471,9 @@ static void sysc_init_module_quirks(struct sysc *ddata)
1466 return; 1471 return;
1467 } 1472 }
1468 1473
1474 if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_SGX)
1475 ddata->module_enable_quirk = sysc_module_enable_quirk_sgx;
1476
1469 if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_WDT) 1477 if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_WDT)
1470 ddata->reset_done_quirk = sysc_reset_done_quirk_wdt; 1478 ddata->reset_done_quirk = sysc_reset_done_quirk_wdt;
1471} 1479}
@@ -1532,7 +1540,7 @@ static int sysc_legacy_init(struct sysc *ddata)
1532 */ 1540 */
1533static int sysc_rstctrl_reset_deassert(struct sysc *ddata, bool reset) 1541static int sysc_rstctrl_reset_deassert(struct sysc *ddata, bool reset)
1534{ 1542{
1535 int error, val; 1543 int error;
1536 1544
1537 if (!ddata->rsts) 1545 if (!ddata->rsts)
1538 return 0; 1546 return 0;
@@ -1543,14 +1551,9 @@ static int sysc_rstctrl_reset_deassert(struct sysc *ddata, bool reset)
1543 return error; 1551 return error;
1544 } 1552 }
1545 1553
1546 error = reset_control_deassert(ddata->rsts); 1554 reset_control_deassert(ddata->rsts);
1547 if (error == -EEXIST)
1548 return 0;
1549 1555
1550 error = readx_poll_timeout(reset_control_status, ddata->rsts, val, 1556 return 0;
1551 val == 0, 100, MAX_MODULE_SOFTRESET_WAIT);
1552
1553 return error;
1554} 1557}
1555 1558
1556/* 1559/*
@@ -1559,12 +1562,11 @@ static int sysc_rstctrl_reset_deassert(struct sysc *ddata, bool reset)
1559 */ 1562 */
1560static int sysc_reset(struct sysc *ddata) 1563static int sysc_reset(struct sysc *ddata)
1561{ 1564{
1562 int sysc_offset, syss_offset, sysc_val, rstval, quirks, error = 0; 1565 int sysc_offset, syss_offset, sysc_val, rstval, error = 0;
1563 u32 sysc_mask, syss_done; 1566 u32 sysc_mask, syss_done;
1564 1567
1565 sysc_offset = ddata->offsets[SYSC_SYSCONFIG]; 1568 sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
1566 syss_offset = ddata->offsets[SYSC_SYSSTATUS]; 1569 syss_offset = ddata->offsets[SYSC_SYSSTATUS];
1567 quirks = ddata->cfg.quirks;
1568 1570
1569 if (ddata->legacy_mode || sysc_offset < 0 || 1571 if (ddata->legacy_mode || sysc_offset < 0 ||
1570 ddata->cap->regbits->srst_shift < 0 || 1572 ddata->cap->regbits->srst_shift < 0 ||
@@ -2427,6 +2429,10 @@ static int sysc_probe(struct platform_device *pdev)
2427 goto unprepare; 2429 goto unprepare;
2428 } 2430 }
2429 2431
2432 /* Balance reset counts */
2433 if (ddata->rsts)
2434 reset_control_assert(ddata->rsts);
2435
2430 sysc_show_registers(ddata); 2436 sysc_show_registers(ddata);
2431 2437
2432 ddata->dev->type = &sysc_device_type; 2438 ddata->dev->type = &sysc_device_type;
@@ -2446,9 +2452,6 @@ static int sysc_probe(struct platform_device *pdev)
2446 pm_runtime_put(&pdev->dev); 2452 pm_runtime_put(&pdev->dev);
2447 } 2453 }
2448 2454
2449 if (!of_get_available_child_count(ddata->dev->of_node))
2450 ddata->disable_on_idle = true;
2451
2452 return 0; 2455 return 0;
2453 2456
2454err: 2457err:
diff --git a/drivers/clk/ti/clk-54xx.c b/drivers/clk/ti/clk-54xx.c
index dafef7e70ba8..e675e27f1203 100644
--- a/drivers/clk/ti/clk-54xx.c
+++ b/drivers/clk/ti/clk-54xx.c
@@ -314,6 +314,39 @@ static const struct omap_clkctrl_reg_data omap5_dss_clkctrl_regs[] __initconst =
314 { 0 }, 314 { 0 },
315}; 315};
316 316
317static const char * const omap5_gpu_core_mux_parents[] __initconst = {
318 "dpll_core_h14x2_ck",
319 "dpll_per_h14x2_ck",
320 NULL,
321};
322
323static const char * const omap5_gpu_hyd_mux_parents[] __initconst = {
324 "dpll_core_h14x2_ck",
325 "dpll_per_h14x2_ck",
326 NULL,
327};
328
329static const char * const omap5_gpu_sys_clk_parents[] __initconst = {
330 "sys_clkin",
331 NULL,
332};
333
334static const struct omap_clkctrl_div_data omap5_gpu_sys_clk_data __initconst = {
335 .max_div = 2,
336};
337
338static const struct omap_clkctrl_bit_data omap5_gpu_core_bit_data[] __initconst = {
339 { 24, TI_CLK_MUX, omap5_gpu_core_mux_parents, NULL },
340 { 25, TI_CLK_MUX, omap5_gpu_hyd_mux_parents, NULL },
341 { 26, TI_CLK_DIVIDER, omap5_gpu_sys_clk_parents, &omap5_gpu_sys_clk_data },
342 { 0 },
343};
344
345static const struct omap_clkctrl_reg_data omap5_gpu_clkctrl_regs[] __initconst = {
346 { OMAP5_GPU_CLKCTRL, omap5_gpu_core_bit_data, CLKF_SW_SUP, "gpu_cm:clk:0000:24" },
347 { 0 },
348};
349
317static const char * const omap5_mmc1_fclk_mux_parents[] __initconst = { 350static const char * const omap5_mmc1_fclk_mux_parents[] __initconst = {
318 "func_128m_clk", 351 "func_128m_clk",
319 "dpll_per_m2x2_ck", 352 "dpll_per_m2x2_ck",
@@ -470,6 +503,7 @@ const struct omap_clkctrl_data omap5_clkctrl_data[] __initconst = {
470 { 0x4a008e20, omap5_l3instr_clkctrl_regs }, 503 { 0x4a008e20, omap5_l3instr_clkctrl_regs },
471 { 0x4a009020, omap5_l4per_clkctrl_regs }, 504 { 0x4a009020, omap5_l4per_clkctrl_regs },
472 { 0x4a009420, omap5_dss_clkctrl_regs }, 505 { 0x4a009420, omap5_dss_clkctrl_regs },
506 { 0x4a009520, omap5_gpu_clkctrl_regs },
473 { 0x4a009620, omap5_l3init_clkctrl_regs }, 507 { 0x4a009620, omap5_l3init_clkctrl_regs },
474 { 0x4ae07920, omap5_wkupaon_clkctrl_regs }, 508 { 0x4ae07920, omap5_wkupaon_clkctrl_regs },
475 { 0 }, 509 { 0 },
diff --git a/include/dt-bindings/bus/ti-sysc.h b/include/dt-bindings/bus/ti-sysc.h
index 7138384e2ef9..babd08a1d226 100644
--- a/include/dt-bindings/bus/ti-sysc.h
+++ b/include/dt-bindings/bus/ti-sysc.h
@@ -1,3 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0 */
1/* TI sysc interconnect target module defines */ 2/* TI sysc interconnect target module defines */
2 3
3/* Generic sysc found on omap2 and later, also known as type1 */ 4/* Generic sysc found on omap2 and later, also known as type1 */
diff --git a/include/dt-bindings/clock/omap5.h b/include/dt-bindings/clock/omap5.h
index f3283957f48d..e5411938983c 100644
--- a/include/dt-bindings/clock/omap5.h
+++ b/include/dt-bindings/clock/omap5.h
@@ -89,6 +89,9 @@
89/* dss clocks */ 89/* dss clocks */
90#define OMAP5_DSS_CORE_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20) 90#define OMAP5_DSS_CORE_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20)
91 91
92/* gpu clocks */
93#define OMAP5_GPU_CLKCTRL OMAP5_CLKCTRL_INDEX(0x20)
94
92/* l3init clocks */ 95/* l3init clocks */
93#define OMAP5_MMC1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28) 96#define OMAP5_MMC1_CLKCTRL OMAP5_CLKCTRL_INDEX(0x28)
94#define OMAP5_MMC2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30) 97#define OMAP5_MMC2_CLKCTRL OMAP5_CLKCTRL_INDEX(0x30)
diff --git a/include/dt-bindings/pinctrl/k3.h b/include/dt-bindings/pinctrl/k3.h
index 45e11b6170ca..499de6216581 100644
--- a/include/dt-bindings/pinctrl/k3.h
+++ b/include/dt-bindings/pinctrl/k3.h
@@ -32,4 +32,7 @@
32#define AM65X_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode)) 32#define AM65X_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
33#define AM65X_WKUP_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode)) 33#define AM65X_WKUP_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
34 34
35#define J721E_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
36#define J721E_WKUP_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
37
35#endif 38#endif
diff --git a/include/linux/platform_data/ti-sysc.h b/include/linux/platform_data/ti-sysc.h
index 0c587d4fc718..b5b7a3423ca8 100644
--- a/include/linux/platform_data/ti-sysc.h
+++ b/include/linux/platform_data/ti-sysc.h
@@ -1,3 +1,5 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2
1#ifndef __TI_SYSC_DATA_H__ 3#ifndef __TI_SYSC_DATA_H__
2#define __TI_SYSC_DATA_H__ 4#define __TI_SYSC_DATA_H__
3 5
@@ -47,6 +49,7 @@ struct sysc_regbits {
47 s8 emufree_shift; 49 s8 emufree_shift;
48}; 50};
49 51
52#define SYSC_MODULE_QUIRK_SGX BIT(18)
50#define SYSC_MODULE_QUIRK_HDQ1W BIT(17) 53#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
51#define SYSC_MODULE_QUIRK_I2C BIT(16) 54#define SYSC_MODULE_QUIRK_I2C BIT(16)
52#define SYSC_MODULE_QUIRK_WDT BIT(15) 55#define SYSC_MODULE_QUIRK_WDT BIT(15)
@@ -70,7 +73,7 @@ struct sysc_regbits {
70 73
71/** 74/**
72 * struct sysc_capabilities - capabilities for an interconnect target module 75 * struct sysc_capabilities - capabilities for an interconnect target module
73 * 76 * @type: sysc type identifier for the module
74 * @sysc_mask: bitmask of supported SYSCONFIG register bits 77 * @sysc_mask: bitmask of supported SYSCONFIG register bits
75 * @regbits: bitmask of SYSCONFIG register bits 78 * @regbits: bitmask of SYSCONFIG register bits
76 * @mod_quirks: bitmask of module specific quirks 79 * @mod_quirks: bitmask of module specific quirks
@@ -85,8 +88,9 @@ struct sysc_capabilities {
85/** 88/**
86 * struct sysc_config - configuration for an interconnect target module 89 * struct sysc_config - configuration for an interconnect target module
87 * @sysc_val: configured value for sysc register 90 * @sysc_val: configured value for sysc register
91 * @syss_mask: configured mask value for SYSSTATUS register
88 * @midlemodes: bitmask of supported master idle modes 92 * @midlemodes: bitmask of supported master idle modes
89 * @sidlemodes: bitmask of supported master idle modes 93 * @sidlemodes: bitmask of supported slave idle modes
90 * @srst_udelay: optional delay needed after OCP soft reset 94 * @srst_udelay: optional delay needed after OCP soft reset
91 * @quirks: bitmask of enabled quirks 95 * @quirks: bitmask of enabled quirks
92 */ 96 */