diff options
68 files changed, 8943 insertions, 3409 deletions
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt index 7b40054be0d8..fcf6979c0b6d 100644 --- a/Documentation/devicetree/bindings/firmware/qcom,scm.txt +++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt | |||
@@ -11,9 +11,10 @@ Required properties: | |||
11 | * "qcom,scm-msm8660" for MSM8660 platforms | 11 | * "qcom,scm-msm8660" for MSM8660 platforms |
12 | * "qcom,scm-msm8690" for MSM8690 platforms | 12 | * "qcom,scm-msm8690" for MSM8690 platforms |
13 | * "qcom,scm-msm8996" for MSM8996 platforms | 13 | * "qcom,scm-msm8996" for MSM8996 platforms |
14 | * "qcom,scm-ipq4019" for IPQ4019 platforms | ||
14 | * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc) | 15 | * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc) |
15 | - clocks: One to three clocks may be required based on compatible. | 16 | - clocks: One to three clocks may be required based on compatible. |
16 | * No clock required for "qcom,scm-msm8996" | 17 | * No clock required for "qcom,scm-msm8996", "qcom,scm-ipq4019" |
17 | * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960" | 18 | * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960" |
18 | * Core, iface, and bus clocks required for "qcom,scm" | 19 | * Core, iface, and bus clocks required for "qcom,scm" |
19 | - clock-names: Must contain "core" for the core clock, "iface" for the interface | 20 | - clock-names: Must contain "core" for the core clock, "iface" for the interface |
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt index a48049ccf6d0..89e1cb9212f6 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | |||
@@ -22,6 +22,7 @@ resources. | |||
22 | "qcom,rpm-apq8084" | 22 | "qcom,rpm-apq8084" |
23 | "qcom,rpm-msm8916" | 23 | "qcom,rpm-msm8916" |
24 | "qcom,rpm-msm8974" | 24 | "qcom,rpm-msm8974" |
25 | "qcom,rpm-msm8998" | ||
25 | 26 | ||
26 | - qcom,smd-channels: | 27 | - qcom,smd-channels: |
27 | Usage: required | 28 | Usage: required |
diff --git a/MAINTAINERS b/MAINTAINERS index 0ee6fe90a52b..12b27679ae0c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -1830,7 +1830,7 @@ F: drivers/spi/spi-qup.c | |||
1830 | F: drivers/tty/serial/msm_serial.c | 1830 | F: drivers/tty/serial/msm_serial.c |
1831 | F: drivers/*/pm8???-* | 1831 | F: drivers/*/pm8???-* |
1832 | F: drivers/mfd/ssbi.c | 1832 | F: drivers/mfd/ssbi.c |
1833 | F: drivers/firmware/qcom_scm.c | 1833 | F: drivers/firmware/qcom_scm* |
1834 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git | 1834 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git |
1835 | 1835 | ||
1836 | ARM/RADISYS ENP2611 MACHINE SUPPORT | 1836 | ARM/RADISYS ENP2611 MACHINE SUPPORT |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 19124f0efe60..37a3de760d40 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -807,6 +807,7 @@ dtb-$(CONFIG_ARCH_RENESAS) += \ | |||
807 | r8a7745-iwg22d-sodimm.dtb \ | 807 | r8a7745-iwg22d-sodimm.dtb \ |
808 | r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ | 808 | r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ |
809 | r8a7745-sk-rzg1e.dtb \ | 809 | r8a7745-sk-rzg1e.dtb \ |
810 | r8a77470-iwg23s-sbc.dtb \ | ||
810 | r8a7778-bockw.dtb \ | 811 | r8a7778-bockw.dtb \ |
811 | r8a7779-marzen.dtb \ | 812 | r8a7779-marzen.dtb \ |
812 | r8a7790-lager.dtb \ | 813 | r8a7790-lager.dtb \ |
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts index c238407133bf..0af44b7eadb9 100644 --- a/arch/arm/boot/dts/emev2-kzm9d.dts +++ b/arch/arm/boot/dts/emev2-kzm9d.dts | |||
@@ -34,9 +34,6 @@ | |||
34 | 34 | ||
35 | gpio_keys { | 35 | gpio_keys { |
36 | compatible = "gpio-keys"; | 36 | compatible = "gpio-keys"; |
37 | #address-cells = <1>; | ||
38 | #size-cells = <0>; | ||
39 | |||
40 | one { | 37 | one { |
41 | debounce-interval = <50>; | 38 | debounce-interval = <50>; |
42 | wakeup-source; | 39 | wakeup-source; |
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi index 42ea246e71cb..fec1241b858f 100644 --- a/arch/arm/boot/dts/emev2.dtsi +++ b/arch/arm/boot/dts/emev2.dtsi | |||
@@ -31,13 +31,13 @@ | |||
31 | #address-cells = <1>; | 31 | #address-cells = <1>; |
32 | #size-cells = <0>; | 32 | #size-cells = <0>; |
33 | 33 | ||
34 | cpu@0 { | 34 | cpu0: cpu@0 { |
35 | device_type = "cpu"; | 35 | device_type = "cpu"; |
36 | compatible = "arm,cortex-a9"; | 36 | compatible = "arm,cortex-a9"; |
37 | reg = <0>; | 37 | reg = <0>; |
38 | clock-frequency = <533000000>; | 38 | clock-frequency = <533000000>; |
39 | }; | 39 | }; |
40 | cpu@1 { | 40 | cpu1: cpu@1 { |
41 | device_type = "cpu"; | 41 | device_type = "cpu"; |
42 | compatible = "arm,cortex-a9"; | 42 | compatible = "arm,cortex-a9"; |
43 | reg = <1>; | 43 | reg = <1>; |
@@ -57,6 +57,7 @@ | |||
57 | compatible = "arm,cortex-a9-pmu"; | 57 | compatible = "arm,cortex-a9-pmu"; |
58 | interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, | 58 | interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, |
59 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 59 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; |
60 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
60 | }; | 61 | }; |
61 | 62 | ||
62 | clocks@e0110000 { | 63 | clocks@e0110000 { |
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi index ab9645a42eca..a54822e97bac 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | / { | 16 | / { |
17 | compatible = "renesas,r7s72100"; | 17 | compatible = "renesas,r7s72100"; |
18 | interrupt-parent = <&gic>; | ||
19 | #address-cells = <1>; | 18 | #address-cells = <1>; |
20 | #size-cells = <1>; | 19 | #size-cells = <1>; |
21 | 20 | ||
@@ -31,61 +30,370 @@ | |||
31 | spi4 = &spi4; | 30 | spi4 = &spi4; |
32 | }; | 31 | }; |
33 | 32 | ||
34 | clocks { | 33 | /* Fixed factor clocks */ |
35 | ranges; | 34 | b_clk: b { |
35 | #clock-cells = <0>; | ||
36 | compatible = "fixed-factor-clock"; | ||
37 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | ||
38 | clock-mult = <1>; | ||
39 | clock-div = <3>; | ||
40 | }; | ||
41 | |||
42 | cpus { | ||
43 | #address-cells = <1>; | ||
44 | #size-cells = <0>; | ||
45 | |||
46 | cpu@0 { | ||
47 | device_type = "cpu"; | ||
48 | compatible = "arm,cortex-a9"; | ||
49 | reg = <0>; | ||
50 | clock-frequency = <400000000>; | ||
51 | clocks = <&cpg_clocks R7S72100_CLK_I>; | ||
52 | next-level-cache = <&L2>; | ||
53 | }; | ||
54 | }; | ||
55 | |||
56 | /* External clocks */ | ||
57 | extal_clk: extal { | ||
58 | #clock-cells = <0>; | ||
59 | compatible = "fixed-clock"; | ||
60 | /* If clk present, value must be set by board */ | ||
61 | clock-frequency = <0>; | ||
62 | }; | ||
63 | |||
64 | p0_clk: p0 { | ||
65 | #clock-cells = <0>; | ||
66 | compatible = "fixed-factor-clock"; | ||
67 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | ||
68 | clock-mult = <1>; | ||
69 | clock-div = <12>; | ||
70 | }; | ||
71 | |||
72 | p1_clk: p1 { | ||
73 | #clock-cells = <0>; | ||
74 | compatible = "fixed-factor-clock"; | ||
75 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | ||
76 | clock-mult = <1>; | ||
77 | clock-div = <6>; | ||
78 | }; | ||
79 | |||
80 | pmu { | ||
81 | compatible = "arm,cortex-a9-pmu"; | ||
82 | interrupts-extended = <&gic GIC_PPI 0 IRQ_TYPE_LEVEL_HIGH>; | ||
83 | }; | ||
84 | |||
85 | rtc_x1_clk: rtc_x1 { | ||
86 | #clock-cells = <0>; | ||
87 | compatible = "fixed-clock"; | ||
88 | /* If clk present, value must be set by board to 32678 */ | ||
89 | clock-frequency = <0>; | ||
90 | }; | ||
91 | |||
92 | rtc_x3_clk: rtc_x3 { | ||
93 | #clock-cells = <0>; | ||
94 | compatible = "fixed-clock"; | ||
95 | /* If clk present, value must be set by board to 4000000 */ | ||
96 | clock-frequency = <0>; | ||
97 | }; | ||
98 | |||
99 | soc { | ||
100 | compatible = "simple-bus"; | ||
101 | interrupt-parent = <&gic>; | ||
102 | |||
36 | #address-cells = <1>; | 103 | #address-cells = <1>; |
37 | #size-cells = <1>; | 104 | #size-cells = <1>; |
105 | ranges; | ||
106 | |||
107 | L2: cache-controller@3ffff000 { | ||
108 | compatible = "arm,pl310-cache"; | ||
109 | reg = <0x3ffff000 0x1000>; | ||
110 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
111 | arm,early-bresp-disable; | ||
112 | arm,full-line-zero-disable; | ||
113 | cache-unified; | ||
114 | cache-level = <2>; | ||
115 | }; | ||
116 | |||
117 | scif0: serial@e8007000 { | ||
118 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
119 | reg = <0xe8007000 64>; | ||
120 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, | ||
121 | <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, | ||
122 | <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, | ||
123 | <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | ||
124 | clocks = <&mstp4_clks R7S72100_CLK_SCIF0>; | ||
125 | clock-names = "fck"; | ||
126 | power-domains = <&cpg_clocks>; | ||
127 | status = "disabled"; | ||
128 | }; | ||
129 | |||
130 | scif1: serial@e8007800 { | ||
131 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
132 | reg = <0xe8007800 64>; | ||
133 | interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, | ||
134 | <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, | ||
135 | <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
136 | <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||
137 | clocks = <&mstp4_clks R7S72100_CLK_SCIF1>; | ||
138 | clock-names = "fck"; | ||
139 | power-domains = <&cpg_clocks>; | ||
140 | status = "disabled"; | ||
141 | }; | ||
142 | |||
143 | scif2: serial@e8008000 { | ||
144 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
145 | reg = <0xe8008000 64>; | ||
146 | interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, | ||
147 | <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, | ||
148 | <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, | ||
149 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
150 | clocks = <&mstp4_clks R7S72100_CLK_SCIF2>; | ||
151 | clock-names = "fck"; | ||
152 | power-domains = <&cpg_clocks>; | ||
153 | status = "disabled"; | ||
154 | }; | ||
155 | |||
156 | scif3: serial@e8008800 { | ||
157 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
158 | reg = <0xe8008800 64>; | ||
159 | interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, | ||
160 | <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, | ||
161 | <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, | ||
162 | <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; | ||
163 | clocks = <&mstp4_clks R7S72100_CLK_SCIF3>; | ||
164 | clock-names = "fck"; | ||
165 | power-domains = <&cpg_clocks>; | ||
166 | status = "disabled"; | ||
167 | }; | ||
38 | 168 | ||
39 | /* External clocks */ | 169 | scif4: serial@e8009000 { |
40 | extal_clk: extal { | 170 | compatible = "renesas,scif-r7s72100", "renesas,scif"; |
41 | #clock-cells = <0>; | 171 | reg = <0xe8009000 64>; |
42 | compatible = "fixed-clock"; | 172 | interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, |
43 | /* If clk present, value must be set by board */ | 173 | <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, |
44 | clock-frequency = <0>; | 174 | <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, |
175 | <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; | ||
176 | clocks = <&mstp4_clks R7S72100_CLK_SCIF4>; | ||
177 | clock-names = "fck"; | ||
178 | power-domains = <&cpg_clocks>; | ||
179 | status = "disabled"; | ||
45 | }; | 180 | }; |
46 | 181 | ||
47 | usb_x1_clk: usb_x1 { | 182 | scif5: serial@e8009800 { |
48 | #clock-cells = <0>; | 183 | compatible = "renesas,scif-r7s72100", "renesas,scif"; |
49 | compatible = "fixed-clock"; | 184 | reg = <0xe8009800 64>; |
50 | /* If clk present, value must be set by board */ | 185 | interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, |
51 | clock-frequency = <0>; | 186 | <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, |
187 | <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, | ||
188 | <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; | ||
189 | clocks = <&mstp4_clks R7S72100_CLK_SCIF5>; | ||
190 | clock-names = "fck"; | ||
191 | power-domains = <&cpg_clocks>; | ||
192 | status = "disabled"; | ||
52 | }; | 193 | }; |
53 | 194 | ||
54 | rtc_x1_clk: rtc_x1 { | 195 | scif6: serial@e800a000 { |
55 | #clock-cells = <0>; | 196 | compatible = "renesas,scif-r7s72100", "renesas,scif"; |
56 | compatible = "fixed-clock"; | 197 | reg = <0xe800a000 64>; |
57 | /* If clk present, value must be set by board to 32678 */ | 198 | interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, |
58 | clock-frequency = <0>; | 199 | <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, |
200 | <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>, | ||
201 | <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; | ||
202 | clocks = <&mstp4_clks R7S72100_CLK_SCIF6>; | ||
203 | clock-names = "fck"; | ||
204 | power-domains = <&cpg_clocks>; | ||
205 | status = "disabled"; | ||
59 | }; | 206 | }; |
60 | 207 | ||
61 | rtc_x3_clk: rtc_x3 { | 208 | scif7: serial@e800a800 { |
62 | #clock-cells = <0>; | 209 | compatible = "renesas,scif-r7s72100", "renesas,scif"; |
63 | compatible = "fixed-clock"; | 210 | reg = <0xe800a800 64>; |
64 | /* If clk present, value must be set by board to 4000000 */ | 211 | interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, |
65 | clock-frequency = <0>; | 212 | <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, |
213 | <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, | ||
214 | <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; | ||
215 | clocks = <&mstp4_clks R7S72100_CLK_SCIF7>; | ||
216 | clock-names = "fck"; | ||
217 | power-domains = <&cpg_clocks>; | ||
218 | status = "disabled"; | ||
66 | }; | 219 | }; |
67 | 220 | ||
68 | /* Fixed factor clocks */ | 221 | spi0: spi@e800c800 { |
69 | b_clk: b { | 222 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; |
70 | #clock-cells = <0>; | 223 | reg = <0xe800c800 0x24>; |
71 | compatible = "fixed-factor-clock"; | 224 | interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, |
72 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | 225 | <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>, |
73 | clock-mult = <1>; | 226 | <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; |
74 | clock-div = <3>; | 227 | interrupt-names = "error", "rx", "tx"; |
228 | clocks = <&mstp10_clks R7S72100_CLK_SPI0>; | ||
229 | power-domains = <&cpg_clocks>; | ||
230 | num-cs = <1>; | ||
231 | #address-cells = <1>; | ||
232 | #size-cells = <0>; | ||
233 | status = "disabled"; | ||
75 | }; | 234 | }; |
76 | p1_clk: p1 { | 235 | |
77 | #clock-cells = <0>; | 236 | spi1: spi@e800d000 { |
78 | compatible = "fixed-factor-clock"; | 237 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; |
79 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | 238 | reg = <0xe800d000 0x24>; |
80 | clock-mult = <1>; | 239 | interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>, |
81 | clock-div = <6>; | 240 | <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, |
241 | <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; | ||
242 | interrupt-names = "error", "rx", "tx"; | ||
243 | clocks = <&mstp10_clks R7S72100_CLK_SPI1>; | ||
244 | power-domains = <&cpg_clocks>; | ||
245 | num-cs = <1>; | ||
246 | #address-cells = <1>; | ||
247 | #size-cells = <0>; | ||
248 | status = "disabled"; | ||
249 | }; | ||
250 | |||
251 | spi2: spi@e800d800 { | ||
252 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
253 | reg = <0xe800d800 0x24>; | ||
254 | interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, | ||
255 | <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, | ||
256 | <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
257 | interrupt-names = "error", "rx", "tx"; | ||
258 | clocks = <&mstp10_clks R7S72100_CLK_SPI2>; | ||
259 | power-domains = <&cpg_clocks>; | ||
260 | num-cs = <1>; | ||
261 | #address-cells = <1>; | ||
262 | #size-cells = <0>; | ||
263 | status = "disabled"; | ||
82 | }; | 264 | }; |
83 | p0_clk: p0 { | 265 | |
84 | #clock-cells = <0>; | 266 | spi3: spi@e800e000 { |
85 | compatible = "fixed-factor-clock"; | 267 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; |
86 | clocks = <&cpg_clocks R7S72100_CLK_PLL>; | 268 | reg = <0xe800e000 0x24>; |
87 | clock-mult = <1>; | 269 | interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, |
88 | clock-div = <12>; | 270 | <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>, |
271 | <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; | ||
272 | interrupt-names = "error", "rx", "tx"; | ||
273 | clocks = <&mstp10_clks R7S72100_CLK_SPI3>; | ||
274 | power-domains = <&cpg_clocks>; | ||
275 | num-cs = <1>; | ||
276 | #address-cells = <1>; | ||
277 | #size-cells = <0>; | ||
278 | status = "disabled"; | ||
279 | }; | ||
280 | |||
281 | spi4: spi@e800e800 { | ||
282 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
283 | reg = <0xe800e800 0x24>; | ||
284 | interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>, | ||
285 | <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, | ||
286 | <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>; | ||
287 | interrupt-names = "error", "rx", "tx"; | ||
288 | clocks = <&mstp10_clks R7S72100_CLK_SPI4>; | ||
289 | power-domains = <&cpg_clocks>; | ||
290 | num-cs = <1>; | ||
291 | #address-cells = <1>; | ||
292 | #size-cells = <0>; | ||
293 | status = "disabled"; | ||
294 | }; | ||
295 | |||
296 | usbhs0: usb@e8010000 { | ||
297 | compatible = "renesas,usbhs-r7s72100", "renesas,rza1-usbhs"; | ||
298 | reg = <0xe8010000 0x1a0>; | ||
299 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | ||
300 | clocks = <&mstp7_clks R7S72100_CLK_USB0>; | ||
301 | renesas,buswait = <4>; | ||
302 | power-domains = <&cpg_clocks>; | ||
303 | status = "disabled"; | ||
304 | }; | ||
305 | |||
306 | usbhs1: usb@e8207000 { | ||
307 | compatible = "renesas,usbhs-r7s72100", "renesas,rza1-usbhs"; | ||
308 | reg = <0xe8207000 0x1a0>; | ||
309 | interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; | ||
310 | clocks = <&mstp7_clks R7S72100_CLK_USB1>; | ||
311 | renesas,buswait = <4>; | ||
312 | power-domains = <&cpg_clocks>; | ||
313 | status = "disabled"; | ||
314 | }; | ||
315 | |||
316 | mmcif: mmc@e804c800 { | ||
317 | compatible = "renesas,mmcif-r7s72100", "renesas,sh-mmcif"; | ||
318 | reg = <0xe804c800 0x80>; | ||
319 | interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH | ||
320 | GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH | ||
321 | GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; | ||
322 | clocks = <&mstp8_clks R7S72100_CLK_MMCIF>; | ||
323 | power-domains = <&cpg_clocks>; | ||
324 | reg-io-width = <4>; | ||
325 | bus-width = <8>; | ||
326 | status = "disabled"; | ||
327 | }; | ||
328 | |||
329 | sdhi0: sd@e804e000 { | ||
330 | compatible = "renesas,sdhi-r7s72100"; | ||
331 | reg = <0xe804e000 0x100>; | ||
332 | interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH | ||
333 | GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH | ||
334 | GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; | ||
335 | |||
336 | clocks = <&mstp12_clks R7S72100_CLK_SDHI00>, | ||
337 | <&mstp12_clks R7S72100_CLK_SDHI01>; | ||
338 | clock-names = "core", "cd"; | ||
339 | power-domains = <&cpg_clocks>; | ||
340 | cap-sd-highspeed; | ||
341 | cap-sdio-irq; | ||
342 | status = "disabled"; | ||
343 | }; | ||
344 | |||
345 | sdhi1: sd@e804e800 { | ||
346 | compatible = "renesas,sdhi-r7s72100"; | ||
347 | reg = <0xe804e800 0x100>; | ||
348 | interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH | ||
349 | GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH | ||
350 | GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>; | ||
351 | |||
352 | clocks = <&mstp12_clks R7S72100_CLK_SDHI10>, | ||
353 | <&mstp12_clks R7S72100_CLK_SDHI11>; | ||
354 | clock-names = "core", "cd"; | ||
355 | power-domains = <&cpg_clocks>; | ||
356 | cap-sd-highspeed; | ||
357 | cap-sdio-irq; | ||
358 | status = "disabled"; | ||
359 | }; | ||
360 | |||
361 | gic: interrupt-controller@e8201000 { | ||
362 | compatible = "arm,pl390"; | ||
363 | #interrupt-cells = <3>; | ||
364 | #address-cells = <0>; | ||
365 | interrupt-controller; | ||
366 | reg = <0xe8201000 0x1000>, | ||
367 | <0xe8202000 0x1000>; | ||
368 | }; | ||
369 | |||
370 | ether: ethernet@e8203000 { | ||
371 | compatible = "renesas,ether-r7s72100"; | ||
372 | reg = <0xe8203000 0x800>, | ||
373 | <0xe8204800 0x200>; | ||
374 | interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; | ||
375 | clocks = <&mstp7_clks R7S72100_CLK_ETHER>; | ||
376 | power-domains = <&cpg_clocks>; | ||
377 | phy-mode = "mii"; | ||
378 | #address-cells = <1>; | ||
379 | #size-cells = <0>; | ||
380 | status = "disabled"; | ||
381 | }; | ||
382 | |||
383 | ceu: camera@e8210000 { | ||
384 | reg = <0xe8210000 0x3000>; | ||
385 | compatible = "renesas,r7s72100-ceu"; | ||
386 | interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; | ||
387 | clocks = <&mstp6_clks R7S72100_CLK_CEU>; | ||
388 | power-domains = <&cpg_clocks>; | ||
389 | status = "disabled"; | ||
390 | }; | ||
391 | |||
392 | wdt: watchdog@fcfe0000 { | ||
393 | compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt"; | ||
394 | reg = <0xfcfe0000 0x6>; | ||
395 | interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | ||
396 | clocks = <&p0_clk>; | ||
89 | }; | 397 | }; |
90 | 398 | ||
91 | /* Special CPG clocks */ | 399 | /* Special CPG clocks */ |
@@ -135,9 +443,9 @@ | |||
135 | #clock-cells = <1>; | 443 | #clock-cells = <1>; |
136 | compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; | 444 | compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; |
137 | reg = <0xfcfe042c 4>; | 445 | reg = <0xfcfe042c 4>; |
138 | clocks = <&p0_clk>; | 446 | clocks = <&b_clk>, <&p0_clk>; |
139 | clock-indices = <R7S72100_CLK_RTC>; | 447 | clock-indices = <R7S72100_CLK_CEU R7S72100_CLK_RTC>; |
140 | clock-output-names = "rtc"; | 448 | clock-output-names = "ceu", "rtc"; |
141 | }; | 449 | }; |
142 | 450 | ||
143 | mstp7_clks: mstp7_clks@fcfe0430 { | 451 | mstp7_clks: mstp7_clks@fcfe0430 { |
@@ -192,479 +500,209 @@ | |||
192 | >; | 500 | >; |
193 | clock-output-names = "sdhi00", "sdhi01", "sdhi10", "sdhi11"; | 501 | clock-output-names = "sdhi00", "sdhi01", "sdhi10", "sdhi11"; |
194 | }; | 502 | }; |
195 | }; | ||
196 | |||
197 | cpus { | ||
198 | #address-cells = <1>; | ||
199 | #size-cells = <0>; | ||
200 | |||
201 | cpu@0 { | ||
202 | device_type = "cpu"; | ||
203 | compatible = "arm,cortex-a9"; | ||
204 | reg = <0>; | ||
205 | clock-frequency = <400000000>; | ||
206 | clocks = <&cpg_clocks R7S72100_CLK_I>; | ||
207 | next-level-cache = <&L2>; | ||
208 | }; | ||
209 | }; | ||
210 | |||
211 | pinctrl: pin-controller@fcfe3000 { | ||
212 | compatible = "renesas,r7s72100-ports"; | ||
213 | |||
214 | reg = <0xfcfe3000 0x4230>; | ||
215 | |||
216 | port0: gpio-0 { | ||
217 | gpio-controller; | ||
218 | #gpio-cells = <2>; | ||
219 | gpio-ranges = <&pinctrl 0 0 6>; | ||
220 | }; | ||
221 | |||
222 | port1: gpio-1 { | ||
223 | gpio-controller; | ||
224 | #gpio-cells = <2>; | ||
225 | gpio-ranges = <&pinctrl 0 16 16>; | ||
226 | }; | ||
227 | 503 | ||
228 | port2: gpio-2 { | 504 | pinctrl: pin-controller@fcfe3000 { |
229 | gpio-controller; | 505 | compatible = "renesas,r7s72100-ports"; |
230 | #gpio-cells = <2>; | 506 | |
231 | gpio-ranges = <&pinctrl 0 32 16>; | 507 | reg = <0xfcfe3000 0x4230>; |
508 | |||
509 | port0: gpio-0 { | ||
510 | gpio-controller; | ||
511 | #gpio-cells = <2>; | ||
512 | gpio-ranges = <&pinctrl 0 0 6>; | ||
513 | }; | ||
514 | |||
515 | port1: gpio-1 { | ||
516 | gpio-controller; | ||
517 | #gpio-cells = <2>; | ||
518 | gpio-ranges = <&pinctrl 0 16 16>; | ||
519 | }; | ||
520 | |||
521 | port2: gpio-2 { | ||
522 | gpio-controller; | ||
523 | #gpio-cells = <2>; | ||
524 | gpio-ranges = <&pinctrl 0 32 16>; | ||
525 | }; | ||
526 | |||
527 | port3: gpio-3 { | ||
528 | gpio-controller; | ||
529 | #gpio-cells = <2>; | ||
530 | gpio-ranges = <&pinctrl 0 48 16>; | ||
531 | }; | ||
532 | |||
533 | port4: gpio-4 { | ||
534 | gpio-controller; | ||
535 | #gpio-cells = <2>; | ||
536 | gpio-ranges = <&pinctrl 0 64 16>; | ||
537 | }; | ||
538 | |||
539 | port5: gpio-5 { | ||
540 | gpio-controller; | ||
541 | #gpio-cells = <2>; | ||
542 | gpio-ranges = <&pinctrl 0 80 11>; | ||
543 | }; | ||
544 | |||
545 | port6: gpio-6 { | ||
546 | gpio-controller; | ||
547 | #gpio-cells = <2>; | ||
548 | gpio-ranges = <&pinctrl 0 96 16>; | ||
549 | }; | ||
550 | |||
551 | port7: gpio-7 { | ||
552 | gpio-controller; | ||
553 | #gpio-cells = <2>; | ||
554 | gpio-ranges = <&pinctrl 0 112 16>; | ||
555 | }; | ||
556 | |||
557 | port8: gpio-8 { | ||
558 | gpio-controller; | ||
559 | #gpio-cells = <2>; | ||
560 | gpio-ranges = <&pinctrl 0 128 16>; | ||
561 | }; | ||
562 | |||
563 | port9: gpio-9 { | ||
564 | gpio-controller; | ||
565 | #gpio-cells = <2>; | ||
566 | gpio-ranges = <&pinctrl 0 144 8>; | ||
567 | }; | ||
568 | |||
569 | port10: gpio-10 { | ||
570 | gpio-controller; | ||
571 | #gpio-cells = <2>; | ||
572 | gpio-ranges = <&pinctrl 0 160 16>; | ||
573 | }; | ||
574 | |||
575 | port11: gpio-11 { | ||
576 | gpio-controller; | ||
577 | #gpio-cells = <2>; | ||
578 | gpio-ranges = <&pinctrl 0 176 16>; | ||
579 | }; | ||
232 | }; | 580 | }; |
233 | 581 | ||
234 | port3: gpio-3 { | 582 | ostm0: timer@fcfec000 { |
235 | gpio-controller; | 583 | compatible = "renesas,r7s72100-ostm", "renesas,ostm"; |
236 | #gpio-cells = <2>; | 584 | reg = <0xfcfec000 0x30>; |
237 | gpio-ranges = <&pinctrl 0 48 16>; | 585 | interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; |
586 | clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; | ||
587 | power-domains = <&cpg_clocks>; | ||
588 | status = "disabled"; | ||
238 | }; | 589 | }; |
239 | 590 | ||
240 | port4: gpio-4 { | 591 | ostm1: timer@fcfec400 { |
241 | gpio-controller; | 592 | compatible = "renesas,r7s72100-ostm", "renesas,ostm"; |
242 | #gpio-cells = <2>; | 593 | reg = <0xfcfec400 0x30>; |
243 | gpio-ranges = <&pinctrl 0 64 16>; | 594 | interrupts = <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>; |
595 | clocks = <&mstp5_clks R7S72100_CLK_OSTM1>; | ||
596 | power-domains = <&cpg_clocks>; | ||
597 | status = "disabled"; | ||
244 | }; | 598 | }; |
245 | 599 | ||
246 | port5: gpio-5 { | 600 | i2c0: i2c@fcfee000 { |
247 | gpio-controller; | 601 | #address-cells = <1>; |
248 | #gpio-cells = <2>; | 602 | #size-cells = <0>; |
249 | gpio-ranges = <&pinctrl 0 80 11>; | 603 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; |
604 | reg = <0xfcfee000 0x44>; | ||
605 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, | ||
606 | <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>, | ||
607 | <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>, | ||
608 | <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, | ||
609 | <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||
610 | <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||
611 | <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, | ||
612 | <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | ||
613 | clocks = <&mstp9_clks R7S72100_CLK_I2C0>; | ||
614 | clock-frequency = <100000>; | ||
615 | power-domains = <&cpg_clocks>; | ||
616 | status = "disabled"; | ||
250 | }; | 617 | }; |
251 | 618 | ||
252 | port6: gpio-6 { | 619 | i2c1: i2c@fcfee400 { |
253 | gpio-controller; | 620 | #address-cells = <1>; |
254 | #gpio-cells = <2>; | 621 | #size-cells = <0>; |
255 | gpio-ranges = <&pinctrl 0 96 16>; | 622 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; |
623 | reg = <0xfcfee400 0x44>; | ||
624 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, | ||
625 | <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>, | ||
626 | <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>, | ||
627 | <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, | ||
628 | <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, | ||
629 | <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, | ||
630 | <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, | ||
631 | <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; | ||
632 | clocks = <&mstp9_clks R7S72100_CLK_I2C1>; | ||
633 | clock-frequency = <100000>; | ||
634 | power-domains = <&cpg_clocks>; | ||
635 | status = "disabled"; | ||
256 | }; | 636 | }; |
257 | 637 | ||
258 | port7: gpio-7 { | 638 | i2c2: i2c@fcfee800 { |
259 | gpio-controller; | 639 | #address-cells = <1>; |
260 | #gpio-cells = <2>; | 640 | #size-cells = <0>; |
261 | gpio-ranges = <&pinctrl 0 112 16>; | 641 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; |
642 | reg = <0xfcfee800 0x44>; | ||
643 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, | ||
644 | <GIC_SPI 174 IRQ_TYPE_EDGE_RISING>, | ||
645 | <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>, | ||
646 | <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, | ||
647 | <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, | ||
648 | <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, | ||
649 | <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, | ||
650 | <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; | ||
651 | clocks = <&mstp9_clks R7S72100_CLK_I2C2>; | ||
652 | clock-frequency = <100000>; | ||
653 | power-domains = <&cpg_clocks>; | ||
654 | status = "disabled"; | ||
262 | }; | 655 | }; |
263 | 656 | ||
264 | port8: gpio-8 { | 657 | i2c3: i2c@fcfeec00 { |
265 | gpio-controller; | 658 | #address-cells = <1>; |
266 | #gpio-cells = <2>; | 659 | #size-cells = <0>; |
267 | gpio-ranges = <&pinctrl 0 128 16>; | 660 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; |
661 | reg = <0xfcfeec00 0x44>; | ||
662 | interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, | ||
663 | <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>, | ||
664 | <GIC_SPI 183 IRQ_TYPE_EDGE_RISING>, | ||
665 | <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>, | ||
666 | <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>, | ||
667 | <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, | ||
668 | <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, | ||
669 | <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | ||
670 | clocks = <&mstp9_clks R7S72100_CLK_I2C3>; | ||
671 | clock-frequency = <100000>; | ||
672 | power-domains = <&cpg_clocks>; | ||
673 | status = "disabled"; | ||
268 | }; | 674 | }; |
269 | 675 | ||
270 | port9: gpio-9 { | 676 | mtu2: timer@fcff0000 { |
271 | gpio-controller; | 677 | compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; |
272 | #gpio-cells = <2>; | 678 | reg = <0xfcff0000 0x400>; |
273 | gpio-ranges = <&pinctrl 0 144 8>; | 679 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; |
680 | interrupt-names = "tgi0a"; | ||
681 | clocks = <&mstp3_clks R7S72100_CLK_MTU2>; | ||
682 | clock-names = "fck"; | ||
683 | power-domains = <&cpg_clocks>; | ||
684 | status = "disabled"; | ||
274 | }; | 685 | }; |
275 | 686 | ||
276 | port10: gpio-10 { | 687 | rtc: rtc@fcff1000 { |
277 | gpio-controller; | 688 | compatible = "renesas,r7s72100-rtc", "renesas,sh-rtc"; |
278 | #gpio-cells = <2>; | 689 | reg = <0xfcff1000 0x2e>; |
279 | gpio-ranges = <&pinctrl 0 160 16>; | 690 | interrupts = <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>, |
691 | <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, | ||
692 | <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>; | ||
693 | interrupt-names = "alarm", "period", "carry"; | ||
694 | clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>, | ||
695 | <&rtc_x3_clk>, <&extal_clk>; | ||
696 | clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; | ||
697 | power-domains = <&cpg_clocks>; | ||
698 | status = "disabled"; | ||
280 | }; | 699 | }; |
281 | |||
282 | port11: gpio-11 { | ||
283 | gpio-controller; | ||
284 | #gpio-cells = <2>; | ||
285 | gpio-ranges = <&pinctrl 0 176 16>; | ||
286 | }; | ||
287 | }; | ||
288 | |||
289 | scif0: serial@e8007000 { | ||
290 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
291 | reg = <0xe8007000 64>; | ||
292 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, | ||
293 | <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, | ||
294 | <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, | ||
295 | <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | ||
296 | clocks = <&mstp4_clks R7S72100_CLK_SCIF0>; | ||
297 | clock-names = "fck"; | ||
298 | power-domains = <&cpg_clocks>; | ||
299 | status = "disabled"; | ||
300 | }; | ||
301 | |||
302 | scif1: serial@e8007800 { | ||
303 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
304 | reg = <0xe8007800 64>; | ||
305 | interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, | ||
306 | <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, | ||
307 | <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
308 | <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||
309 | clocks = <&mstp4_clks R7S72100_CLK_SCIF1>; | ||
310 | clock-names = "fck"; | ||
311 | power-domains = <&cpg_clocks>; | ||
312 | status = "disabled"; | ||
313 | }; | ||
314 | |||
315 | scif2: serial@e8008000 { | ||
316 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
317 | reg = <0xe8008000 64>; | ||
318 | interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, | ||
319 | <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, | ||
320 | <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, | ||
321 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
322 | clocks = <&mstp4_clks R7S72100_CLK_SCIF2>; | ||
323 | clock-names = "fck"; | ||
324 | power-domains = <&cpg_clocks>; | ||
325 | status = "disabled"; | ||
326 | }; | ||
327 | |||
328 | scif3: serial@e8008800 { | ||
329 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
330 | reg = <0xe8008800 64>; | ||
331 | interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, | ||
332 | <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, | ||
333 | <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, | ||
334 | <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; | ||
335 | clocks = <&mstp4_clks R7S72100_CLK_SCIF3>; | ||
336 | clock-names = "fck"; | ||
337 | power-domains = <&cpg_clocks>; | ||
338 | status = "disabled"; | ||
339 | }; | ||
340 | |||
341 | scif4: serial@e8009000 { | ||
342 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
343 | reg = <0xe8009000 64>; | ||
344 | interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, | ||
345 | <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, | ||
346 | <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, | ||
347 | <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; | ||
348 | clocks = <&mstp4_clks R7S72100_CLK_SCIF4>; | ||
349 | clock-names = "fck"; | ||
350 | power-domains = <&cpg_clocks>; | ||
351 | status = "disabled"; | ||
352 | }; | ||
353 | |||
354 | scif5: serial@e8009800 { | ||
355 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
356 | reg = <0xe8009800 64>; | ||
357 | interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, | ||
358 | <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, | ||
359 | <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, | ||
360 | <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; | ||
361 | clocks = <&mstp4_clks R7S72100_CLK_SCIF5>; | ||
362 | clock-names = "fck"; | ||
363 | power-domains = <&cpg_clocks>; | ||
364 | status = "disabled"; | ||
365 | }; | ||
366 | |||
367 | scif6: serial@e800a000 { | ||
368 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
369 | reg = <0xe800a000 64>; | ||
370 | interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, | ||
371 | <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, | ||
372 | <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>, | ||
373 | <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; | ||
374 | clocks = <&mstp4_clks R7S72100_CLK_SCIF6>; | ||
375 | clock-names = "fck"; | ||
376 | power-domains = <&cpg_clocks>; | ||
377 | status = "disabled"; | ||
378 | }; | ||
379 | |||
380 | scif7: serial@e800a800 { | ||
381 | compatible = "renesas,scif-r7s72100", "renesas,scif"; | ||
382 | reg = <0xe800a800 64>; | ||
383 | interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, | ||
384 | <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, | ||
385 | <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, | ||
386 | <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; | ||
387 | clocks = <&mstp4_clks R7S72100_CLK_SCIF7>; | ||
388 | clock-names = "fck"; | ||
389 | power-domains = <&cpg_clocks>; | ||
390 | status = "disabled"; | ||
391 | }; | ||
392 | |||
393 | spi0: spi@e800c800 { | ||
394 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
395 | reg = <0xe800c800 0x24>; | ||
396 | interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, | ||
397 | <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>, | ||
398 | <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; | ||
399 | interrupt-names = "error", "rx", "tx"; | ||
400 | clocks = <&mstp10_clks R7S72100_CLK_SPI0>; | ||
401 | power-domains = <&cpg_clocks>; | ||
402 | num-cs = <1>; | ||
403 | #address-cells = <1>; | ||
404 | #size-cells = <0>; | ||
405 | status = "disabled"; | ||
406 | }; | ||
407 | |||
408 | spi1: spi@e800d000 { | ||
409 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
410 | reg = <0xe800d000 0x24>; | ||
411 | interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>, | ||
412 | <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, | ||
413 | <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; | ||
414 | interrupt-names = "error", "rx", "tx"; | ||
415 | clocks = <&mstp10_clks R7S72100_CLK_SPI1>; | ||
416 | power-domains = <&cpg_clocks>; | ||
417 | num-cs = <1>; | ||
418 | #address-cells = <1>; | ||
419 | #size-cells = <0>; | ||
420 | status = "disabled"; | ||
421 | }; | ||
422 | |||
423 | spi2: spi@e800d800 { | ||
424 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
425 | reg = <0xe800d800 0x24>; | ||
426 | interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, | ||
427 | <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, | ||
428 | <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
429 | interrupt-names = "error", "rx", "tx"; | ||
430 | clocks = <&mstp10_clks R7S72100_CLK_SPI2>; | ||
431 | power-domains = <&cpg_clocks>; | ||
432 | num-cs = <1>; | ||
433 | #address-cells = <1>; | ||
434 | #size-cells = <0>; | ||
435 | status = "disabled"; | ||
436 | }; | ||
437 | |||
438 | spi3: spi@e800e000 { | ||
439 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
440 | reg = <0xe800e000 0x24>; | ||
441 | interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, | ||
442 | <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>, | ||
443 | <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; | ||
444 | interrupt-names = "error", "rx", "tx"; | ||
445 | clocks = <&mstp10_clks R7S72100_CLK_SPI3>; | ||
446 | power-domains = <&cpg_clocks>; | ||
447 | num-cs = <1>; | ||
448 | #address-cells = <1>; | ||
449 | #size-cells = <0>; | ||
450 | status = "disabled"; | ||
451 | }; | ||
452 | |||
453 | spi4: spi@e800e800 { | ||
454 | compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; | ||
455 | reg = <0xe800e800 0x24>; | ||
456 | interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>, | ||
457 | <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, | ||
458 | <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>; | ||
459 | interrupt-names = "error", "rx", "tx"; | ||
460 | clocks = <&mstp10_clks R7S72100_CLK_SPI4>; | ||
461 | power-domains = <&cpg_clocks>; | ||
462 | num-cs = <1>; | ||
463 | #address-cells = <1>; | ||
464 | #size-cells = <0>; | ||
465 | status = "disabled"; | ||
466 | }; | ||
467 | |||
468 | gic: interrupt-controller@e8201000 { | ||
469 | compatible = "arm,pl390"; | ||
470 | #interrupt-cells = <3>; | ||
471 | #address-cells = <0>; | ||
472 | interrupt-controller; | ||
473 | reg = <0xe8201000 0x1000>, | ||
474 | <0xe8202000 0x1000>; | ||
475 | }; | ||
476 | |||
477 | L2: cache-controller@3ffff000 { | ||
478 | compatible = "arm,pl310-cache"; | ||
479 | reg = <0x3ffff000 0x1000>; | ||
480 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
481 | arm,early-bresp-disable; | ||
482 | arm,full-line-zero-disable; | ||
483 | cache-unified; | ||
484 | cache-level = <2>; | ||
485 | }; | ||
486 | |||
487 | wdt: watchdog@fcfe0000 { | ||
488 | compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt"; | ||
489 | reg = <0xfcfe0000 0x6>; | ||
490 | interrupts = <GIC_SPI 106 IRQ_TYPE_EDGE_RISING>; | ||
491 | clocks = <&p0_clk>; | ||
492 | }; | ||
493 | |||
494 | i2c0: i2c@fcfee000 { | ||
495 | #address-cells = <1>; | ||
496 | #size-cells = <0>; | ||
497 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; | ||
498 | reg = <0xfcfee000 0x44>; | ||
499 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, | ||
500 | <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>, | ||
501 | <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>, | ||
502 | <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, | ||
503 | <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||
504 | <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||
505 | <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, | ||
506 | <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | ||
507 | clocks = <&mstp9_clks R7S72100_CLK_I2C0>; | ||
508 | clock-frequency = <100000>; | ||
509 | power-domains = <&cpg_clocks>; | ||
510 | status = "disabled"; | ||
511 | }; | ||
512 | |||
513 | i2c1: i2c@fcfee400 { | ||
514 | #address-cells = <1>; | ||
515 | #size-cells = <0>; | ||
516 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; | ||
517 | reg = <0xfcfee400 0x44>; | ||
518 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, | ||
519 | <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>, | ||
520 | <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>, | ||
521 | <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, | ||
522 | <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, | ||
523 | <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, | ||
524 | <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, | ||
525 | <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; | ||
526 | clocks = <&mstp9_clks R7S72100_CLK_I2C1>; | ||
527 | clock-frequency = <100000>; | ||
528 | power-domains = <&cpg_clocks>; | ||
529 | status = "disabled"; | ||
530 | }; | ||
531 | |||
532 | i2c2: i2c@fcfee800 { | ||
533 | #address-cells = <1>; | ||
534 | #size-cells = <0>; | ||
535 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; | ||
536 | reg = <0xfcfee800 0x44>; | ||
537 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, | ||
538 | <GIC_SPI 174 IRQ_TYPE_EDGE_RISING>, | ||
539 | <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>, | ||
540 | <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, | ||
541 | <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, | ||
542 | <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, | ||
543 | <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, | ||
544 | <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; | ||
545 | clocks = <&mstp9_clks R7S72100_CLK_I2C2>; | ||
546 | clock-frequency = <100000>; | ||
547 | power-domains = <&cpg_clocks>; | ||
548 | status = "disabled"; | ||
549 | }; | ||
550 | |||
551 | i2c3: i2c@fcfeec00 { | ||
552 | #address-cells = <1>; | ||
553 | #size-cells = <0>; | ||
554 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; | ||
555 | reg = <0xfcfeec00 0x44>; | ||
556 | interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, | ||
557 | <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>, | ||
558 | <GIC_SPI 183 IRQ_TYPE_EDGE_RISING>, | ||
559 | <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>, | ||
560 | <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>, | ||
561 | <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, | ||
562 | <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, | ||
563 | <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | ||
564 | clocks = <&mstp9_clks R7S72100_CLK_I2C3>; | ||
565 | clock-frequency = <100000>; | ||
566 | power-domains = <&cpg_clocks>; | ||
567 | status = "disabled"; | ||
568 | }; | ||
569 | |||
570 | mtu2: timer@fcff0000 { | ||
571 | compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; | ||
572 | reg = <0xfcff0000 0x400>; | ||
573 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | ||
574 | interrupt-names = "tgi0a"; | ||
575 | clocks = <&mstp3_clks R7S72100_CLK_MTU2>; | ||
576 | clock-names = "fck"; | ||
577 | power-domains = <&cpg_clocks>; | ||
578 | status = "disabled"; | ||
579 | }; | ||
580 | |||
581 | ether: ethernet@e8203000 { | ||
582 | compatible = "renesas,ether-r7s72100"; | ||
583 | reg = <0xe8203000 0x800>, | ||
584 | <0xe8204800 0x200>; | ||
585 | interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; | ||
586 | clocks = <&mstp7_clks R7S72100_CLK_ETHER>; | ||
587 | power-domains = <&cpg_clocks>; | ||
588 | phy-mode = "mii"; | ||
589 | #address-cells = <1>; | ||
590 | #size-cells = <0>; | ||
591 | status = "disabled"; | ||
592 | }; | ||
593 | |||
594 | mmcif: mmc@e804c800 { | ||
595 | compatible = "renesas,mmcif-r7s72100", "renesas,sh-mmcif"; | ||
596 | reg = <0xe804c800 0x80>; | ||
597 | interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH | ||
598 | GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH | ||
599 | GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; | ||
600 | clocks = <&mstp8_clks R7S72100_CLK_MMCIF>; | ||
601 | power-domains = <&cpg_clocks>; | ||
602 | reg-io-width = <4>; | ||
603 | bus-width = <8>; | ||
604 | status = "disabled"; | ||
605 | }; | ||
606 | |||
607 | sdhi0: sd@e804e000 { | ||
608 | compatible = "renesas,sdhi-r7s72100"; | ||
609 | reg = <0xe804e000 0x100>; | ||
610 | interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH | ||
611 | GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH | ||
612 | GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; | ||
613 | |||
614 | clocks = <&mstp12_clks R7S72100_CLK_SDHI00>, | ||
615 | <&mstp12_clks R7S72100_CLK_SDHI01>; | ||
616 | clock-names = "core", "cd"; | ||
617 | power-domains = <&cpg_clocks>; | ||
618 | cap-sd-highspeed; | ||
619 | cap-sdio-irq; | ||
620 | status = "disabled"; | ||
621 | }; | ||
622 | |||
623 | sdhi1: sd@e804e800 { | ||
624 | compatible = "renesas,sdhi-r7s72100"; | ||
625 | reg = <0xe804e800 0x100>; | ||
626 | interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH | ||
627 | GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH | ||
628 | GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>; | ||
629 | |||
630 | clocks = <&mstp12_clks R7S72100_CLK_SDHI10>, | ||
631 | <&mstp12_clks R7S72100_CLK_SDHI11>; | ||
632 | clock-names = "core", "cd"; | ||
633 | power-domains = <&cpg_clocks>; | ||
634 | cap-sd-highspeed; | ||
635 | cap-sdio-irq; | ||
636 | status = "disabled"; | ||
637 | }; | ||
638 | |||
639 | ostm0: timer@fcfec000 { | ||
640 | compatible = "renesas,r7s72100-ostm", "renesas,ostm"; | ||
641 | reg = <0xfcfec000 0x30>; | ||
642 | interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; | ||
643 | clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; | ||
644 | power-domains = <&cpg_clocks>; | ||
645 | status = "disabled"; | ||
646 | }; | ||
647 | |||
648 | ostm1: timer@fcfec400 { | ||
649 | compatible = "renesas,r7s72100-ostm", "renesas,ostm"; | ||
650 | reg = <0xfcfec400 0x30>; | ||
651 | interrupts = <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>; | ||
652 | clocks = <&mstp5_clks R7S72100_CLK_OSTM1>; | ||
653 | power-domains = <&cpg_clocks>; | ||
654 | status = "disabled"; | ||
655 | }; | 700 | }; |
656 | 701 | ||
657 | rtc: rtc@fcff1000 { | 702 | usb_x1_clk: usb_x1 { |
658 | compatible = "renesas,r7s72100-rtc", "renesas,sh-rtc"; | 703 | #clock-cells = <0>; |
659 | reg = <0xfcff1000 0x2e>; | 704 | compatible = "fixed-clock"; |
660 | interrupts = <GIC_SPI 276 IRQ_TYPE_EDGE_RISING | 705 | /* If clk present, value must be set by board */ |
661 | GIC_SPI 277 IRQ_TYPE_EDGE_RISING | 706 | clock-frequency = <0>; |
662 | GIC_SPI 278 IRQ_TYPE_EDGE_RISING>; | ||
663 | interrupt-names = "alarm", "period", "carry"; | ||
664 | clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>, | ||
665 | <&rtc_x3_clk>, <&extal_clk>; | ||
666 | clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; | ||
667 | power-domains = <&cpg_clocks>; | ||
668 | status = "disabled"; | ||
669 | }; | 707 | }; |
670 | }; | 708 | }; |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts index ec7c86e06538..125c39c0222f 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts | |||
@@ -234,7 +234,7 @@ | |||
234 | &sdhi0 { | 234 | &sdhi0 { |
235 | vmmc-supply = <&vcc_sdhi0>; | 235 | vmmc-supply = <&vcc_sdhi0>; |
236 | bus-width = <4>; | 236 | bus-width = <4>; |
237 | toshiba,mmc-wrprotect-disable; | 237 | disable-wp; |
238 | pinctrl-names = "default"; | 238 | pinctrl-names = "default"; |
239 | pinctrl-0 = <&sdhi0_pins>; | 239 | pinctrl-0 = <&sdhi0_pins>; |
240 | status = "okay"; | 240 | status = "okay"; |
@@ -244,7 +244,7 @@ | |||
244 | vmmc-supply = <&ape6evm_fixed_3v3>; | 244 | vmmc-supply = <&ape6evm_fixed_3v3>; |
245 | bus-width = <4>; | 245 | bus-width = <4>; |
246 | broken-cd; | 246 | broken-cd; |
247 | toshiba,mmc-wrprotect-disable; | 247 | disable-wp; |
248 | pinctrl-names = "default"; | 248 | pinctrl-names = "default"; |
249 | pinctrl-0 = <&sdhi1_pins>; | 249 | pinctrl-0 = <&sdhi1_pins>; |
250 | status = "okay"; | 250 | status = "okay"; |
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi index 8e48090e4fdc..080d037f5733 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi | |||
@@ -57,10 +57,10 @@ | |||
57 | 57 | ||
58 | timer { | 58 | timer { |
59 | compatible = "arm,armv7-timer"; | 59 | compatible = "arm,armv7-timer"; |
60 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 60 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
61 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 61 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
62 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 62 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
63 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 63 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; |
64 | }; | 64 | }; |
65 | 65 | ||
66 | dbsc1: memory-controller@e6790000 { | 66 | dbsc1: memory-controller@e6790000 { |
@@ -464,7 +464,7 @@ | |||
464 | <0 0xf1002000 0 0x2000>, | 464 | <0 0xf1002000 0 0x2000>, |
465 | <0 0xf1004000 0 0x2000>, | 465 | <0 0xf1004000 0 0x2000>, |
466 | <0 0xf1006000 0 0x2000>; | 466 | <0 0xf1006000 0 0x2000>; |
467 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | 467 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; |
468 | clocks = <&mstp4_clks R8A73A4_CLK_INTC_SYS>; | 468 | clocks = <&mstp4_clks R8A73A4_CLK_INTC_SYS>; |
469 | clock-names = "clk"; | 469 | clock-names = "clk"; |
470 | power-domains = <&pd_c4>; | 470 | power-domains = <&pd_c4>; |
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi index afd3bc5e6cf2..eb9a911deefb 100644 --- a/arch/arm/boot/dts/r8a7740.dtsi +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
@@ -67,6 +67,24 @@ | |||
67 | power-domains = <&pd_d4>; | 67 | power-domains = <&pd_d4>; |
68 | }; | 68 | }; |
69 | 69 | ||
70 | ceu0: ceu@fe910000 { | ||
71 | reg = <0xfe910000 0x3000>; | ||
72 | compatible = "renesas,r8a7740-ceu"; | ||
73 | interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>; | ||
74 | clocks = <&mstp1_clks R8A7740_CLK_CEU20>; | ||
75 | power-domains = <&pd_a4r>; | ||
76 | status = "disabled"; | ||
77 | }; | ||
78 | |||
79 | ceu1: ceu@fe914000 { | ||
80 | reg = <0xfe914000 0x3000>; | ||
81 | compatible = "renesas,r8a7740-ceu"; | ||
82 | interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; | ||
83 | clocks = <&mstp1_clks R8A7740_CLK_CEU21>; | ||
84 | power-domains = <&pd_a4r>; | ||
85 | status = "disabled"; | ||
86 | }; | ||
87 | |||
70 | cmt1: timer@e6138000 { | 88 | cmt1: timer@e6138000 { |
71 | compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48"; | 89 | compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48"; |
72 | reg = <0xe6138000 0x170>; | 90 | reg = <0xe6138000 0x170>; |
diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index 1d3e9503c5bd..d364685d9184 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi | |||
@@ -91,6 +91,11 @@ | |||
91 | }; | 91 | }; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | &rwdt { | ||
95 | timeout-sec = <60>; | ||
96 | status = "okay"; | ||
97 | }; | ||
98 | |||
94 | &sdhi0 { | 99 | &sdhi0 { |
95 | pinctrl-0 = <&sdhi0_pins>; | 100 | pinctrl-0 = <&sdhi0_pins>; |
96 | pinctrl-names = "default"; | 101 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 1d9073ba0ce0..142949d7066f 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi | |||
@@ -125,6 +125,13 @@ | |||
125 | clock-frequency = <0>; | 125 | clock-frequency = <0>; |
126 | }; | 126 | }; |
127 | 127 | ||
128 | pmu { | ||
129 | compatible = "arm,cortex-a15-pmu"; | ||
130 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
131 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
132 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
133 | }; | ||
134 | |||
128 | /* External SCIF clock */ | 135 | /* External SCIF clock */ |
129 | scif_clk: scif { | 136 | scif_clk: scif { |
130 | compatible = "fixed-clock"; | 137 | compatible = "fixed-clock"; |
@@ -297,6 +304,16 @@ | |||
297 | reg = <0 0xe6160000 0 0x100>; | 304 | reg = <0 0xe6160000 0 0x100>; |
298 | }; | 305 | }; |
299 | 306 | ||
307 | rwdt: watchdog@e6020000 { | ||
308 | compatible = "renesas,r8a7743-wdt", | ||
309 | "renesas,rcar-gen2-wdt"; | ||
310 | reg = <0 0xe6020000 0 0x0c>; | ||
311 | clocks = <&cpg CPG_MOD 402>; | ||
312 | power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; | ||
313 | resets = <&cpg 402>; | ||
314 | status = "disabled"; | ||
315 | }; | ||
316 | |||
300 | sysc: system-controller@e6180000 { | 317 | sysc: system-controller@e6180000 { |
301 | compatible = "renesas,r8a7743-sysc"; | 318 | compatible = "renesas,r8a7743-sysc"; |
302 | reg = <0 0xe6180000 0 0x200>; | 319 | reg = <0 0xe6180000 0 0x200>; |
@@ -407,7 +424,7 @@ | |||
407 | 424 | ||
408 | smp-sram@0 { | 425 | smp-sram@0 { |
409 | compatible = "renesas,smp-sram"; | 426 | compatible = "renesas,smp-sram"; |
410 | reg = <0 0x10>; | 427 | reg = <0 0x100>; |
411 | }; | 428 | }; |
412 | }; | 429 | }; |
413 | 430 | ||
diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index 8d0a392b6811..29b6e10fdf96 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi | |||
@@ -91,6 +91,11 @@ | |||
91 | }; | 91 | }; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | &rwdt { | ||
95 | timeout-sec = <60>; | ||
96 | status = "okay"; | ||
97 | }; | ||
98 | |||
94 | &sdhi1 { | 99 | &sdhi1 { |
95 | pinctrl-0 = <&sdhi1_pins>; | 100 | pinctrl-0 = <&sdhi1_pins>; |
96 | pinctrl-names = "default"; | 101 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index dd49a8b48f3e..1cb7a7ab0418 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi | |||
@@ -105,6 +105,13 @@ | |||
105 | clock-frequency = <0>; | 105 | clock-frequency = <0>; |
106 | }; | 106 | }; |
107 | 107 | ||
108 | pmu { | ||
109 | compatible = "arm,cortex-a7-pmu"; | ||
110 | interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, | ||
111 | <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
112 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
113 | }; | ||
114 | |||
108 | /* External SCIF clock */ | 115 | /* External SCIF clock */ |
109 | scif_clk: scif { | 116 | scif_clk: scif { |
110 | compatible = "fixed-clock"; | 117 | compatible = "fixed-clock"; |
@@ -262,6 +269,16 @@ | |||
262 | reg = <0 0xe6160000 0 0x100>; | 269 | reg = <0 0xe6160000 0 0x100>; |
263 | }; | 270 | }; |
264 | 271 | ||
272 | rwdt: watchdog@e6020000 { | ||
273 | compatible = "renesas,r8a7745-wdt", | ||
274 | "renesas,rcar-gen2-wdt"; | ||
275 | reg = <0 0xe6020000 0 0x0c>; | ||
276 | clocks = <&cpg CPG_MOD 402>; | ||
277 | power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; | ||
278 | resets = <&cpg 402>; | ||
279 | status = "disabled"; | ||
280 | }; | ||
281 | |||
265 | sysc: system-controller@e6180000 { | 282 | sysc: system-controller@e6180000 { |
266 | compatible = "renesas,r8a7745-sysc"; | 283 | compatible = "renesas,r8a7745-sysc"; |
267 | reg = <0 0xe6180000 0 0x200>; | 284 | reg = <0 0xe6180000 0 0x200>; |
@@ -360,7 +377,7 @@ | |||
360 | 377 | ||
361 | smp-sram@0 { | 378 | smp-sram@0 { |
362 | compatible = "renesas,smp-sram"; | 379 | compatible = "renesas,smp-sram"; |
363 | reg = <0 0x10>; | 380 | reg = <0 0x100>; |
364 | }; | 381 | }; |
365 | }; | 382 | }; |
366 | 383 | ||
diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts new file mode 100644 index 000000000000..e3585daafdd6 --- /dev/null +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | |||
@@ -0,0 +1,48 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | /* | ||
3 | * Device Tree Source for the iWave-RZ/G1C single board computer | ||
4 | * | ||
5 | * Copyright (C) 2018 Renesas Electronics Corp. | ||
6 | */ | ||
7 | |||
8 | /dts-v1/; | ||
9 | #include "r8a77470.dtsi" | ||
10 | / { | ||
11 | model = "iWave iW-RainboW-G23S single board computer based on RZ/G1C"; | ||
12 | compatible = "iwave,g23s", "renesas,r8a77470"; | ||
13 | |||
14 | aliases { | ||
15 | ethernet0 = &avb; | ||
16 | serial1 = &scif1; | ||
17 | }; | ||
18 | |||
19 | chosen { | ||
20 | bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; | ||
21 | stdout-path = "serial1:115200n8"; | ||
22 | }; | ||
23 | |||
24 | memory@40000000 { | ||
25 | device_type = "memory"; | ||
26 | reg = <0 0x40000000 0 0x20000000>; | ||
27 | }; | ||
28 | }; | ||
29 | |||
30 | &avb { | ||
31 | phy-handle = <&phy3>; | ||
32 | phy-mode = "gmii"; | ||
33 | renesas,no-ether-link; | ||
34 | status = "okay"; | ||
35 | |||
36 | phy3: ethernet-phy@3 { | ||
37 | reg = <3>; | ||
38 | micrel,led-mode = <1>; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | &extal_clk { | ||
43 | clock-frequency = <20000000>; | ||
44 | }; | ||
45 | |||
46 | &scif1 { | ||
47 | status = "okay"; | ||
48 | }; | ||
diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi new file mode 100644 index 000000000000..c85032f9605b --- /dev/null +++ b/arch/arm/boot/dts/r8a77470.dtsi | |||
@@ -0,0 +1,336 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | /* | ||
3 | * Device Tree Source for the r8a77470 SoC | ||
4 | * | ||
5 | * Copyright (C) 2018 Renesas Electronics Corp. | ||
6 | */ | ||
7 | |||
8 | #include <dt-bindings/interrupt-controller/irq.h> | ||
9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
10 | #include <dt-bindings/clock/renesas-cpg-mssr.h> | ||
11 | / { | ||
12 | compatible = "renesas,r8a77470"; | ||
13 | #address-cells = <2>; | ||
14 | #size-cells = <2>; | ||
15 | |||
16 | cpus { | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <0>; | ||
19 | |||
20 | cpu0: cpu@0 { | ||
21 | device_type = "cpu"; | ||
22 | compatible = "arm,cortex-a7"; | ||
23 | reg = <0>; | ||
24 | clock-frequency = <1000000000>; | ||
25 | clocks = <&cpg CPG_CORE 0>; | ||
26 | power-domains = <&sysc 5>; | ||
27 | next-level-cache = <&L2_CA7>; | ||
28 | }; | ||
29 | |||
30 | |||
31 | L2_CA7: cache-controller-0 { | ||
32 | compatible = "cache"; | ||
33 | cache-unified; | ||
34 | cache-level = <2>; | ||
35 | power-domains = <&sysc 21>; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | /* External root clock */ | ||
40 | extal_clk: extal { | ||
41 | compatible = "fixed-clock"; | ||
42 | #clock-cells = <0>; | ||
43 | /* This value must be overridden by the board. */ | ||
44 | clock-frequency = <0>; | ||
45 | }; | ||
46 | |||
47 | /* External SCIF clock */ | ||
48 | scif_clk: scif { | ||
49 | compatible = "fixed-clock"; | ||
50 | #clock-cells = <0>; | ||
51 | /* This value must be overridden by the board. */ | ||
52 | clock-frequency = <0>; | ||
53 | }; | ||
54 | |||
55 | soc { | ||
56 | compatible = "simple-bus"; | ||
57 | interrupt-parent = <&gic>; | ||
58 | |||
59 | #address-cells = <2>; | ||
60 | #size-cells = <2>; | ||
61 | ranges; | ||
62 | |||
63 | cpg: clock-controller@e6150000 { | ||
64 | compatible = "renesas,r8a77470-cpg-mssr"; | ||
65 | reg = <0 0xe6150000 0 0x1000>; | ||
66 | clocks = <&extal_clk>, <&usb_extal_clk>; | ||
67 | clock-names = "extal", "usb_extal"; | ||
68 | #clock-cells = <2>; | ||
69 | #power-domain-cells = <0>; | ||
70 | #reset-cells = <1>; | ||
71 | }; | ||
72 | |||
73 | rst: reset-controller@e6160000 { | ||
74 | compatible = "renesas,r8a77470-rst"; | ||
75 | reg = <0 0xe6160000 0 0x100>; | ||
76 | }; | ||
77 | |||
78 | sysc: system-controller@e6180000 { | ||
79 | compatible = "renesas,r8a77470-sysc"; | ||
80 | reg = <0 0xe6180000 0 0x200>; | ||
81 | #power-domain-cells = <1>; | ||
82 | }; | ||
83 | |||
84 | irqc: interrupt-controller@e61c0000 { | ||
85 | compatible = "renesas,irqc-r8a77470", "renesas,irqc"; | ||
86 | #interrupt-cells = <2>; | ||
87 | interrupt-controller; | ||
88 | reg = <0 0xe61c0000 0 0x200>; | ||
89 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, | ||
90 | <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, | ||
91 | <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, | ||
92 | <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, | ||
93 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
94 | <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, | ||
95 | <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, | ||
96 | <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, | ||
97 | <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, | ||
98 | <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; | ||
99 | clocks = <&cpg CPG_MOD 407>; | ||
100 | power-domains = <&sysc 32>; | ||
101 | resets = <&cpg 407>; | ||
102 | }; | ||
103 | |||
104 | icram0: sram@e63a0000 { | ||
105 | compatible = "mmio-sram"; | ||
106 | reg = <0 0xe63a0000 0 0x12000>; | ||
107 | }; | ||
108 | |||
109 | icram1: sram@e63c0000 { | ||
110 | compatible = "mmio-sram"; | ||
111 | reg = <0 0xe63c0000 0 0x1000>; | ||
112 | #address-cells = <1>; | ||
113 | #size-cells = <1>; | ||
114 | ranges = <0 0 0xe63c0000 0x1000>; | ||
115 | |||
116 | smp-sram@0 { | ||
117 | compatible = "renesas,smp-sram"; | ||
118 | reg = <0 0x100>; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | icram2: sram@e6300000 { | ||
123 | compatible = "mmio-sram"; | ||
124 | reg = <0 0xe6300000 0 0x20000>; | ||
125 | }; | ||
126 | |||
127 | dmac0: dma-controller@e6700000 { | ||
128 | compatible = "renesas,dmac-r8a77470", | ||
129 | "renesas,rcar-dmac"; | ||
130 | reg = <0 0xe6700000 0 0x20000>; | ||
131 | interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH | ||
132 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH | ||
133 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
134 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
135 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
136 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
137 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
138 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
139 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH | ||
140 | GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH | ||
141 | GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH | ||
142 | GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH | ||
143 | GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH | ||
144 | GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH | ||
145 | GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH | ||
146 | GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>; | ||
147 | interrupt-names = "error", | ||
148 | "ch0", "ch1", "ch2", "ch3", | ||
149 | "ch4", "ch5", "ch6", "ch7", | ||
150 | "ch8", "ch9", "ch10", "ch11", | ||
151 | "ch12", "ch13", "ch14"; | ||
152 | clocks = <&cpg CPG_MOD 219>; | ||
153 | clock-names = "fck"; | ||
154 | power-domains = <&sysc 32>; | ||
155 | resets = <&cpg 219>; | ||
156 | #dma-cells = <1>; | ||
157 | dma-channels = <15>; | ||
158 | }; | ||
159 | |||
160 | dmac1: dma-controller@e6720000 { | ||
161 | compatible = "renesas,dmac-r8a77470", | ||
162 | "renesas,rcar-dmac"; | ||
163 | reg = <0 0xe6720000 0 0x20000>; | ||
164 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
165 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
166 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
167 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
168 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
169 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
170 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
171 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
172 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH | ||
173 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
174 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
175 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
176 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
177 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
178 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
179 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>; | ||
180 | interrupt-names = "error", | ||
181 | "ch0", "ch1", "ch2", "ch3", | ||
182 | "ch4", "ch5", "ch6", "ch7", | ||
183 | "ch8", "ch9", "ch10", "ch11", | ||
184 | "ch12", "ch13", "ch14"; | ||
185 | clocks = <&cpg CPG_MOD 218>; | ||
186 | clock-names = "fck"; | ||
187 | power-domains = <&sysc 32>; | ||
188 | resets = <&cpg 218>; | ||
189 | #dma-cells = <1>; | ||
190 | dma-channels = <15>; | ||
191 | }; | ||
192 | |||
193 | avb: ethernet@e6800000 { | ||
194 | compatible = "renesas,etheravb-r8a77470", | ||
195 | "renesas,etheravb-rcar-gen2"; | ||
196 | reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; | ||
197 | interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; | ||
198 | clocks = <&cpg CPG_MOD 812>; | ||
199 | power-domains = <&sysc 32>; | ||
200 | resets = <&cpg 812>; | ||
201 | #address-cells = <1>; | ||
202 | #size-cells = <0>; | ||
203 | status = "disabled"; | ||
204 | }; | ||
205 | |||
206 | scif0: serial@e6e60000 { | ||
207 | compatible = "renesas,scif-r8a77470", | ||
208 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
209 | reg = <0 0xe6e60000 0 0x40>; | ||
210 | interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | ||
211 | clocks = <&cpg CPG_MOD 721>, | ||
212 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
213 | clock-names = "fck", "brg_int", "scif_clk"; | ||
214 | dmas = <&dmac0 0x29>, <&dmac0 0x2a>, | ||
215 | <&dmac1 0x29>, <&dmac1 0x2a>; | ||
216 | dma-names = "tx", "rx", "tx", "rx"; | ||
217 | power-domains = <&sysc 32>; | ||
218 | resets = <&cpg 721>; | ||
219 | status = "disabled"; | ||
220 | }; | ||
221 | |||
222 | scif1: serial@e6e68000 { | ||
223 | compatible = "renesas,scif-r8a77470", | ||
224 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
225 | reg = <0 0xe6e68000 0 0x40>; | ||
226 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | ||
227 | clocks = <&cpg CPG_MOD 720>, | ||
228 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
229 | clock-names = "fck", "brg_int", "scif_clk"; | ||
230 | dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, | ||
231 | <&dmac1 0x2d>, <&dmac1 0x2e>; | ||
232 | dma-names = "tx", "rx", "tx", "rx"; | ||
233 | power-domains = <&sysc 32>; | ||
234 | resets = <&cpg 720>; | ||
235 | status = "disabled"; | ||
236 | }; | ||
237 | |||
238 | scif2: serial@e6e58000 { | ||
239 | compatible = "renesas,scif-r8a77470", | ||
240 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
241 | reg = <0 0xe6e58000 0 0x40>; | ||
242 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | ||
243 | clocks = <&cpg CPG_MOD 719>, | ||
244 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
245 | clock-names = "fck", "brg_int", "scif_clk"; | ||
246 | dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, | ||
247 | <&dmac1 0x2b>, <&dmac1 0x2c>; | ||
248 | dma-names = "tx", "rx", "tx", "rx"; | ||
249 | power-domains = <&sysc 32>; | ||
250 | resets = <&cpg 719>; | ||
251 | status = "disabled"; | ||
252 | }; | ||
253 | |||
254 | scif3: serial@e6ea8000 { | ||
255 | compatible = "renesas,scif-r8a77470", | ||
256 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
257 | reg = <0 0xe6ea8000 0 0x40>; | ||
258 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | ||
259 | clocks = <&cpg CPG_MOD 718>, | ||
260 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
261 | clock-names = "fck", "brg_int", "scif_clk"; | ||
262 | dmas = <&dmac0 0x2f>, <&dmac0 0x30>, | ||
263 | <&dmac1 0x2f>, <&dmac1 0x30>; | ||
264 | dma-names = "tx", "rx", "tx", "rx"; | ||
265 | power-domains = <&sysc 32>; | ||
266 | resets = <&cpg 718>; | ||
267 | status = "disabled"; | ||
268 | }; | ||
269 | |||
270 | scif4: serial@e6ee0000 { | ||
271 | compatible = "renesas,scif-r8a77470", | ||
272 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
273 | reg = <0 0xe6ee0000 0 0x40>; | ||
274 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
275 | clocks = <&cpg CPG_MOD 715>, | ||
276 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
277 | clock-names = "fck", "brg_int", "scif_clk"; | ||
278 | dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, | ||
279 | <&dmac1 0xfb>, <&dmac1 0xfc>; | ||
280 | dma-names = "tx", "rx", "tx", "rx"; | ||
281 | power-domains = <&sysc 32>; | ||
282 | resets = <&cpg 715>; | ||
283 | status = "disabled"; | ||
284 | }; | ||
285 | |||
286 | scif5: serial@e6ee8000 { | ||
287 | compatible = "renesas,scif-r8a77470", | ||
288 | "renesas,rcar-gen2-scif", "renesas,scif"; | ||
289 | reg = <0 0xe6ee8000 0 0x40>; | ||
290 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | ||
291 | clocks = <&cpg CPG_MOD 714>, | ||
292 | <&cpg CPG_CORE 5>, <&scif_clk>; | ||
293 | clock-names = "fck", "brg_int", "scif_clk"; | ||
294 | dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, | ||
295 | <&dmac1 0xfd>, <&dmac1 0xfe>; | ||
296 | dma-names = "tx", "rx", "tx", "rx"; | ||
297 | power-domains = <&sysc 32>; | ||
298 | resets = <&cpg 714>; | ||
299 | status = "disabled"; | ||
300 | }; | ||
301 | |||
302 | gic: interrupt-controller@f1001000 { | ||
303 | compatible = "arm,gic-400"; | ||
304 | #interrupt-cells = <3>; | ||
305 | #address-cells = <0>; | ||
306 | interrupt-controller; | ||
307 | reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, | ||
308 | <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; | ||
309 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; | ||
310 | clocks = <&cpg CPG_MOD 408>; | ||
311 | clock-names = "clk"; | ||
312 | power-domains = <&sysc 32>; | ||
313 | resets = <&cpg 408>; | ||
314 | }; | ||
315 | |||
316 | prr: chipid@ff000044 { | ||
317 | compatible = "renesas,prr"; | ||
318 | reg = <0 0xff000044 0 4>; | ||
319 | }; | ||
320 | }; | ||
321 | |||
322 | timer { | ||
323 | compatible = "arm,armv7-timer"; | ||
324 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
325 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
326 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
327 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; | ||
328 | }; | ||
329 | |||
330 | /* External USB clock - can be overridden by the board */ | ||
331 | usb_extal_clk: usb_extal { | ||
332 | compatible = "fixed-clock"; | ||
333 | #clock-cells = <0>; | ||
334 | clock-frequency = <48000000>; | ||
335 | }; | ||
336 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts index f07f9018c3e7..092610e3f953 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts | |||
@@ -902,9 +902,6 @@ | |||
902 | status = "okay"; | 902 | status = "okay"; |
903 | 903 | ||
904 | port { | 904 | port { |
905 | #address-cells = <1>; | ||
906 | #size-cells = <0>; | ||
907 | |||
908 | vin1ep0: endpoint { | 905 | vin1ep0: endpoint { |
909 | remote-endpoint = <&adv7180>; | 906 | remote-endpoint = <&adv7180>; |
910 | bus-width = <8>; | 907 | bus-width = <8>; |
@@ -929,6 +926,11 @@ | |||
929 | }; | 926 | }; |
930 | }; | 927 | }; |
931 | 928 | ||
929 | &rwdt { | ||
930 | timeout-sec = <60>; | ||
931 | status = "okay"; | ||
932 | }; | ||
933 | |||
932 | &ssi1 { | 934 | &ssi1 { |
933 | shared-pin; | 935 | shared-pin; |
934 | }; | 936 | }; |
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index 05a0fc23ac88..4d06b154bd7e 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
@@ -202,6 +202,24 @@ | |||
202 | clock-frequency = <0>; | 202 | clock-frequency = <0>; |
203 | }; | 203 | }; |
204 | 204 | ||
205 | pmu-0 { | ||
206 | compatible = "arm,cortex-a15-pmu"; | ||
207 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
208 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, | ||
209 | <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, | ||
210 | <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | ||
211 | interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; | ||
212 | }; | ||
213 | |||
214 | pmu-1 { | ||
215 | compatible = "arm,cortex-a7-pmu"; | ||
216 | interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, | ||
217 | <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, | ||
218 | <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | ||
219 | <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | ||
220 | interrupt-affinity = <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; | ||
221 | }; | ||
222 | |||
205 | /* External SCIF clock */ | 223 | /* External SCIF clock */ |
206 | scif_clk: scif { | 224 | scif_clk: scif { |
207 | compatible = "fixed-clock"; | 225 | compatible = "fixed-clock"; |
@@ -218,6 +236,16 @@ | |||
218 | #size-cells = <2>; | 236 | #size-cells = <2>; |
219 | ranges; | 237 | ranges; |
220 | 238 | ||
239 | rwdt: watchdog@e6020000 { | ||
240 | compatible = "renesas,r8a7790-wdt", | ||
241 | "renesas,rcar-gen2-wdt"; | ||
242 | reg = <0 0xe6020000 0 0x0c>; | ||
243 | clocks = <&cpg CPG_MOD 402>; | ||
244 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; | ||
245 | resets = <&cpg 402>; | ||
246 | status = "disabled"; | ||
247 | }; | ||
248 | |||
221 | gpio0: gpio@e6050000 { | 249 | gpio0: gpio@e6050000 { |
222 | compatible = "renesas,gpio-r8a7790", | 250 | compatible = "renesas,gpio-r8a7790", |
223 | "renesas,rcar-gen2-gpio"; | 251 | "renesas,rcar-gen2-gpio"; |
@@ -443,7 +471,7 @@ | |||
443 | 471 | ||
444 | smp-sram@0 { | 472 | smp-sram@0 { |
445 | compatible = "renesas,smp-sram"; | 473 | compatible = "renesas,smp-sram"; |
446 | reg = <0 0x10>; | 474 | reg = <0 0x100>; |
447 | }; | 475 | }; |
448 | }; | 476 | }; |
449 | 477 | ||
@@ -1544,7 +1572,7 @@ | |||
1544 | interrupt-controller; | 1572 | interrupt-controller; |
1545 | reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, | 1573 | reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, |
1546 | <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; | 1574 | <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; |
1547 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | 1575 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; |
1548 | clocks = <&cpg CPG_MOD 408>; | 1576 | clocks = <&cpg CPG_MOD 408>; |
1549 | clock-names = "clk"; | 1577 | clock-names = "clk"; |
1550 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; | 1578 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; |
@@ -1615,6 +1643,33 @@ | |||
1615 | resets = <&cpg 127>; | 1643 | resets = <&cpg 127>; |
1616 | }; | 1644 | }; |
1617 | 1645 | ||
1646 | fdp1@fe940000 { | ||
1647 | compatible = "renesas,fdp1"; | ||
1648 | reg = <0 0xfe940000 0 0x2400>; | ||
1649 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | ||
1650 | clocks = <&cpg CPG_MOD 119>; | ||
1651 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; | ||
1652 | resets = <&cpg 119>; | ||
1653 | }; | ||
1654 | |||
1655 | fdp1@fe944000 { | ||
1656 | compatible = "renesas,fdp1"; | ||
1657 | reg = <0 0xfe944000 0 0x2400>; | ||
1658 | interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; | ||
1659 | clocks = <&cpg CPG_MOD 118>; | ||
1660 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; | ||
1661 | resets = <&cpg 118>; | ||
1662 | }; | ||
1663 | |||
1664 | fdp1@fe948000 { | ||
1665 | compatible = "renesas,fdp1"; | ||
1666 | reg = <0 0xfe948000 0 0x2400>; | ||
1667 | interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; | ||
1668 | clocks = <&cpg CPG_MOD 117>; | ||
1669 | power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; | ||
1670 | resets = <&cpg 117>; | ||
1671 | }; | ||
1672 | |||
1618 | jpu: jpeg-codec@fe980000 { | 1673 | jpu: jpeg-codec@fe980000 { |
1619 | compatible = "renesas,jpu-r8a7790", | 1674 | compatible = "renesas,jpu-r8a7790", |
1620 | "renesas,rcar-gen2-jpu"; | 1675 | "renesas,rcar-gen2-jpu"; |
@@ -1773,10 +1828,10 @@ | |||
1773 | 1828 | ||
1774 | timer { | 1829 | timer { |
1775 | compatible = "arm,armv7-timer"; | 1830 | compatible = "arm,armv7-timer"; |
1776 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 1831 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
1777 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 1832 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
1778 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 1833 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, |
1779 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 1834 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; |
1780 | }; | 1835 | }; |
1781 | 1836 | ||
1782 | /* External USB clock - can be overridden by the board */ | 1837 | /* External USB clock - can be overridden by the board */ |
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts index 9d7213a0b8b8..8ab793d8b2fd 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts | |||
@@ -643,6 +643,11 @@ | |||
643 | status = "okay"; | 643 | status = "okay"; |
644 | }; | 644 | }; |
645 | 645 | ||
646 | &rwdt { | ||
647 | timeout-sec = <60>; | ||
648 | status = "okay"; | ||
649 | }; | ||
650 | |||
646 | &sata0 { | 651 | &sata0 { |
647 | status = "okay"; | 652 | status = "okay"; |
648 | }; | 653 | }; |
@@ -850,9 +855,6 @@ | |||
850 | pinctrl-names = "default"; | 855 | pinctrl-names = "default"; |
851 | 856 | ||
852 | port { | 857 | port { |
853 | #address-cells = <1>; | ||
854 | #size-cells = <0>; | ||
855 | |||
856 | vin0ep2: endpoint { | 858 | vin0ep2: endpoint { |
857 | remote-endpoint = <&adv7612_out>; | 859 | remote-endpoint = <&adv7612_out>; |
858 | bus-width = <24>; | 860 | bus-width = <24>; |
@@ -871,9 +873,6 @@ | |||
871 | pinctrl-names = "default"; | 873 | pinctrl-names = "default"; |
872 | 874 | ||
873 | port { | 875 | port { |
874 | #address-cells = <1>; | ||
875 | #size-cells = <0>; | ||
876 | |||
877 | vin1ep: endpoint { | 876 | vin1ep: endpoint { |
878 | remote-endpoint = <&adv7180>; | 877 | remote-endpoint = <&adv7180>; |
879 | bus-width = <8>; | 878 | bus-width = <8>; |
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts index ae9ed9ff53ef..a01101b49d99 100644 --- a/arch/arm/boot/dts/r8a7791-porter.dts +++ b/arch/arm/boot/dts/r8a7791-porter.dts | |||
@@ -386,9 +386,6 @@ | |||
386 | pinctrl-names = "default"; | 386 | pinctrl-names = "default"; |
387 | 387 | ||
388 | port { | 388 | port { |
389 | #address-cells = <1>; | ||
390 | #size-cells = <0>; | ||
391 | |||
392 | vin0ep: endpoint { | 389 | vin0ep: endpoint { |
393 | remote-endpoint = <&adv7180>; | 390 | remote-endpoint = <&adv7180>; |
394 | bus-width = <8>; | 391 | bus-width = <8>; |
@@ -481,6 +478,11 @@ | |||
481 | }; | 478 | }; |
482 | }; | 479 | }; |
483 | 480 | ||
481 | &rwdt { | ||
482 | timeout-sec = <60>; | ||
483 | status = "okay"; | ||
484 | }; | ||
485 | |||
484 | &ssi1 { | 486 | &ssi1 { |
485 | shared-pin; | 487 | shared-pin; |
486 | }; | 488 | }; |
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi index 506b20885413..6e1dd7ad7bd6 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi | |||
@@ -126,6 +126,13 @@ | |||
126 | clock-frequency = <0>; | 126 | clock-frequency = <0>; |
127 | }; | 127 | }; |
128 | 128 | ||
129 | pmu { | ||
130 | compatible = "arm,cortex-a15-pmu"; | ||
131 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
132 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
133 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
134 | }; | ||
135 | |||
129 | /* External SCIF clock */ | 136 | /* External SCIF clock */ |
130 | scif_clk: scif { | 137 | scif_clk: scif { |
131 | compatible = "fixed-clock"; | 138 | compatible = "fixed-clock"; |
@@ -142,6 +149,16 @@ | |||
142 | #size-cells = <2>; | 149 | #size-cells = <2>; |
143 | ranges; | 150 | ranges; |
144 | 151 | ||
152 | rwdt: watchdog@e6020000 { | ||
153 | compatible = "renesas,r8a7791-wdt", | ||
154 | "renesas,rcar-gen2-wdt"; | ||
155 | reg = <0 0xe6020000 0 0x0c>; | ||
156 | clocks = <&cpg CPG_MOD 402>; | ||
157 | power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; | ||
158 | resets = <&cpg 402>; | ||
159 | status = "disabled"; | ||
160 | }; | ||
161 | |||
145 | gpio0: gpio@e6050000 { | 162 | gpio0: gpio@e6050000 { |
146 | compatible = "renesas,gpio-r8a7791", | 163 | compatible = "renesas,gpio-r8a7791", |
147 | "renesas,rcar-gen2-gpio"; | 164 | "renesas,rcar-gen2-gpio"; |
@@ -407,7 +424,7 @@ | |||
407 | 424 | ||
408 | smp-sram@0 { | 425 | smp-sram@0 { |
409 | compatible = "renesas,smp-sram"; | 426 | compatible = "renesas,smp-sram"; |
410 | reg = <0 0x10>; | 427 | reg = <0 0x100>; |
411 | }; | 428 | }; |
412 | }; | 429 | }; |
413 | 430 | ||
@@ -1621,6 +1638,24 @@ | |||
1621 | resets = <&cpg 127>; | 1638 | resets = <&cpg 127>; |
1622 | }; | 1639 | }; |
1623 | 1640 | ||
1641 | fdp1@fe940000 { | ||
1642 | compatible = "renesas,fdp1"; | ||
1643 | reg = <0 0xfe940000 0 0x2400>; | ||
1644 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | ||
1645 | clocks = <&cpg CPG_MOD 119>; | ||
1646 | power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; | ||
1647 | resets = <&cpg 119>; | ||
1648 | }; | ||
1649 | |||
1650 | fdp1@fe944000 { | ||
1651 | compatible = "renesas,fdp1"; | ||
1652 | reg = <0 0xfe944000 0 0x2400>; | ||
1653 | interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; | ||
1654 | clocks = <&cpg CPG_MOD 118>; | ||
1655 | power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; | ||
1656 | resets = <&cpg 118>; | ||
1657 | }; | ||
1658 | |||
1624 | jpu: jpeg-codec@fe980000 { | 1659 | jpu: jpeg-codec@fe980000 { |
1625 | compatible = "renesas,jpu-r8a7791", | 1660 | compatible = "renesas,jpu-r8a7791", |
1626 | "renesas,rcar-gen2-jpu"; | 1661 | "renesas,rcar-gen2-jpu"; |
diff --git a/arch/arm/boot/dts/r8a7792-blanche.dts b/arch/arm/boot/dts/r8a7792-blanche.dts index 9b67dca6c9ef..04fb70931b3b 100644 --- a/arch/arm/boot/dts/r8a7792-blanche.dts +++ b/arch/arm/boot/dts/r8a7792-blanche.dts | |||
@@ -239,6 +239,11 @@ | |||
239 | }; | 239 | }; |
240 | }; | 240 | }; |
241 | 241 | ||
242 | &rwdt { | ||
243 | timeout-sec = <60>; | ||
244 | status = "okay"; | ||
245 | }; | ||
246 | |||
242 | &scif0 { | 247 | &scif0 { |
243 | pinctrl-0 = <&scif0_pins>; | 248 | pinctrl-0 = <&scif0_pins>; |
244 | pinctrl-names = "default"; | 249 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/r8a7792-wheat.dts b/arch/arm/boot/dts/r8a7792-wheat.dts index b9471b67b728..db01de7a3811 100644 --- a/arch/arm/boot/dts/r8a7792-wheat.dts +++ b/arch/arm/boot/dts/r8a7792-wheat.dts | |||
@@ -168,6 +168,11 @@ | |||
168 | }; | 168 | }; |
169 | }; | 169 | }; |
170 | 170 | ||
171 | &rwdt { | ||
172 | timeout-sec = <60>; | ||
173 | status = "okay"; | ||
174 | }; | ||
175 | |||
171 | &scif0 { | 176 | &scif0 { |
172 | pinctrl-0 = <&scif0_pins>; | 177 | pinctrl-0 = <&scif0_pins>; |
173 | pinctrl-names = "default"; | 178 | pinctrl-names = "default"; |
@@ -240,9 +245,15 @@ | |||
240 | status = "okay"; | 245 | status = "okay"; |
241 | clock-frequency = <400000>; | 246 | clock-frequency = <400000>; |
242 | 247 | ||
248 | /* | ||
249 | * The adv75xx resets its addresses to defaults during low power mode. | ||
250 | * Because we have two ADV7513 devices on the same bus, we must change | ||
251 | * both of them away from the defaults so that they do not conflict. | ||
252 | */ | ||
243 | hdmi@3d { | 253 | hdmi@3d { |
244 | compatible = "adi,adv7513"; | 254 | compatible = "adi,adv7513"; |
245 | reg = <0x3d>; | 255 | reg = <0x3d>, <0x2d>, <0x4d>, <0x5d>; |
256 | reg-names = "main", "cec", "edid", "packet"; | ||
246 | 257 | ||
247 | adi,input-depth = <8>; | 258 | adi,input-depth = <8>; |
248 | adi,input-colorspace = "rgb"; | 259 | adi,input-colorspace = "rgb"; |
@@ -272,7 +283,8 @@ | |||
272 | 283 | ||
273 | hdmi@39 { | 284 | hdmi@39 { |
274 | compatible = "adi,adv7513"; | 285 | compatible = "adi,adv7513"; |
275 | reg = <0x39>; | 286 | reg = <0x39>, <0x29>, <0x49>, <0x59>; |
287 | reg-names = "main", "cec", "edid", "packet"; | ||
276 | 288 | ||
277 | adi,input-depth = <8>; | 289 | adi,input-depth = <8>; |
278 | adi,input-colorspace = "rgb"; | 290 | adi,input-colorspace = "rgb"; |
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi index 268987ff0201..f44257dd86f6 100644 --- a/arch/arm/boot/dts/r8a7792.dtsi +++ b/arch/arm/boot/dts/r8a7792.dtsi | |||
@@ -85,6 +85,13 @@ | |||
85 | clock-frequency = <0>; | 85 | clock-frequency = <0>; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | pmu { | ||
89 | compatible = "arm,cortex-a15-pmu"; | ||
90 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
91 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
92 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
93 | }; | ||
94 | |||
88 | /* External SCIF clock */ | 95 | /* External SCIF clock */ |
89 | scif_clk: scif { | 96 | scif_clk: scif { |
90 | compatible = "fixed-clock"; | 97 | compatible = "fixed-clock"; |
@@ -101,6 +108,16 @@ | |||
101 | #size-cells = <2>; | 108 | #size-cells = <2>; |
102 | ranges; | 109 | ranges; |
103 | 110 | ||
111 | rwdt: watchdog@e6020000 { | ||
112 | compatible = "renesas,r8a7792-wdt", | ||
113 | "renesas,rcar-gen2-wdt"; | ||
114 | reg = <0 0xe6020000 0 0x0c>; | ||
115 | clocks = <&cpg CPG_MOD 402>; | ||
116 | power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | ||
117 | resets = <&cpg 402>; | ||
118 | status = "disabled"; | ||
119 | }; | ||
120 | |||
104 | gpio0: gpio@e6050000 { | 121 | gpio0: gpio@e6050000 { |
105 | compatible = "renesas,gpio-r8a7792", | 122 | compatible = "renesas,gpio-r8a7792", |
106 | "renesas,rcar-gen2-gpio"; | 123 | "renesas,rcar-gen2-gpio"; |
@@ -341,7 +358,7 @@ | |||
341 | 358 | ||
342 | smp-sram@0 { | 359 | smp-sram@0 { |
343 | compatible = "renesas,smp-sram"; | 360 | compatible = "renesas,smp-sram"; |
344 | reg = <0 0x10>; | 361 | reg = <0 0x100>; |
345 | }; | 362 | }; |
346 | }; | 363 | }; |
347 | 364 | ||
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts index 96e117d8b2cc..aa209f6e5d71 100644 --- a/arch/arm/boot/dts/r8a7793-gose.dts +++ b/arch/arm/boot/dts/r8a7793-gose.dts | |||
@@ -599,6 +599,11 @@ | |||
599 | status = "okay"; | 599 | status = "okay"; |
600 | }; | 600 | }; |
601 | 601 | ||
602 | &rwdt { | ||
603 | timeout-sec = <60>; | ||
604 | status = "okay"; | ||
605 | }; | ||
606 | |||
602 | &scif0 { | 607 | &scif0 { |
603 | pinctrl-0 = <&scif0_pins>; | 608 | pinctrl-0 = <&scif0_pins>; |
604 | pinctrl-names = "default"; | 609 | pinctrl-names = "default"; |
@@ -758,9 +763,6 @@ | |||
758 | pinctrl-names = "default"; | 763 | pinctrl-names = "default"; |
759 | 764 | ||
760 | port { | 765 | port { |
761 | #address-cells = <1>; | ||
762 | #size-cells = <0>; | ||
763 | |||
764 | vin0ep2: endpoint { | 766 | vin0ep2: endpoint { |
765 | remote-endpoint = <&adv7612_out>; | 767 | remote-endpoint = <&adv7612_out>; |
766 | bus-width = <24>; | 768 | bus-width = <24>; |
@@ -780,9 +782,6 @@ | |||
780 | status = "okay"; | 782 | status = "okay"; |
781 | 783 | ||
782 | port { | 784 | port { |
783 | #address-cells = <1>; | ||
784 | #size-cells = <0>; | ||
785 | |||
786 | vin1ep: endpoint { | 785 | vin1ep: endpoint { |
787 | remote-endpoint = <&adv7180_out>; | 786 | remote-endpoint = <&adv7180_out>; |
788 | bus-width = <8>; | 787 | bus-width = <8>; |
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi index 4f526030dc7c..4abecfc0ca98 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi | |||
@@ -110,6 +110,13 @@ | |||
110 | clock-frequency = <0>; | 110 | clock-frequency = <0>; |
111 | }; | 111 | }; |
112 | 112 | ||
113 | pmu { | ||
114 | compatible = "arm,cortex-a15-pmu"; | ||
115 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
116 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
117 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
118 | }; | ||
119 | |||
113 | /* External SCIF clock */ | 120 | /* External SCIF clock */ |
114 | scif_clk: scif { | 121 | scif_clk: scif { |
115 | compatible = "fixed-clock"; | 122 | compatible = "fixed-clock"; |
@@ -126,6 +133,16 @@ | |||
126 | #size-cells = <2>; | 133 | #size-cells = <2>; |
127 | ranges; | 134 | ranges; |
128 | 135 | ||
136 | rwdt: watchdog@e6020000 { | ||
137 | compatible = "renesas,r8a7793-wdt", | ||
138 | "renesas,rcar-gen2-wdt"; | ||
139 | reg = <0 0xe6020000 0 0x0c>; | ||
140 | clocks = <&cpg CPG_MOD 402>; | ||
141 | power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; | ||
142 | resets = <&cpg 402>; | ||
143 | status = "disabled"; | ||
144 | }; | ||
145 | |||
129 | gpio0: gpio@e6050000 { | 146 | gpio0: gpio@e6050000 { |
130 | compatible = "renesas,gpio-r8a7793", | 147 | compatible = "renesas,gpio-r8a7793", |
131 | "renesas,rcar-gen2-gpio"; | 148 | "renesas,rcar-gen2-gpio"; |
@@ -392,7 +409,7 @@ | |||
392 | 409 | ||
393 | smp-sram@0 { | 410 | smp-sram@0 { |
394 | compatible = "renesas,smp-sram"; | 411 | compatible = "renesas,smp-sram"; |
395 | reg = <0 0x10>; | 412 | reg = <0 0x100>; |
396 | }; | 413 | }; |
397 | }; | 414 | }; |
398 | 415 | ||
@@ -1290,6 +1307,24 @@ | |||
1290 | resets = <&cpg 408>; | 1307 | resets = <&cpg 408>; |
1291 | }; | 1308 | }; |
1292 | 1309 | ||
1310 | fdp1@fe940000 { | ||
1311 | compatible = "renesas,fdp1"; | ||
1312 | reg = <0 0xfe940000 0 0x2400>; | ||
1313 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | ||
1314 | clocks = <&cpg CPG_MOD 119>; | ||
1315 | power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; | ||
1316 | resets = <&cpg 119>; | ||
1317 | }; | ||
1318 | |||
1319 | fdp1@fe944000 { | ||
1320 | compatible = "renesas,fdp1"; | ||
1321 | reg = <0 0xfe944000 0 0x2400>; | ||
1322 | interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; | ||
1323 | clocks = <&cpg CPG_MOD 118>; | ||
1324 | power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; | ||
1325 | resets = <&cpg 118>; | ||
1326 | }; | ||
1327 | |||
1293 | du: display@feb00000 { | 1328 | du: display@feb00000 { |
1294 | compatible = "renesas,du-r8a7793"; | 1329 | compatible = "renesas,du-r8a7793"; |
1295 | reg = <0 0xfeb00000 0 0x40000>; | 1330 | reg = <0 0xfeb00000 0 0x40000>; |
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts index 26a883484ea8..e17027532941 100644 --- a/arch/arm/boot/dts/r8a7794-alt.dts +++ b/arch/arm/boot/dts/r8a7794-alt.dts | |||
@@ -181,6 +181,12 @@ | |||
181 | }; | 181 | }; |
182 | }; | 182 | }; |
183 | }; | 183 | }; |
184 | |||
185 | eeprom@50 { | ||
186 | compatible = "renesas,r1ex24002", "atmel,24c02"; | ||
187 | reg = <0x50>; | ||
188 | pagesize = <16>; | ||
189 | }; | ||
184 | }; | 190 | }; |
185 | 191 | ||
186 | /* | 192 | /* |
@@ -330,6 +336,11 @@ | |||
330 | status = "okay"; | 336 | status = "okay"; |
331 | }; | 337 | }; |
332 | 338 | ||
339 | &rwdt { | ||
340 | timeout-sec = <60>; | ||
341 | status = "okay"; | ||
342 | }; | ||
343 | |||
333 | &sdhi0 { | 344 | &sdhi0 { |
334 | pinctrl-0 = <&sdhi0_pins>; | 345 | pinctrl-0 = <&sdhi0_pins>; |
335 | pinctrl-1 = <&sdhi0_pins_uhs>; | 346 | pinctrl-1 = <&sdhi0_pins_uhs>; |
@@ -375,9 +386,6 @@ | |||
375 | pinctrl-names = "default"; | 386 | pinctrl-names = "default"; |
376 | 387 | ||
377 | port { | 388 | port { |
378 | #address-cells = <1>; | ||
379 | #size-cells = <0>; | ||
380 | |||
381 | vin0ep: endpoint { | 389 | vin0ep: endpoint { |
382 | remote-endpoint = <&adv7180>; | 390 | remote-endpoint = <&adv7180>; |
383 | bus-width = <8>; | 391 | bus-width = <8>; |
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts index 351cb3b3d966..7808aaee6644 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts | |||
@@ -475,9 +475,6 @@ | |||
475 | pinctrl-names = "default"; | 475 | pinctrl-names = "default"; |
476 | 476 | ||
477 | port { | 477 | port { |
478 | #address-cells = <1>; | ||
479 | #size-cells = <0>; | ||
480 | |||
481 | vin0ep: endpoint { | 478 | vin0ep: endpoint { |
482 | remote-endpoint = <&adv7180>; | 479 | remote-endpoint = <&adv7180>; |
483 | bus-width = <8>; | 480 | bus-width = <8>; |
@@ -540,6 +537,11 @@ | |||
540 | }; | 537 | }; |
541 | }; | 538 | }; |
542 | 539 | ||
540 | &rwdt { | ||
541 | timeout-sec = <60>; | ||
542 | status = "okay"; | ||
543 | }; | ||
544 | |||
543 | &ssi1 { | 545 | &ssi1 { |
544 | shared-pin; | 546 | shared-pin; |
545 | }; | 547 | }; |
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi index d588efa6aeaa..736196903d22 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi | |||
@@ -103,6 +103,13 @@ | |||
103 | clock-frequency = <0>; | 103 | clock-frequency = <0>; |
104 | }; | 104 | }; |
105 | 105 | ||
106 | pmu { | ||
107 | compatible = "arm,cortex-a7-pmu"; | ||
108 | interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, | ||
109 | <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
110 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
111 | }; | ||
112 | |||
106 | /* External SCIF clock */ | 113 | /* External SCIF clock */ |
107 | scif_clk: scif { | 114 | scif_clk: scif { |
108 | compatible = "fixed-clock"; | 115 | compatible = "fixed-clock"; |
@@ -119,6 +126,16 @@ | |||
119 | #size-cells = <2>; | 126 | #size-cells = <2>; |
120 | ranges; | 127 | ranges; |
121 | 128 | ||
129 | rwdt: watchdog@e6020000 { | ||
130 | compatible = "renesas,r8a7794-wdt", | ||
131 | "renesas,rcar-gen2-wdt"; | ||
132 | reg = <0 0xe6020000 0 0x0c>; | ||
133 | clocks = <&cpg CPG_MOD 402>; | ||
134 | power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; | ||
135 | resets = <&cpg 402>; | ||
136 | status = "disabled"; | ||
137 | }; | ||
138 | |||
122 | gpio0: gpio@e6050000 { | 139 | gpio0: gpio@e6050000 { |
123 | compatible = "renesas,gpio-r8a7794", | 140 | compatible = "renesas,gpio-r8a7794", |
124 | "renesas,rcar-gen2-gpio"; | 141 | "renesas,rcar-gen2-gpio"; |
@@ -348,7 +365,7 @@ | |||
348 | 365 | ||
349 | smp-sram@0 { | 366 | smp-sram@0 { |
350 | compatible = "renesas,smp-sram"; | 367 | compatible = "renesas,smp-sram"; |
351 | reg = <0 0x10>; | 368 | reg = <0 0x100>; |
352 | }; | 369 | }; |
353 | }; | 370 | }; |
354 | 371 | ||
@@ -1323,6 +1340,15 @@ | |||
1323 | resets = <&cpg 128>; | 1340 | resets = <&cpg 128>; |
1324 | }; | 1341 | }; |
1325 | 1342 | ||
1343 | fdp1@fe940000 { | ||
1344 | compatible = "renesas,fdp1"; | ||
1345 | reg = <0 0xfe940000 0 0x2400>; | ||
1346 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | ||
1347 | clocks = <&cpg CPG_MOD 119>; | ||
1348 | power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; | ||
1349 | resets = <&cpg 119>; | ||
1350 | }; | ||
1351 | |||
1326 | du: display@feb00000 { | 1352 | du: display@feb00000 { |
1327 | compatible = "renesas,du-r8a7794"; | 1353 | compatible = "renesas,du-r8a7794"; |
1328 | reg = <0 0xfeb00000 0 0x40000>; | 1354 | reg = <0 0xfeb00000 0 0x40000>; |
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi index 914a7c2a584f..c953648a5f41 100644 --- a/arch/arm/boot/dts/sh73a0.dtsi +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
@@ -22,7 +22,7 @@ | |||
22 | #address-cells = <1>; | 22 | #address-cells = <1>; |
23 | #size-cells = <0>; | 23 | #size-cells = <0>; |
24 | 24 | ||
25 | cpu@0 { | 25 | cpu0: cpu@0 { |
26 | device_type = "cpu"; | 26 | device_type = "cpu"; |
27 | compatible = "arm,cortex-a9"; | 27 | compatible = "arm,cortex-a9"; |
28 | reg = <0>; | 28 | reg = <0>; |
@@ -31,7 +31,7 @@ | |||
31 | power-domains = <&pd_a2sl>; | 31 | power-domains = <&pd_a2sl>; |
32 | next-level-cache = <&L2>; | 32 | next-level-cache = <&L2>; |
33 | }; | 33 | }; |
34 | cpu@1 { | 34 | cpu1: cpu@1 { |
35 | device_type = "cpu"; | 35 | device_type = "cpu"; |
36 | compatible = "arm,cortex-a9"; | 36 | compatible = "arm,cortex-a9"; |
37 | reg = <1>; | 37 | reg = <1>; |
@@ -91,6 +91,7 @@ | |||
91 | compatible = "arm,cortex-a9-pmu"; | 91 | compatible = "arm,cortex-a9-pmu"; |
92 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | 92 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, |
93 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | 93 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; |
94 | interrupt-affinity = <&cpu0>, <&cpu1>; | ||
94 | }; | 95 | }; |
95 | 96 | ||
96 | cmt1: timer@e6138000 { | 97 | cmt1: timer@e6138000 { |
@@ -336,7 +337,7 @@ | |||
336 | GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; | 337 | GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; |
337 | clocks = <&mstp3_clks SH73A0_CLK_SDHI1>; | 338 | clocks = <&mstp3_clks SH73A0_CLK_SDHI1>; |
338 | power-domains = <&pd_a3sp>; | 339 | power-domains = <&pd_a3sp>; |
339 | toshiba,mmc-wrprotect-disable; | 340 | disable-wp; |
340 | cap-sd-highspeed; | 341 | cap-sd-highspeed; |
341 | status = "disabled"; | 342 | status = "disabled"; |
342 | }; | 343 | }; |
@@ -348,7 +349,7 @@ | |||
348 | GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | 349 | GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; |
349 | clocks = <&mstp3_clks SH73A0_CLK_SDHI2>; | 350 | clocks = <&mstp3_clks SH73A0_CLK_SDHI2>; |
350 | power-domains = <&pd_a3sp>; | 351 | power-domains = <&pd_a3sp>; |
351 | toshiba,mmc-wrprotect-disable; | 352 | disable-wp; |
352 | cap-sd-highspeed; | 353 | cap-sd-highspeed; |
353 | status = "disabled"; | 354 | status = "disabled"; |
354 | }; | 355 | }; |
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 2b1535cdeb7c..d5aeac351fc3 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms | |||
@@ -208,6 +208,12 @@ config ARCH_R8A77980 | |||
208 | help | 208 | help |
209 | This enables support for the Renesas R-Car V3H SoC. | 209 | This enables support for the Renesas R-Car V3H SoC. |
210 | 210 | ||
211 | config ARCH_R8A77990 | ||
212 | bool "Renesas R-Car E3 SoC Platform" | ||
213 | depends on ARCH_RENESAS | ||
214 | help | ||
215 | This enables support for the Renesas R-Car E3 SoC. | ||
216 | |||
211 | config ARCH_R8A77995 | 217 | config ARCH_R8A77995 |
212 | bool "Renesas R-Car D3 SoC Platform" | 218 | bool "Renesas R-Car D3 SoC Platform" |
213 | depends on ARCH_RENESAS | 219 | depends on ARCH_RENESAS |
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile index 5ede06000ea4..9e2394bc3c62 100644 --- a/arch/arm64/boot/dts/renesas/Makefile +++ b/arch/arm64/boot/dts/renesas/Makefile | |||
@@ -9,5 +9,6 @@ dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-m3ulcb-kf.dtb | |||
9 | dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-xs.dtb | 9 | dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-xs.dtb |
10 | dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-x.dtb r8a77965-salvator-xs.dtb | 10 | dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-x.dtb r8a77965-salvator-xs.dtb |
11 | dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb r8a77970-v3msk.dtb | 11 | dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb r8a77970-v3msk.dtb |
12 | dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb | 12 | dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb r8a77980-v3hsk.dtb |
13 | dtb-$(CONFIG_ARCH_R8A77990) += r8a77990-ebisu.dtb | ||
13 | dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb | 14 | dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts index 7f2a3d923f21..3f46345a4644 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts | |||
@@ -56,6 +56,12 @@ | |||
56 | status = "okay"; | 56 | status = "okay"; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | &sound_card { | ||
60 | dais = <&rsnd_port0 /* ak4613 */ | ||
61 | &rsnd_port1 /* HDMI0 */ | ||
62 | &rsnd_port2>; /* HDMI1 */ | ||
63 | }; | ||
64 | |||
59 | &hdmi0 { | 65 | &hdmi0 { |
60 | status = "okay"; | 66 | status = "okay"; |
61 | 67 | ||
@@ -66,6 +72,12 @@ | |||
66 | remote-endpoint = <&hdmi0_con>; | 72 | remote-endpoint = <&hdmi0_con>; |
67 | }; | 73 | }; |
68 | }; | 74 | }; |
75 | port@2 { | ||
76 | reg = <2>; | ||
77 | dw_hdmi0_snd_in: endpoint { | ||
78 | remote-endpoint = <&rsnd_endpoint1>; | ||
79 | }; | ||
80 | }; | ||
69 | }; | 81 | }; |
70 | }; | 82 | }; |
71 | 83 | ||
@@ -83,6 +95,12 @@ | |||
83 | remote-endpoint = <&hdmi1_con>; | 95 | remote-endpoint = <&hdmi1_con>; |
84 | }; | 96 | }; |
85 | }; | 97 | }; |
98 | port@2 { | ||
99 | reg = <2>; | ||
100 | dw_hdmi1_snd_in: endpoint { | ||
101 | remote-endpoint = <&rsnd_endpoint2>; | ||
102 | }; | ||
103 | }; | ||
86 | }; | 104 | }; |
87 | }; | 105 | }; |
88 | 106 | ||
@@ -94,6 +112,34 @@ | |||
94 | status = "okay"; | 112 | status = "okay"; |
95 | }; | 113 | }; |
96 | 114 | ||
115 | &rcar_sound { | ||
116 | ports { | ||
117 | /* rsnd_port0 is on salvator-common */ | ||
118 | rsnd_port1: port@1 { | ||
119 | rsnd_endpoint1: endpoint { | ||
120 | remote-endpoint = <&dw_hdmi0_snd_in>; | ||
121 | |||
122 | dai-format = "i2s"; | ||
123 | bitclock-master = <&rsnd_endpoint1>; | ||
124 | frame-master = <&rsnd_endpoint1>; | ||
125 | |||
126 | playback = <&ssi2>; | ||
127 | }; | ||
128 | }; | ||
129 | rsnd_port2: port@2 { | ||
130 | rsnd_endpoint2: endpoint { | ||
131 | remote-endpoint = <&dw_hdmi1_snd_in>; | ||
132 | |||
133 | dai-format = "i2s"; | ||
134 | bitclock-master = <&rsnd_endpoint2>; | ||
135 | frame-master = <&rsnd_endpoint2>; | ||
136 | |||
137 | playback = <&ssi3>; | ||
138 | }; | ||
139 | }; | ||
140 | }; | ||
141 | }; | ||
142 | |||
97 | &pfc { | 143 | &pfc { |
98 | usb2_pins: usb2 { | 144 | usb2_pins: usb2 { |
99 | groups = "usb2"; | 145 | groups = "usb2"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi index f9acd125d687..e19dcd6cb767 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | |||
@@ -39,7 +39,6 @@ | |||
39 | reg = <0 0xe7730000 0 0x1000>; | 39 | reg = <0 0xe7730000 0 0x1000>; |
40 | renesas,ipmmu-main = <&ipmmu_mm 8>; | 40 | renesas,ipmmu-main = <&ipmmu_mm 8>; |
41 | #iommu-cells = <1>; | 41 | #iommu-cells = <1>; |
42 | status = "disabled"; | ||
43 | }; | 42 | }; |
44 | 43 | ||
45 | /delete-node/ usb-phy@ee0e0200; | 44 | /delete-node/ usb-phy@ee0e0200; |
@@ -108,6 +107,61 @@ | |||
108 | resets = <&cpg 117>; | 107 | resets = <&cpg 117>; |
109 | renesas,fcp = <&fcpf2>; | 108 | renesas,fcp = <&fcpf2>; |
110 | }; | 109 | }; |
110 | |||
111 | csi21: csi2@fea90000 { | ||
112 | compatible = "renesas,r8a7795-csi2"; | ||
113 | reg = <0 0xfea90000 0 0x10000>; | ||
114 | interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; | ||
115 | clocks = <&cpg CPG_MOD 713>; | ||
116 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
117 | resets = <&cpg 713>; | ||
118 | status = "disabled"; | ||
119 | |||
120 | ports { | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <0>; | ||
123 | |||
124 | port@1 { | ||
125 | #address-cells = <1>; | ||
126 | #size-cells = <0>; | ||
127 | |||
128 | reg = <1>; | ||
129 | |||
130 | csi21vin0: endpoint@0 { | ||
131 | reg = <0>; | ||
132 | remote-endpoint = <&vin0csi21>; | ||
133 | }; | ||
134 | csi21vin1: endpoint@1 { | ||
135 | reg = <1>; | ||
136 | remote-endpoint = <&vin1csi21>; | ||
137 | }; | ||
138 | csi21vin2: endpoint@2 { | ||
139 | reg = <2>; | ||
140 | remote-endpoint = <&vin2csi21>; | ||
141 | }; | ||
142 | csi21vin3: endpoint@3 { | ||
143 | reg = <3>; | ||
144 | remote-endpoint = <&vin3csi21>; | ||
145 | }; | ||
146 | csi21vin4: endpoint@4 { | ||
147 | reg = <4>; | ||
148 | remote-endpoint = <&vin4csi21>; | ||
149 | }; | ||
150 | csi21vin5: endpoint@5 { | ||
151 | reg = <5>; | ||
152 | remote-endpoint = <&vin5csi21>; | ||
153 | }; | ||
154 | csi21vin6: endpoint@6 { | ||
155 | reg = <6>; | ||
156 | remote-endpoint = <&vin6csi21>; | ||
157 | }; | ||
158 | csi21vin7: endpoint@7 { | ||
159 | reg = <7>; | ||
160 | remote-endpoint = <&vin7csi21>; | ||
161 | }; | ||
162 | }; | ||
163 | }; | ||
164 | }; | ||
111 | }; | 165 | }; |
112 | 166 | ||
113 | &gpio1 { | 167 | &gpio1 { |
@@ -175,3 +229,91 @@ | |||
175 | &du { | 229 | &du { |
176 | vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; | 230 | vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; |
177 | }; | 231 | }; |
232 | |||
233 | &vin0 { | ||
234 | ports { | ||
235 | port@1 { | ||
236 | vin0csi21: endpoint@1 { | ||
237 | reg = <1>; | ||
238 | remote-endpoint= <&csi21vin0>; | ||
239 | }; | ||
240 | }; | ||
241 | }; | ||
242 | }; | ||
243 | |||
244 | &vin1 { | ||
245 | ports { | ||
246 | port@1 { | ||
247 | vin1csi21: endpoint@1 { | ||
248 | reg = <1>; | ||
249 | remote-endpoint= <&csi21vin1>; | ||
250 | }; | ||
251 | }; | ||
252 | }; | ||
253 | }; | ||
254 | |||
255 | &vin2 { | ||
256 | ports { | ||
257 | port@1 { | ||
258 | vin2csi21: endpoint@1 { | ||
259 | reg = <1>; | ||
260 | remote-endpoint= <&csi21vin2>; | ||
261 | }; | ||
262 | }; | ||
263 | }; | ||
264 | }; | ||
265 | |||
266 | &vin3 { | ||
267 | ports { | ||
268 | port@1 { | ||
269 | vin3csi21: endpoint@1 { | ||
270 | reg = <1>; | ||
271 | remote-endpoint= <&csi21vin3>; | ||
272 | }; | ||
273 | }; | ||
274 | }; | ||
275 | }; | ||
276 | |||
277 | &vin4 { | ||
278 | ports { | ||
279 | port@1 { | ||
280 | vin4csi21: endpoint@1 { | ||
281 | reg = <1>; | ||
282 | remote-endpoint= <&csi21vin4>; | ||
283 | }; | ||
284 | }; | ||
285 | }; | ||
286 | }; | ||
287 | |||
288 | &vin5 { | ||
289 | ports { | ||
290 | port@1 { | ||
291 | vin5csi21: endpoint@1 { | ||
292 | reg = <1>; | ||
293 | remote-endpoint= <&csi21vin5>; | ||
294 | }; | ||
295 | }; | ||
296 | }; | ||
297 | }; | ||
298 | |||
299 | &vin6 { | ||
300 | ports { | ||
301 | port@1 { | ||
302 | vin6csi21: endpoint@1 { | ||
303 | reg = <1>; | ||
304 | remote-endpoint= <&csi21vin6>; | ||
305 | }; | ||
306 | }; | ||
307 | }; | ||
308 | }; | ||
309 | |||
310 | &vin7 { | ||
311 | ports { | ||
312 | port@1 { | ||
313 | vin7csi21: endpoint@1 { | ||
314 | reg = <1>; | ||
315 | remote-endpoint= <&csi21vin7>; | ||
316 | }; | ||
317 | }; | ||
318 | }; | ||
319 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts index af467419266a..0efbef5ea9b7 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | |||
@@ -56,6 +56,12 @@ | |||
56 | status = "okay"; | 56 | status = "okay"; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | &sound_card { | ||
60 | dais = <&rsnd_port0 /* ak4613 */ | ||
61 | &rsnd_port1 /* HDMI0 */ | ||
62 | &rsnd_port2>; /* HDMI1 */ | ||
63 | }; | ||
64 | |||
59 | &hdmi0 { | 65 | &hdmi0 { |
60 | status = "okay"; | 66 | status = "okay"; |
61 | 67 | ||
@@ -66,6 +72,12 @@ | |||
66 | remote-endpoint = <&hdmi0_con>; | 72 | remote-endpoint = <&hdmi0_con>; |
67 | }; | 73 | }; |
68 | }; | 74 | }; |
75 | port@2 { | ||
76 | reg = <2>; | ||
77 | dw_hdmi0_snd_in: endpoint { | ||
78 | remote-endpoint = <&rsnd_endpoint1>; | ||
79 | }; | ||
80 | }; | ||
69 | }; | 81 | }; |
70 | }; | 82 | }; |
71 | 83 | ||
@@ -83,6 +95,12 @@ | |||
83 | remote-endpoint = <&hdmi1_con>; | 95 | remote-endpoint = <&hdmi1_con>; |
84 | }; | 96 | }; |
85 | }; | 97 | }; |
98 | port@2 { | ||
99 | reg = <2>; | ||
100 | dw_hdmi1_snd_in: endpoint { | ||
101 | remote-endpoint = <&rsnd_endpoint2>; | ||
102 | }; | ||
103 | }; | ||
86 | }; | 104 | }; |
87 | }; | 105 | }; |
88 | 106 | ||
@@ -94,6 +112,34 @@ | |||
94 | status = "okay"; | 112 | status = "okay"; |
95 | }; | 113 | }; |
96 | 114 | ||
115 | &rcar_sound { | ||
116 | ports { | ||
117 | /* rsnd_port0 is on salvator-common */ | ||
118 | rsnd_port1: port@1 { | ||
119 | rsnd_endpoint1: endpoint { | ||
120 | remote-endpoint = <&dw_hdmi0_snd_in>; | ||
121 | |||
122 | dai-format = "i2s"; | ||
123 | bitclock-master = <&rsnd_endpoint1>; | ||
124 | frame-master = <&rsnd_endpoint1>; | ||
125 | |||
126 | playback = <&ssi2>; | ||
127 | }; | ||
128 | }; | ||
129 | rsnd_port2: port@2 { | ||
130 | rsnd_endpoint2: endpoint { | ||
131 | remote-endpoint = <&dw_hdmi1_snd_in>; | ||
132 | |||
133 | dai-format = "i2s"; | ||
134 | bitclock-master = <&rsnd_endpoint2>; | ||
135 | frame-master = <&rsnd_endpoint2>; | ||
136 | |||
137 | playback = <&ssi3>; | ||
138 | }; | ||
139 | }; | ||
140 | }; | ||
141 | }; | ||
142 | |||
97 | &pfc { | 143 | &pfc { |
98 | usb2_pins: usb2 { | 144 | usb2_pins: usb2 { |
99 | groups = "usb2"; | 145 | groups = "usb2"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts index 8b50ceb746e8..e231b5a7cbab 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts | |||
@@ -56,6 +56,22 @@ | |||
56 | status = "okay"; | 56 | status = "okay"; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | &ehci3 { | ||
60 | dr_mode = "otg"; | ||
61 | status = "okay"; | ||
62 | }; | ||
63 | |||
64 | &hsusb3 { | ||
65 | dr_mode = "otg"; | ||
66 | status = "okay"; | ||
67 | }; | ||
68 | |||
69 | &sound_card { | ||
70 | dais = <&rsnd_port0 /* ak4613 */ | ||
71 | &rsnd_port1 /* HDMI0 */ | ||
72 | &rsnd_port2>; /* HDMI1 */ | ||
73 | }; | ||
74 | |||
59 | &hdmi0 { | 75 | &hdmi0 { |
60 | status = "okay"; | 76 | status = "okay"; |
61 | 77 | ||
@@ -66,6 +82,12 @@ | |||
66 | remote-endpoint = <&hdmi0_con>; | 82 | remote-endpoint = <&hdmi0_con>; |
67 | }; | 83 | }; |
68 | }; | 84 | }; |
85 | port@2 { | ||
86 | reg = <2>; | ||
87 | dw_hdmi0_snd_in: endpoint { | ||
88 | remote-endpoint = <&rsnd_endpoint1>; | ||
89 | }; | ||
90 | }; | ||
69 | }; | 91 | }; |
70 | }; | 92 | }; |
71 | 93 | ||
@@ -83,6 +105,12 @@ | |||
83 | remote-endpoint = <&hdmi1_con>; | 105 | remote-endpoint = <&hdmi1_con>; |
84 | }; | 106 | }; |
85 | }; | 107 | }; |
108 | port@2 { | ||
109 | reg = <2>; | ||
110 | dw_hdmi1_snd_in: endpoint { | ||
111 | remote-endpoint = <&rsnd_endpoint2>; | ||
112 | }; | ||
113 | }; | ||
86 | }; | 114 | }; |
87 | }; | 115 | }; |
88 | 116 | ||
@@ -94,11 +122,61 @@ | |||
94 | status = "okay"; | 122 | status = "okay"; |
95 | }; | 123 | }; |
96 | 124 | ||
125 | &ohci3 { | ||
126 | dr_mode = "otg"; | ||
127 | status = "okay"; | ||
128 | }; | ||
129 | |||
130 | &rcar_sound { | ||
131 | ports { | ||
132 | /* rsnd_port0 is on salvator-common */ | ||
133 | rsnd_port1: port@1 { | ||
134 | rsnd_endpoint1: endpoint { | ||
135 | remote-endpoint = <&dw_hdmi0_snd_in>; | ||
136 | |||
137 | dai-format = "i2s"; | ||
138 | bitclock-master = <&rsnd_endpoint1>; | ||
139 | frame-master = <&rsnd_endpoint1>; | ||
140 | |||
141 | playback = <&ssi2>; | ||
142 | }; | ||
143 | }; | ||
144 | rsnd_port2: port@2 { | ||
145 | rsnd_endpoint2: endpoint { | ||
146 | remote-endpoint = <&dw_hdmi1_snd_in>; | ||
147 | |||
148 | dai-format = "i2s"; | ||
149 | bitclock-master = <&rsnd_endpoint2>; | ||
150 | frame-master = <&rsnd_endpoint2>; | ||
151 | |||
152 | playback = <&ssi3>; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | }; | ||
157 | |||
97 | &pfc { | 158 | &pfc { |
98 | usb2_pins: usb2 { | 159 | usb2_pins: usb2 { |
99 | groups = "usb2"; | 160 | groups = "usb2"; |
100 | function = "usb2"; | 161 | function = "usb2"; |
101 | }; | 162 | }; |
163 | |||
164 | /* | ||
165 | * - On Salvator-X[S], GP6_3[01] are connected to ADV7482 as irq pins | ||
166 | * (when SW31 is the default setting on Salvator-XS). | ||
167 | * - If SW31 is the default setting, you cannot use USB2.0 ch3 on | ||
168 | * r8a7795 with Salvator-XS. | ||
169 | * Hence the SW31 setting must be changed like 2) below. | ||
170 | * 1) Default setting of SW31: ON-ON-OFF-OFF-OFF-OFF: | ||
171 | * - Connect GP6_3[01] to ADV7842. | ||
172 | * 2) Changed setting of SW31: OFF-OFF-ON-ON-ON-ON: | ||
173 | * - Connect GP6_3[01] to BD082065 (USB2.0 ch3's host power). | ||
174 | * - Connect GP6_{04,21} to ADV7842. | ||
175 | */ | ||
176 | usb2_ch3_pins: usb2_ch3 { | ||
177 | groups = "usb2_ch3"; | ||
178 | function = "usb2_ch3"; | ||
179 | }; | ||
102 | }; | 180 | }; |
103 | 181 | ||
104 | &usb2_phy2 { | 182 | &usb2_phy2 { |
@@ -107,3 +185,10 @@ | |||
107 | 185 | ||
108 | status = "okay"; | 186 | status = "okay"; |
109 | }; | 187 | }; |
188 | |||
189 | &usb2_phy3 { | ||
190 | pinctrl-0 = <&usb2_ch3_pins>; | ||
191 | pinctrl-names = "default"; | ||
192 | |||
193 | status = "okay"; | ||
194 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi index 1d5e3ac0231c..d842940b2f43 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi | |||
@@ -30,6 +30,91 @@ | |||
30 | i2c7 = &i2c_dvfs; | 30 | i2c7 = &i2c_dvfs; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | /* | ||
34 | * The external audio clocks are configured as 0 Hz fixed frequency | ||
35 | * clocks by default. | ||
36 | * Boards that provide audio clocks should override them. | ||
37 | */ | ||
38 | audio_clk_a: audio_clk_a { | ||
39 | compatible = "fixed-clock"; | ||
40 | #clock-cells = <0>; | ||
41 | clock-frequency = <0>; | ||
42 | }; | ||
43 | |||
44 | audio_clk_b: audio_clk_b { | ||
45 | compatible = "fixed-clock"; | ||
46 | #clock-cells = <0>; | ||
47 | clock-frequency = <0>; | ||
48 | }; | ||
49 | |||
50 | audio_clk_c: audio_clk_c { | ||
51 | compatible = "fixed-clock"; | ||
52 | #clock-cells = <0>; | ||
53 | clock-frequency = <0>; | ||
54 | }; | ||
55 | |||
56 | /* External CAN clock - to be overridden by boards that provide it */ | ||
57 | can_clk: can { | ||
58 | compatible = "fixed-clock"; | ||
59 | #clock-cells = <0>; | ||
60 | clock-frequency = <0>; | ||
61 | }; | ||
62 | |||
63 | cluster0_opp: opp_table0 { | ||
64 | compatible = "operating-points-v2"; | ||
65 | opp-shared; | ||
66 | |||
67 | opp-500000000 { | ||
68 | opp-hz = /bits/ 64 <500000000>; | ||
69 | opp-microvolt = <830000>; | ||
70 | clock-latency-ns = <300000>; | ||
71 | }; | ||
72 | opp-1000000000 { | ||
73 | opp-hz = /bits/ 64 <1000000000>; | ||
74 | opp-microvolt = <830000>; | ||
75 | clock-latency-ns = <300000>; | ||
76 | }; | ||
77 | opp-1500000000 { | ||
78 | opp-hz = /bits/ 64 <1500000000>; | ||
79 | opp-microvolt = <830000>; | ||
80 | clock-latency-ns = <300000>; | ||
81 | opp-suspend; | ||
82 | }; | ||
83 | opp-1600000000 { | ||
84 | opp-hz = /bits/ 64 <1600000000>; | ||
85 | opp-microvolt = <900000>; | ||
86 | clock-latency-ns = <300000>; | ||
87 | turbo-mode; | ||
88 | }; | ||
89 | opp-1700000000 { | ||
90 | opp-hz = /bits/ 64 <1700000000>; | ||
91 | opp-microvolt = <960000>; | ||
92 | clock-latency-ns = <300000>; | ||
93 | turbo-mode; | ||
94 | }; | ||
95 | }; | ||
96 | |||
97 | cluster1_opp: opp_table1 { | ||
98 | compatible = "operating-points-v2"; | ||
99 | opp-shared; | ||
100 | |||
101 | opp-800000000 { | ||
102 | opp-hz = /bits/ 64 <800000000>; | ||
103 | opp-microvolt = <820000>; | ||
104 | clock-latency-ns = <300000>; | ||
105 | }; | ||
106 | opp-1000000000 { | ||
107 | opp-hz = /bits/ 64 <1000000000>; | ||
108 | opp-microvolt = <820000>; | ||
109 | clock-latency-ns = <300000>; | ||
110 | }; | ||
111 | opp-1200000000 { | ||
112 | opp-hz = /bits/ 64 <1200000000>; | ||
113 | opp-microvolt = <820000>; | ||
114 | clock-latency-ns = <300000>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
33 | cpus { | 118 | cpus { |
34 | #address-cells = <1>; | 119 | #address-cells = <1>; |
35 | #size-cells = <0>; | 120 | #size-cells = <0>; |
@@ -47,7 +132,7 @@ | |||
47 | }; | 132 | }; |
48 | 133 | ||
49 | a57_1: cpu@1 { | 134 | a57_1: cpu@1 { |
50 | compatible = "arm,cortex-a57","arm,armv8"; | 135 | compatible = "arm,cortex-a57", "arm,armv8"; |
51 | reg = <0x1>; | 136 | reg = <0x1>; |
52 | device_type = "cpu"; | 137 | device_type = "cpu"; |
53 | power-domains = <&sysc R8A7795_PD_CA57_CPU1>; | 138 | power-domains = <&sysc R8A7795_PD_CA57_CPU1>; |
@@ -59,7 +144,7 @@ | |||
59 | }; | 144 | }; |
60 | 145 | ||
61 | a57_2: cpu@2 { | 146 | a57_2: cpu@2 { |
62 | compatible = "arm,cortex-a57","arm,armv8"; | 147 | compatible = "arm,cortex-a57", "arm,armv8"; |
63 | reg = <0x2>; | 148 | reg = <0x2>; |
64 | device_type = "cpu"; | 149 | device_type = "cpu"; |
65 | power-domains = <&sysc R8A7795_PD_CA57_CPU2>; | 150 | power-domains = <&sysc R8A7795_PD_CA57_CPU2>; |
@@ -71,7 +156,7 @@ | |||
71 | }; | 156 | }; |
72 | 157 | ||
73 | a57_3: cpu@3 { | 158 | a57_3: cpu@3 { |
74 | compatible = "arm,cortex-a57","arm,armv8"; | 159 | compatible = "arm,cortex-a57", "arm,armv8"; |
75 | reg = <0x3>; | 160 | reg = <0x3>; |
76 | device_type = "cpu"; | 161 | device_type = "cpu"; |
77 | power-domains = <&sysc R8A7795_PD_CA57_CPU3>; | 162 | power-domains = <&sysc R8A7795_PD_CA57_CPU3>; |
@@ -94,7 +179,7 @@ | |||
94 | }; | 179 | }; |
95 | 180 | ||
96 | a53_1: cpu@101 { | 181 | a53_1: cpu@101 { |
97 | compatible = "arm,cortex-a53","arm,armv8"; | 182 | compatible = "arm,cortex-a53", "arm,armv8"; |
98 | reg = <0x101>; | 183 | reg = <0x101>; |
99 | device_type = "cpu"; | 184 | device_type = "cpu"; |
100 | power-domains = <&sysc R8A7795_PD_CA53_CPU1>; | 185 | power-domains = <&sysc R8A7795_PD_CA53_CPU1>; |
@@ -105,7 +190,7 @@ | |||
105 | }; | 190 | }; |
106 | 191 | ||
107 | a53_2: cpu@102 { | 192 | a53_2: cpu@102 { |
108 | compatible = "arm,cortex-a53","arm,armv8"; | 193 | compatible = "arm,cortex-a53", "arm,armv8"; |
109 | reg = <0x102>; | 194 | reg = <0x102>; |
110 | device_type = "cpu"; | 195 | device_type = "cpu"; |
111 | power-domains = <&sysc R8A7795_PD_CA53_CPU2>; | 196 | power-domains = <&sysc R8A7795_PD_CA53_CPU2>; |
@@ -116,7 +201,7 @@ | |||
116 | }; | 201 | }; |
117 | 202 | ||
118 | a53_3: cpu@103 { | 203 | a53_3: cpu@103 { |
119 | compatible = "arm,cortex-a53","arm,armv8"; | 204 | compatible = "arm,cortex-a53", "arm,armv8"; |
120 | reg = <0x103>; | 205 | reg = <0x103>; |
121 | device_type = "cpu"; | 206 | device_type = "cpu"; |
122 | power-domains = <&sysc R8A7795_PD_CA53_CPU3>; | 207 | power-domains = <&sysc R8A7795_PD_CA53_CPU3>; |
@@ -155,91 +240,6 @@ | |||
155 | clock-frequency = <0>; | 240 | clock-frequency = <0>; |
156 | }; | 241 | }; |
157 | 242 | ||
158 | /* | ||
159 | * The external audio clocks are configured as 0 Hz fixed frequency | ||
160 | * clocks by default. | ||
161 | * Boards that provide audio clocks should override them. | ||
162 | */ | ||
163 | audio_clk_a: audio_clk_a { | ||
164 | compatible = "fixed-clock"; | ||
165 | #clock-cells = <0>; | ||
166 | clock-frequency = <0>; | ||
167 | }; | ||
168 | |||
169 | audio_clk_b: audio_clk_b { | ||
170 | compatible = "fixed-clock"; | ||
171 | #clock-cells = <0>; | ||
172 | clock-frequency = <0>; | ||
173 | }; | ||
174 | |||
175 | audio_clk_c: audio_clk_c { | ||
176 | compatible = "fixed-clock"; | ||
177 | #clock-cells = <0>; | ||
178 | clock-frequency = <0>; | ||
179 | }; | ||
180 | |||
181 | /* External CAN clock - to be overridden by boards that provide it */ | ||
182 | can_clk: can { | ||
183 | compatible = "fixed-clock"; | ||
184 | #clock-cells = <0>; | ||
185 | clock-frequency = <0>; | ||
186 | }; | ||
187 | |||
188 | cluster0_opp: opp_table0 { | ||
189 | compatible = "operating-points-v2"; | ||
190 | opp-shared; | ||
191 | |||
192 | opp-500000000 { | ||
193 | opp-hz = /bits/ 64 <500000000>; | ||
194 | opp-microvolt = <830000>; | ||
195 | clock-latency-ns = <300000>; | ||
196 | }; | ||
197 | opp-1000000000 { | ||
198 | opp-hz = /bits/ 64 <1000000000>; | ||
199 | opp-microvolt = <830000>; | ||
200 | clock-latency-ns = <300000>; | ||
201 | }; | ||
202 | opp-1500000000 { | ||
203 | opp-hz = /bits/ 64 <1500000000>; | ||
204 | opp-microvolt = <830000>; | ||
205 | clock-latency-ns = <300000>; | ||
206 | opp-suspend; | ||
207 | }; | ||
208 | opp-1600000000 { | ||
209 | opp-hz = /bits/ 64 <1600000000>; | ||
210 | opp-microvolt = <900000>; | ||
211 | clock-latency-ns = <300000>; | ||
212 | turbo-mode; | ||
213 | }; | ||
214 | opp-1700000000 { | ||
215 | opp-hz = /bits/ 64 <1700000000>; | ||
216 | opp-microvolt = <960000>; | ||
217 | clock-latency-ns = <300000>; | ||
218 | turbo-mode; | ||
219 | }; | ||
220 | }; | ||
221 | |||
222 | cluster1_opp: opp_table1 { | ||
223 | compatible = "operating-points-v2"; | ||
224 | opp-shared; | ||
225 | |||
226 | opp-800000000 { | ||
227 | opp-hz = /bits/ 64 <800000000>; | ||
228 | opp-microvolt = <820000>; | ||
229 | clock-latency-ns = <300000>; | ||
230 | }; | ||
231 | opp-1000000000 { | ||
232 | opp-hz = /bits/ 64 <1000000000>; | ||
233 | opp-microvolt = <820000>; | ||
234 | clock-latency-ns = <300000>; | ||
235 | }; | ||
236 | opp-1200000000 { | ||
237 | opp-hz = /bits/ 64 <1200000000>; | ||
238 | opp-microvolt = <820000>; | ||
239 | clock-latency-ns = <300000>; | ||
240 | }; | ||
241 | }; | ||
242 | |||
243 | /* External PCIe clock - can be overridden by the board */ | 243 | /* External PCIe clock - can be overridden by the board */ |
244 | pcie_bus_clk: pcie_bus { | 244 | pcie_bus_clk: pcie_bus { |
245 | compatible = "fixed-clock"; | 245 | compatible = "fixed-clock"; |
@@ -247,18 +247,6 @@ | |||
247 | clock-frequency = <0>; | 247 | clock-frequency = <0>; |
248 | }; | 248 | }; |
249 | 249 | ||
250 | pmu_a57 { | ||
251 | compatible = "arm,cortex-a57-pmu"; | ||
252 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
253 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, | ||
254 | <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, | ||
255 | <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | ||
256 | interrupt-affinity = <&a57_0>, | ||
257 | <&a57_1>, | ||
258 | <&a57_2>, | ||
259 | <&a57_3>; | ||
260 | }; | ||
261 | |||
262 | pmu_a53 { | 250 | pmu_a53 { |
263 | compatible = "arm,cortex-a53-pmu"; | 251 | compatible = "arm,cortex-a53-pmu"; |
264 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | 252 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, |
@@ -271,6 +259,18 @@ | |||
271 | <&a53_3>; | 259 | <&a53_3>; |
272 | }; | 260 | }; |
273 | 261 | ||
262 | pmu_a57 { | ||
263 | compatible = "arm,cortex-a57-pmu"; | ||
264 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
265 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, | ||
266 | <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, | ||
267 | <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | ||
268 | interrupt-affinity = <&a57_0>, | ||
269 | <&a57_1>, | ||
270 | <&a57_2>, | ||
271 | <&a57_3>; | ||
272 | }; | ||
273 | |||
274 | psci { | 274 | psci { |
275 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | 275 | compatible = "arm,psci-1.0", "arm,psci-0.2"; |
276 | method = "smc"; | 276 | method = "smc"; |
@@ -291,23 +291,6 @@ | |||
291 | #size-cells = <2>; | 291 | #size-cells = <2>; |
292 | ranges; | 292 | ranges; |
293 | 293 | ||
294 | gic: interrupt-controller@f1010000 { | ||
295 | compatible = "arm,gic-400"; | ||
296 | #interrupt-cells = <3>; | ||
297 | #address-cells = <0>; | ||
298 | interrupt-controller; | ||
299 | reg = <0x0 0xf1010000 0 0x1000>, | ||
300 | <0x0 0xf1020000 0 0x20000>, | ||
301 | <0x0 0xf1040000 0 0x20000>, | ||
302 | <0x0 0xf1060000 0 0x20000>; | ||
303 | interrupts = <GIC_PPI 9 | ||
304 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
305 | clocks = <&cpg CPG_MOD 408>; | ||
306 | clock-names = "clk"; | ||
307 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
308 | resets = <&cpg 408>; | ||
309 | }; | ||
310 | |||
311 | wdt0: watchdog@e6020000 { | 294 | wdt0: watchdog@e6020000 { |
312 | compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; | 295 | compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; |
313 | reg = <0 0xe6020000 0 0x0c>; | 296 | reg = <0 0xe6020000 0 0x0c>; |
@@ -437,6 +420,11 @@ | |||
437 | resets = <&cpg 905>; | 420 | resets = <&cpg 905>; |
438 | }; | 421 | }; |
439 | 422 | ||
423 | pfc: pin-controller@e6060000 { | ||
424 | compatible = "renesas,pfc-r8a7795"; | ||
425 | reg = <0 0xe6060000 0 0x50c>; | ||
426 | }; | ||
427 | |||
440 | cpg: clock-controller@e6150000 { | 428 | cpg: clock-controller@e6150000 { |
441 | compatible = "renesas,r8a7795-cpg-mssr"; | 429 | compatible = "renesas,r8a7795-cpg-mssr"; |
442 | reg = <0 0xe6150000 0 0x1000>; | 430 | reg = <0 0xe6150000 0 0x1000>; |
@@ -452,20 +440,25 @@ | |||
452 | reg = <0 0xe6160000 0 0x0200>; | 440 | reg = <0 0xe6160000 0 0x0200>; |
453 | }; | 441 | }; |
454 | 442 | ||
455 | prr: chipid@fff00044 { | ||
456 | compatible = "renesas,prr"; | ||
457 | reg = <0 0xfff00044 0 4>; | ||
458 | }; | ||
459 | |||
460 | sysc: system-controller@e6180000 { | 443 | sysc: system-controller@e6180000 { |
461 | compatible = "renesas,r8a7795-sysc"; | 444 | compatible = "renesas,r8a7795-sysc"; |
462 | reg = <0 0xe6180000 0 0x0400>; | 445 | reg = <0 0xe6180000 0 0x0400>; |
463 | #power-domain-cells = <1>; | 446 | #power-domain-cells = <1>; |
464 | }; | 447 | }; |
465 | 448 | ||
466 | pfc: pin-controller@e6060000 { | 449 | tsc: thermal@e6198000 { |
467 | compatible = "renesas,pfc-r8a7795"; | 450 | compatible = "renesas,r8a7795-thermal"; |
468 | reg = <0 0xe6060000 0 0x50c>; | 451 | reg = <0 0xe6198000 0 0x100>, |
452 | <0 0xe61a0000 0 0x100>, | ||
453 | <0 0xe61a8000 0 0x100>; | ||
454 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, | ||
455 | <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | ||
456 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
457 | clocks = <&cpg CPG_MOD 522>; | ||
458 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
459 | resets = <&cpg 522>; | ||
460 | #thermal-sensor-cells = <1>; | ||
461 | status = "okay"; | ||
469 | }; | 462 | }; |
470 | 463 | ||
471 | intc_ex: interrupt-controller@e61c0000 { | 464 | intc_ex: interrupt-controller@e61c0000 { |
@@ -484,153 +477,326 @@ | |||
484 | resets = <&cpg 407>; | 477 | resets = <&cpg 407>; |
485 | }; | 478 | }; |
486 | 479 | ||
487 | ipmmu_vi0: mmu@febd0000 { | 480 | i2c0: i2c@e6500000 { |
488 | compatible = "renesas,ipmmu-r8a7795"; | 481 | #address-cells = <1>; |
489 | reg = <0 0xfebd0000 0 0x1000>; | 482 | #size-cells = <0>; |
490 | renesas,ipmmu-main = <&ipmmu_mm 14>; | 483 | compatible = "renesas,i2c-r8a7795", |
484 | "renesas,rcar-gen3-i2c"; | ||
485 | reg = <0 0xe6500000 0 0x40>; | ||
486 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
487 | clocks = <&cpg CPG_MOD 931>; | ||
491 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 488 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
492 | #iommu-cells = <1>; | 489 | resets = <&cpg 931>; |
490 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | ||
491 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
492 | dma-names = "tx", "rx", "tx", "rx"; | ||
493 | i2c-scl-internal-delay-ns = <110>; | ||
494 | status = "disabled"; | ||
493 | }; | 495 | }; |
494 | 496 | ||
495 | ipmmu_vi1: mmu@febe0000 { | 497 | i2c1: i2c@e6508000 { |
496 | compatible = "renesas,ipmmu-r8a7795"; | 498 | #address-cells = <1>; |
497 | reg = <0 0xfebe0000 0 0x1000>; | 499 | #size-cells = <0>; |
498 | renesas,ipmmu-main = <&ipmmu_mm 15>; | 500 | compatible = "renesas,i2c-r8a7795", |
501 | "renesas,rcar-gen3-i2c"; | ||
502 | reg = <0 0xe6508000 0 0x40>; | ||
503 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
504 | clocks = <&cpg CPG_MOD 930>; | ||
499 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 505 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
500 | #iommu-cells = <1>; | 506 | resets = <&cpg 930>; |
507 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | ||
508 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
509 | dma-names = "tx", "rx", "tx", "rx"; | ||
510 | i2c-scl-internal-delay-ns = <6>; | ||
501 | status = "disabled"; | 511 | status = "disabled"; |
502 | }; | 512 | }; |
503 | 513 | ||
504 | ipmmu_vp0: mmu@fe990000 { | 514 | i2c2: i2c@e6510000 { |
505 | compatible = "renesas,ipmmu-r8a7795"; | 515 | #address-cells = <1>; |
506 | reg = <0 0xfe990000 0 0x1000>; | 516 | #size-cells = <0>; |
507 | renesas,ipmmu-main = <&ipmmu_mm 16>; | 517 | compatible = "renesas,i2c-r8a7795", |
508 | power-domains = <&sysc R8A7795_PD_A3VP>; | 518 | "renesas,rcar-gen3-i2c"; |
509 | #iommu-cells = <1>; | 519 | reg = <0 0xe6510000 0 0x40>; |
520 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
521 | clocks = <&cpg CPG_MOD 929>; | ||
522 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
523 | resets = <&cpg 929>; | ||
524 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | ||
525 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
526 | dma-names = "tx", "rx", "tx", "rx"; | ||
527 | i2c-scl-internal-delay-ns = <6>; | ||
510 | status = "disabled"; | 528 | status = "disabled"; |
511 | }; | 529 | }; |
512 | 530 | ||
513 | ipmmu_vp1: mmu@fe980000 { | 531 | i2c3: i2c@e66d0000 { |
514 | compatible = "renesas,ipmmu-r8a7795"; | 532 | #address-cells = <1>; |
515 | reg = <0 0xfe980000 0 0x1000>; | 533 | #size-cells = <0>; |
516 | renesas,ipmmu-main = <&ipmmu_mm 17>; | 534 | compatible = "renesas,i2c-r8a7795", |
517 | power-domains = <&sysc R8A7795_PD_A3VP>; | 535 | "renesas,rcar-gen3-i2c"; |
518 | #iommu-cells = <1>; | 536 | reg = <0 0xe66d0000 0 0x40>; |
537 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
538 | clocks = <&cpg CPG_MOD 928>; | ||
539 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
540 | resets = <&cpg 928>; | ||
541 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | ||
542 | dma-names = "tx", "rx"; | ||
543 | i2c-scl-internal-delay-ns = <110>; | ||
544 | status = "disabled"; | ||
519 | }; | 545 | }; |
520 | 546 | ||
521 | ipmmu_vc0: mmu@fe6b0000 { | 547 | i2c4: i2c@e66d8000 { |
522 | compatible = "renesas,ipmmu-r8a7795"; | 548 | #address-cells = <1>; |
523 | reg = <0 0xfe6b0000 0 0x1000>; | 549 | #size-cells = <0>; |
524 | renesas,ipmmu-main = <&ipmmu_mm 12>; | 550 | compatible = "renesas,i2c-r8a7795", |
525 | power-domains = <&sysc R8A7795_PD_A3VC>; | 551 | "renesas,rcar-gen3-i2c"; |
526 | #iommu-cells = <1>; | 552 | reg = <0 0xe66d8000 0 0x40>; |
553 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
554 | clocks = <&cpg CPG_MOD 927>; | ||
555 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
556 | resets = <&cpg 927>; | ||
557 | dmas = <&dmac0 0x99>, <&dmac0 0x98>; | ||
558 | dma-names = "tx", "rx"; | ||
559 | i2c-scl-internal-delay-ns = <110>; | ||
527 | status = "disabled"; | 560 | status = "disabled"; |
528 | }; | 561 | }; |
529 | 562 | ||
530 | ipmmu_vc1: mmu@fe6f0000 { | 563 | i2c5: i2c@e66e0000 { |
531 | compatible = "renesas,ipmmu-r8a7795"; | 564 | #address-cells = <1>; |
532 | reg = <0 0xfe6f0000 0 0x1000>; | 565 | #size-cells = <0>; |
533 | renesas,ipmmu-main = <&ipmmu_mm 13>; | 566 | compatible = "renesas,i2c-r8a7795", |
534 | power-domains = <&sysc R8A7795_PD_A3VC>; | 567 | "renesas,rcar-gen3-i2c"; |
535 | #iommu-cells = <1>; | 568 | reg = <0 0xe66e0000 0 0x40>; |
569 | interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
570 | clocks = <&cpg CPG_MOD 919>; | ||
571 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
572 | resets = <&cpg 919>; | ||
573 | dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; | ||
574 | dma-names = "tx", "rx"; | ||
575 | i2c-scl-internal-delay-ns = <110>; | ||
536 | status = "disabled"; | 576 | status = "disabled"; |
537 | }; | 577 | }; |
538 | 578 | ||
539 | ipmmu_pv0: mmu@fd800000 { | 579 | i2c6: i2c@e66e8000 { |
540 | compatible = "renesas,ipmmu-r8a7795"; | 580 | #address-cells = <1>; |
541 | reg = <0 0xfd800000 0 0x1000>; | 581 | #size-cells = <0>; |
542 | renesas,ipmmu-main = <&ipmmu_mm 6>; | 582 | compatible = "renesas,i2c-r8a7795", |
583 | "renesas,rcar-gen3-i2c"; | ||
584 | reg = <0 0xe66e8000 0 0x40>; | ||
585 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||
586 | clocks = <&cpg CPG_MOD 918>; | ||
543 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 587 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
544 | #iommu-cells = <1>; | 588 | resets = <&cpg 918>; |
589 | dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; | ||
590 | dma-names = "tx", "rx"; | ||
591 | i2c-scl-internal-delay-ns = <6>; | ||
545 | status = "disabled"; | 592 | status = "disabled"; |
546 | }; | 593 | }; |
547 | 594 | ||
548 | ipmmu_pv1: mmu@fd950000 { | 595 | i2c_dvfs: i2c@e60b0000 { |
549 | compatible = "renesas,ipmmu-r8a7795"; | 596 | #address-cells = <1>; |
550 | reg = <0 0xfd950000 0 0x1000>; | 597 | #size-cells = <0>; |
551 | renesas,ipmmu-main = <&ipmmu_mm 7>; | 598 | compatible = "renesas,iic-r8a7795", |
599 | "renesas,rcar-gen3-iic", | ||
600 | "renesas,rmobile-iic"; | ||
601 | reg = <0 0xe60b0000 0 0x425>; | ||
602 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | ||
603 | clocks = <&cpg CPG_MOD 926>; | ||
552 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 604 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
553 | #iommu-cells = <1>; | 605 | resets = <&cpg 926>; |
606 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | ||
607 | dma-names = "tx", "rx"; | ||
554 | status = "disabled"; | 608 | status = "disabled"; |
555 | }; | 609 | }; |
556 | 610 | ||
557 | ipmmu_pv2: mmu@fd960000 { | 611 | hscif0: serial@e6540000 { |
558 | compatible = "renesas,ipmmu-r8a7795"; | 612 | compatible = "renesas,hscif-r8a7795", |
559 | reg = <0 0xfd960000 0 0x1000>; | 613 | "renesas,rcar-gen3-hscif", |
560 | renesas,ipmmu-main = <&ipmmu_mm 8>; | 614 | "renesas,hscif"; |
615 | reg = <0 0xe6540000 0 96>; | ||
616 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | ||
617 | clocks = <&cpg CPG_MOD 520>, | ||
618 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
619 | <&scif_clk>; | ||
620 | clock-names = "fck", "brg_int", "scif_clk"; | ||
621 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, | ||
622 | <&dmac2 0x31>, <&dmac2 0x30>; | ||
623 | dma-names = "tx", "rx", "tx", "rx"; | ||
561 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 624 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
562 | #iommu-cells = <1>; | 625 | resets = <&cpg 520>; |
563 | status = "disabled"; | 626 | status = "disabled"; |
564 | }; | 627 | }; |
565 | 628 | ||
566 | ipmmu_pv3: mmu@fd970000 { | 629 | hscif1: serial@e6550000 { |
567 | compatible = "renesas,ipmmu-r8a7795"; | 630 | compatible = "renesas,hscif-r8a7795", |
568 | reg = <0 0xfd970000 0 0x1000>; | 631 | "renesas,rcar-gen3-hscif", |
569 | renesas,ipmmu-main = <&ipmmu_mm 9>; | 632 | "renesas,hscif"; |
633 | reg = <0 0xe6550000 0 96>; | ||
634 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; | ||
635 | clocks = <&cpg CPG_MOD 519>, | ||
636 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
637 | <&scif_clk>; | ||
638 | clock-names = "fck", "brg_int", "scif_clk"; | ||
639 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, | ||
640 | <&dmac2 0x33>, <&dmac2 0x32>; | ||
641 | dma-names = "tx", "rx", "tx", "rx"; | ||
570 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 642 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
571 | #iommu-cells = <1>; | 643 | resets = <&cpg 519>; |
572 | status = "disabled"; | 644 | status = "disabled"; |
573 | }; | 645 | }; |
574 | 646 | ||
575 | ipmmu_ir: mmu@ff8b0000 { | 647 | hscif2: serial@e6560000 { |
576 | compatible = "renesas,ipmmu-r8a7795"; | 648 | compatible = "renesas,hscif-r8a7795", |
577 | reg = <0 0xff8b0000 0 0x1000>; | 649 | "renesas,rcar-gen3-hscif", |
578 | renesas,ipmmu-main = <&ipmmu_mm 3>; | 650 | "renesas,hscif"; |
579 | power-domains = <&sysc R8A7795_PD_A3IR>; | 651 | reg = <0 0xe6560000 0 96>; |
580 | #iommu-cells = <1>; | 652 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; |
653 | clocks = <&cpg CPG_MOD 518>, | ||
654 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
655 | <&scif_clk>; | ||
656 | clock-names = "fck", "brg_int", "scif_clk"; | ||
657 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, | ||
658 | <&dmac2 0x35>, <&dmac2 0x34>; | ||
659 | dma-names = "tx", "rx"; | ||
660 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
661 | resets = <&cpg 518>; | ||
581 | status = "disabled"; | 662 | status = "disabled"; |
582 | }; | 663 | }; |
583 | 664 | ||
584 | ipmmu_hc: mmu@e6570000 { | 665 | hscif3: serial@e66a0000 { |
585 | compatible = "renesas,ipmmu-r8a7795"; | 666 | compatible = "renesas,hscif-r8a7795", |
586 | reg = <0 0xe6570000 0 0x1000>; | 667 | "renesas,rcar-gen3-hscif", |
587 | renesas,ipmmu-main = <&ipmmu_mm 2>; | 668 | "renesas,hscif"; |
669 | reg = <0 0xe66a0000 0 96>; | ||
670 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; | ||
671 | clocks = <&cpg CPG_MOD 517>, | ||
672 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
673 | <&scif_clk>; | ||
674 | clock-names = "fck", "brg_int", "scif_clk"; | ||
675 | dmas = <&dmac0 0x37>, <&dmac0 0x36>; | ||
676 | dma-names = "tx", "rx"; | ||
588 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 677 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
589 | #iommu-cells = <1>; | 678 | resets = <&cpg 517>; |
590 | status = "disabled"; | 679 | status = "disabled"; |
591 | }; | 680 | }; |
592 | 681 | ||
593 | ipmmu_rt: mmu@ffc80000 { | 682 | hscif4: serial@e66b0000 { |
594 | compatible = "renesas,ipmmu-r8a7795"; | 683 | compatible = "renesas,hscif-r8a7795", |
595 | reg = <0 0xffc80000 0 0x1000>; | 684 | "renesas,rcar-gen3-hscif", |
596 | renesas,ipmmu-main = <&ipmmu_mm 10>; | 685 | "renesas,hscif"; |
686 | reg = <0 0xe66b0000 0 96>; | ||
687 | interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; | ||
688 | clocks = <&cpg CPG_MOD 516>, | ||
689 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
690 | <&scif_clk>; | ||
691 | clock-names = "fck", "brg_int", "scif_clk"; | ||
692 | dmas = <&dmac0 0x39>, <&dmac0 0x38>; | ||
693 | dma-names = "tx", "rx"; | ||
597 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 694 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
598 | #iommu-cells = <1>; | 695 | resets = <&cpg 516>; |
599 | status = "disabled"; | 696 | status = "disabled"; |
600 | }; | 697 | }; |
601 | 698 | ||
602 | ipmmu_mp0: mmu@ec670000 { | 699 | hsusb: usb@e6590000 { |
603 | compatible = "renesas,ipmmu-r8a7795"; | 700 | compatible = "renesas,usbhs-r8a7795", |
604 | reg = <0 0xec670000 0 0x1000>; | 701 | "renesas,rcar-gen3-usbhs"; |
605 | renesas,ipmmu-main = <&ipmmu_mm 4>; | 702 | reg = <0 0xe6590000 0 0x100>; |
703 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | ||
704 | clocks = <&cpg CPG_MOD 704>; | ||
705 | dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, | ||
706 | <&usb_dmac1 0>, <&usb_dmac1 1>; | ||
707 | dma-names = "ch0", "ch1", "ch2", "ch3"; | ||
708 | renesas,buswait = <11>; | ||
709 | phys = <&usb2_phy0>; | ||
710 | phy-names = "usb"; | ||
606 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 711 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
607 | #iommu-cells = <1>; | 712 | resets = <&cpg 704>; |
608 | status = "disabled"; | 713 | status = "disabled"; |
609 | }; | 714 | }; |
610 | 715 | ||
611 | ipmmu_ds0: mmu@e6740000 { | 716 | hsusb3: usb@e659c000 { |
612 | compatible = "renesas,ipmmu-r8a7795"; | 717 | compatible = "renesas,usbhs-r8a7795", |
613 | reg = <0 0xe6740000 0 0x1000>; | 718 | "renesas,rcar-gen3-usbhs"; |
614 | renesas,ipmmu-main = <&ipmmu_mm 0>; | 719 | reg = <0 0xe659c000 0 0x100>; |
720 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
721 | clocks = <&cpg CPG_MOD 705>; | ||
722 | dmas = <&usb_dmac2 0>, <&usb_dmac2 1>, | ||
723 | <&usb_dmac3 0>, <&usb_dmac3 1>; | ||
724 | dma-names = "ch0", "ch1", "ch2", "ch3"; | ||
725 | renesas,buswait = <11>; | ||
726 | phys = <&usb2_phy3>; | ||
727 | phy-names = "usb"; | ||
615 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 728 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
616 | #iommu-cells = <1>; | 729 | resets = <&cpg 705>; |
730 | status = "disabled"; | ||
617 | }; | 731 | }; |
618 | 732 | ||
619 | ipmmu_ds1: mmu@e7740000 { | 733 | usb_dmac0: dma-controller@e65a0000 { |
620 | compatible = "renesas,ipmmu-r8a7795"; | 734 | compatible = "renesas,r8a7795-usb-dmac", |
621 | reg = <0 0xe7740000 0 0x1000>; | 735 | "renesas,usb-dmac"; |
622 | renesas,ipmmu-main = <&ipmmu_mm 1>; | 736 | reg = <0 0xe65a0000 0 0x100>; |
737 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH | ||
738 | GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
739 | interrupt-names = "ch0", "ch1"; | ||
740 | clocks = <&cpg CPG_MOD 330>; | ||
623 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 741 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
624 | #iommu-cells = <1>; | 742 | resets = <&cpg 330>; |
743 | #dma-cells = <1>; | ||
744 | dma-channels = <2>; | ||
625 | }; | 745 | }; |
626 | 746 | ||
627 | ipmmu_mm: mmu@e67b0000 { | 747 | usb_dmac1: dma-controller@e65b0000 { |
628 | compatible = "renesas,ipmmu-r8a7795"; | 748 | compatible = "renesas,r8a7795-usb-dmac", |
629 | reg = <0 0xe67b0000 0 0x1000>; | 749 | "renesas,usb-dmac"; |
630 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | 750 | reg = <0 0xe65b0000 0 0x100>; |
631 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | 751 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH |
752 | GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
753 | interrupt-names = "ch0", "ch1"; | ||
754 | clocks = <&cpg CPG_MOD 331>; | ||
632 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 755 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
633 | #iommu-cells = <1>; | 756 | resets = <&cpg 331>; |
757 | #dma-cells = <1>; | ||
758 | dma-channels = <2>; | ||
759 | }; | ||
760 | |||
761 | usb_dmac2: dma-controller@e6460000 { | ||
762 | compatible = "renesas,r8a7795-usb-dmac", | ||
763 | "renesas,usb-dmac"; | ||
764 | reg = <0 0xe6460000 0 0x100>; | ||
765 | interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH | ||
766 | GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
767 | interrupt-names = "ch0", "ch1"; | ||
768 | clocks = <&cpg CPG_MOD 326>; | ||
769 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
770 | resets = <&cpg 326>; | ||
771 | #dma-cells = <1>; | ||
772 | dma-channels = <2>; | ||
773 | }; | ||
774 | |||
775 | usb_dmac3: dma-controller@e6470000 { | ||
776 | compatible = "renesas,r8a7795-usb-dmac", | ||
777 | "renesas,usb-dmac"; | ||
778 | reg = <0 0xe6470000 0 0x100>; | ||
779 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH | ||
780 | GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | ||
781 | interrupt-names = "ch0", "ch1"; | ||
782 | clocks = <&cpg CPG_MOD 329>; | ||
783 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
784 | resets = <&cpg 329>; | ||
785 | #dma-cells = <1>; | ||
786 | dma-channels = <2>; | ||
787 | }; | ||
788 | |||
789 | usb3_phy0: usb-phy@e65ee000 { | ||
790 | compatible = "renesas,r8a7795-usb3-phy", | ||
791 | "renesas,rcar-gen3-usb3-phy"; | ||
792 | reg = <0 0xe65ee000 0 0x90>; | ||
793 | clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, | ||
794 | <&usb_extal_clk>; | ||
795 | clock-names = "usb3-if", "usb3s_clk", "usb_extal"; | ||
796 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
797 | resets = <&cpg 328>; | ||
798 | #phy-cells = <0>; | ||
799 | status = "disabled"; | ||
634 | }; | 800 | }; |
635 | 801 | ||
636 | dmac0: dma-controller@e6700000 { | 802 | dmac0: dma-controller@e6700000 { |
@@ -759,88 +925,141 @@ | |||
759 | <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; | 925 | <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; |
760 | }; | 926 | }; |
761 | 927 | ||
762 | audma0: dma-controller@ec700000 { | 928 | ipmmu_ds0: mmu@e6740000 { |
763 | compatible = "renesas,dmac-r8a7795", | 929 | compatible = "renesas,ipmmu-r8a7795"; |
764 | "renesas,rcar-dmac"; | 930 | reg = <0 0xe6740000 0 0x1000>; |
765 | reg = <0 0xec700000 0 0x10000>; | 931 | renesas,ipmmu-main = <&ipmmu_mm 0>; |
766 | interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH | ||
767 | GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH | ||
768 | GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH | ||
769 | GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH | ||
770 | GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH | ||
771 | GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH | ||
772 | GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH | ||
773 | GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH | ||
774 | GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH | ||
775 | GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH | ||
776 | GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH | ||
777 | GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH | ||
778 | GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH | ||
779 | GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH | ||
780 | GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH | ||
781 | GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH | ||
782 | GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; | ||
783 | interrupt-names = "error", | ||
784 | "ch0", "ch1", "ch2", "ch3", | ||
785 | "ch4", "ch5", "ch6", "ch7", | ||
786 | "ch8", "ch9", "ch10", "ch11", | ||
787 | "ch12", "ch13", "ch14", "ch15"; | ||
788 | clocks = <&cpg CPG_MOD 502>; | ||
789 | clock-names = "fck"; | ||
790 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 932 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
791 | resets = <&cpg 502>; | 933 | #iommu-cells = <1>; |
792 | #dma-cells = <1>; | ||
793 | dma-channels = <16>; | ||
794 | iommus = <&ipmmu_mp0 0>, <&ipmmu_mp0 1>, | ||
795 | <&ipmmu_mp0 2>, <&ipmmu_mp0 3>, | ||
796 | <&ipmmu_mp0 4>, <&ipmmu_mp0 5>, | ||
797 | <&ipmmu_mp0 6>, <&ipmmu_mp0 7>, | ||
798 | <&ipmmu_mp0 8>, <&ipmmu_mp0 9>, | ||
799 | <&ipmmu_mp0 10>, <&ipmmu_mp0 11>, | ||
800 | <&ipmmu_mp0 12>, <&ipmmu_mp0 13>, | ||
801 | <&ipmmu_mp0 14>, <&ipmmu_mp0 15>; | ||
802 | }; | 934 | }; |
803 | 935 | ||
804 | audma1: dma-controller@ec720000 { | 936 | ipmmu_ds1: mmu@e7740000 { |
805 | compatible = "renesas,dmac-r8a7795", | 937 | compatible = "renesas,ipmmu-r8a7795"; |
806 | "renesas,rcar-dmac"; | 938 | reg = <0 0xe7740000 0 0x1000>; |
807 | reg = <0 0xec720000 0 0x10000>; | 939 | renesas,ipmmu-main = <&ipmmu_mm 1>; |
808 | interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH | ||
809 | GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH | ||
810 | GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH | ||
811 | GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH | ||
812 | GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH | ||
813 | GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH | ||
814 | GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH | ||
815 | GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH | ||
816 | GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH | ||
817 | GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH | ||
818 | GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH | ||
819 | GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH | ||
820 | GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH | ||
821 | GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH | ||
822 | GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH | ||
823 | GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH | ||
824 | GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; | ||
825 | interrupt-names = "error", | ||
826 | "ch0", "ch1", "ch2", "ch3", | ||
827 | "ch4", "ch5", "ch6", "ch7", | ||
828 | "ch8", "ch9", "ch10", "ch11", | ||
829 | "ch12", "ch13", "ch14", "ch15"; | ||
830 | clocks = <&cpg CPG_MOD 501>; | ||
831 | clock-names = "fck"; | ||
832 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 940 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
833 | resets = <&cpg 501>; | 941 | #iommu-cells = <1>; |
834 | #dma-cells = <1>; | 942 | }; |
835 | dma-channels = <16>; | 943 | |
836 | iommus = <&ipmmu_mp0 16>, <&ipmmu_mp0 17>, | 944 | ipmmu_hc: mmu@e6570000 { |
837 | <&ipmmu_mp0 18>, <&ipmmu_mp0 19>, | 945 | compatible = "renesas,ipmmu-r8a7795"; |
838 | <&ipmmu_mp0 20>, <&ipmmu_mp0 21>, | 946 | reg = <0 0xe6570000 0 0x1000>; |
839 | <&ipmmu_mp0 22>, <&ipmmu_mp0 23>, | 947 | renesas,ipmmu-main = <&ipmmu_mm 2>; |
840 | <&ipmmu_mp0 24>, <&ipmmu_mp0 25>, | 948 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
841 | <&ipmmu_mp0 26>, <&ipmmu_mp0 27>, | 949 | #iommu-cells = <1>; |
842 | <&ipmmu_mp0 28>, <&ipmmu_mp0 29>, | 950 | }; |
843 | <&ipmmu_mp0 30>, <&ipmmu_mp0 31>; | 951 | |
952 | ipmmu_ir: mmu@ff8b0000 { | ||
953 | compatible = "renesas,ipmmu-r8a7795"; | ||
954 | reg = <0 0xff8b0000 0 0x1000>; | ||
955 | renesas,ipmmu-main = <&ipmmu_mm 3>; | ||
956 | power-domains = <&sysc R8A7795_PD_A3IR>; | ||
957 | #iommu-cells = <1>; | ||
958 | }; | ||
959 | |||
960 | ipmmu_mm: mmu@e67b0000 { | ||
961 | compatible = "renesas,ipmmu-r8a7795"; | ||
962 | reg = <0 0xe67b0000 0 0x1000>; | ||
963 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
964 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
965 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
966 | #iommu-cells = <1>; | ||
967 | }; | ||
968 | |||
969 | ipmmu_mp0: mmu@ec670000 { | ||
970 | compatible = "renesas,ipmmu-r8a7795"; | ||
971 | reg = <0 0xec670000 0 0x1000>; | ||
972 | renesas,ipmmu-main = <&ipmmu_mm 4>; | ||
973 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
974 | #iommu-cells = <1>; | ||
975 | }; | ||
976 | |||
977 | ipmmu_pv0: mmu@fd800000 { | ||
978 | compatible = "renesas,ipmmu-r8a7795"; | ||
979 | reg = <0 0xfd800000 0 0x1000>; | ||
980 | renesas,ipmmu-main = <&ipmmu_mm 6>; | ||
981 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
982 | #iommu-cells = <1>; | ||
983 | }; | ||
984 | |||
985 | ipmmu_pv1: mmu@fd950000 { | ||
986 | compatible = "renesas,ipmmu-r8a7795"; | ||
987 | reg = <0 0xfd950000 0 0x1000>; | ||
988 | renesas,ipmmu-main = <&ipmmu_mm 7>; | ||
989 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
990 | #iommu-cells = <1>; | ||
991 | }; | ||
992 | |||
993 | ipmmu_pv2: mmu@fd960000 { | ||
994 | compatible = "renesas,ipmmu-r8a7795"; | ||
995 | reg = <0 0xfd960000 0 0x1000>; | ||
996 | renesas,ipmmu-main = <&ipmmu_mm 8>; | ||
997 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
998 | #iommu-cells = <1>; | ||
999 | }; | ||
1000 | |||
1001 | ipmmu_pv3: mmu@fd970000 { | ||
1002 | compatible = "renesas,ipmmu-r8a7795"; | ||
1003 | reg = <0 0xfd970000 0 0x1000>; | ||
1004 | renesas,ipmmu-main = <&ipmmu_mm 9>; | ||
1005 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1006 | #iommu-cells = <1>; | ||
1007 | }; | ||
1008 | |||
1009 | ipmmu_rt: mmu@ffc80000 { | ||
1010 | compatible = "renesas,ipmmu-r8a7795"; | ||
1011 | reg = <0 0xffc80000 0 0x1000>; | ||
1012 | renesas,ipmmu-main = <&ipmmu_mm 10>; | ||
1013 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1014 | #iommu-cells = <1>; | ||
1015 | }; | ||
1016 | |||
1017 | ipmmu_vc0: mmu@fe6b0000 { | ||
1018 | compatible = "renesas,ipmmu-r8a7795"; | ||
1019 | reg = <0 0xfe6b0000 0 0x1000>; | ||
1020 | renesas,ipmmu-main = <&ipmmu_mm 12>; | ||
1021 | power-domains = <&sysc R8A7795_PD_A3VC>; | ||
1022 | #iommu-cells = <1>; | ||
1023 | }; | ||
1024 | |||
1025 | ipmmu_vc1: mmu@fe6f0000 { | ||
1026 | compatible = "renesas,ipmmu-r8a7795"; | ||
1027 | reg = <0 0xfe6f0000 0 0x1000>; | ||
1028 | renesas,ipmmu-main = <&ipmmu_mm 13>; | ||
1029 | power-domains = <&sysc R8A7795_PD_A3VC>; | ||
1030 | #iommu-cells = <1>; | ||
1031 | }; | ||
1032 | |||
1033 | ipmmu_vi0: mmu@febd0000 { | ||
1034 | compatible = "renesas,ipmmu-r8a7795"; | ||
1035 | reg = <0 0xfebd0000 0 0x1000>; | ||
1036 | renesas,ipmmu-main = <&ipmmu_mm 14>; | ||
1037 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1038 | #iommu-cells = <1>; | ||
1039 | }; | ||
1040 | |||
1041 | ipmmu_vi1: mmu@febe0000 { | ||
1042 | compatible = "renesas,ipmmu-r8a7795"; | ||
1043 | reg = <0 0xfebe0000 0 0x1000>; | ||
1044 | renesas,ipmmu-main = <&ipmmu_mm 15>; | ||
1045 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1046 | #iommu-cells = <1>; | ||
1047 | }; | ||
1048 | |||
1049 | ipmmu_vp0: mmu@fe990000 { | ||
1050 | compatible = "renesas,ipmmu-r8a7795"; | ||
1051 | reg = <0 0xfe990000 0 0x1000>; | ||
1052 | renesas,ipmmu-main = <&ipmmu_mm 16>; | ||
1053 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
1054 | #iommu-cells = <1>; | ||
1055 | }; | ||
1056 | |||
1057 | ipmmu_vp1: mmu@fe980000 { | ||
1058 | compatible = "renesas,ipmmu-r8a7795"; | ||
1059 | reg = <0 0xfe980000 0 0x1000>; | ||
1060 | renesas,ipmmu-main = <&ipmmu_mm 17>; | ||
1061 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
1062 | #iommu-cells = <1>; | ||
844 | }; | 1063 | }; |
845 | 1064 | ||
846 | avb: ethernet@e6800000 { | 1065 | avb: ethernet@e6800000 { |
@@ -946,211 +1165,173 @@ | |||
946 | }; | 1165 | }; |
947 | }; | 1166 | }; |
948 | 1167 | ||
949 | drif00: rif@e6f40000 { | 1168 | pwm0: pwm@e6e30000 { |
950 | compatible = "renesas,r8a7795-drif", | 1169 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
951 | "renesas,rcar-gen3-drif"; | 1170 | reg = <0 0xe6e30000 0 0x8>; |
952 | reg = <0 0xe6f40000 0 0x64>; | 1171 | clocks = <&cpg CPG_MOD 523>; |
953 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
954 | clocks = <&cpg CPG_MOD 515>; | ||
955 | clock-names = "fck"; | ||
956 | dmas = <&dmac1 0x20>, <&dmac2 0x20>; | ||
957 | dma-names = "rx", "rx"; | ||
958 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1172 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
959 | resets = <&cpg 515>; | 1173 | resets = <&cpg 523>; |
960 | renesas,bonding = <&drif01>; | 1174 | #pwm-cells = <2>; |
961 | status = "disabled"; | 1175 | status = "disabled"; |
962 | }; | 1176 | }; |
963 | 1177 | ||
964 | drif01: rif@e6f50000 { | 1178 | pwm1: pwm@e6e31000 { |
965 | compatible = "renesas,r8a7795-drif", | 1179 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
966 | "renesas,rcar-gen3-drif"; | 1180 | reg = <0 0xe6e31000 0 0x8>; |
967 | reg = <0 0xe6f50000 0 0x64>; | 1181 | clocks = <&cpg CPG_MOD 523>; |
968 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
969 | clocks = <&cpg CPG_MOD 514>; | ||
970 | clock-names = "fck"; | ||
971 | dmas = <&dmac1 0x22>, <&dmac2 0x22>; | ||
972 | dma-names = "rx", "rx"; | ||
973 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1182 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
974 | resets = <&cpg 514>; | 1183 | resets = <&cpg 523>; |
975 | renesas,bonding = <&drif00>; | 1184 | #pwm-cells = <2>; |
976 | status = "disabled"; | 1185 | status = "disabled"; |
977 | }; | 1186 | }; |
978 | 1187 | ||
979 | drif10: rif@e6f60000 { | 1188 | pwm2: pwm@e6e32000 { |
980 | compatible = "renesas,r8a7795-drif", | 1189 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
981 | "renesas,rcar-gen3-drif"; | 1190 | reg = <0 0xe6e32000 0 0x8>; |
982 | reg = <0 0xe6f60000 0 0x64>; | 1191 | clocks = <&cpg CPG_MOD 523>; |
983 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
984 | clocks = <&cpg CPG_MOD 513>; | ||
985 | clock-names = "fck"; | ||
986 | dmas = <&dmac1 0x24>, <&dmac2 0x24>; | ||
987 | dma-names = "rx", "rx"; | ||
988 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1192 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
989 | resets = <&cpg 513>; | 1193 | resets = <&cpg 523>; |
990 | renesas,bonding = <&drif11>; | 1194 | #pwm-cells = <2>; |
991 | status = "disabled"; | 1195 | status = "disabled"; |
992 | }; | 1196 | }; |
993 | 1197 | ||
994 | drif11: rif@e6f70000 { | 1198 | pwm3: pwm@e6e33000 { |
995 | compatible = "renesas,r8a7795-drif", | 1199 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
996 | "renesas,rcar-gen3-drif"; | 1200 | reg = <0 0xe6e33000 0 0x8>; |
997 | reg = <0 0xe6f70000 0 0x64>; | 1201 | clocks = <&cpg CPG_MOD 523>; |
998 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
999 | clocks = <&cpg CPG_MOD 512>; | ||
1000 | clock-names = "fck"; | ||
1001 | dmas = <&dmac1 0x26>, <&dmac2 0x26>; | ||
1002 | dma-names = "rx", "rx"; | ||
1003 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1202 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1004 | resets = <&cpg 512>; | 1203 | resets = <&cpg 523>; |
1005 | renesas,bonding = <&drif10>; | 1204 | #pwm-cells = <2>; |
1006 | status = "disabled"; | 1205 | status = "disabled"; |
1007 | }; | 1206 | }; |
1008 | 1207 | ||
1009 | drif20: rif@e6f80000 { | 1208 | pwm4: pwm@e6e34000 { |
1010 | compatible = "renesas,r8a7795-drif", | 1209 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
1011 | "renesas,rcar-gen3-drif"; | 1210 | reg = <0 0xe6e34000 0 0x8>; |
1012 | reg = <0 0xe6f80000 0 0x64>; | 1211 | clocks = <&cpg CPG_MOD 523>; |
1013 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
1014 | clocks = <&cpg CPG_MOD 511>; | ||
1015 | clock-names = "fck"; | ||
1016 | dmas = <&dmac1 0x28>, <&dmac2 0x28>; | ||
1017 | dma-names = "rx", "rx"; | ||
1018 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1212 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1019 | resets = <&cpg 511>; | 1213 | resets = <&cpg 523>; |
1020 | renesas,bonding = <&drif21>; | 1214 | #pwm-cells = <2>; |
1021 | status = "disabled"; | 1215 | status = "disabled"; |
1022 | }; | 1216 | }; |
1023 | 1217 | ||
1024 | drif21: rif@e6f90000 { | 1218 | pwm5: pwm@e6e35000 { |
1025 | compatible = "renesas,r8a7795-drif", | 1219 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
1026 | "renesas,rcar-gen3-drif"; | 1220 | reg = <0 0xe6e35000 0 0x8>; |
1027 | reg = <0 0xe6f90000 0 0x64>; | 1221 | clocks = <&cpg CPG_MOD 523>; |
1028 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | ||
1029 | clocks = <&cpg CPG_MOD 510>; | ||
1030 | clock-names = "fck"; | ||
1031 | dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; | ||
1032 | dma-names = "rx", "rx"; | ||
1033 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1222 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1034 | resets = <&cpg 510>; | 1223 | resets = <&cpg 523>; |
1035 | renesas,bonding = <&drif20>; | 1224 | #pwm-cells = <2>; |
1036 | status = "disabled"; | 1225 | status = "disabled"; |
1037 | }; | 1226 | }; |
1038 | 1227 | ||
1039 | drif30: rif@e6fa0000 { | 1228 | pwm6: pwm@e6e36000 { |
1040 | compatible = "renesas,r8a7795-drif", | 1229 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; |
1041 | "renesas,rcar-gen3-drif"; | 1230 | reg = <0 0xe6e36000 0 0x8>; |
1042 | reg = <0 0xe6fa0000 0 0x64>; | 1231 | clocks = <&cpg CPG_MOD 523>; |
1043 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
1044 | clocks = <&cpg CPG_MOD 509>; | ||
1045 | clock-names = "fck"; | ||
1046 | dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; | ||
1047 | dma-names = "rx", "rx"; | ||
1048 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1232 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1049 | resets = <&cpg 509>; | 1233 | resets = <&cpg 523>; |
1050 | renesas,bonding = <&drif31>; | 1234 | #pwm-cells = <2>; |
1051 | status = "disabled"; | 1235 | status = "disabled"; |
1052 | }; | 1236 | }; |
1053 | 1237 | ||
1054 | drif31: rif@e6fb0000 { | 1238 | scif0: serial@e6e60000 { |
1055 | compatible = "renesas,r8a7795-drif", | 1239 | compatible = "renesas,scif-r8a7795", |
1056 | "renesas,rcar-gen3-drif"; | 1240 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1057 | reg = <0 0xe6fb0000 0 0x64>; | 1241 | reg = <0 0xe6e60000 0 64>; |
1058 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | 1242 | interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; |
1059 | clocks = <&cpg CPG_MOD 508>; | 1243 | clocks = <&cpg CPG_MOD 207>, |
1060 | clock-names = "fck"; | 1244 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1061 | dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; | 1245 | <&scif_clk>; |
1062 | dma-names = "rx", "rx"; | 1246 | clock-names = "fck", "brg_int", "scif_clk"; |
1247 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, | ||
1248 | <&dmac2 0x51>, <&dmac2 0x50>; | ||
1249 | dma-names = "tx", "rx", "tx", "rx"; | ||
1063 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1250 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1064 | resets = <&cpg 508>; | 1251 | resets = <&cpg 207>; |
1065 | renesas,bonding = <&drif30>; | ||
1066 | status = "disabled"; | 1252 | status = "disabled"; |
1067 | }; | 1253 | }; |
1068 | 1254 | ||
1069 | hscif0: serial@e6540000 { | 1255 | scif1: serial@e6e68000 { |
1070 | compatible = "renesas,hscif-r8a7795", | 1256 | compatible = "renesas,scif-r8a7795", |
1071 | "renesas,rcar-gen3-hscif", | 1257 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1072 | "renesas,hscif"; | 1258 | reg = <0 0xe6e68000 0 64>; |
1073 | reg = <0 0xe6540000 0 96>; | 1259 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; |
1074 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | 1260 | clocks = <&cpg CPG_MOD 206>, |
1075 | clocks = <&cpg CPG_MOD 520>, | ||
1076 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1261 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1077 | <&scif_clk>; | 1262 | <&scif_clk>; |
1078 | clock-names = "fck", "brg_int", "scif_clk"; | 1263 | clock-names = "fck", "brg_int", "scif_clk"; |
1079 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, | 1264 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, |
1080 | <&dmac2 0x31>, <&dmac2 0x30>; | 1265 | <&dmac2 0x53>, <&dmac2 0x52>; |
1081 | dma-names = "tx", "rx", "tx", "rx"; | 1266 | dma-names = "tx", "rx", "tx", "rx"; |
1082 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1267 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1083 | resets = <&cpg 520>; | 1268 | resets = <&cpg 206>; |
1084 | status = "disabled"; | 1269 | status = "disabled"; |
1085 | }; | 1270 | }; |
1086 | 1271 | ||
1087 | hscif1: serial@e6550000 { | 1272 | scif2: serial@e6e88000 { |
1088 | compatible = "renesas,hscif-r8a7795", | 1273 | compatible = "renesas,scif-r8a7795", |
1089 | "renesas,rcar-gen3-hscif", | 1274 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1090 | "renesas,hscif"; | 1275 | reg = <0 0xe6e88000 0 64>; |
1091 | reg = <0 0xe6550000 0 96>; | 1276 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; |
1092 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; | 1277 | clocks = <&cpg CPG_MOD 310>, |
1093 | clocks = <&cpg CPG_MOD 519>, | ||
1094 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1278 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1095 | <&scif_clk>; | 1279 | <&scif_clk>; |
1096 | clock-names = "fck", "brg_int", "scif_clk"; | 1280 | clock-names = "fck", "brg_int", "scif_clk"; |
1097 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, | 1281 | dmas = <&dmac1 0x13>, <&dmac1 0x12>, |
1098 | <&dmac2 0x33>, <&dmac2 0x32>; | 1282 | <&dmac2 0x13>, <&dmac2 0x12>; |
1099 | dma-names = "tx", "rx", "tx", "rx"; | 1283 | dma-names = "tx", "rx", "tx", "rx"; |
1100 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1284 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1101 | resets = <&cpg 519>; | 1285 | resets = <&cpg 310>; |
1102 | status = "disabled"; | 1286 | status = "disabled"; |
1103 | }; | 1287 | }; |
1104 | 1288 | ||
1105 | hscif2: serial@e6560000 { | 1289 | scif3: serial@e6c50000 { |
1106 | compatible = "renesas,hscif-r8a7795", | 1290 | compatible = "renesas,scif-r8a7795", |
1107 | "renesas,rcar-gen3-hscif", | 1291 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1108 | "renesas,hscif"; | 1292 | reg = <0 0xe6c50000 0 64>; |
1109 | reg = <0 0xe6560000 0 96>; | 1293 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; |
1110 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; | 1294 | clocks = <&cpg CPG_MOD 204>, |
1111 | clocks = <&cpg CPG_MOD 518>, | ||
1112 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1295 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1113 | <&scif_clk>; | 1296 | <&scif_clk>; |
1114 | clock-names = "fck", "brg_int", "scif_clk"; | 1297 | clock-names = "fck", "brg_int", "scif_clk"; |
1115 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, | 1298 | dmas = <&dmac0 0x57>, <&dmac0 0x56>; |
1116 | <&dmac2 0x35>, <&dmac2 0x34>; | 1299 | dma-names = "tx", "rx"; |
1117 | dma-names = "tx", "rx", "tx", "rx"; | ||
1118 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1300 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1119 | resets = <&cpg 518>; | 1301 | resets = <&cpg 204>; |
1120 | status = "disabled"; | 1302 | status = "disabled"; |
1121 | }; | 1303 | }; |
1122 | 1304 | ||
1123 | hscif3: serial@e66a0000 { | 1305 | scif4: serial@e6c40000 { |
1124 | compatible = "renesas,hscif-r8a7795", | 1306 | compatible = "renesas,scif-r8a7795", |
1125 | "renesas,rcar-gen3-hscif", | 1307 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1126 | "renesas,hscif"; | 1308 | reg = <0 0xe6c40000 0 64>; |
1127 | reg = <0 0xe66a0000 0 96>; | 1309 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |
1128 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; | 1310 | clocks = <&cpg CPG_MOD 203>, |
1129 | clocks = <&cpg CPG_MOD 517>, | ||
1130 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1311 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1131 | <&scif_clk>; | 1312 | <&scif_clk>; |
1132 | clock-names = "fck", "brg_int", "scif_clk"; | 1313 | clock-names = "fck", "brg_int", "scif_clk"; |
1133 | dmas = <&dmac0 0x37>, <&dmac0 0x36>; | 1314 | dmas = <&dmac0 0x59>, <&dmac0 0x58>; |
1134 | dma-names = "tx", "rx"; | 1315 | dma-names = "tx", "rx"; |
1135 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1316 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1136 | resets = <&cpg 517>; | 1317 | resets = <&cpg 203>; |
1137 | status = "disabled"; | 1318 | status = "disabled"; |
1138 | }; | 1319 | }; |
1139 | 1320 | ||
1140 | hscif4: serial@e66b0000 { | 1321 | scif5: serial@e6f30000 { |
1141 | compatible = "renesas,hscif-r8a7795", | 1322 | compatible = "renesas,scif-r8a7795", |
1142 | "renesas,rcar-gen3-hscif", | 1323 | "renesas,rcar-gen3-scif", "renesas,scif"; |
1143 | "renesas,hscif"; | 1324 | reg = <0 0xe6f30000 0 64>; |
1144 | reg = <0 0xe66b0000 0 96>; | 1325 | interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; |
1145 | interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; | 1326 | clocks = <&cpg CPG_MOD 202>, |
1146 | clocks = <&cpg CPG_MOD 516>, | ||
1147 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1327 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, |
1148 | <&scif_clk>; | 1328 | <&scif_clk>; |
1149 | clock-names = "fck", "brg_int", "scif_clk"; | 1329 | clock-names = "fck", "brg_int", "scif_clk"; |
1150 | dmas = <&dmac0 0x39>, <&dmac0 0x38>; | 1330 | dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, |
1151 | dma-names = "tx", "rx"; | 1331 | <&dmac2 0x5b>, <&dmac2 0x5a>; |
1332 | dma-names = "tx", "rx", "tx", "rx"; | ||
1152 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1333 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1153 | resets = <&cpg 516>; | 1334 | resets = <&cpg 202>; |
1154 | status = "disabled"; | 1335 | status = "disabled"; |
1155 | }; | 1336 | }; |
1156 | 1337 | ||
@@ -1216,304 +1397,379 @@ | |||
1216 | status = "disabled"; | 1397 | status = "disabled"; |
1217 | }; | 1398 | }; |
1218 | 1399 | ||
1219 | scif0: serial@e6e60000 { | 1400 | vin0: video@e6ef0000 { |
1220 | compatible = "renesas,scif-r8a7795", | 1401 | compatible = "renesas,vin-r8a7795"; |
1221 | "renesas,rcar-gen3-scif", "renesas,scif"; | 1402 | reg = <0 0xe6ef0000 0 0x1000>; |
1222 | reg = <0 0xe6e60000 0 64>; | 1403 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; |
1223 | interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | 1404 | clocks = <&cpg CPG_MOD 811>; |
1224 | clocks = <&cpg CPG_MOD 207>, | ||
1225 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
1226 | <&scif_clk>; | ||
1227 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1228 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, | ||
1229 | <&dmac2 0x51>, <&dmac2 0x50>; | ||
1230 | dma-names = "tx", "rx", "tx", "rx"; | ||
1231 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1405 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1232 | resets = <&cpg 207>; | 1406 | resets = <&cpg 811>; |
1407 | renesas,id = <0>; | ||
1233 | status = "disabled"; | 1408 | status = "disabled"; |
1234 | }; | ||
1235 | 1409 | ||
1236 | scif1: serial@e6e68000 { | 1410 | ports { |
1237 | compatible = "renesas,scif-r8a7795", | 1411 | #address-cells = <1>; |
1238 | "renesas,rcar-gen3-scif", "renesas,scif"; | 1412 | #size-cells = <0>; |
1239 | reg = <0 0xe6e68000 0 64>; | ||
1240 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | ||
1241 | clocks = <&cpg CPG_MOD 206>, | ||
1242 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
1243 | <&scif_clk>; | ||
1244 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1245 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, | ||
1246 | <&dmac2 0x53>, <&dmac2 0x52>; | ||
1247 | dma-names = "tx", "rx", "tx", "rx"; | ||
1248 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1249 | resets = <&cpg 206>; | ||
1250 | status = "disabled"; | ||
1251 | }; | ||
1252 | 1413 | ||
1253 | scif2: serial@e6e88000 { | 1414 | port@1 { |
1254 | compatible = "renesas,scif-r8a7795", | 1415 | #address-cells = <1>; |
1255 | "renesas,rcar-gen3-scif", "renesas,scif"; | 1416 | #size-cells = <0>; |
1256 | reg = <0 0xe6e88000 0 64>; | ||
1257 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | ||
1258 | clocks = <&cpg CPG_MOD 310>, | ||
1259 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
1260 | <&scif_clk>; | ||
1261 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1262 | dmas = <&dmac1 0x13>, <&dmac1 0x12>, | ||
1263 | <&dmac2 0x13>, <&dmac2 0x12>; | ||
1264 | dma-names = "tx", "rx", "tx", "rx"; | ||
1265 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1266 | resets = <&cpg 310>; | ||
1267 | status = "disabled"; | ||
1268 | }; | ||
1269 | 1417 | ||
1270 | scif3: serial@e6c50000 { | 1418 | reg = <1>; |
1271 | compatible = "renesas,scif-r8a7795", | ||
1272 | "renesas,rcar-gen3-scif", "renesas,scif"; | ||
1273 | reg = <0 0xe6c50000 0 64>; | ||
1274 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | ||
1275 | clocks = <&cpg CPG_MOD 204>, | ||
1276 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
1277 | <&scif_clk>; | ||
1278 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1279 | dmas = <&dmac0 0x57>, <&dmac0 0x56>; | ||
1280 | dma-names = "tx", "rx"; | ||
1281 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1282 | resets = <&cpg 204>; | ||
1283 | status = "disabled"; | ||
1284 | }; | ||
1285 | 1419 | ||
1286 | scif4: serial@e6c40000 { | 1420 | vin0csi20: endpoint@0 { |
1287 | compatible = "renesas,scif-r8a7795", | 1421 | reg = <0>; |
1288 | "renesas,rcar-gen3-scif", "renesas,scif"; | 1422 | remote-endpoint= <&csi20vin0>; |
1289 | reg = <0 0xe6c40000 0 64>; | 1423 | }; |
1290 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; | 1424 | vin0csi40: endpoint@2 { |
1291 | clocks = <&cpg CPG_MOD 203>, | 1425 | reg = <2>; |
1292 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | 1426 | remote-endpoint= <&csi40vin0>; |
1293 | <&scif_clk>; | 1427 | }; |
1294 | clock-names = "fck", "brg_int", "scif_clk"; | 1428 | }; |
1295 | dmas = <&dmac0 0x59>, <&dmac0 0x58>; | 1429 | }; |
1296 | dma-names = "tx", "rx"; | ||
1297 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1298 | resets = <&cpg 203>; | ||
1299 | status = "disabled"; | ||
1300 | }; | 1430 | }; |
1301 | 1431 | ||
1302 | scif5: serial@e6f30000 { | 1432 | vin1: video@e6ef1000 { |
1303 | compatible = "renesas,scif-r8a7795", | 1433 | compatible = "renesas,vin-r8a7795"; |
1304 | "renesas,rcar-gen3-scif", "renesas,scif"; | 1434 | reg = <0 0xe6ef1000 0 0x1000>; |
1305 | reg = <0 0xe6f30000 0 64>; | 1435 | interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; |
1306 | interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; | 1436 | clocks = <&cpg CPG_MOD 810>; |
1307 | clocks = <&cpg CPG_MOD 202>, | ||
1308 | <&cpg CPG_CORE R8A7795_CLK_S3D1>, | ||
1309 | <&scif_clk>; | ||
1310 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1311 | dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, | ||
1312 | <&dmac2 0x5b>, <&dmac2 0x5a>; | ||
1313 | dma-names = "tx", "rx", "tx", "rx"; | ||
1314 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1437 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1315 | resets = <&cpg 202>; | 1438 | resets = <&cpg 810>; |
1439 | renesas,id = <1>; | ||
1316 | status = "disabled"; | 1440 | status = "disabled"; |
1317 | }; | ||
1318 | 1441 | ||
1319 | i2c_dvfs: i2c@e60b0000 { | 1442 | ports { |
1320 | #address-cells = <1>; | 1443 | #address-cells = <1>; |
1321 | #size-cells = <0>; | 1444 | #size-cells = <0>; |
1322 | compatible = "renesas,iic-r8a7795", | 1445 | |
1323 | "renesas,rcar-gen3-iic", | 1446 | port@1 { |
1324 | "renesas,rmobile-iic"; | 1447 | #address-cells = <1>; |
1325 | reg = <0 0xe60b0000 0 0x425>; | 1448 | #size-cells = <0>; |
1326 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | 1449 | |
1327 | clocks = <&cpg CPG_MOD 926>; | 1450 | reg = <1>; |
1328 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1451 | |
1329 | resets = <&cpg 926>; | 1452 | vin1csi20: endpoint@0 { |
1330 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | 1453 | reg = <0>; |
1331 | dma-names = "tx", "rx"; | 1454 | remote-endpoint= <&csi20vin1>; |
1332 | status = "disabled"; | 1455 | }; |
1456 | vin1csi40: endpoint@2 { | ||
1457 | reg = <2>; | ||
1458 | remote-endpoint= <&csi40vin1>; | ||
1459 | }; | ||
1460 | }; | ||
1461 | }; | ||
1333 | }; | 1462 | }; |
1334 | 1463 | ||
1335 | i2c0: i2c@e6500000 { | 1464 | vin2: video@e6ef2000 { |
1336 | #address-cells = <1>; | 1465 | compatible = "renesas,vin-r8a7795"; |
1337 | #size-cells = <0>; | 1466 | reg = <0 0xe6ef2000 0 0x1000>; |
1338 | compatible = "renesas,i2c-r8a7795", | 1467 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; |
1339 | "renesas,rcar-gen3-i2c"; | 1468 | clocks = <&cpg CPG_MOD 809>; |
1340 | reg = <0 0xe6500000 0 0x40>; | ||
1341 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
1342 | clocks = <&cpg CPG_MOD 931>; | ||
1343 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1469 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1344 | resets = <&cpg 931>; | 1470 | resets = <&cpg 809>; |
1345 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | 1471 | renesas,id = <2>; |
1346 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
1347 | dma-names = "tx", "rx", "tx", "rx"; | ||
1348 | i2c-scl-internal-delay-ns = <110>; | ||
1349 | status = "disabled"; | 1472 | status = "disabled"; |
1473 | |||
1474 | ports { | ||
1475 | #address-cells = <1>; | ||
1476 | #size-cells = <0>; | ||
1477 | |||
1478 | port@1 { | ||
1479 | #address-cells = <1>; | ||
1480 | #size-cells = <0>; | ||
1481 | |||
1482 | reg = <1>; | ||
1483 | |||
1484 | vin2csi20: endpoint@0 { | ||
1485 | reg = <0>; | ||
1486 | remote-endpoint= <&csi20vin2>; | ||
1487 | }; | ||
1488 | vin2csi40: endpoint@2 { | ||
1489 | reg = <2>; | ||
1490 | remote-endpoint= <&csi40vin2>; | ||
1491 | }; | ||
1492 | }; | ||
1493 | }; | ||
1350 | }; | 1494 | }; |
1351 | 1495 | ||
1352 | i2c1: i2c@e6508000 { | 1496 | vin3: video@e6ef3000 { |
1353 | #address-cells = <1>; | 1497 | compatible = "renesas,vin-r8a7795"; |
1354 | #size-cells = <0>; | 1498 | reg = <0 0xe6ef3000 0 0x1000>; |
1355 | compatible = "renesas,i2c-r8a7795", | 1499 | interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; |
1356 | "renesas,rcar-gen3-i2c"; | 1500 | clocks = <&cpg CPG_MOD 808>; |
1357 | reg = <0 0xe6508000 0 0x40>; | ||
1358 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
1359 | clocks = <&cpg CPG_MOD 930>; | ||
1360 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1501 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1361 | resets = <&cpg 930>; | 1502 | resets = <&cpg 808>; |
1362 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | 1503 | renesas,id = <3>; |
1363 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
1364 | dma-names = "tx", "rx", "tx", "rx"; | ||
1365 | i2c-scl-internal-delay-ns = <6>; | ||
1366 | status = "disabled"; | 1504 | status = "disabled"; |
1505 | |||
1506 | ports { | ||
1507 | #address-cells = <1>; | ||
1508 | #size-cells = <0>; | ||
1509 | |||
1510 | port@1 { | ||
1511 | #address-cells = <1>; | ||
1512 | #size-cells = <0>; | ||
1513 | |||
1514 | reg = <1>; | ||
1515 | |||
1516 | vin3csi20: endpoint@0 { | ||
1517 | reg = <0>; | ||
1518 | remote-endpoint= <&csi20vin3>; | ||
1519 | }; | ||
1520 | vin3csi40: endpoint@2 { | ||
1521 | reg = <2>; | ||
1522 | remote-endpoint= <&csi40vin3>; | ||
1523 | }; | ||
1524 | }; | ||
1525 | }; | ||
1367 | }; | 1526 | }; |
1368 | 1527 | ||
1369 | i2c2: i2c@e6510000 { | 1528 | vin4: video@e6ef4000 { |
1370 | #address-cells = <1>; | 1529 | compatible = "renesas,vin-r8a7795"; |
1371 | #size-cells = <0>; | 1530 | reg = <0 0xe6ef4000 0 0x1000>; |
1372 | compatible = "renesas,i2c-r8a7795", | 1531 | interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; |
1373 | "renesas,rcar-gen3-i2c"; | 1532 | clocks = <&cpg CPG_MOD 807>; |
1374 | reg = <0 0xe6510000 0 0x40>; | ||
1375 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
1376 | clocks = <&cpg CPG_MOD 929>; | ||
1377 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1533 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1378 | resets = <&cpg 929>; | 1534 | resets = <&cpg 807>; |
1379 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | 1535 | renesas,id = <4>; |
1380 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
1381 | dma-names = "tx", "rx", "tx", "rx"; | ||
1382 | i2c-scl-internal-delay-ns = <6>; | ||
1383 | status = "disabled"; | 1536 | status = "disabled"; |
1537 | |||
1538 | ports { | ||
1539 | #address-cells = <1>; | ||
1540 | #size-cells = <0>; | ||
1541 | |||
1542 | port@1 { | ||
1543 | #address-cells = <1>; | ||
1544 | #size-cells = <0>; | ||
1545 | |||
1546 | reg = <1>; | ||
1547 | |||
1548 | vin4csi20: endpoint@0 { | ||
1549 | reg = <0>; | ||
1550 | remote-endpoint= <&csi20vin4>; | ||
1551 | }; | ||
1552 | vin4csi41: endpoint@3 { | ||
1553 | reg = <3>; | ||
1554 | remote-endpoint= <&csi41vin4>; | ||
1555 | }; | ||
1556 | }; | ||
1557 | }; | ||
1384 | }; | 1558 | }; |
1385 | 1559 | ||
1386 | i2c3: i2c@e66d0000 { | 1560 | vin5: video@e6ef5000 { |
1387 | #address-cells = <1>; | 1561 | compatible = "renesas,vin-r8a7795"; |
1388 | #size-cells = <0>; | 1562 | reg = <0 0xe6ef5000 0 0x1000>; |
1389 | compatible = "renesas,i2c-r8a7795", | 1563 | interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; |
1390 | "renesas,rcar-gen3-i2c"; | 1564 | clocks = <&cpg CPG_MOD 806>; |
1391 | reg = <0 0xe66d0000 0 0x40>; | ||
1392 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
1393 | clocks = <&cpg CPG_MOD 928>; | ||
1394 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1565 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1395 | resets = <&cpg 928>; | 1566 | resets = <&cpg 806>; |
1396 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | 1567 | renesas,id = <5>; |
1397 | dma-names = "tx", "rx"; | ||
1398 | i2c-scl-internal-delay-ns = <110>; | ||
1399 | status = "disabled"; | 1568 | status = "disabled"; |
1569 | |||
1570 | ports { | ||
1571 | #address-cells = <1>; | ||
1572 | #size-cells = <0>; | ||
1573 | |||
1574 | port@1 { | ||
1575 | #address-cells = <1>; | ||
1576 | #size-cells = <0>; | ||
1577 | |||
1578 | reg = <1>; | ||
1579 | |||
1580 | vin5csi20: endpoint@0 { | ||
1581 | reg = <0>; | ||
1582 | remote-endpoint= <&csi20vin5>; | ||
1583 | }; | ||
1584 | vin5csi41: endpoint@3 { | ||
1585 | reg = <3>; | ||
1586 | remote-endpoint= <&csi41vin5>; | ||
1587 | }; | ||
1588 | }; | ||
1589 | }; | ||
1400 | }; | 1590 | }; |
1401 | 1591 | ||
1402 | i2c4: i2c@e66d8000 { | 1592 | vin6: video@e6ef6000 { |
1403 | #address-cells = <1>; | 1593 | compatible = "renesas,vin-r8a7795"; |
1404 | #size-cells = <0>; | 1594 | reg = <0 0xe6ef6000 0 0x1000>; |
1405 | compatible = "renesas,i2c-r8a7795", | 1595 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; |
1406 | "renesas,rcar-gen3-i2c"; | 1596 | clocks = <&cpg CPG_MOD 805>; |
1407 | reg = <0 0xe66d8000 0 0x40>; | ||
1408 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
1409 | clocks = <&cpg CPG_MOD 927>; | ||
1410 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1597 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1411 | resets = <&cpg 927>; | 1598 | resets = <&cpg 805>; |
1412 | dmas = <&dmac0 0x99>, <&dmac0 0x98>; | 1599 | renesas,id = <6>; |
1413 | dma-names = "tx", "rx"; | ||
1414 | i2c-scl-internal-delay-ns = <110>; | ||
1415 | status = "disabled"; | 1600 | status = "disabled"; |
1601 | |||
1602 | ports { | ||
1603 | #address-cells = <1>; | ||
1604 | #size-cells = <0>; | ||
1605 | |||
1606 | port@1 { | ||
1607 | #address-cells = <1>; | ||
1608 | #size-cells = <0>; | ||
1609 | |||
1610 | reg = <1>; | ||
1611 | |||
1612 | vin6csi20: endpoint@0 { | ||
1613 | reg = <0>; | ||
1614 | remote-endpoint= <&csi20vin6>; | ||
1615 | }; | ||
1616 | vin6csi41: endpoint@3 { | ||
1617 | reg = <3>; | ||
1618 | remote-endpoint= <&csi41vin6>; | ||
1619 | }; | ||
1620 | }; | ||
1621 | }; | ||
1416 | }; | 1622 | }; |
1417 | 1623 | ||
1418 | i2c5: i2c@e66e0000 { | 1624 | vin7: video@e6ef7000 { |
1419 | #address-cells = <1>; | 1625 | compatible = "renesas,vin-r8a7795"; |
1420 | #size-cells = <0>; | 1626 | reg = <0 0xe6ef7000 0 0x1000>; |
1421 | compatible = "renesas,i2c-r8a7795", | 1627 | interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; |
1422 | "renesas,rcar-gen3-i2c"; | 1628 | clocks = <&cpg CPG_MOD 804>; |
1423 | reg = <0 0xe66e0000 0 0x40>; | ||
1424 | interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
1425 | clocks = <&cpg CPG_MOD 919>; | ||
1426 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1629 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1427 | resets = <&cpg 919>; | 1630 | resets = <&cpg 804>; |
1428 | dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; | 1631 | renesas,id = <7>; |
1429 | dma-names = "tx", "rx"; | ||
1430 | i2c-scl-internal-delay-ns = <110>; | ||
1431 | status = "disabled"; | 1632 | status = "disabled"; |
1633 | |||
1634 | ports { | ||
1635 | #address-cells = <1>; | ||
1636 | #size-cells = <0>; | ||
1637 | |||
1638 | port@1 { | ||
1639 | #address-cells = <1>; | ||
1640 | #size-cells = <0>; | ||
1641 | |||
1642 | reg = <1>; | ||
1643 | |||
1644 | vin7csi20: endpoint@0 { | ||
1645 | reg = <0>; | ||
1646 | remote-endpoint= <&csi20vin7>; | ||
1647 | }; | ||
1648 | vin7csi41: endpoint@3 { | ||
1649 | reg = <3>; | ||
1650 | remote-endpoint= <&csi41vin7>; | ||
1651 | }; | ||
1652 | }; | ||
1653 | }; | ||
1432 | }; | 1654 | }; |
1433 | 1655 | ||
1434 | i2c6: i2c@e66e8000 { | 1656 | drif00: rif@e6f40000 { |
1435 | #address-cells = <1>; | 1657 | compatible = "renesas,r8a7795-drif", |
1436 | #size-cells = <0>; | 1658 | "renesas,rcar-gen3-drif"; |
1437 | compatible = "renesas,i2c-r8a7795", | 1659 | reg = <0 0xe6f40000 0 0x64>; |
1438 | "renesas,rcar-gen3-i2c"; | 1660 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; |
1439 | reg = <0 0xe66e8000 0 0x40>; | 1661 | clocks = <&cpg CPG_MOD 515>; |
1440 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | 1662 | clock-names = "fck"; |
1441 | clocks = <&cpg CPG_MOD 918>; | 1663 | dmas = <&dmac1 0x20>, <&dmac2 0x20>; |
1664 | dma-names = "rx", "rx"; | ||
1442 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1665 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1443 | resets = <&cpg 918>; | 1666 | resets = <&cpg 515>; |
1444 | dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; | 1667 | renesas,bonding = <&drif01>; |
1445 | dma-names = "tx", "rx"; | ||
1446 | i2c-scl-internal-delay-ns = <6>; | ||
1447 | status = "disabled"; | 1668 | status = "disabled"; |
1448 | }; | 1669 | }; |
1449 | 1670 | ||
1450 | pwm0: pwm@e6e30000 { | 1671 | drif01: rif@e6f50000 { |
1451 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1672 | compatible = "renesas,r8a7795-drif", |
1452 | reg = <0 0xe6e30000 0 0x8>; | 1673 | "renesas,rcar-gen3-drif"; |
1453 | clocks = <&cpg CPG_MOD 523>; | 1674 | reg = <0 0xe6f50000 0 0x64>; |
1675 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
1676 | clocks = <&cpg CPG_MOD 514>; | ||
1677 | clock-names = "fck"; | ||
1678 | dmas = <&dmac1 0x22>, <&dmac2 0x22>; | ||
1679 | dma-names = "rx", "rx"; | ||
1454 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1680 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1455 | resets = <&cpg 523>; | 1681 | resets = <&cpg 514>; |
1456 | #pwm-cells = <2>; | 1682 | renesas,bonding = <&drif00>; |
1457 | status = "disabled"; | 1683 | status = "disabled"; |
1458 | }; | 1684 | }; |
1459 | 1685 | ||
1460 | pwm1: pwm@e6e31000 { | 1686 | drif10: rif@e6f60000 { |
1461 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1687 | compatible = "renesas,r8a7795-drif", |
1462 | reg = <0 0xe6e31000 0 0x8>; | 1688 | "renesas,rcar-gen3-drif"; |
1463 | clocks = <&cpg CPG_MOD 523>; | 1689 | reg = <0 0xe6f60000 0 0x64>; |
1690 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
1691 | clocks = <&cpg CPG_MOD 513>; | ||
1692 | clock-names = "fck"; | ||
1693 | dmas = <&dmac1 0x24>, <&dmac2 0x24>; | ||
1694 | dma-names = "rx", "rx"; | ||
1464 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1695 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1465 | resets = <&cpg 523>; | 1696 | resets = <&cpg 513>; |
1466 | #pwm-cells = <2>; | 1697 | renesas,bonding = <&drif11>; |
1467 | status = "disabled"; | 1698 | status = "disabled"; |
1468 | }; | 1699 | }; |
1469 | 1700 | ||
1470 | pwm2: pwm@e6e32000 { | 1701 | drif11: rif@e6f70000 { |
1471 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1702 | compatible = "renesas,r8a7795-drif", |
1472 | reg = <0 0xe6e32000 0 0x8>; | 1703 | "renesas,rcar-gen3-drif"; |
1473 | clocks = <&cpg CPG_MOD 523>; | 1704 | reg = <0 0xe6f70000 0 0x64>; |
1705 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
1706 | clocks = <&cpg CPG_MOD 512>; | ||
1707 | clock-names = "fck"; | ||
1708 | dmas = <&dmac1 0x26>, <&dmac2 0x26>; | ||
1709 | dma-names = "rx", "rx"; | ||
1474 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1710 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1475 | resets = <&cpg 523>; | 1711 | resets = <&cpg 512>; |
1476 | #pwm-cells = <2>; | 1712 | renesas,bonding = <&drif10>; |
1477 | status = "disabled"; | 1713 | status = "disabled"; |
1478 | }; | 1714 | }; |
1479 | 1715 | ||
1480 | pwm3: pwm@e6e33000 { | 1716 | drif20: rif@e6f80000 { |
1481 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1717 | compatible = "renesas,r8a7795-drif", |
1482 | reg = <0 0xe6e33000 0 0x8>; | 1718 | "renesas,rcar-gen3-drif"; |
1483 | clocks = <&cpg CPG_MOD 523>; | 1719 | reg = <0 0xe6f80000 0 0x64>; |
1720 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
1721 | clocks = <&cpg CPG_MOD 511>; | ||
1722 | clock-names = "fck"; | ||
1723 | dmas = <&dmac1 0x28>, <&dmac2 0x28>; | ||
1724 | dma-names = "rx", "rx"; | ||
1484 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1725 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1485 | resets = <&cpg 523>; | 1726 | resets = <&cpg 511>; |
1486 | #pwm-cells = <2>; | 1727 | renesas,bonding = <&drif21>; |
1487 | status = "disabled"; | 1728 | status = "disabled"; |
1488 | }; | 1729 | }; |
1489 | 1730 | ||
1490 | pwm4: pwm@e6e34000 { | 1731 | drif21: rif@e6f90000 { |
1491 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1732 | compatible = "renesas,r8a7795-drif", |
1492 | reg = <0 0xe6e34000 0 0x8>; | 1733 | "renesas,rcar-gen3-drif"; |
1493 | clocks = <&cpg CPG_MOD 523>; | 1734 | reg = <0 0xe6f90000 0 0x64>; |
1735 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | ||
1736 | clocks = <&cpg CPG_MOD 510>; | ||
1737 | clock-names = "fck"; | ||
1738 | dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; | ||
1739 | dma-names = "rx", "rx"; | ||
1494 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1740 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1495 | resets = <&cpg 523>; | 1741 | resets = <&cpg 510>; |
1496 | #pwm-cells = <2>; | 1742 | renesas,bonding = <&drif20>; |
1497 | status = "disabled"; | 1743 | status = "disabled"; |
1498 | }; | 1744 | }; |
1499 | 1745 | ||
1500 | pwm5: pwm@e6e35000 { | 1746 | drif30: rif@e6fa0000 { |
1501 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1747 | compatible = "renesas,r8a7795-drif", |
1502 | reg = <0 0xe6e35000 0 0x8>; | 1748 | "renesas,rcar-gen3-drif"; |
1503 | clocks = <&cpg CPG_MOD 523>; | 1749 | reg = <0 0xe6fa0000 0 0x64>; |
1750 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
1751 | clocks = <&cpg CPG_MOD 509>; | ||
1752 | clock-names = "fck"; | ||
1753 | dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; | ||
1754 | dma-names = "rx", "rx"; | ||
1504 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1755 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1505 | resets = <&cpg 523>; | 1756 | resets = <&cpg 509>; |
1506 | #pwm-cells = <2>; | 1757 | renesas,bonding = <&drif31>; |
1507 | status = "disabled"; | 1758 | status = "disabled"; |
1508 | }; | 1759 | }; |
1509 | 1760 | ||
1510 | pwm6: pwm@e6e36000 { | 1761 | drif31: rif@e6fb0000 { |
1511 | compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; | 1762 | compatible = "renesas,r8a7795-drif", |
1512 | reg = <0 0xe6e36000 0 0x8>; | 1763 | "renesas,rcar-gen3-drif"; |
1513 | clocks = <&cpg CPG_MOD 523>; | 1764 | reg = <0 0xe6fb0000 0 0x64>; |
1765 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | ||
1766 | clocks = <&cpg CPG_MOD 508>; | ||
1767 | clock-names = "fck"; | ||
1768 | dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; | ||
1769 | dma-names = "rx", "rx"; | ||
1514 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1770 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1515 | resets = <&cpg 523>; | 1771 | resets = <&cpg 508>; |
1516 | #pwm-cells = <2>; | 1772 | renesas,bonding = <&drif30>; |
1517 | status = "disabled"; | 1773 | status = "disabled"; |
1518 | }; | 1774 | }; |
1519 | 1775 | ||
@@ -1711,31 +1967,104 @@ | |||
1711 | dma-names = "rx", "tx", "rxu", "txu"; | 1967 | dma-names = "rx", "tx", "rxu", "txu"; |
1712 | }; | 1968 | }; |
1713 | }; | 1969 | }; |
1970 | |||
1971 | ports { | ||
1972 | #address-cells = <1>; | ||
1973 | #size-cells = <0>; | ||
1974 | port@0 { | ||
1975 | reg = <0>; | ||
1976 | }; | ||
1977 | port@1 { | ||
1978 | reg = <1>; | ||
1979 | }; | ||
1980 | port@2 { | ||
1981 | reg = <2>; | ||
1982 | }; | ||
1983 | }; | ||
1714 | }; | 1984 | }; |
1715 | 1985 | ||
1716 | sata: sata@ee300000 { | 1986 | audma0: dma-controller@ec700000 { |
1717 | compatible = "renesas,sata-r8a7795", | 1987 | compatible = "renesas,dmac-r8a7795", |
1718 | "renesas,rcar-gen3-sata"; | 1988 | "renesas,rcar-dmac"; |
1719 | reg = <0 0xee300000 0 0x200000>; | 1989 | reg = <0 0xec700000 0 0x10000>; |
1720 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | 1990 | interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH |
1721 | clocks = <&cpg CPG_MOD 815>; | 1991 | GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH |
1992 | GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH | ||
1993 | GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH | ||
1994 | GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH | ||
1995 | GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH | ||
1996 | GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH | ||
1997 | GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH | ||
1998 | GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH | ||
1999 | GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH | ||
2000 | GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH | ||
2001 | GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH | ||
2002 | GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH | ||
2003 | GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH | ||
2004 | GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH | ||
2005 | GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH | ||
2006 | GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; | ||
2007 | interrupt-names = "error", | ||
2008 | "ch0", "ch1", "ch2", "ch3", | ||
2009 | "ch4", "ch5", "ch6", "ch7", | ||
2010 | "ch8", "ch9", "ch10", "ch11", | ||
2011 | "ch12", "ch13", "ch14", "ch15"; | ||
2012 | clocks = <&cpg CPG_MOD 502>; | ||
2013 | clock-names = "fck"; | ||
1722 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2014 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1723 | resets = <&cpg 815>; | 2015 | resets = <&cpg 502>; |
1724 | status = "disabled"; | 2016 | #dma-cells = <1>; |
1725 | iommus = <&ipmmu_hc 2>; | 2017 | dma-channels = <16>; |
2018 | iommus = <&ipmmu_mp0 0>, <&ipmmu_mp0 1>, | ||
2019 | <&ipmmu_mp0 2>, <&ipmmu_mp0 3>, | ||
2020 | <&ipmmu_mp0 4>, <&ipmmu_mp0 5>, | ||
2021 | <&ipmmu_mp0 6>, <&ipmmu_mp0 7>, | ||
2022 | <&ipmmu_mp0 8>, <&ipmmu_mp0 9>, | ||
2023 | <&ipmmu_mp0 10>, <&ipmmu_mp0 11>, | ||
2024 | <&ipmmu_mp0 12>, <&ipmmu_mp0 13>, | ||
2025 | <&ipmmu_mp0 14>, <&ipmmu_mp0 15>; | ||
1726 | }; | 2026 | }; |
1727 | 2027 | ||
1728 | usb3_phy0: usb-phy@e65ee000 { | 2028 | audma1: dma-controller@ec720000 { |
1729 | compatible = "renesas,r8a7795-usb3-phy", | 2029 | compatible = "renesas,dmac-r8a7795", |
1730 | "renesas,rcar-gen3-usb3-phy"; | 2030 | "renesas,rcar-dmac"; |
1731 | reg = <0 0xe65ee000 0 0x90>; | 2031 | reg = <0 0xec720000 0 0x10000>; |
1732 | clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, | 2032 | interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH |
1733 | <&usb_extal_clk>; | 2033 | GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH |
1734 | clock-names = "usb3-if", "usb3s_clk", "usb_extal"; | 2034 | GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH |
2035 | GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH | ||
2036 | GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH | ||
2037 | GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH | ||
2038 | GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH | ||
2039 | GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH | ||
2040 | GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH | ||
2041 | GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH | ||
2042 | GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH | ||
2043 | GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH | ||
2044 | GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH | ||
2045 | GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH | ||
2046 | GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH | ||
2047 | GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH | ||
2048 | GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; | ||
2049 | interrupt-names = "error", | ||
2050 | "ch0", "ch1", "ch2", "ch3", | ||
2051 | "ch4", "ch5", "ch6", "ch7", | ||
2052 | "ch8", "ch9", "ch10", "ch11", | ||
2053 | "ch12", "ch13", "ch14", "ch15"; | ||
2054 | clocks = <&cpg CPG_MOD 501>; | ||
2055 | clock-names = "fck"; | ||
1735 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2056 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1736 | resets = <&cpg 328>; | 2057 | resets = <&cpg 501>; |
1737 | #phy-cells = <0>; | 2058 | #dma-cells = <1>; |
1738 | status = "disabled"; | 2059 | dma-channels = <16>; |
2060 | iommus = <&ipmmu_mp0 16>, <&ipmmu_mp0 17>, | ||
2061 | <&ipmmu_mp0 18>, <&ipmmu_mp0 19>, | ||
2062 | <&ipmmu_mp0 20>, <&ipmmu_mp0 21>, | ||
2063 | <&ipmmu_mp0 22>, <&ipmmu_mp0 23>, | ||
2064 | <&ipmmu_mp0 24>, <&ipmmu_mp0 25>, | ||
2065 | <&ipmmu_mp0 26>, <&ipmmu_mp0 27>, | ||
2066 | <&ipmmu_mp0 28>, <&ipmmu_mp0 29>, | ||
2067 | <&ipmmu_mp0 30>, <&ipmmu_mp0 31>; | ||
1739 | }; | 2068 | }; |
1740 | 2069 | ||
1741 | xhci0: usb@ee000000 { | 2070 | xhci0: usb@ee000000 { |
@@ -1759,153 +2088,51 @@ | |||
1759 | status = "disabled"; | 2088 | status = "disabled"; |
1760 | }; | 2089 | }; |
1761 | 2090 | ||
1762 | usb_dmac0: dma-controller@e65a0000 { | 2091 | ohci0: usb@ee080000 { |
1763 | compatible = "renesas,r8a7795-usb-dmac", | 2092 | compatible = "generic-ohci"; |
1764 | "renesas,usb-dmac"; | 2093 | reg = <0 0xee080000 0 0x100>; |
1765 | reg = <0 0xe65a0000 0 0x100>; | ||
1766 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH | ||
1767 | GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
1768 | interrupt-names = "ch0", "ch1"; | ||
1769 | clocks = <&cpg CPG_MOD 330>; | ||
1770 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1771 | resets = <&cpg 330>; | ||
1772 | #dma-cells = <1>; | ||
1773 | dma-channels = <2>; | ||
1774 | }; | ||
1775 | |||
1776 | usb_dmac1: dma-controller@e65b0000 { | ||
1777 | compatible = "renesas,r8a7795-usb-dmac", | ||
1778 | "renesas,usb-dmac"; | ||
1779 | reg = <0 0xe65b0000 0 0x100>; | ||
1780 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH | ||
1781 | GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
1782 | interrupt-names = "ch0", "ch1"; | ||
1783 | clocks = <&cpg CPG_MOD 331>; | ||
1784 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1785 | resets = <&cpg 331>; | ||
1786 | #dma-cells = <1>; | ||
1787 | dma-channels = <2>; | ||
1788 | }; | ||
1789 | |||
1790 | usb_dmac2: dma-controller@e6460000 { | ||
1791 | compatible = "renesas,r8a7795-usb-dmac", | ||
1792 | "renesas,usb-dmac"; | ||
1793 | reg = <0 0xe6460000 0 0x100>; | ||
1794 | interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH | ||
1795 | GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
1796 | interrupt-names = "ch0", "ch1"; | ||
1797 | clocks = <&cpg CPG_MOD 326>; | ||
1798 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1799 | resets = <&cpg 326>; | ||
1800 | #dma-cells = <1>; | ||
1801 | dma-channels = <2>; | ||
1802 | }; | ||
1803 | |||
1804 | usb_dmac3: dma-controller@e6470000 { | ||
1805 | compatible = "renesas,r8a7795-usb-dmac", | ||
1806 | "renesas,usb-dmac"; | ||
1807 | reg = <0 0xe6470000 0 0x100>; | ||
1808 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH | ||
1809 | GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | ||
1810 | interrupt-names = "ch0", "ch1"; | ||
1811 | clocks = <&cpg CPG_MOD 329>; | ||
1812 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1813 | resets = <&cpg 329>; | ||
1814 | #dma-cells = <1>; | ||
1815 | dma-channels = <2>; | ||
1816 | }; | ||
1817 | |||
1818 | sdhi0: sd@ee100000 { | ||
1819 | compatible = "renesas,sdhi-r8a7795", | ||
1820 | "renesas,rcar-gen3-sdhi"; | ||
1821 | reg = <0 0xee100000 0 0x2000>; | ||
1822 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | ||
1823 | clocks = <&cpg CPG_MOD 314>; | ||
1824 | max-frequency = <200000000>; | ||
1825 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1826 | resets = <&cpg 314>; | ||
1827 | status = "disabled"; | ||
1828 | }; | ||
1829 | |||
1830 | sdhi1: sd@ee120000 { | ||
1831 | compatible = "renesas,sdhi-r8a7795", | ||
1832 | "renesas,rcar-gen3-sdhi"; | ||
1833 | reg = <0 0xee120000 0 0x2000>; | ||
1834 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; | ||
1835 | clocks = <&cpg CPG_MOD 313>; | ||
1836 | max-frequency = <200000000>; | ||
1837 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1838 | resets = <&cpg 313>; | ||
1839 | status = "disabled"; | ||
1840 | }; | ||
1841 | |||
1842 | sdhi2: sd@ee140000 { | ||
1843 | compatible = "renesas,sdhi-r8a7795", | ||
1844 | "renesas,rcar-gen3-sdhi"; | ||
1845 | reg = <0 0xee140000 0 0x2000>; | ||
1846 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
1847 | clocks = <&cpg CPG_MOD 312>; | ||
1848 | max-frequency = <200000000>; | ||
1849 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1850 | resets = <&cpg 312>; | ||
1851 | status = "disabled"; | ||
1852 | }; | ||
1853 | |||
1854 | sdhi3: sd@ee160000 { | ||
1855 | compatible = "renesas,sdhi-r8a7795", | ||
1856 | "renesas,rcar-gen3-sdhi"; | ||
1857 | reg = <0 0xee160000 0 0x2000>; | ||
1858 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | ||
1859 | clocks = <&cpg CPG_MOD 311>; | ||
1860 | max-frequency = <200000000>; | ||
1861 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
1862 | resets = <&cpg 311>; | ||
1863 | status = "disabled"; | ||
1864 | }; | ||
1865 | |||
1866 | usb2_phy0: usb-phy@ee080200 { | ||
1867 | compatible = "renesas,usb2-phy-r8a7795", | ||
1868 | "renesas,rcar-gen3-usb2-phy"; | ||
1869 | reg = <0 0xee080200 0 0x700>; | ||
1870 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 2094 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
1871 | clocks = <&cpg CPG_MOD 703>; | 2095 | clocks = <&cpg CPG_MOD 703>; |
2096 | phys = <&usb2_phy0>; | ||
2097 | phy-names = "usb"; | ||
1872 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2098 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1873 | resets = <&cpg 703>; | 2099 | resets = <&cpg 703>; |
1874 | #phy-cells = <0>; | ||
1875 | status = "disabled"; | 2100 | status = "disabled"; |
1876 | }; | 2101 | }; |
1877 | 2102 | ||
1878 | usb2_phy1: usb-phy@ee0a0200 { | 2103 | ohci1: usb@ee0a0000 { |
1879 | compatible = "renesas,usb2-phy-r8a7795", | 2104 | compatible = "generic-ohci"; |
1880 | "renesas,rcar-gen3-usb2-phy"; | 2105 | reg = <0 0xee0a0000 0 0x100>; |
1881 | reg = <0 0xee0a0200 0 0x700>; | 2106 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; |
1882 | clocks = <&cpg CPG_MOD 702>; | 2107 | clocks = <&cpg CPG_MOD 702>; |
2108 | phys = <&usb2_phy1>; | ||
2109 | phy-names = "usb"; | ||
1883 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2110 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1884 | resets = <&cpg 702>; | 2111 | resets = <&cpg 702>; |
1885 | #phy-cells = <0>; | ||
1886 | status = "disabled"; | 2112 | status = "disabled"; |
1887 | }; | 2113 | }; |
1888 | 2114 | ||
1889 | usb2_phy2: usb-phy@ee0c0200 { | 2115 | ohci2: usb@ee0c0000 { |
1890 | compatible = "renesas,usb2-phy-r8a7795", | 2116 | compatible = "generic-ohci"; |
1891 | "renesas,rcar-gen3-usb2-phy"; | 2117 | reg = <0 0xee0c0000 0 0x100>; |
1892 | reg = <0 0xee0c0200 0 0x700>; | 2118 | interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; |
1893 | clocks = <&cpg CPG_MOD 701>; | 2119 | clocks = <&cpg CPG_MOD 701>; |
2120 | phys = <&usb2_phy2>; | ||
2121 | phy-names = "usb"; | ||
1894 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2122 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1895 | resets = <&cpg 701>; | 2123 | resets = <&cpg 701>; |
1896 | #phy-cells = <0>; | ||
1897 | status = "disabled"; | 2124 | status = "disabled"; |
1898 | }; | 2125 | }; |
1899 | 2126 | ||
1900 | usb2_phy3: usb-phy@ee0e0200 { | 2127 | ohci3: usb@ee0e0000 { |
1901 | compatible = "renesas,usb2-phy-r8a7795", | 2128 | compatible = "generic-ohci"; |
1902 | "renesas,rcar-gen3-usb2-phy"; | 2129 | reg = <0 0xee0e0000 0 0x100>; |
1903 | reg = <0 0xee0e0200 0 0x700>; | ||
1904 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | 2130 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; |
1905 | clocks = <&cpg CPG_MOD 700>; | 2131 | clocks = <&cpg CPG_MOD 700>; |
2132 | phys = <&usb2_phy3>; | ||
2133 | phy-names = "usb"; | ||
1906 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2134 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1907 | resets = <&cpg 700>; | 2135 | resets = <&cpg 700>; |
1908 | #phy-cells = <0>; | ||
1909 | status = "disabled"; | 2136 | status = "disabled"; |
1910 | }; | 2137 | }; |
1911 | 2138 | ||
@@ -1961,88 +2188,129 @@ | |||
1961 | status = "disabled"; | 2188 | status = "disabled"; |
1962 | }; | 2189 | }; |
1963 | 2190 | ||
1964 | ohci0: usb@ee080000 { | 2191 | usb2_phy0: usb-phy@ee080200 { |
1965 | compatible = "generic-ohci"; | 2192 | compatible = "renesas,usb2-phy-r8a7795", |
1966 | reg = <0 0xee080000 0 0x100>; | 2193 | "renesas,rcar-gen3-usb2-phy"; |
2194 | reg = <0 0xee080200 0 0x700>; | ||
1967 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 2195 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
1968 | clocks = <&cpg CPG_MOD 703>; | 2196 | clocks = <&cpg CPG_MOD 703>; |
1969 | phys = <&usb2_phy0>; | ||
1970 | phy-names = "usb"; | ||
1971 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2197 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1972 | resets = <&cpg 703>; | 2198 | resets = <&cpg 703>; |
2199 | #phy-cells = <0>; | ||
1973 | status = "disabled"; | 2200 | status = "disabled"; |
1974 | }; | 2201 | }; |
1975 | 2202 | ||
1976 | ohci1: usb@ee0a0000 { | 2203 | usb2_phy1: usb-phy@ee0a0200 { |
1977 | compatible = "generic-ohci"; | 2204 | compatible = "renesas,usb2-phy-r8a7795", |
1978 | reg = <0 0xee0a0000 0 0x100>; | 2205 | "renesas,rcar-gen3-usb2-phy"; |
1979 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | 2206 | reg = <0 0xee0a0200 0 0x700>; |
1980 | clocks = <&cpg CPG_MOD 702>; | 2207 | clocks = <&cpg CPG_MOD 702>; |
1981 | phys = <&usb2_phy1>; | ||
1982 | phy-names = "usb"; | ||
1983 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2208 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1984 | resets = <&cpg 702>; | 2209 | resets = <&cpg 702>; |
2210 | #phy-cells = <0>; | ||
1985 | status = "disabled"; | 2211 | status = "disabled"; |
1986 | }; | 2212 | }; |
1987 | 2213 | ||
1988 | ohci2: usb@ee0c0000 { | 2214 | usb2_phy2: usb-phy@ee0c0200 { |
1989 | compatible = "generic-ohci"; | 2215 | compatible = "renesas,usb2-phy-r8a7795", |
1990 | reg = <0 0xee0c0000 0 0x100>; | 2216 | "renesas,rcar-gen3-usb2-phy"; |
1991 | interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; | 2217 | reg = <0 0xee0c0200 0 0x700>; |
1992 | clocks = <&cpg CPG_MOD 701>; | 2218 | clocks = <&cpg CPG_MOD 701>; |
1993 | phys = <&usb2_phy2>; | ||
1994 | phy-names = "usb"; | ||
1995 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2219 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
1996 | resets = <&cpg 701>; | 2220 | resets = <&cpg 701>; |
2221 | #phy-cells = <0>; | ||
1997 | status = "disabled"; | 2222 | status = "disabled"; |
1998 | }; | 2223 | }; |
1999 | 2224 | ||
2000 | ohci3: usb@ee0e0000 { | 2225 | usb2_phy3: usb-phy@ee0e0200 { |
2001 | compatible = "generic-ohci"; | 2226 | compatible = "renesas,usb2-phy-r8a7795", |
2002 | reg = <0 0xee0e0000 0 0x100>; | 2227 | "renesas,rcar-gen3-usb2-phy"; |
2228 | reg = <0 0xee0e0200 0 0x700>; | ||
2003 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | 2229 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; |
2004 | clocks = <&cpg CPG_MOD 700>; | 2230 | clocks = <&cpg CPG_MOD 700>; |
2005 | phys = <&usb2_phy3>; | ||
2006 | phy-names = "usb"; | ||
2007 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2231 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
2008 | resets = <&cpg 700>; | 2232 | resets = <&cpg 700>; |
2233 | #phy-cells = <0>; | ||
2009 | status = "disabled"; | 2234 | status = "disabled"; |
2010 | }; | 2235 | }; |
2011 | 2236 | ||
2012 | hsusb: usb@e6590000 { | 2237 | sdhi0: sd@ee100000 { |
2013 | compatible = "renesas,usbhs-r8a7795", | 2238 | compatible = "renesas,sdhi-r8a7795", |
2014 | "renesas,rcar-gen3-usbhs"; | 2239 | "renesas,rcar-gen3-sdhi"; |
2015 | reg = <0 0xe6590000 0 0x100>; | 2240 | reg = <0 0xee100000 0 0x2000>; |
2016 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | 2241 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; |
2017 | clocks = <&cpg CPG_MOD 704>; | 2242 | clocks = <&cpg CPG_MOD 314>; |
2018 | dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, | 2243 | max-frequency = <200000000>; |
2019 | <&usb_dmac1 0>, <&usb_dmac1 1>; | ||
2020 | dma-names = "ch0", "ch1", "ch2", "ch3"; | ||
2021 | renesas,buswait = <11>; | ||
2022 | phys = <&usb2_phy0>; | ||
2023 | phy-names = "usb"; | ||
2024 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2244 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
2025 | resets = <&cpg 704>; | 2245 | resets = <&cpg 314>; |
2026 | status = "disabled"; | 2246 | status = "disabled"; |
2027 | }; | 2247 | }; |
2028 | 2248 | ||
2029 | hsusb3: usb@e659c000 { | 2249 | sdhi1: sd@ee120000 { |
2030 | compatible = "renesas,usbhs-r8a7795", | 2250 | compatible = "renesas,sdhi-r8a7795", |
2031 | "renesas,rcar-gen3-usbhs"; | 2251 | "renesas,rcar-gen3-sdhi"; |
2032 | reg = <0 0xe659c000 0 0x100>; | 2252 | reg = <0 0xee120000 0 0x2000>; |
2033 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | 2253 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; |
2034 | clocks = <&cpg CPG_MOD 705>; | 2254 | clocks = <&cpg CPG_MOD 313>; |
2035 | dmas = <&usb_dmac2 0>, <&usb_dmac2 1>, | 2255 | max-frequency = <200000000>; |
2036 | <&usb_dmac3 0>, <&usb_dmac3 1>; | ||
2037 | dma-names = "ch0", "ch1", "ch2", "ch3"; | ||
2038 | renesas,buswait = <11>; | ||
2039 | phys = <&usb2_phy3>; | ||
2040 | phy-names = "usb"; | ||
2041 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2256 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
2042 | resets = <&cpg 705>; | 2257 | resets = <&cpg 313>; |
2258 | status = "disabled"; | ||
2259 | }; | ||
2260 | |||
2261 | sdhi2: sd@ee140000 { | ||
2262 | compatible = "renesas,sdhi-r8a7795", | ||
2263 | "renesas,rcar-gen3-sdhi"; | ||
2264 | reg = <0 0xee140000 0 0x2000>; | ||
2265 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
2266 | clocks = <&cpg CPG_MOD 312>; | ||
2267 | max-frequency = <200000000>; | ||
2268 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2269 | resets = <&cpg 312>; | ||
2270 | status = "disabled"; | ||
2271 | }; | ||
2272 | |||
2273 | sdhi3: sd@ee160000 { | ||
2274 | compatible = "renesas,sdhi-r8a7795", | ||
2275 | "renesas,rcar-gen3-sdhi"; | ||
2276 | reg = <0 0xee160000 0 0x2000>; | ||
2277 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | ||
2278 | clocks = <&cpg CPG_MOD 311>; | ||
2279 | max-frequency = <200000000>; | ||
2280 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2281 | resets = <&cpg 311>; | ||
2043 | status = "disabled"; | 2282 | status = "disabled"; |
2044 | }; | 2283 | }; |
2045 | 2284 | ||
2285 | sata: sata@ee300000 { | ||
2286 | compatible = "renesas,sata-r8a7795", | ||
2287 | "renesas,rcar-gen3-sata"; | ||
2288 | reg = <0 0xee300000 0 0x200000>; | ||
2289 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | ||
2290 | clocks = <&cpg CPG_MOD 815>; | ||
2291 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2292 | resets = <&cpg 815>; | ||
2293 | status = "disabled"; | ||
2294 | iommus = <&ipmmu_hc 2>; | ||
2295 | }; | ||
2296 | |||
2297 | gic: interrupt-controller@f1010000 { | ||
2298 | compatible = "arm,gic-400"; | ||
2299 | #interrupt-cells = <3>; | ||
2300 | #address-cells = <0>; | ||
2301 | interrupt-controller; | ||
2302 | reg = <0x0 0xf1010000 0 0x1000>, | ||
2303 | <0x0 0xf1020000 0 0x20000>, | ||
2304 | <0x0 0xf1040000 0 0x20000>, | ||
2305 | <0x0 0xf1060000 0 0x20000>; | ||
2306 | interrupts = <GIC_PPI 9 | ||
2307 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
2308 | clocks = <&cpg CPG_MOD 408>; | ||
2309 | clock-names = "clk"; | ||
2310 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2311 | resets = <&cpg 408>; | ||
2312 | }; | ||
2313 | |||
2046 | pciec0: pcie@fe000000 { | 2314 | pciec0: pcie@fe000000 { |
2047 | compatible = "renesas,pcie-r8a7795", | 2315 | compatible = "renesas,pcie-r8a7795", |
2048 | "renesas,pcie-rcar-gen3"; | 2316 | "renesas,pcie-rcar-gen3"; |
@@ -2137,24 +2405,24 @@ | |||
2137 | resets = <&cpg 820>; | 2405 | resets = <&cpg 820>; |
2138 | }; | 2406 | }; |
2139 | 2407 | ||
2140 | vspbc: vsp@fe920000 { | 2408 | fdp1@fe940000 { |
2141 | compatible = "renesas,vsp2"; | 2409 | compatible = "renesas,fdp1"; |
2142 | reg = <0 0xfe920000 0 0x8000>; | 2410 | reg = <0 0xfe940000 0 0x2400>; |
2143 | interrupts = <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>; | 2411 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; |
2144 | clocks = <&cpg CPG_MOD 624>; | 2412 | clocks = <&cpg CPG_MOD 119>; |
2145 | power-domains = <&sysc R8A7795_PD_A3VP>; | 2413 | power-domains = <&sysc R8A7795_PD_A3VP>; |
2146 | resets = <&cpg 624>; | 2414 | resets = <&cpg 119>; |
2147 | 2415 | renesas,fcp = <&fcpf0>; | |
2148 | renesas,fcp = <&fcpvb1>; | ||
2149 | }; | 2416 | }; |
2150 | 2417 | ||
2151 | fcpvb1: fcp@fe92f000 { | 2418 | fdp1@fe944000 { |
2152 | compatible = "renesas,fcpv"; | 2419 | compatible = "renesas,fdp1"; |
2153 | reg = <0 0xfe92f000 0 0x200>; | 2420 | reg = <0 0xfe944000 0 0x2400>; |
2154 | clocks = <&cpg CPG_MOD 606>; | 2421 | interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; |
2422 | clocks = <&cpg CPG_MOD 118>; | ||
2155 | power-domains = <&sysc R8A7795_PD_A3VP>; | 2423 | power-domains = <&sysc R8A7795_PD_A3VP>; |
2156 | resets = <&cpg 606>; | 2424 | resets = <&cpg 118>; |
2157 | iommus = <&ipmmu_vp1 7>; | 2425 | renesas,fcp = <&fcpf1>; |
2158 | }; | 2426 | }; |
2159 | 2427 | ||
2160 | fcpf0: fcp@fe950000 { | 2428 | fcpf0: fcp@fe950000 { |
@@ -2175,17 +2443,6 @@ | |||
2175 | iommus = <&ipmmu_vp1 1>; | 2443 | iommus = <&ipmmu_vp1 1>; |
2176 | }; | 2444 | }; |
2177 | 2445 | ||
2178 | vspbd: vsp@fe960000 { | ||
2179 | compatible = "renesas,vsp2"; | ||
2180 | reg = <0 0xfe960000 0 0x8000>; | ||
2181 | interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; | ||
2182 | clocks = <&cpg CPG_MOD 626>; | ||
2183 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
2184 | resets = <&cpg 626>; | ||
2185 | |||
2186 | renesas,fcp = <&fcpvb0>; | ||
2187 | }; | ||
2188 | |||
2189 | fcpvb0: fcp@fe96f000 { | 2446 | fcpvb0: fcp@fe96f000 { |
2190 | compatible = "renesas,fcpv"; | 2447 | compatible = "renesas,fcpv"; |
2191 | reg = <0 0xfe96f000 0 0x200>; | 2448 | reg = <0 0xfe96f000 0 0x200>; |
@@ -2195,15 +2452,13 @@ | |||
2195 | iommus = <&ipmmu_vp0 5>; | 2452 | iommus = <&ipmmu_vp0 5>; |
2196 | }; | 2453 | }; |
2197 | 2454 | ||
2198 | vspi0: vsp@fe9a0000 { | 2455 | fcpvb1: fcp@fe92f000 { |
2199 | compatible = "renesas,vsp2"; | 2456 | compatible = "renesas,fcpv"; |
2200 | reg = <0 0xfe9a0000 0 0x8000>; | 2457 | reg = <0 0xfe92f000 0 0x200>; |
2201 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; | 2458 | clocks = <&cpg CPG_MOD 606>; |
2202 | clocks = <&cpg CPG_MOD 631>; | ||
2203 | power-domains = <&sysc R8A7795_PD_A3VP>; | 2459 | power-domains = <&sysc R8A7795_PD_A3VP>; |
2204 | resets = <&cpg 631>; | 2460 | resets = <&cpg 606>; |
2205 | 2461 | iommus = <&ipmmu_vp1 7>; | |
2206 | renesas,fcp = <&fcpvi0>; | ||
2207 | }; | 2462 | }; |
2208 | 2463 | ||
2209 | fcpvi0: fcp@fe9af000 { | 2464 | fcpvi0: fcp@fe9af000 { |
@@ -2215,17 +2470,6 @@ | |||
2215 | iommus = <&ipmmu_vp0 8>; | 2470 | iommus = <&ipmmu_vp0 8>; |
2216 | }; | 2471 | }; |
2217 | 2472 | ||
2218 | vspi1: vsp@fe9b0000 { | ||
2219 | compatible = "renesas,vsp2"; | ||
2220 | reg = <0 0xfe9b0000 0 0x8000>; | ||
2221 | interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; | ||
2222 | clocks = <&cpg CPG_MOD 630>; | ||
2223 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
2224 | resets = <&cpg 630>; | ||
2225 | |||
2226 | renesas,fcp = <&fcpvi1>; | ||
2227 | }; | ||
2228 | |||
2229 | fcpvi1: fcp@fe9bf000 { | 2473 | fcpvi1: fcp@fe9bf000 { |
2230 | compatible = "renesas,fcpv"; | 2474 | compatible = "renesas,fcpv"; |
2231 | reg = <0 0xfe9bf000 0 0x200>; | 2475 | reg = <0 0xfe9bf000 0 0x200>; |
@@ -2235,6 +2479,55 @@ | |||
2235 | iommus = <&ipmmu_vp1 9>; | 2479 | iommus = <&ipmmu_vp1 9>; |
2236 | }; | 2480 | }; |
2237 | 2481 | ||
2482 | fcpvd0: fcp@fea27000 { | ||
2483 | compatible = "renesas,fcpv"; | ||
2484 | reg = <0 0xfea27000 0 0x200>; | ||
2485 | clocks = <&cpg CPG_MOD 603>; | ||
2486 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2487 | resets = <&cpg 603>; | ||
2488 | iommus = <&ipmmu_vi0 8>; | ||
2489 | }; | ||
2490 | |||
2491 | fcpvd1: fcp@fea2f000 { | ||
2492 | compatible = "renesas,fcpv"; | ||
2493 | reg = <0 0xfea2f000 0 0x200>; | ||
2494 | clocks = <&cpg CPG_MOD 602>; | ||
2495 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2496 | resets = <&cpg 602>; | ||
2497 | iommus = <&ipmmu_vi0 9>; | ||
2498 | }; | ||
2499 | |||
2500 | fcpvd2: fcp@fea37000 { | ||
2501 | compatible = "renesas,fcpv"; | ||
2502 | reg = <0 0xfea37000 0 0x200>; | ||
2503 | clocks = <&cpg CPG_MOD 601>; | ||
2504 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2505 | resets = <&cpg 601>; | ||
2506 | iommus = <&ipmmu_vi1 10>; | ||
2507 | }; | ||
2508 | |||
2509 | vspbd: vsp@fe960000 { | ||
2510 | compatible = "renesas,vsp2"; | ||
2511 | reg = <0 0xfe960000 0 0x8000>; | ||
2512 | interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; | ||
2513 | clocks = <&cpg CPG_MOD 626>; | ||
2514 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
2515 | resets = <&cpg 626>; | ||
2516 | |||
2517 | renesas,fcp = <&fcpvb0>; | ||
2518 | }; | ||
2519 | |||
2520 | vspbc: vsp@fe920000 { | ||
2521 | compatible = "renesas,vsp2"; | ||
2522 | reg = <0 0xfe920000 0 0x8000>; | ||
2523 | interrupts = <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>; | ||
2524 | clocks = <&cpg CPG_MOD 624>; | ||
2525 | power-domains = <&sysc R8A7795_PD_A3VP>; | ||
2526 | resets = <&cpg 624>; | ||
2527 | |||
2528 | renesas,fcp = <&fcpvb1>; | ||
2529 | }; | ||
2530 | |||
2238 | vspd0: vsp@fea20000 { | 2531 | vspd0: vsp@fea20000 { |
2239 | compatible = "renesas,vsp2"; | 2532 | compatible = "renesas,vsp2"; |
2240 | reg = <0 0xfea20000 0 0x8000>; | 2533 | reg = <0 0xfea20000 0 0x8000>; |
@@ -2246,15 +2539,6 @@ | |||
2246 | renesas,fcp = <&fcpvd0>; | 2539 | renesas,fcp = <&fcpvd0>; |
2247 | }; | 2540 | }; |
2248 | 2541 | ||
2249 | fcpvd0: fcp@fea27000 { | ||
2250 | compatible = "renesas,fcpv"; | ||
2251 | reg = <0 0xfea27000 0 0x200>; | ||
2252 | clocks = <&cpg CPG_MOD 603>; | ||
2253 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2254 | resets = <&cpg 603>; | ||
2255 | iommus = <&ipmmu_vi0 8>; | ||
2256 | }; | ||
2257 | |||
2258 | vspd1: vsp@fea28000 { | 2542 | vspd1: vsp@fea28000 { |
2259 | compatible = "renesas,vsp2"; | 2543 | compatible = "renesas,vsp2"; |
2260 | reg = <0 0xfea28000 0 0x8000>; | 2544 | reg = <0 0xfea28000 0 0x8000>; |
@@ -2266,15 +2550,6 @@ | |||
2266 | renesas,fcp = <&fcpvd1>; | 2550 | renesas,fcp = <&fcpvd1>; |
2267 | }; | 2551 | }; |
2268 | 2552 | ||
2269 | fcpvd1: fcp@fea2f000 { | ||
2270 | compatible = "renesas,fcpv"; | ||
2271 | reg = <0 0xfea2f000 0 0x200>; | ||
2272 | clocks = <&cpg CPG_MOD 602>; | ||
2273 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2274 | resets = <&cpg 602>; | ||
2275 | iommus = <&ipmmu_vi0 9>; | ||
2276 | }; | ||
2277 | |||
2278 | vspd2: vsp@fea30000 { | 2553 | vspd2: vsp@fea30000 { |
2279 | compatible = "renesas,vsp2"; | 2554 | compatible = "renesas,vsp2"; |
2280 | reg = <0 0xfea30000 0 0x8000>; | 2555 | reg = <0 0xfea30000 0 0x8000>; |
@@ -2286,33 +2561,159 @@ | |||
2286 | renesas,fcp = <&fcpvd2>; | 2561 | renesas,fcp = <&fcpvd2>; |
2287 | }; | 2562 | }; |
2288 | 2563 | ||
2289 | fcpvd2: fcp@fea37000 { | 2564 | vspi0: vsp@fe9a0000 { |
2290 | compatible = "renesas,fcpv"; | 2565 | compatible = "renesas,vsp2"; |
2291 | reg = <0 0xfea37000 0 0x200>; | 2566 | reg = <0 0xfe9a0000 0 0x8000>; |
2292 | clocks = <&cpg CPG_MOD 601>; | 2567 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; |
2293 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 2568 | clocks = <&cpg CPG_MOD 631>; |
2294 | resets = <&cpg 601>; | 2569 | power-domains = <&sysc R8A7795_PD_A3VP>; |
2295 | iommus = <&ipmmu_vi1 10>; | 2570 | resets = <&cpg 631>; |
2571 | |||
2572 | renesas,fcp = <&fcpvi0>; | ||
2296 | }; | 2573 | }; |
2297 | 2574 | ||
2298 | fdp1@fe940000 { | 2575 | vspi1: vsp@fe9b0000 { |
2299 | compatible = "renesas,fdp1"; | 2576 | compatible = "renesas,vsp2"; |
2300 | reg = <0 0xfe940000 0 0x2400>; | 2577 | reg = <0 0xfe9b0000 0 0x8000>; |
2301 | interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | 2578 | interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; |
2302 | clocks = <&cpg CPG_MOD 119>; | 2579 | clocks = <&cpg CPG_MOD 630>; |
2303 | power-domains = <&sysc R8A7795_PD_A3VP>; | 2580 | power-domains = <&sysc R8A7795_PD_A3VP>; |
2304 | resets = <&cpg 119>; | 2581 | resets = <&cpg 630>; |
2305 | renesas,fcp = <&fcpf0>; | 2582 | |
2583 | renesas,fcp = <&fcpvi1>; | ||
2306 | }; | 2584 | }; |
2307 | 2585 | ||
2308 | fdp1@fe944000 { | 2586 | csi20: csi2@fea80000 { |
2309 | compatible = "renesas,fdp1"; | 2587 | compatible = "renesas,r8a7795-csi2"; |
2310 | reg = <0 0xfe944000 0 0x2400>; | 2588 | reg = <0 0xfea80000 0 0x10000>; |
2311 | interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; | 2589 | interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; |
2312 | clocks = <&cpg CPG_MOD 118>; | 2590 | clocks = <&cpg CPG_MOD 714>; |
2313 | power-domains = <&sysc R8A7795_PD_A3VP>; | 2591 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
2314 | resets = <&cpg 118>; | 2592 | resets = <&cpg 714>; |
2315 | renesas,fcp = <&fcpf1>; | 2593 | status = "disabled"; |
2594 | |||
2595 | ports { | ||
2596 | #address-cells = <1>; | ||
2597 | #size-cells = <0>; | ||
2598 | |||
2599 | port@1 { | ||
2600 | #address-cells = <1>; | ||
2601 | #size-cells = <0>; | ||
2602 | |||
2603 | reg = <1>; | ||
2604 | |||
2605 | csi20vin0: endpoint@0 { | ||
2606 | reg = <0>; | ||
2607 | remote-endpoint = <&vin0csi20>; | ||
2608 | }; | ||
2609 | csi20vin1: endpoint@1 { | ||
2610 | reg = <1>; | ||
2611 | remote-endpoint = <&vin1csi20>; | ||
2612 | }; | ||
2613 | csi20vin2: endpoint@2 { | ||
2614 | reg = <2>; | ||
2615 | remote-endpoint = <&vin2csi20>; | ||
2616 | }; | ||
2617 | csi20vin3: endpoint@3 { | ||
2618 | reg = <3>; | ||
2619 | remote-endpoint = <&vin3csi20>; | ||
2620 | }; | ||
2621 | csi20vin4: endpoint@4 { | ||
2622 | reg = <4>; | ||
2623 | remote-endpoint = <&vin4csi20>; | ||
2624 | }; | ||
2625 | csi20vin5: endpoint@5 { | ||
2626 | reg = <5>; | ||
2627 | remote-endpoint = <&vin5csi20>; | ||
2628 | }; | ||
2629 | csi20vin6: endpoint@6 { | ||
2630 | reg = <6>; | ||
2631 | remote-endpoint = <&vin6csi20>; | ||
2632 | }; | ||
2633 | csi20vin7: endpoint@7 { | ||
2634 | reg = <7>; | ||
2635 | remote-endpoint = <&vin7csi20>; | ||
2636 | }; | ||
2637 | }; | ||
2638 | }; | ||
2639 | }; | ||
2640 | |||
2641 | csi40: csi2@feaa0000 { | ||
2642 | compatible = "renesas,r8a7795-csi2"; | ||
2643 | reg = <0 0xfeaa0000 0 0x10000>; | ||
2644 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
2645 | clocks = <&cpg CPG_MOD 716>; | ||
2646 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2647 | resets = <&cpg 716>; | ||
2648 | status = "disabled"; | ||
2649 | |||
2650 | ports { | ||
2651 | #address-cells = <1>; | ||
2652 | #size-cells = <0>; | ||
2653 | |||
2654 | port@1 { | ||
2655 | #address-cells = <1>; | ||
2656 | #size-cells = <0>; | ||
2657 | |||
2658 | reg = <1>; | ||
2659 | |||
2660 | csi40vin0: endpoint@0 { | ||
2661 | reg = <0>; | ||
2662 | remote-endpoint = <&vin0csi40>; | ||
2663 | }; | ||
2664 | csi40vin1: endpoint@1 { | ||
2665 | reg = <1>; | ||
2666 | remote-endpoint = <&vin1csi40>; | ||
2667 | }; | ||
2668 | csi40vin2: endpoint@2 { | ||
2669 | reg = <2>; | ||
2670 | remote-endpoint = <&vin2csi40>; | ||
2671 | }; | ||
2672 | csi40vin3: endpoint@3 { | ||
2673 | reg = <3>; | ||
2674 | remote-endpoint = <&vin3csi40>; | ||
2675 | }; | ||
2676 | }; | ||
2677 | }; | ||
2678 | }; | ||
2679 | |||
2680 | csi41: csi2@feab0000 { | ||
2681 | compatible = "renesas,r8a7795-csi2"; | ||
2682 | reg = <0 0xfeab0000 0 0x10000>; | ||
2683 | interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; | ||
2684 | clocks = <&cpg CPG_MOD 715>; | ||
2685 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2686 | resets = <&cpg 715>; | ||
2687 | status = "disabled"; | ||
2688 | |||
2689 | ports { | ||
2690 | #address-cells = <1>; | ||
2691 | #size-cells = <0>; | ||
2692 | |||
2693 | port@1 { | ||
2694 | #address-cells = <1>; | ||
2695 | #size-cells = <0>; | ||
2696 | |||
2697 | reg = <1>; | ||
2698 | |||
2699 | csi41vin4: endpoint@0 { | ||
2700 | reg = <0>; | ||
2701 | remote-endpoint = <&vin4csi41>; | ||
2702 | }; | ||
2703 | csi41vin5: endpoint@1 { | ||
2704 | reg = <1>; | ||
2705 | remote-endpoint = <&vin5csi41>; | ||
2706 | }; | ||
2707 | csi41vin6: endpoint@2 { | ||
2708 | reg = <2>; | ||
2709 | remote-endpoint = <&vin6csi41>; | ||
2710 | }; | ||
2711 | csi41vin7: endpoint@3 { | ||
2712 | reg = <3>; | ||
2713 | remote-endpoint = <&vin7csi41>; | ||
2714 | }; | ||
2715 | }; | ||
2716 | }; | ||
2316 | }; | 2717 | }; |
2317 | 2718 | ||
2318 | hdmi0: hdmi@fead0000 { | 2719 | hdmi0: hdmi@fead0000 { |
@@ -2337,6 +2738,10 @@ | |||
2337 | port@1 { | 2738 | port@1 { |
2338 | reg = <1>; | 2739 | reg = <1>; |
2339 | }; | 2740 | }; |
2741 | port@2 { | ||
2742 | /* HDMI sound */ | ||
2743 | reg = <2>; | ||
2744 | }; | ||
2340 | }; | 2745 | }; |
2341 | }; | 2746 | }; |
2342 | 2747 | ||
@@ -2362,6 +2767,10 @@ | |||
2362 | port@1 { | 2767 | port@1 { |
2363 | reg = <1>; | 2768 | reg = <1>; |
2364 | }; | 2769 | }; |
2770 | port@2 { | ||
2771 | /* HDMI sound */ | ||
2772 | reg = <2>; | ||
2773 | }; | ||
2365 | }; | 2774 | }; |
2366 | }; | 2775 | }; |
2367 | 2776 | ||
@@ -2412,38 +2821,12 @@ | |||
2412 | }; | 2821 | }; |
2413 | }; | 2822 | }; |
2414 | 2823 | ||
2415 | tsc: thermal@e6198000 { | 2824 | prr: chipid@fff00044 { |
2416 | compatible = "renesas,r8a7795-thermal"; | 2825 | compatible = "renesas,prr"; |
2417 | reg = <0 0xe6198000 0 0x100>, | 2826 | reg = <0 0xfff00044 0 4>; |
2418 | <0 0xe61a0000 0 0x100>, | ||
2419 | <0 0xe61a8000 0 0x100>; | ||
2420 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, | ||
2421 | <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | ||
2422 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
2423 | clocks = <&cpg CPG_MOD 522>; | ||
2424 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
2425 | resets = <&cpg 522>; | ||
2426 | #thermal-sensor-cells = <1>; | ||
2427 | status = "okay"; | ||
2428 | }; | 2827 | }; |
2429 | }; | 2828 | }; |
2430 | 2829 | ||
2431 | timer { | ||
2432 | compatible = "arm,armv8-timer"; | ||
2433 | interrupts-extended = <&gic GIC_PPI 13 | ||
2434 | (GIC_CPU_MASK_SIMPLE(8) | | ||
2435 | IRQ_TYPE_LEVEL_LOW)>, | ||
2436 | <&gic GIC_PPI 14 | ||
2437 | (GIC_CPU_MASK_SIMPLE(8) | | ||
2438 | IRQ_TYPE_LEVEL_LOW)>, | ||
2439 | <&gic GIC_PPI 11 | ||
2440 | (GIC_CPU_MASK_SIMPLE(8) | | ||
2441 | IRQ_TYPE_LEVEL_LOW)>, | ||
2442 | <&gic GIC_PPI 10 | ||
2443 | (GIC_CPU_MASK_SIMPLE(8) | | ||
2444 | IRQ_TYPE_LEVEL_LOW)>; | ||
2445 | }; | ||
2446 | |||
2447 | thermal-zones { | 2830 | thermal-zones { |
2448 | sensor_thermal1: sensor-thermal1 { | 2831 | sensor_thermal1: sensor-thermal1 { |
2449 | polling-delay-passive = <250>; | 2832 | polling-delay-passive = <250>; |
@@ -2453,12 +2836,12 @@ | |||
2453 | trips { | 2836 | trips { |
2454 | sensor1_passive: sensor1-passive { | 2837 | sensor1_passive: sensor1-passive { |
2455 | temperature = <95000>; | 2838 | temperature = <95000>; |
2456 | hysteresis = <2000>; | 2839 | hysteresis = <1000>; |
2457 | type = "passive"; | 2840 | type = "passive"; |
2458 | }; | 2841 | }; |
2459 | sensor1_crit: sensor1-crit { | 2842 | sensor1_crit: sensor1-crit { |
2460 | temperature = <120000>; | 2843 | temperature = <120000>; |
2461 | hysteresis = <2000>; | 2844 | hysteresis = <1000>; |
2462 | type = "critical"; | 2845 | type = "critical"; |
2463 | }; | 2846 | }; |
2464 | }; | 2847 | }; |
@@ -2479,12 +2862,12 @@ | |||
2479 | trips { | 2862 | trips { |
2480 | sensor2_passive: sensor2-passive { | 2863 | sensor2_passive: sensor2-passive { |
2481 | temperature = <95000>; | 2864 | temperature = <95000>; |
2482 | hysteresis = <2000>; | 2865 | hysteresis = <1000>; |
2483 | type = "passive"; | 2866 | type = "passive"; |
2484 | }; | 2867 | }; |
2485 | sensor2_crit: sensor2-crit { | 2868 | sensor2_crit: sensor2-crit { |
2486 | temperature = <120000>; | 2869 | temperature = <120000>; |
2487 | hysteresis = <2000>; | 2870 | hysteresis = <1000>; |
2488 | type = "critical"; | 2871 | type = "critical"; |
2489 | }; | 2872 | }; |
2490 | }; | 2873 | }; |
@@ -2505,12 +2888,12 @@ | |||
2505 | trips { | 2888 | trips { |
2506 | sensor3_passive: sensor3-passive { | 2889 | sensor3_passive: sensor3-passive { |
2507 | temperature = <95000>; | 2890 | temperature = <95000>; |
2508 | hysteresis = <2000>; | 2891 | hysteresis = <1000>; |
2509 | type = "passive"; | 2892 | type = "passive"; |
2510 | }; | 2893 | }; |
2511 | sensor3_crit: sensor3-crit { | 2894 | sensor3_crit: sensor3-crit { |
2512 | temperature = <120000>; | 2895 | temperature = <120000>; |
2513 | hysteresis = <2000>; | 2896 | hysteresis = <1000>; |
2514 | type = "critical"; | 2897 | type = "critical"; |
2515 | }; | 2898 | }; |
2516 | }; | 2899 | }; |
@@ -2524,6 +2907,14 @@ | |||
2524 | }; | 2907 | }; |
2525 | }; | 2908 | }; |
2526 | 2909 | ||
2910 | timer { | ||
2911 | compatible = "arm,armv8-timer"; | ||
2912 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
2913 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
2914 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
2915 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; | ||
2916 | }; | ||
2917 | |||
2527 | /* External USB clocks - can be overridden by the board */ | 2918 | /* External USB clocks - can be overridden by the board */ |
2528 | usb3s0_clk: usb3s0 { | 2919 | usb3s0_clk: usb3s0 { |
2529 | compatible = "fixed-clock"; | 2920 | compatible = "fixed-clock"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts index 498c9e807dc4..90cca09b9a5e 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | |||
@@ -40,6 +40,11 @@ | |||
40 | "dclkin.0", "dclkin.1", "dclkin.2"; | 40 | "dclkin.0", "dclkin.1", "dclkin.2"; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | &sound_card { | ||
44 | dais = <&rsnd_port0 /* ak4613 */ | ||
45 | &rsnd_port1>; /* HDMI0 */ | ||
46 | }; | ||
47 | |||
43 | &hdmi0 { | 48 | &hdmi0 { |
44 | status = "okay"; | 49 | status = "okay"; |
45 | 50 | ||
@@ -50,9 +55,32 @@ | |||
50 | remote-endpoint = <&hdmi0_con>; | 55 | remote-endpoint = <&hdmi0_con>; |
51 | }; | 56 | }; |
52 | }; | 57 | }; |
58 | port@2 { | ||
59 | reg = <2>; | ||
60 | dw_hdmi0_snd_in: endpoint { | ||
61 | remote-endpoint = <&rsnd_endpoint1>; | ||
62 | }; | ||
63 | }; | ||
53 | }; | 64 | }; |
54 | }; | 65 | }; |
55 | 66 | ||
56 | &hdmi0_con { | 67 | &hdmi0_con { |
57 | remote-endpoint = <&rcar_dw_hdmi0_out>; | 68 | remote-endpoint = <&rcar_dw_hdmi0_out>; |
58 | }; | 69 | }; |
70 | |||
71 | &rcar_sound { | ||
72 | ports { | ||
73 | /* rsnd_port0 is on salvator-common */ | ||
74 | rsnd_port1: port@1 { | ||
75 | rsnd_endpoint1: endpoint { | ||
76 | remote-endpoint = <&dw_hdmi0_snd_in>; | ||
77 | |||
78 | dai-format = "i2s"; | ||
79 | bitclock-master = <&rsnd_endpoint1>; | ||
80 | frame-master = <&rsnd_endpoint1>; | ||
81 | |||
82 | playback = <&ssi2>; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dts index 2c37055efa94..ddf35d4cd5e5 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dts | |||
@@ -40,6 +40,11 @@ | |||
40 | "dclkin.0", "dclkin.1", "dclkin.2"; | 40 | "dclkin.0", "dclkin.1", "dclkin.2"; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | &sound_card { | ||
44 | dais = <&rsnd_port0 /* ak4613 */ | ||
45 | &rsnd_port1>; /* HDMI0 */ | ||
46 | }; | ||
47 | |||
43 | &hdmi0 { | 48 | &hdmi0 { |
44 | status = "okay"; | 49 | status = "okay"; |
45 | 50 | ||
@@ -50,9 +55,32 @@ | |||
50 | remote-endpoint = <&hdmi0_con>; | 55 | remote-endpoint = <&hdmi0_con>; |
51 | }; | 56 | }; |
52 | }; | 57 | }; |
58 | port@2 { | ||
59 | reg = <2>; | ||
60 | dw_hdmi0_snd_in: endpoint { | ||
61 | remote-endpoint = <&rsnd_endpoint1>; | ||
62 | }; | ||
63 | }; | ||
53 | }; | 64 | }; |
54 | }; | 65 | }; |
55 | 66 | ||
56 | &hdmi0_con { | 67 | &hdmi0_con { |
57 | remote-endpoint = <&rcar_dw_hdmi0_out>; | 68 | remote-endpoint = <&rcar_dw_hdmi0_out>; |
58 | }; | 69 | }; |
70 | |||
71 | &rcar_sound { | ||
72 | ports { | ||
73 | /* rsnd_port0 is on salvator-common */ | ||
74 | rsnd_port1: port@1 { | ||
75 | rsnd_endpoint1: endpoint { | ||
76 | remote-endpoint = <&dw_hdmi0_snd_in>; | ||
77 | |||
78 | dai-format = "i2s"; | ||
79 | bitclock-master = <&rsnd_endpoint1>; | ||
80 | frame-master = <&rsnd_endpoint1>; | ||
81 | |||
82 | playback = <&ssi2>; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi index 556eb8e45499..7c25be6b5af3 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi | |||
@@ -60,6 +60,72 @@ | |||
60 | clock-frequency = <0>; | 60 | clock-frequency = <0>; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | cluster0_opp: opp_table0 { | ||
64 | compatible = "operating-points-v2"; | ||
65 | opp-shared; | ||
66 | |||
67 | opp-500000000 { | ||
68 | opp-hz = /bits/ 64 <500000000>; | ||
69 | opp-microvolt = <820000>; | ||
70 | clock-latency-ns = <300000>; | ||
71 | }; | ||
72 | opp-1000000000 { | ||
73 | opp-hz = /bits/ 64 <1000000000>; | ||
74 | opp-microvolt = <820000>; | ||
75 | clock-latency-ns = <300000>; | ||
76 | }; | ||
77 | opp-1500000000 { | ||
78 | opp-hz = /bits/ 64 <1500000000>; | ||
79 | opp-microvolt = <820000>; | ||
80 | clock-latency-ns = <300000>; | ||
81 | }; | ||
82 | opp-1600000000 { | ||
83 | opp-hz = /bits/ 64 <1600000000>; | ||
84 | opp-microvolt = <900000>; | ||
85 | clock-latency-ns = <300000>; | ||
86 | turbo-mode; | ||
87 | }; | ||
88 | opp-1700000000 { | ||
89 | opp-hz = /bits/ 64 <1700000000>; | ||
90 | opp-microvolt = <900000>; | ||
91 | clock-latency-ns = <300000>; | ||
92 | turbo-mode; | ||
93 | }; | ||
94 | opp-1800000000 { | ||
95 | opp-hz = /bits/ 64 <1800000000>; | ||
96 | opp-microvolt = <960000>; | ||
97 | clock-latency-ns = <300000>; | ||
98 | turbo-mode; | ||
99 | }; | ||
100 | }; | ||
101 | |||
102 | cluster1_opp: opp_table1 { | ||
103 | compatible = "operating-points-v2"; | ||
104 | opp-shared; | ||
105 | |||
106 | opp-800000000 { | ||
107 | opp-hz = /bits/ 64 <800000000>; | ||
108 | opp-microvolt = <820000>; | ||
109 | clock-latency-ns = <300000>; | ||
110 | }; | ||
111 | opp-1000000000 { | ||
112 | opp-hz = /bits/ 64 <1000000000>; | ||
113 | opp-microvolt = <820000>; | ||
114 | clock-latency-ns = <300000>; | ||
115 | }; | ||
116 | opp-1200000000 { | ||
117 | opp-hz = /bits/ 64 <1200000000>; | ||
118 | opp-microvolt = <820000>; | ||
119 | clock-latency-ns = <300000>; | ||
120 | }; | ||
121 | opp-1300000000 { | ||
122 | opp-hz = /bits/ 64 <1300000000>; | ||
123 | opp-microvolt = <820000>; | ||
124 | clock-latency-ns = <300000>; | ||
125 | turbo-mode; | ||
126 | }; | ||
127 | }; | ||
128 | |||
63 | cpus { | 129 | cpus { |
64 | #address-cells = <1>; | 130 | #address-cells = <1>; |
65 | #size-cells = <0>; | 131 | #size-cells = <0>; |
@@ -77,7 +143,7 @@ | |||
77 | }; | 143 | }; |
78 | 144 | ||
79 | a57_1: cpu@1 { | 145 | a57_1: cpu@1 { |
80 | compatible = "arm,cortex-a57","arm,armv8"; | 146 | compatible = "arm,cortex-a57", "arm,armv8"; |
81 | reg = <0x1>; | 147 | reg = <0x1>; |
82 | device_type = "cpu"; | 148 | device_type = "cpu"; |
83 | power-domains = <&sysc R8A7796_PD_CA57_CPU1>; | 149 | power-domains = <&sysc R8A7796_PD_CA57_CPU1>; |
@@ -100,7 +166,7 @@ | |||
100 | }; | 166 | }; |
101 | 167 | ||
102 | a53_1: cpu@101 { | 168 | a53_1: cpu@101 { |
103 | compatible = "arm,cortex-a53","arm,armv8"; | 169 | compatible = "arm,cortex-a53", "arm,armv8"; |
104 | reg = <0x101>; | 170 | reg = <0x101>; |
105 | device_type = "cpu"; | 171 | device_type = "cpu"; |
106 | power-domains = <&sysc R8A7796_PD_CA53_CPU1>; | 172 | power-domains = <&sysc R8A7796_PD_CA53_CPU1>; |
@@ -111,7 +177,7 @@ | |||
111 | }; | 177 | }; |
112 | 178 | ||
113 | a53_2: cpu@102 { | 179 | a53_2: cpu@102 { |
114 | compatible = "arm,cortex-a53","arm,armv8"; | 180 | compatible = "arm,cortex-a53", "arm,armv8"; |
115 | reg = <0x102>; | 181 | reg = <0x102>; |
116 | device_type = "cpu"; | 182 | device_type = "cpu"; |
117 | power-domains = <&sysc R8A7796_PD_CA53_CPU2>; | 183 | power-domains = <&sysc R8A7796_PD_CA53_CPU2>; |
@@ -122,7 +188,7 @@ | |||
122 | }; | 188 | }; |
123 | 189 | ||
124 | a53_3: cpu@103 { | 190 | a53_3: cpu@103 { |
125 | compatible = "arm,cortex-a53","arm,armv8"; | 191 | compatible = "arm,cortex-a53", "arm,armv8"; |
126 | reg = <0x103>; | 192 | reg = <0x103>; |
127 | device_type = "cpu"; | 193 | device_type = "cpu"; |
128 | power-domains = <&sysc R8A7796_PD_CA53_CPU3>; | 194 | power-domains = <&sysc R8A7796_PD_CA53_CPU3>; |
@@ -161,72 +227,6 @@ | |||
161 | clock-frequency = <0>; | 227 | clock-frequency = <0>; |
162 | }; | 228 | }; |
163 | 229 | ||
164 | cluster0_opp: opp_table0 { | ||
165 | compatible = "operating-points-v2"; | ||
166 | opp-shared; | ||
167 | |||
168 | opp-500000000 { | ||
169 | opp-hz = /bits/ 64 <500000000>; | ||
170 | opp-microvolt = <820000>; | ||
171 | clock-latency-ns = <300000>; | ||
172 | }; | ||
173 | opp-1000000000 { | ||
174 | opp-hz = /bits/ 64 <1000000000>; | ||
175 | opp-microvolt = <820000>; | ||
176 | clock-latency-ns = <300000>; | ||
177 | }; | ||
178 | opp-1500000000 { | ||
179 | opp-hz = /bits/ 64 <1500000000>; | ||
180 | opp-microvolt = <820000>; | ||
181 | clock-latency-ns = <300000>; | ||
182 | }; | ||
183 | opp-1600000000 { | ||
184 | opp-hz = /bits/ 64 <1600000000>; | ||
185 | opp-microvolt = <900000>; | ||
186 | clock-latency-ns = <300000>; | ||
187 | turbo-mode; | ||
188 | }; | ||
189 | opp-1700000000 { | ||
190 | opp-hz = /bits/ 64 <1700000000>; | ||
191 | opp-microvolt = <900000>; | ||
192 | clock-latency-ns = <300000>; | ||
193 | turbo-mode; | ||
194 | }; | ||
195 | opp-1800000000 { | ||
196 | opp-hz = /bits/ 64 <1800000000>; | ||
197 | opp-microvolt = <960000>; | ||
198 | clock-latency-ns = <300000>; | ||
199 | turbo-mode; | ||
200 | }; | ||
201 | }; | ||
202 | |||
203 | cluster1_opp: opp_table1 { | ||
204 | compatible = "operating-points-v2"; | ||
205 | opp-shared; | ||
206 | |||
207 | opp-800000000 { | ||
208 | opp-hz = /bits/ 64 <800000000>; | ||
209 | opp-microvolt = <820000>; | ||
210 | clock-latency-ns = <300000>; | ||
211 | }; | ||
212 | opp-1000000000 { | ||
213 | opp-hz = /bits/ 64 <1000000000>; | ||
214 | opp-microvolt = <820000>; | ||
215 | clock-latency-ns = <300000>; | ||
216 | }; | ||
217 | opp-1200000000 { | ||
218 | opp-hz = /bits/ 64 <1200000000>; | ||
219 | opp-microvolt = <820000>; | ||
220 | clock-latency-ns = <300000>; | ||
221 | }; | ||
222 | opp-1300000000 { | ||
223 | opp-hz = /bits/ 64 <1300000000>; | ||
224 | opp-microvolt = <820000>; | ||
225 | clock-latency-ns = <300000>; | ||
226 | turbo-mode; | ||
227 | }; | ||
228 | }; | ||
229 | |||
230 | /* External PCIe clock - can be overridden by the board */ | 230 | /* External PCIe clock - can be overridden by the board */ |
231 | pcie_bus_clk: pcie_bus { | 231 | pcie_bus_clk: pcie_bus { |
232 | compatible = "fixed-clock"; | 232 | compatible = "fixed-clock"; |
@@ -234,13 +234,6 @@ | |||
234 | clock-frequency = <0>; | 234 | clock-frequency = <0>; |
235 | }; | 235 | }; |
236 | 236 | ||
237 | pmu_a57 { | ||
238 | compatible = "arm,cortex-a57-pmu"; | ||
239 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
240 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
241 | interrupt-affinity = <&a57_0>, <&a57_1>; | ||
242 | }; | ||
243 | |||
244 | pmu_a53 { | 237 | pmu_a53 { |
245 | compatible = "arm,cortex-a53-pmu"; | 238 | compatible = "arm,cortex-a53-pmu"; |
246 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | 239 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, |
@@ -250,6 +243,13 @@ | |||
250 | interrupt-affinity = <&a53_0>, <&a53_1>, <&a53_2>, <&a53_3>; | 243 | interrupt-affinity = <&a53_0>, <&a53_1>, <&a53_2>, <&a53_3>; |
251 | }; | 244 | }; |
252 | 245 | ||
246 | pmu_a57 { | ||
247 | compatible = "arm,cortex-a57-pmu"; | ||
248 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
249 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
250 | interrupt-affinity = <&a57_0>, <&a57_1>; | ||
251 | }; | ||
252 | |||
253 | psci { | 253 | psci { |
254 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | 254 | compatible = "arm,psci-1.0", "arm,psci-0.2"; |
255 | method = "smc"; | 255 | method = "smc"; |
@@ -269,23 +269,6 @@ | |||
269 | #size-cells = <2>; | 269 | #size-cells = <2>; |
270 | ranges; | 270 | ranges; |
271 | 271 | ||
272 | gic: interrupt-controller@f1010000 { | ||
273 | compatible = "arm,gic-400"; | ||
274 | #interrupt-cells = <3>; | ||
275 | #address-cells = <0>; | ||
276 | interrupt-controller; | ||
277 | reg = <0x0 0xf1010000 0 0x1000>, | ||
278 | <0x0 0xf1020000 0 0x20000>, | ||
279 | <0x0 0xf1040000 0 0x20000>, | ||
280 | <0x0 0xf1060000 0 0x20000>; | ||
281 | interrupts = <GIC_PPI 9 | ||
282 | (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; | ||
283 | clocks = <&cpg CPG_MOD 408>; | ||
284 | clock-names = "clk"; | ||
285 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
286 | resets = <&cpg 408>; | ||
287 | }; | ||
288 | |||
289 | wdt0: watchdog@e6020000 { | 272 | wdt0: watchdog@e6020000 { |
290 | compatible = "renesas,r8a7796-wdt", | 273 | compatible = "renesas,r8a7796-wdt", |
291 | "renesas,rcar-gen3-wdt"; | 274 | "renesas,rcar-gen3-wdt"; |
@@ -421,100 +404,6 @@ | |||
421 | reg = <0 0xe6060000 0 0x50c>; | 404 | reg = <0 0xe6060000 0 0x50c>; |
422 | }; | 405 | }; |
423 | 406 | ||
424 | ipmmu_vi0: mmu@febd0000 { | ||
425 | compatible = "renesas,ipmmu-r8a7796"; | ||
426 | reg = <0 0xfebd0000 0 0x1000>; | ||
427 | renesas,ipmmu-main = <&ipmmu_mm 9>; | ||
428 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
429 | #iommu-cells = <1>; | ||
430 | }; | ||
431 | |||
432 | ipmmu_vc0: mmu@fe6b0000 { | ||
433 | compatible = "renesas,ipmmu-r8a7796"; | ||
434 | reg = <0 0xfe6b0000 0 0x1000>; | ||
435 | renesas,ipmmu-main = <&ipmmu_mm 8>; | ||
436 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
437 | #iommu-cells = <1>; | ||
438 | status = "disabled"; | ||
439 | }; | ||
440 | |||
441 | ipmmu_pv0: mmu@fd800000 { | ||
442 | compatible = "renesas,ipmmu-r8a7796"; | ||
443 | reg = <0 0xfd800000 0 0x1000>; | ||
444 | renesas,ipmmu-main = <&ipmmu_mm 5>; | ||
445 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
446 | #iommu-cells = <1>; | ||
447 | }; | ||
448 | |||
449 | ipmmu_pv1: mmu@fd950000 { | ||
450 | compatible = "renesas,ipmmu-r8a7796"; | ||
451 | reg = <0 0xfd950000 0 0x1000>; | ||
452 | renesas,ipmmu-main = <&ipmmu_mm 6>; | ||
453 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
454 | #iommu-cells = <1>; | ||
455 | status = "disabled"; | ||
456 | }; | ||
457 | |||
458 | ipmmu_ir: mmu@ff8b0000 { | ||
459 | compatible = "renesas,ipmmu-r8a7796"; | ||
460 | reg = <0 0xff8b0000 0 0x1000>; | ||
461 | renesas,ipmmu-main = <&ipmmu_mm 3>; | ||
462 | power-domains = <&sysc R8A7796_PD_A3IR>; | ||
463 | #iommu-cells = <1>; | ||
464 | status = "disabled"; | ||
465 | }; | ||
466 | |||
467 | ipmmu_hc: mmu@e6570000 { | ||
468 | compatible = "renesas,ipmmu-r8a7796"; | ||
469 | reg = <0 0xe6570000 0 0x1000>; | ||
470 | renesas,ipmmu-main = <&ipmmu_mm 2>; | ||
471 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
472 | #iommu-cells = <1>; | ||
473 | status = "disabled"; | ||
474 | }; | ||
475 | |||
476 | ipmmu_rt: mmu@ffc80000 { | ||
477 | compatible = "renesas,ipmmu-r8a7796"; | ||
478 | reg = <0 0xffc80000 0 0x1000>; | ||
479 | renesas,ipmmu-main = <&ipmmu_mm 7>; | ||
480 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
481 | #iommu-cells = <1>; | ||
482 | status = "disabled"; | ||
483 | }; | ||
484 | |||
485 | ipmmu_mp: mmu@ec670000 { | ||
486 | compatible = "renesas,ipmmu-r8a7796"; | ||
487 | reg = <0 0xec670000 0 0x1000>; | ||
488 | renesas,ipmmu-main = <&ipmmu_mm 4>; | ||
489 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
490 | #iommu-cells = <1>; | ||
491 | }; | ||
492 | |||
493 | ipmmu_ds0: mmu@e6740000 { | ||
494 | compatible = "renesas,ipmmu-r8a7796"; | ||
495 | reg = <0 0xe6740000 0 0x1000>; | ||
496 | renesas,ipmmu-main = <&ipmmu_mm 0>; | ||
497 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
498 | #iommu-cells = <1>; | ||
499 | }; | ||
500 | |||
501 | ipmmu_ds1: mmu@e7740000 { | ||
502 | compatible = "renesas,ipmmu-r8a7796"; | ||
503 | reg = <0 0xe7740000 0 0x1000>; | ||
504 | renesas,ipmmu-main = <&ipmmu_mm 1>; | ||
505 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
506 | #iommu-cells = <1>; | ||
507 | }; | ||
508 | |||
509 | ipmmu_mm: mmu@e67b0000 { | ||
510 | compatible = "renesas,ipmmu-r8a7796"; | ||
511 | reg = <0 0xe67b0000 0 0x1000>; | ||
512 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
513 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
514 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
515 | #iommu-cells = <1>; | ||
516 | }; | ||
517 | |||
518 | cpg: clock-controller@e6150000 { | 407 | cpg: clock-controller@e6150000 { |
519 | compatible = "renesas,r8a7796-cpg-mssr"; | 408 | compatible = "renesas,r8a7796-cpg-mssr"; |
520 | reg = <0 0xe6150000 0 0x1000>; | 409 | reg = <0 0xe6150000 0 0x1000>; |
@@ -530,17 +419,27 @@ | |||
530 | reg = <0 0xe6160000 0 0x0200>; | 419 | reg = <0 0xe6160000 0 0x0200>; |
531 | }; | 420 | }; |
532 | 421 | ||
533 | prr: chipid@fff00044 { | ||
534 | compatible = "renesas,prr"; | ||
535 | reg = <0 0xfff00044 0 4>; | ||
536 | }; | ||
537 | |||
538 | sysc: system-controller@e6180000 { | 422 | sysc: system-controller@e6180000 { |
539 | compatible = "renesas,r8a7796-sysc"; | 423 | compatible = "renesas,r8a7796-sysc"; |
540 | reg = <0 0xe6180000 0 0x0400>; | 424 | reg = <0 0xe6180000 0 0x0400>; |
541 | #power-domain-cells = <1>; | 425 | #power-domain-cells = <1>; |
542 | }; | 426 | }; |
543 | 427 | ||
428 | tsc: thermal@e6198000 { | ||
429 | compatible = "renesas,r8a7796-thermal"; | ||
430 | reg = <0 0xe6198000 0 0x100>, | ||
431 | <0 0xe61a0000 0 0x100>, | ||
432 | <0 0xe61a8000 0 0x100>; | ||
433 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, | ||
434 | <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | ||
435 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
436 | clocks = <&cpg CPG_MOD 522>; | ||
437 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
438 | resets = <&cpg 522>; | ||
439 | #thermal-sensor-cells = <1>; | ||
440 | status = "okay"; | ||
441 | }; | ||
442 | |||
544 | intc_ex: interrupt-controller@e61c0000 { | 443 | intc_ex: interrupt-controller@e61c0000 { |
545 | compatible = "renesas,intc-ex-r8a7796", "renesas,irqc"; | 444 | compatible = "renesas,intc-ex-r8a7796", "renesas,irqc"; |
546 | #interrupt-cells = <2>; | 445 | #interrupt-cells = <2>; |
@@ -557,92 +456,6 @@ | |||
557 | resets = <&cpg 407>; | 456 | resets = <&cpg 407>; |
558 | }; | 457 | }; |
559 | 458 | ||
560 | i2c_dvfs: i2c@e60b0000 { | ||
561 | #address-cells = <1>; | ||
562 | #size-cells = <0>; | ||
563 | compatible = "renesas,iic-r8a7796", | ||
564 | "renesas,rcar-gen3-iic", | ||
565 | "renesas,rmobile-iic"; | ||
566 | reg = <0 0xe60b0000 0 0x425>; | ||
567 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | ||
568 | clocks = <&cpg CPG_MOD 926>; | ||
569 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
570 | resets = <&cpg 926>; | ||
571 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | ||
572 | dma-names = "tx", "rx"; | ||
573 | status = "disabled"; | ||
574 | }; | ||
575 | |||
576 | pwm0: pwm@e6e30000 { | ||
577 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
578 | reg = <0 0xe6e30000 0 8>; | ||
579 | #pwm-cells = <2>; | ||
580 | clocks = <&cpg CPG_MOD 523>; | ||
581 | resets = <&cpg 523>; | ||
582 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
583 | status = "disabled"; | ||
584 | }; | ||
585 | |||
586 | pwm1: pwm@e6e31000 { | ||
587 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
588 | reg = <0 0xe6e31000 0 8>; | ||
589 | #pwm-cells = <2>; | ||
590 | clocks = <&cpg CPG_MOD 523>; | ||
591 | resets = <&cpg 523>; | ||
592 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
593 | status = "disabled"; | ||
594 | }; | ||
595 | |||
596 | pwm2: pwm@e6e32000 { | ||
597 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
598 | reg = <0 0xe6e32000 0 8>; | ||
599 | #pwm-cells = <2>; | ||
600 | clocks = <&cpg CPG_MOD 523>; | ||
601 | resets = <&cpg 523>; | ||
602 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
603 | status = "disabled"; | ||
604 | }; | ||
605 | |||
606 | pwm3: pwm@e6e33000 { | ||
607 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
608 | reg = <0 0xe6e33000 0 8>; | ||
609 | #pwm-cells = <2>; | ||
610 | clocks = <&cpg CPG_MOD 523>; | ||
611 | resets = <&cpg 523>; | ||
612 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
613 | status = "disabled"; | ||
614 | }; | ||
615 | |||
616 | pwm4: pwm@e6e34000 { | ||
617 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
618 | reg = <0 0xe6e34000 0 8>; | ||
619 | #pwm-cells = <2>; | ||
620 | clocks = <&cpg CPG_MOD 523>; | ||
621 | resets = <&cpg 523>; | ||
622 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
623 | status = "disabled"; | ||
624 | }; | ||
625 | |||
626 | pwm5: pwm@e6e35000 { | ||
627 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
628 | reg = <0 0xe6e35000 0 8>; | ||
629 | #pwm-cells = <2>; | ||
630 | clocks = <&cpg CPG_MOD 523>; | ||
631 | resets = <&cpg 523>; | ||
632 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
633 | status = "disabled"; | ||
634 | }; | ||
635 | |||
636 | pwm6: pwm@e6e36000 { | ||
637 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
638 | reg = <0 0xe6e36000 0 8>; | ||
639 | #pwm-cells = <2>; | ||
640 | clocks = <&cpg CPG_MOD 523>; | ||
641 | resets = <&cpg 523>; | ||
642 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
643 | status = "disabled"; | ||
644 | }; | ||
645 | |||
646 | i2c0: i2c@e6500000 { | 459 | i2c0: i2c@e6500000 { |
647 | #address-cells = <1>; | 460 | #address-cells = <1>; |
648 | #size-cells = <0>; | 461 | #size-cells = <0>; |
@@ -758,181 +571,381 @@ | |||
758 | status = "disabled"; | 571 | status = "disabled"; |
759 | }; | 572 | }; |
760 | 573 | ||
761 | can0: can@e6c30000 { | 574 | i2c_dvfs: i2c@e60b0000 { |
762 | compatible = "renesas,can-r8a7796", | 575 | #address-cells = <1>; |
763 | "renesas,rcar-gen3-can"; | 576 | #size-cells = <0>; |
764 | reg = <0 0xe6c30000 0 0x1000>; | 577 | compatible = "renesas,iic-r8a7796", |
765 | interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; | 578 | "renesas,rcar-gen3-iic", |
766 | clocks = <&cpg CPG_MOD 916>, | 579 | "renesas,rmobile-iic"; |
767 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, | 580 | reg = <0 0xe60b0000 0 0x425>; |
768 | <&can_clk>; | 581 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; |
769 | clock-names = "clkp1", "clkp2", "can_clk"; | 582 | clocks = <&cpg CPG_MOD 926>; |
770 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; | ||
771 | assigned-clock-rates = <40000000>; | ||
772 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 583 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
773 | resets = <&cpg 916>; | 584 | resets = <&cpg 926>; |
585 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | ||
586 | dma-names = "tx", "rx"; | ||
774 | status = "disabled"; | 587 | status = "disabled"; |
775 | }; | 588 | }; |
776 | 589 | ||
777 | can1: can@e6c38000 { | 590 | hscif0: serial@e6540000 { |
778 | compatible = "renesas,can-r8a7796", | 591 | compatible = "renesas,hscif-r8a7796", |
779 | "renesas,rcar-gen3-can"; | 592 | "renesas,rcar-gen3-hscif", |
780 | reg = <0 0xe6c38000 0 0x1000>; | 593 | "renesas,hscif"; |
781 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | 594 | reg = <0 0xe6540000 0 0x60>; |
782 | clocks = <&cpg CPG_MOD 915>, | 595 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; |
783 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, | 596 | clocks = <&cpg CPG_MOD 520>, |
784 | <&can_clk>; | 597 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, |
785 | clock-names = "clkp1", "clkp2", "can_clk"; | 598 | <&scif_clk>; |
786 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; | 599 | clock-names = "fck", "brg_int", "scif_clk"; |
787 | assigned-clock-rates = <40000000>; | 600 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, |
601 | <&dmac2 0x31>, <&dmac2 0x30>; | ||
602 | dma-names = "tx", "rx", "tx", "rx"; | ||
788 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 603 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
789 | resets = <&cpg 915>; | 604 | resets = <&cpg 520>; |
790 | status = "disabled"; | 605 | status = "disabled"; |
791 | }; | 606 | }; |
792 | 607 | ||
793 | canfd: can@e66c0000 { | 608 | hscif1: serial@e6550000 { |
794 | compatible = "renesas,r8a7796-canfd", | 609 | compatible = "renesas,hscif-r8a7796", |
795 | "renesas,rcar-gen3-canfd"; | 610 | "renesas,rcar-gen3-hscif", |
796 | reg = <0 0xe66c0000 0 0x8000>; | 611 | "renesas,hscif"; |
797 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, | 612 | reg = <0 0xe6550000 0 0x60>; |
798 | <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | 613 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; |
799 | clocks = <&cpg CPG_MOD 914>, | 614 | clocks = <&cpg CPG_MOD 519>, |
800 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, | 615 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, |
801 | <&can_clk>; | 616 | <&scif_clk>; |
802 | clock-names = "fck", "canfd", "can_clk"; | 617 | clock-names = "fck", "brg_int", "scif_clk"; |
803 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; | 618 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, |
804 | assigned-clock-rates = <40000000>; | 619 | <&dmac2 0x33>, <&dmac2 0x32>; |
620 | dma-names = "tx", "rx", "tx", "rx"; | ||
805 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 621 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
806 | resets = <&cpg 914>; | 622 | resets = <&cpg 519>; |
807 | status = "disabled"; | 623 | status = "disabled"; |
808 | |||
809 | channel0 { | ||
810 | status = "disabled"; | ||
811 | }; | ||
812 | |||
813 | channel1 { | ||
814 | status = "disabled"; | ||
815 | }; | ||
816 | }; | 624 | }; |
817 | 625 | ||
818 | drif00: rif@e6f40000 { | 626 | hscif2: serial@e6560000 { |
819 | compatible = "renesas,r8a7796-drif", | 627 | compatible = "renesas,hscif-r8a7796", |
820 | "renesas,rcar-gen3-drif"; | 628 | "renesas,rcar-gen3-hscif", |
821 | reg = <0 0xe6f40000 0 0x64>; | 629 | "renesas,hscif"; |
822 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | 630 | reg = <0 0xe6560000 0 0x60>; |
823 | clocks = <&cpg CPG_MOD 515>; | 631 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; |
824 | clock-names = "fck"; | 632 | clocks = <&cpg CPG_MOD 518>, |
825 | dmas = <&dmac1 0x20>, <&dmac2 0x20>; | 633 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, |
826 | dma-names = "rx", "rx"; | 634 | <&scif_clk>; |
635 | clock-names = "fck", "brg_int", "scif_clk"; | ||
636 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, | ||
637 | <&dmac2 0x35>, <&dmac2 0x34>; | ||
638 | dma-names = "tx", "rx", "tx", "rx"; | ||
827 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 639 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
828 | resets = <&cpg 515>; | 640 | resets = <&cpg 518>; |
829 | renesas,bonding = <&drif01>; | ||
830 | status = "disabled"; | 641 | status = "disabled"; |
831 | }; | 642 | }; |
832 | 643 | ||
833 | drif01: rif@e6f50000 { | 644 | hscif3: serial@e66a0000 { |
834 | compatible = "renesas,r8a7796-drif", | 645 | compatible = "renesas,hscif-r8a7796", |
835 | "renesas,rcar-gen3-drif"; | 646 | "renesas,rcar-gen3-hscif", |
836 | reg = <0 0xe6f50000 0 0x64>; | 647 | "renesas,hscif"; |
837 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | 648 | reg = <0 0xe66a0000 0 0x60>; |
838 | clocks = <&cpg CPG_MOD 514>; | 649 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; |
839 | clock-names = "fck"; | 650 | clocks = <&cpg CPG_MOD 517>, |
840 | dmas = <&dmac1 0x22>, <&dmac2 0x22>; | 651 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, |
841 | dma-names = "rx", "rx"; | 652 | <&scif_clk>; |
653 | clock-names = "fck", "brg_int", "scif_clk"; | ||
654 | dmas = <&dmac0 0x37>, <&dmac0 0x36>; | ||
655 | dma-names = "tx", "rx"; | ||
842 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 656 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
843 | resets = <&cpg 514>; | 657 | resets = <&cpg 517>; |
844 | renesas,bonding = <&drif00>; | ||
845 | status = "disabled"; | 658 | status = "disabled"; |
846 | }; | 659 | }; |
847 | 660 | ||
848 | drif10: rif@e6f60000 { | 661 | hscif4: serial@e66b0000 { |
849 | compatible = "renesas,r8a7796-drif", | 662 | compatible = "renesas,hscif-r8a7796", |
850 | "renesas,rcar-gen3-drif"; | 663 | "renesas,rcar-gen3-hscif", |
851 | reg = <0 0xe6f60000 0 0x64>; | 664 | "renesas,hscif"; |
852 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | 665 | reg = <0 0xe66b0000 0 0x60>; |
853 | clocks = <&cpg CPG_MOD 513>; | 666 | interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; |
854 | clock-names = "fck"; | 667 | clocks = <&cpg CPG_MOD 516>, |
855 | dmas = <&dmac1 0x24>, <&dmac2 0x24>; | 668 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, |
856 | dma-names = "rx", "rx"; | 669 | <&scif_clk>; |
670 | clock-names = "fck", "brg_int", "scif_clk"; | ||
671 | dmas = <&dmac0 0x39>, <&dmac0 0x38>; | ||
672 | dma-names = "tx", "rx"; | ||
857 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 673 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
858 | resets = <&cpg 513>; | 674 | resets = <&cpg 516>; |
859 | renesas,bonding = <&drif11>; | ||
860 | status = "disabled"; | 675 | status = "disabled"; |
861 | }; | 676 | }; |
862 | 677 | ||
863 | drif11: rif@e6f70000 { | 678 | hsusb: usb@e6590000 { |
864 | compatible = "renesas,r8a7796-drif", | 679 | compatible = "renesas,usbhs-r8a7796", |
865 | "renesas,rcar-gen3-drif"; | 680 | "renesas,rcar-gen3-usbhs"; |
866 | reg = <0 0xe6f70000 0 0x64>; | 681 | reg = <0 0xe6590000 0 0x100>; |
867 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | 682 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; |
868 | clocks = <&cpg CPG_MOD 512>; | 683 | clocks = <&cpg CPG_MOD 704>; |
869 | clock-names = "fck"; | 684 | dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, |
870 | dmas = <&dmac1 0x26>, <&dmac2 0x26>; | 685 | <&usb_dmac1 0>, <&usb_dmac1 1>; |
871 | dma-names = "rx", "rx"; | 686 | dma-names = "ch0", "ch1", "ch2", "ch3"; |
687 | renesas,buswait = <11>; | ||
688 | phys = <&usb2_phy0>; | ||
689 | phy-names = "usb"; | ||
872 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 690 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
873 | resets = <&cpg 512>; | 691 | resets = <&cpg 704>; |
874 | renesas,bonding = <&drif10>; | ||
875 | status = "disabled"; | 692 | status = "disabled"; |
876 | }; | 693 | }; |
877 | 694 | ||
878 | drif20: rif@e6f80000 { | 695 | usb_dmac0: dma-controller@e65a0000 { |
879 | compatible = "renesas,r8a7796-drif", | 696 | compatible = "renesas,r8a7796-usb-dmac", |
880 | "renesas,rcar-gen3-drif"; | 697 | "renesas,usb-dmac"; |
881 | reg = <0 0xe6f80000 0 0x64>; | 698 | reg = <0 0xe65a0000 0 0x100>; |
882 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | 699 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH |
883 | clocks = <&cpg CPG_MOD 511>; | 700 | GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; |
884 | clock-names = "fck"; | 701 | interrupt-names = "ch0", "ch1"; |
885 | dmas = <&dmac1 0x28>, <&dmac2 0x28>; | 702 | clocks = <&cpg CPG_MOD 330>; |
886 | dma-names = "rx", "rx"; | ||
887 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 703 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
888 | resets = <&cpg 511>; | 704 | resets = <&cpg 330>; |
889 | renesas,bonding = <&drif21>; | 705 | #dma-cells = <1>; |
706 | dma-channels = <2>; | ||
707 | }; | ||
708 | |||
709 | usb_dmac1: dma-controller@e65b0000 { | ||
710 | compatible = "renesas,r8a7796-usb-dmac", | ||
711 | "renesas,usb-dmac"; | ||
712 | reg = <0 0xe65b0000 0 0x100>; | ||
713 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH | ||
714 | GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
715 | interrupt-names = "ch0", "ch1"; | ||
716 | clocks = <&cpg CPG_MOD 331>; | ||
717 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
718 | resets = <&cpg 331>; | ||
719 | #dma-cells = <1>; | ||
720 | dma-channels = <2>; | ||
721 | }; | ||
722 | |||
723 | usb3_phy0: usb-phy@e65ee000 { | ||
724 | compatible = "renesas,r8a7796-usb3-phy", | ||
725 | "renesas,rcar-gen3-usb3-phy"; | ||
726 | reg = <0 0xe65ee000 0 0x90>; | ||
727 | clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, | ||
728 | <&usb_extal_clk>; | ||
729 | clock-names = "usb3-if", "usb3s_clk", "usb_extal"; | ||
730 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
731 | resets = <&cpg 328>; | ||
732 | #phy-cells = <0>; | ||
890 | status = "disabled"; | 733 | status = "disabled"; |
891 | }; | 734 | }; |
892 | 735 | ||
893 | drif21: rif@e6f90000 { | 736 | dmac0: dma-controller@e6700000 { |
894 | compatible = "renesas,r8a7796-drif", | 737 | compatible = "renesas,dmac-r8a7796", |
895 | "renesas,rcar-gen3-drif"; | 738 | "renesas,rcar-dmac"; |
896 | reg = <0 0xe6f90000 0 0x64>; | 739 | reg = <0 0xe6700000 0 0x10000>; |
897 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | 740 | interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH |
898 | clocks = <&cpg CPG_MOD 510>; | 741 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH |
742 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
743 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
744 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
745 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
746 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
747 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
748 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH | ||
749 | GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH | ||
750 | GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH | ||
751 | GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH | ||
752 | GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH | ||
753 | GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH | ||
754 | GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH | ||
755 | GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH | ||
756 | GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; | ||
757 | interrupt-names = "error", | ||
758 | "ch0", "ch1", "ch2", "ch3", | ||
759 | "ch4", "ch5", "ch6", "ch7", | ||
760 | "ch8", "ch9", "ch10", "ch11", | ||
761 | "ch12", "ch13", "ch14", "ch15"; | ||
762 | clocks = <&cpg CPG_MOD 219>; | ||
899 | clock-names = "fck"; | 763 | clock-names = "fck"; |
900 | dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; | ||
901 | dma-names = "rx", "rx"; | ||
902 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 764 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
903 | resets = <&cpg 510>; | 765 | resets = <&cpg 219>; |
904 | renesas,bonding = <&drif20>; | 766 | #dma-cells = <1>; |
905 | status = "disabled"; | 767 | dma-channels = <16>; |
768 | iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>, | ||
769 | <&ipmmu_ds0 2>, <&ipmmu_ds0 3>, | ||
770 | <&ipmmu_ds0 4>, <&ipmmu_ds0 5>, | ||
771 | <&ipmmu_ds0 6>, <&ipmmu_ds0 7>, | ||
772 | <&ipmmu_ds0 8>, <&ipmmu_ds0 9>, | ||
773 | <&ipmmu_ds0 10>, <&ipmmu_ds0 11>, | ||
774 | <&ipmmu_ds0 12>, <&ipmmu_ds0 13>, | ||
775 | <&ipmmu_ds0 14>, <&ipmmu_ds0 15>; | ||
906 | }; | 776 | }; |
907 | 777 | ||
908 | drif30: rif@e6fa0000 { | 778 | dmac1: dma-controller@e7300000 { |
909 | compatible = "renesas,r8a7796-drif", | 779 | compatible = "renesas,dmac-r8a7796", |
910 | "renesas,rcar-gen3-drif"; | 780 | "renesas,rcar-dmac"; |
911 | reg = <0 0xe6fa0000 0 0x64>; | 781 | reg = <0 0xe7300000 0 0x10000>; |
912 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | 782 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH |
913 | clocks = <&cpg CPG_MOD 509>; | 783 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH |
784 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
785 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
786 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
787 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
788 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
789 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
790 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH | ||
791 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
792 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
793 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
794 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
795 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
796 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
797 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH | ||
798 | GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; | ||
799 | interrupt-names = "error", | ||
800 | "ch0", "ch1", "ch2", "ch3", | ||
801 | "ch4", "ch5", "ch6", "ch7", | ||
802 | "ch8", "ch9", "ch10", "ch11", | ||
803 | "ch12", "ch13", "ch14", "ch15"; | ||
804 | clocks = <&cpg CPG_MOD 218>; | ||
914 | clock-names = "fck"; | 805 | clock-names = "fck"; |
915 | dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; | ||
916 | dma-names = "rx", "rx"; | ||
917 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 806 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
918 | resets = <&cpg 509>; | 807 | resets = <&cpg 218>; |
919 | renesas,bonding = <&drif31>; | 808 | #dma-cells = <1>; |
920 | status = "disabled"; | 809 | dma-channels = <16>; |
810 | iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, | ||
811 | <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, | ||
812 | <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, | ||
813 | <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, | ||
814 | <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, | ||
815 | <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, | ||
816 | <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, | ||
817 | <&ipmmu_ds1 14>, <&ipmmu_ds1 15>; | ||
921 | }; | 818 | }; |
922 | 819 | ||
923 | drif31: rif@e6fb0000 { | 820 | dmac2: dma-controller@e7310000 { |
924 | compatible = "renesas,r8a7796-drif", | 821 | compatible = "renesas,dmac-r8a7796", |
925 | "renesas,rcar-gen3-drif"; | 822 | "renesas,rcar-dmac"; |
926 | reg = <0 0xe6fb0000 0 0x64>; | 823 | reg = <0 0xe7310000 0 0x10000>; |
927 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | 824 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH |
928 | clocks = <&cpg CPG_MOD 508>; | 825 | GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH |
826 | GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH | ||
827 | GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH | ||
828 | GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH | ||
829 | GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH | ||
830 | GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH | ||
831 | GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH | ||
832 | GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH | ||
833 | GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH | ||
834 | GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH | ||
835 | GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH | ||
836 | GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH | ||
837 | GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH | ||
838 | GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH | ||
839 | GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH | ||
840 | GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; | ||
841 | interrupt-names = "error", | ||
842 | "ch0", "ch1", "ch2", "ch3", | ||
843 | "ch4", "ch5", "ch6", "ch7", | ||
844 | "ch8", "ch9", "ch10", "ch11", | ||
845 | "ch12", "ch13", "ch14", "ch15"; | ||
846 | clocks = <&cpg CPG_MOD 217>; | ||
929 | clock-names = "fck"; | 847 | clock-names = "fck"; |
930 | dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; | ||
931 | dma-names = "rx", "rx"; | ||
932 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 848 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
933 | resets = <&cpg 508>; | 849 | resets = <&cpg 217>; |
934 | renesas,bonding = <&drif30>; | 850 | #dma-cells = <1>; |
935 | status = "disabled"; | 851 | dma-channels = <16>; |
852 | iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, | ||
853 | <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, | ||
854 | <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, | ||
855 | <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, | ||
856 | <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, | ||
857 | <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, | ||
858 | <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, | ||
859 | <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; | ||
860 | }; | ||
861 | |||
862 | ipmmu_ds0: mmu@e6740000 { | ||
863 | compatible = "renesas,ipmmu-r8a7796"; | ||
864 | reg = <0 0xe6740000 0 0x1000>; | ||
865 | renesas,ipmmu-main = <&ipmmu_mm 0>; | ||
866 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
867 | #iommu-cells = <1>; | ||
868 | }; | ||
869 | |||
870 | ipmmu_ds1: mmu@e7740000 { | ||
871 | compatible = "renesas,ipmmu-r8a7796"; | ||
872 | reg = <0 0xe7740000 0 0x1000>; | ||
873 | renesas,ipmmu-main = <&ipmmu_mm 1>; | ||
874 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
875 | #iommu-cells = <1>; | ||
876 | }; | ||
877 | |||
878 | ipmmu_hc: mmu@e6570000 { | ||
879 | compatible = "renesas,ipmmu-r8a7796"; | ||
880 | reg = <0 0xe6570000 0 0x1000>; | ||
881 | renesas,ipmmu-main = <&ipmmu_mm 2>; | ||
882 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
883 | #iommu-cells = <1>; | ||
884 | }; | ||
885 | |||
886 | ipmmu_ir: mmu@ff8b0000 { | ||
887 | compatible = "renesas,ipmmu-r8a7796"; | ||
888 | reg = <0 0xff8b0000 0 0x1000>; | ||
889 | renesas,ipmmu-main = <&ipmmu_mm 3>; | ||
890 | power-domains = <&sysc R8A7796_PD_A3IR>; | ||
891 | #iommu-cells = <1>; | ||
892 | }; | ||
893 | |||
894 | ipmmu_mm: mmu@e67b0000 { | ||
895 | compatible = "renesas,ipmmu-r8a7796"; | ||
896 | reg = <0 0xe67b0000 0 0x1000>; | ||
897 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
898 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
899 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
900 | #iommu-cells = <1>; | ||
901 | }; | ||
902 | |||
903 | ipmmu_mp: mmu@ec670000 { | ||
904 | compatible = "renesas,ipmmu-r8a7796"; | ||
905 | reg = <0 0xec670000 0 0x1000>; | ||
906 | renesas,ipmmu-main = <&ipmmu_mm 4>; | ||
907 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
908 | #iommu-cells = <1>; | ||
909 | }; | ||
910 | |||
911 | ipmmu_pv0: mmu@fd800000 { | ||
912 | compatible = "renesas,ipmmu-r8a7796"; | ||
913 | reg = <0 0xfd800000 0 0x1000>; | ||
914 | renesas,ipmmu-main = <&ipmmu_mm 5>; | ||
915 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
916 | #iommu-cells = <1>; | ||
917 | }; | ||
918 | |||
919 | ipmmu_pv1: mmu@fd950000 { | ||
920 | compatible = "renesas,ipmmu-r8a7796"; | ||
921 | reg = <0 0xfd950000 0 0x1000>; | ||
922 | renesas,ipmmu-main = <&ipmmu_mm 6>; | ||
923 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
924 | #iommu-cells = <1>; | ||
925 | }; | ||
926 | |||
927 | ipmmu_rt: mmu@ffc80000 { | ||
928 | compatible = "renesas,ipmmu-r8a7796"; | ||
929 | reg = <0 0xffc80000 0 0x1000>; | ||
930 | renesas,ipmmu-main = <&ipmmu_mm 7>; | ||
931 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
932 | #iommu-cells = <1>; | ||
933 | }; | ||
934 | |||
935 | ipmmu_vc0: mmu@fe6b0000 { | ||
936 | compatible = "renesas,ipmmu-r8a7796"; | ||
937 | reg = <0 0xfe6b0000 0 0x1000>; | ||
938 | renesas,ipmmu-main = <&ipmmu_mm 8>; | ||
939 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
940 | #iommu-cells = <1>; | ||
941 | }; | ||
942 | |||
943 | ipmmu_vi0: mmu@febd0000 { | ||
944 | compatible = "renesas,ipmmu-r8a7796"; | ||
945 | reg = <0 0xfebd0000 0 0x1000>; | ||
946 | renesas,ipmmu-main = <&ipmmu_mm 9>; | ||
947 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
948 | #iommu-cells = <1>; | ||
936 | }; | 949 | }; |
937 | 950 | ||
938 | avb: ethernet@e6800000 { | 951 | avb: ethernet@e6800000 { |
@@ -981,91 +994,130 @@ | |||
981 | status = "disabled"; | 994 | status = "disabled"; |
982 | }; | 995 | }; |
983 | 996 | ||
984 | hscif0: serial@e6540000 { | 997 | can0: can@e6c30000 { |
985 | compatible = "renesas,hscif-r8a7796", | 998 | compatible = "renesas,can-r8a7796", |
986 | "renesas,rcar-gen3-hscif", | 999 | "renesas,rcar-gen3-can"; |
987 | "renesas,hscif"; | 1000 | reg = <0 0xe6c30000 0 0x1000>; |
988 | reg = <0 0xe6540000 0 0x60>; | 1001 | interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; |
989 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | 1002 | clocks = <&cpg CPG_MOD 916>, |
990 | clocks = <&cpg CPG_MOD 520>, | 1003 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, |
991 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, | 1004 | <&can_clk>; |
992 | <&scif_clk>; | 1005 | clock-names = "clkp1", "clkp2", "can_clk"; |
993 | clock-names = "fck", "brg_int", "scif_clk"; | 1006 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; |
994 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, | 1007 | assigned-clock-rates = <40000000>; |
995 | <&dmac2 0x31>, <&dmac2 0x30>; | ||
996 | dma-names = "tx", "rx", "tx", "rx"; | ||
997 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1008 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
998 | resets = <&cpg 520>; | 1009 | resets = <&cpg 916>; |
999 | status = "disabled"; | 1010 | status = "disabled"; |
1000 | }; | 1011 | }; |
1001 | 1012 | ||
1002 | hscif1: serial@e6550000 { | 1013 | can1: can@e6c38000 { |
1003 | compatible = "renesas,hscif-r8a7796", | 1014 | compatible = "renesas,can-r8a7796", |
1004 | "renesas,rcar-gen3-hscif", | 1015 | "renesas,rcar-gen3-can"; |
1005 | "renesas,hscif"; | 1016 | reg = <0 0xe6c38000 0 0x1000>; |
1006 | reg = <0 0xe6550000 0 0x60>; | 1017 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; |
1007 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; | 1018 | clocks = <&cpg CPG_MOD 915>, |
1008 | clocks = <&cpg CPG_MOD 519>, | 1019 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, |
1009 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, | 1020 | <&can_clk>; |
1010 | <&scif_clk>; | 1021 | clock-names = "clkp1", "clkp2", "can_clk"; |
1011 | clock-names = "fck", "brg_int", "scif_clk"; | 1022 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; |
1012 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, | 1023 | assigned-clock-rates = <40000000>; |
1013 | <&dmac2 0x33>, <&dmac2 0x32>; | ||
1014 | dma-names = "tx", "rx", "tx", "rx"; | ||
1015 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1024 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1016 | resets = <&cpg 519>; | 1025 | resets = <&cpg 915>; |
1017 | status = "disabled"; | 1026 | status = "disabled"; |
1018 | }; | 1027 | }; |
1019 | 1028 | ||
1020 | hscif2: serial@e6560000 { | 1029 | canfd: can@e66c0000 { |
1021 | compatible = "renesas,hscif-r8a7796", | 1030 | compatible = "renesas,r8a7796-canfd", |
1022 | "renesas,rcar-gen3-hscif", | 1031 | "renesas,rcar-gen3-canfd"; |
1023 | "renesas,hscif"; | 1032 | reg = <0 0xe66c0000 0 0x8000>; |
1024 | reg = <0 0xe6560000 0 0x60>; | 1033 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, |
1025 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; | 1034 | <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; |
1026 | clocks = <&cpg CPG_MOD 518>, | 1035 | clocks = <&cpg CPG_MOD 914>, |
1027 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, | 1036 | <&cpg CPG_CORE R8A7796_CLK_CANFD>, |
1028 | <&scif_clk>; | 1037 | <&can_clk>; |
1029 | clock-names = "fck", "brg_int", "scif_clk"; | 1038 | clock-names = "fck", "canfd", "can_clk"; |
1030 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, | 1039 | assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; |
1031 | <&dmac2 0x35>, <&dmac2 0x34>; | 1040 | assigned-clock-rates = <40000000>; |
1032 | dma-names = "tx", "rx", "tx", "rx"; | ||
1033 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1041 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1034 | resets = <&cpg 518>; | 1042 | resets = <&cpg 914>; |
1035 | status = "disabled"; | 1043 | status = "disabled"; |
1044 | |||
1045 | channel0 { | ||
1046 | status = "disabled"; | ||
1047 | }; | ||
1048 | |||
1049 | channel1 { | ||
1050 | status = "disabled"; | ||
1051 | }; | ||
1036 | }; | 1052 | }; |
1037 | 1053 | ||
1038 | hscif3: serial@e66a0000 { | 1054 | pwm0: pwm@e6e30000 { |
1039 | compatible = "renesas,hscif-r8a7796", | 1055 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; |
1040 | "renesas,rcar-gen3-hscif", | 1056 | reg = <0 0xe6e30000 0 8>; |
1041 | "renesas,hscif"; | 1057 | #pwm-cells = <2>; |
1042 | reg = <0 0xe66a0000 0 0x60>; | 1058 | clocks = <&cpg CPG_MOD 523>; |
1043 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; | 1059 | resets = <&cpg 523>; |
1044 | clocks = <&cpg CPG_MOD 517>, | ||
1045 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, | ||
1046 | <&scif_clk>; | ||
1047 | clock-names = "fck", "brg_int", "scif_clk"; | ||
1048 | dmas = <&dmac0 0x37>, <&dmac0 0x36>; | ||
1049 | dma-names = "tx", "rx"; | ||
1050 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1060 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1051 | resets = <&cpg 517>; | ||
1052 | status = "disabled"; | 1061 | status = "disabled"; |
1053 | }; | 1062 | }; |
1054 | 1063 | ||
1055 | hscif4: serial@e66b0000 { | 1064 | pwm1: pwm@e6e31000 { |
1056 | compatible = "renesas,hscif-r8a7796", | 1065 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; |
1057 | "renesas,rcar-gen3-hscif", | 1066 | reg = <0 0xe6e31000 0 8>; |
1058 | "renesas,hscif"; | 1067 | #pwm-cells = <2>; |
1059 | reg = <0 0xe66b0000 0 0x60>; | 1068 | clocks = <&cpg CPG_MOD 523>; |
1060 | interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; | 1069 | resets = <&cpg 523>; |
1061 | clocks = <&cpg CPG_MOD 516>, | 1070 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1062 | <&cpg CPG_CORE R8A7796_CLK_S3D1>, | 1071 | status = "disabled"; |
1063 | <&scif_clk>; | 1072 | }; |
1064 | clock-names = "fck", "brg_int", "scif_clk"; | 1073 | |
1065 | dmas = <&dmac0 0x39>, <&dmac0 0x38>; | 1074 | pwm2: pwm@e6e32000 { |
1066 | dma-names = "tx", "rx"; | 1075 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; |
1076 | reg = <0 0xe6e32000 0 8>; | ||
1077 | #pwm-cells = <2>; | ||
1078 | clocks = <&cpg CPG_MOD 523>; | ||
1079 | resets = <&cpg 523>; | ||
1080 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1081 | status = "disabled"; | ||
1082 | }; | ||
1083 | |||
1084 | pwm3: pwm@e6e33000 { | ||
1085 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
1086 | reg = <0 0xe6e33000 0 8>; | ||
1087 | #pwm-cells = <2>; | ||
1088 | clocks = <&cpg CPG_MOD 523>; | ||
1089 | resets = <&cpg 523>; | ||
1090 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1091 | status = "disabled"; | ||
1092 | }; | ||
1093 | |||
1094 | pwm4: pwm@e6e34000 { | ||
1095 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
1096 | reg = <0 0xe6e34000 0 8>; | ||
1097 | #pwm-cells = <2>; | ||
1098 | clocks = <&cpg CPG_MOD 523>; | ||
1099 | resets = <&cpg 523>; | ||
1100 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1101 | status = "disabled"; | ||
1102 | }; | ||
1103 | |||
1104 | pwm5: pwm@e6e35000 { | ||
1105 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
1106 | reg = <0 0xe6e35000 0 8>; | ||
1107 | #pwm-cells = <2>; | ||
1108 | clocks = <&cpg CPG_MOD 523>; | ||
1109 | resets = <&cpg 523>; | ||
1110 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1111 | status = "disabled"; | ||
1112 | }; | ||
1113 | |||
1114 | pwm6: pwm@e6e36000 { | ||
1115 | compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; | ||
1116 | reg = <0 0xe6e36000 0 8>; | ||
1117 | #pwm-cells = <2>; | ||
1118 | clocks = <&cpg CPG_MOD 523>; | ||
1119 | resets = <&cpg 523>; | ||
1067 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1120 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1068 | resets = <&cpg 516>; | ||
1069 | status = "disabled"; | 1121 | status = "disabled"; |
1070 | }; | 1122 | }; |
1071 | 1123 | ||
@@ -1228,430 +1280,380 @@ | |||
1228 | status = "disabled"; | 1280 | status = "disabled"; |
1229 | }; | 1281 | }; |
1230 | 1282 | ||
1231 | dmac0: dma-controller@e6700000 { | 1283 | vin0: video@e6ef0000 { |
1232 | compatible = "renesas,dmac-r8a7796", | 1284 | compatible = "renesas,vin-r8a7796"; |
1233 | "renesas,rcar-dmac"; | 1285 | reg = <0 0xe6ef0000 0 0x1000>; |
1234 | reg = <0 0xe6700000 0 0x10000>; | 1286 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; |
1235 | interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH | 1287 | clocks = <&cpg CPG_MOD 811>; |
1236 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH | ||
1237 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
1238 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
1239 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
1240 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
1241 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
1242 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
1243 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH | ||
1244 | GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH | ||
1245 | GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH | ||
1246 | GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH | ||
1247 | GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH | ||
1248 | GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH | ||
1249 | GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH | ||
1250 | GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH | ||
1251 | GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; | ||
1252 | interrupt-names = "error", | ||
1253 | "ch0", "ch1", "ch2", "ch3", | ||
1254 | "ch4", "ch5", "ch6", "ch7", | ||
1255 | "ch8", "ch9", "ch10", "ch11", | ||
1256 | "ch12", "ch13", "ch14", "ch15"; | ||
1257 | clocks = <&cpg CPG_MOD 219>; | ||
1258 | clock-names = "fck"; | ||
1259 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1288 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1260 | resets = <&cpg 219>; | 1289 | resets = <&cpg 811>; |
1261 | #dma-cells = <1>; | 1290 | renesas,id = <0>; |
1262 | dma-channels = <16>; | 1291 | status = "disabled"; |
1263 | iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>, | ||
1264 | <&ipmmu_ds0 2>, <&ipmmu_ds0 3>, | ||
1265 | <&ipmmu_ds0 4>, <&ipmmu_ds0 5>, | ||
1266 | <&ipmmu_ds0 6>, <&ipmmu_ds0 7>, | ||
1267 | <&ipmmu_ds0 8>, <&ipmmu_ds0 9>, | ||
1268 | <&ipmmu_ds0 10>, <&ipmmu_ds0 11>, | ||
1269 | <&ipmmu_ds0 12>, <&ipmmu_ds0 13>, | ||
1270 | <&ipmmu_ds0 14>, <&ipmmu_ds0 15>; | ||
1271 | }; | ||
1272 | 1292 | ||
1273 | dmac1: dma-controller@e7300000 { | 1293 | ports { |
1274 | compatible = "renesas,dmac-r8a7796", | 1294 | #address-cells = <1>; |
1275 | "renesas,rcar-dmac"; | 1295 | #size-cells = <0>; |
1276 | reg = <0 0xe7300000 0 0x10000>; | ||
1277 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
1278 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
1279 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
1280 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
1281 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
1282 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
1283 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
1284 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
1285 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH | ||
1286 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
1287 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
1288 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
1289 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
1290 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
1291 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
1292 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH | ||
1293 | GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; | ||
1294 | interrupt-names = "error", | ||
1295 | "ch0", "ch1", "ch2", "ch3", | ||
1296 | "ch4", "ch5", "ch6", "ch7", | ||
1297 | "ch8", "ch9", "ch10", "ch11", | ||
1298 | "ch12", "ch13", "ch14", "ch15"; | ||
1299 | clocks = <&cpg CPG_MOD 218>; | ||
1300 | clock-names = "fck"; | ||
1301 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1302 | resets = <&cpg 218>; | ||
1303 | #dma-cells = <1>; | ||
1304 | dma-channels = <16>; | ||
1305 | iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, | ||
1306 | <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, | ||
1307 | <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, | ||
1308 | <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, | ||
1309 | <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, | ||
1310 | <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, | ||
1311 | <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, | ||
1312 | <&ipmmu_ds1 14>, <&ipmmu_ds1 15>; | ||
1313 | }; | ||
1314 | 1296 | ||
1315 | dmac2: dma-controller@e7310000 { | 1297 | port@1 { |
1316 | compatible = "renesas,dmac-r8a7796", | 1298 | #address-cells = <1>; |
1317 | "renesas,rcar-dmac"; | 1299 | #size-cells = <0>; |
1318 | reg = <0 0xe7310000 0 0x10000>; | ||
1319 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH | ||
1320 | GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH | ||
1321 | GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH | ||
1322 | GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH | ||
1323 | GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH | ||
1324 | GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH | ||
1325 | GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH | ||
1326 | GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH | ||
1327 | GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH | ||
1328 | GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH | ||
1329 | GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH | ||
1330 | GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH | ||
1331 | GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH | ||
1332 | GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH | ||
1333 | GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH | ||
1334 | GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH | ||
1335 | GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; | ||
1336 | interrupt-names = "error", | ||
1337 | "ch0", "ch1", "ch2", "ch3", | ||
1338 | "ch4", "ch5", "ch6", "ch7", | ||
1339 | "ch8", "ch9", "ch10", "ch11", | ||
1340 | "ch12", "ch13", "ch14", "ch15"; | ||
1341 | clocks = <&cpg CPG_MOD 217>; | ||
1342 | clock-names = "fck"; | ||
1343 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1344 | resets = <&cpg 217>; | ||
1345 | #dma-cells = <1>; | ||
1346 | dma-channels = <16>; | ||
1347 | iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, | ||
1348 | <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, | ||
1349 | <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, | ||
1350 | <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, | ||
1351 | <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, | ||
1352 | <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, | ||
1353 | <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, | ||
1354 | <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; | ||
1355 | }; | ||
1356 | 1300 | ||
1357 | audma0: dma-controller@ec700000 { | 1301 | reg = <1>; |
1358 | compatible = "renesas,dmac-r8a7796", | ||
1359 | "renesas,rcar-dmac"; | ||
1360 | reg = <0 0xec700000 0 0x10000>; | ||
1361 | interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH | ||
1362 | GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH | ||
1363 | GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH | ||
1364 | GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH | ||
1365 | GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH | ||
1366 | GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH | ||
1367 | GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH | ||
1368 | GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH | ||
1369 | GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH | ||
1370 | GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH | ||
1371 | GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH | ||
1372 | GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH | ||
1373 | GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH | ||
1374 | GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH | ||
1375 | GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH | ||
1376 | GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH | ||
1377 | GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; | ||
1378 | interrupt-names = "error", | ||
1379 | "ch0", "ch1", "ch2", "ch3", | ||
1380 | "ch4", "ch5", "ch6", "ch7", | ||
1381 | "ch8", "ch9", "ch10", "ch11", | ||
1382 | "ch12", "ch13", "ch14", "ch15"; | ||
1383 | clocks = <&cpg CPG_MOD 502>; | ||
1384 | clock-names = "fck"; | ||
1385 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1386 | resets = <&cpg 502>; | ||
1387 | #dma-cells = <1>; | ||
1388 | dma-channels = <16>; | ||
1389 | iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>, | ||
1390 | <&ipmmu_mp 2>, <&ipmmu_mp 3>, | ||
1391 | <&ipmmu_mp 4>, <&ipmmu_mp 5>, | ||
1392 | <&ipmmu_mp 6>, <&ipmmu_mp 7>, | ||
1393 | <&ipmmu_mp 8>, <&ipmmu_mp 9>, | ||
1394 | <&ipmmu_mp 10>, <&ipmmu_mp 11>, | ||
1395 | <&ipmmu_mp 12>, <&ipmmu_mp 13>, | ||
1396 | <&ipmmu_mp 14>, <&ipmmu_mp 15>; | ||
1397 | }; | ||
1398 | 1302 | ||
1399 | audma1: dma-controller@ec720000 { | 1303 | vin0csi20: endpoint@0 { |
1400 | compatible = "renesas,dmac-r8a7796", | 1304 | reg = <0>; |
1401 | "renesas,rcar-dmac"; | 1305 | remote-endpoint= <&csi20vin0>; |
1402 | reg = <0 0xec720000 0 0x10000>; | 1306 | }; |
1403 | interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH | 1307 | vin0csi40: endpoint@2 { |
1404 | GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH | 1308 | reg = <2>; |
1405 | GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH | 1309 | remote-endpoint= <&csi40vin0>; |
1406 | GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH | 1310 | }; |
1407 | GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH | 1311 | }; |
1408 | GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH | 1312 | }; |
1409 | GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH | ||
1410 | GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH | ||
1411 | GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH | ||
1412 | GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH | ||
1413 | GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH | ||
1414 | GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH | ||
1415 | GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH | ||
1416 | GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH | ||
1417 | GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH | ||
1418 | GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH | ||
1419 | GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; | ||
1420 | interrupt-names = "error", | ||
1421 | "ch0", "ch1", "ch2", "ch3", | ||
1422 | "ch4", "ch5", "ch6", "ch7", | ||
1423 | "ch8", "ch9", "ch10", "ch11", | ||
1424 | "ch12", "ch13", "ch14", "ch15"; | ||
1425 | clocks = <&cpg CPG_MOD 501>; | ||
1426 | clock-names = "fck"; | ||
1427 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1428 | resets = <&cpg 501>; | ||
1429 | #dma-cells = <1>; | ||
1430 | dma-channels = <16>; | ||
1431 | iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>, | ||
1432 | <&ipmmu_mp 18>, <&ipmmu_mp 19>, | ||
1433 | <&ipmmu_mp 20>, <&ipmmu_mp 21>, | ||
1434 | <&ipmmu_mp 22>, <&ipmmu_mp 23>, | ||
1435 | <&ipmmu_mp 24>, <&ipmmu_mp 25>, | ||
1436 | <&ipmmu_mp 26>, <&ipmmu_mp 27>, | ||
1437 | <&ipmmu_mp 28>, <&ipmmu_mp 29>, | ||
1438 | <&ipmmu_mp 30>, <&ipmmu_mp 31>; | ||
1439 | }; | 1313 | }; |
1440 | 1314 | ||
1441 | usb_dmac0: dma-controller@e65a0000 { | 1315 | vin1: video@e6ef1000 { |
1442 | compatible = "renesas,r8a7796-usb-dmac", | 1316 | compatible = "renesas,vin-r8a7796"; |
1443 | "renesas,usb-dmac"; | 1317 | reg = <0 0xe6ef1000 0 0x1000>; |
1444 | reg = <0 0xe65a0000 0 0x100>; | 1318 | interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; |
1445 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH | 1319 | clocks = <&cpg CPG_MOD 810>; |
1446 | GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
1447 | interrupt-names = "ch0", "ch1"; | ||
1448 | clocks = <&cpg CPG_MOD 330>; | ||
1449 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1320 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1450 | resets = <&cpg 330>; | 1321 | resets = <&cpg 810>; |
1451 | #dma-cells = <1>; | 1322 | renesas,id = <1>; |
1452 | dma-channels = <2>; | 1323 | status = "disabled"; |
1453 | }; | ||
1454 | 1324 | ||
1455 | usb_dmac1: dma-controller@e65b0000 { | 1325 | ports { |
1456 | compatible = "renesas,r8a7796-usb-dmac", | 1326 | #address-cells = <1>; |
1457 | "renesas,usb-dmac"; | 1327 | #size-cells = <0>; |
1458 | reg = <0 0xe65b0000 0 0x100>; | ||
1459 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH | ||
1460 | GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
1461 | interrupt-names = "ch0", "ch1"; | ||
1462 | clocks = <&cpg CPG_MOD 331>; | ||
1463 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1464 | resets = <&cpg 331>; | ||
1465 | #dma-cells = <1>; | ||
1466 | dma-channels = <2>; | ||
1467 | }; | ||
1468 | 1328 | ||
1469 | hsusb: usb@e6590000 { | 1329 | port@1 { |
1470 | compatible = "renesas,usbhs-r8a7796", | 1330 | #address-cells = <1>; |
1471 | "renesas,rcar-gen3-usbhs"; | 1331 | #size-cells = <0>; |
1472 | reg = <0 0xe6590000 0 0x100>; | 1332 | |
1473 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | 1333 | reg = <1>; |
1474 | clocks = <&cpg CPG_MOD 704>; | 1334 | |
1475 | dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, | 1335 | vin1csi20: endpoint@0 { |
1476 | <&usb_dmac1 0>, <&usb_dmac1 1>; | 1336 | reg = <0>; |
1477 | dma-names = "ch0", "ch1", "ch2", "ch3"; | 1337 | remote-endpoint= <&csi20vin1>; |
1478 | renesas,buswait = <11>; | 1338 | }; |
1479 | phys = <&usb2_phy0>; | 1339 | vin1csi40: endpoint@2 { |
1480 | phy-names = "usb"; | 1340 | reg = <2>; |
1481 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1341 | remote-endpoint= <&csi40vin1>; |
1482 | resets = <&cpg 704>; | 1342 | }; |
1483 | status = "disabled"; | 1343 | }; |
1344 | }; | ||
1484 | }; | 1345 | }; |
1485 | 1346 | ||
1486 | usb3_phy0: usb-phy@e65ee000 { | 1347 | vin2: video@e6ef2000 { |
1487 | compatible = "renesas,r8a7796-usb3-phy", | 1348 | compatible = "renesas,vin-r8a7796"; |
1488 | "renesas,rcar-gen3-usb3-phy"; | 1349 | reg = <0 0xe6ef2000 0 0x1000>; |
1489 | reg = <0 0xe65ee000 0 0x90>; | 1350 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; |
1490 | clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, | 1351 | clocks = <&cpg CPG_MOD 809>; |
1491 | <&usb_extal_clk>; | ||
1492 | clock-names = "usb3-if", "usb3s_clk", "usb_extal"; | ||
1493 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1352 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1494 | resets = <&cpg 328>; | 1353 | resets = <&cpg 809>; |
1495 | #phy-cells = <0>; | 1354 | renesas,id = <2>; |
1496 | status = "disabled"; | 1355 | status = "disabled"; |
1356 | |||
1357 | ports { | ||
1358 | #address-cells = <1>; | ||
1359 | #size-cells = <0>; | ||
1360 | |||
1361 | port@1 { | ||
1362 | #address-cells = <1>; | ||
1363 | #size-cells = <0>; | ||
1364 | |||
1365 | reg = <1>; | ||
1366 | |||
1367 | vin2csi20: endpoint@0 { | ||
1368 | reg = <0>; | ||
1369 | remote-endpoint= <&csi20vin2>; | ||
1370 | }; | ||
1371 | vin2csi40: endpoint@2 { | ||
1372 | reg = <2>; | ||
1373 | remote-endpoint= <&csi40vin2>; | ||
1374 | }; | ||
1375 | }; | ||
1376 | }; | ||
1497 | }; | 1377 | }; |
1498 | 1378 | ||
1499 | xhci0: usb@ee000000 { | 1379 | vin3: video@e6ef3000 { |
1500 | compatible = "renesas,xhci-r8a7796", | 1380 | compatible = "renesas,vin-r8a7796"; |
1501 | "renesas,rcar-gen3-xhci"; | 1381 | reg = <0 0xe6ef3000 0 0x1000>; |
1502 | reg = <0 0xee000000 0 0xc00>; | 1382 | interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; |
1503 | interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; | 1383 | clocks = <&cpg CPG_MOD 808>; |
1504 | clocks = <&cpg CPG_MOD 328>; | ||
1505 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1384 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1506 | resets = <&cpg 328>; | 1385 | resets = <&cpg 808>; |
1386 | renesas,id = <3>; | ||
1507 | status = "disabled"; | 1387 | status = "disabled"; |
1388 | |||
1389 | ports { | ||
1390 | #address-cells = <1>; | ||
1391 | #size-cells = <0>; | ||
1392 | |||
1393 | port@1 { | ||
1394 | #address-cells = <1>; | ||
1395 | #size-cells = <0>; | ||
1396 | |||
1397 | reg = <1>; | ||
1398 | |||
1399 | vin3csi20: endpoint@0 { | ||
1400 | reg = <0>; | ||
1401 | remote-endpoint= <&csi20vin3>; | ||
1402 | }; | ||
1403 | vin3csi40: endpoint@2 { | ||
1404 | reg = <2>; | ||
1405 | remote-endpoint= <&csi40vin3>; | ||
1406 | }; | ||
1407 | }; | ||
1408 | }; | ||
1508 | }; | 1409 | }; |
1509 | 1410 | ||
1510 | usb3_peri0: usb@ee020000 { | 1411 | vin4: video@e6ef4000 { |
1511 | compatible = "renesas,r8a7796-usb3-peri", | 1412 | compatible = "renesas,vin-r8a7796"; |
1512 | "renesas,rcar-gen3-usb3-peri"; | 1413 | reg = <0 0xe6ef4000 0 0x1000>; |
1513 | reg = <0 0xee020000 0 0x400>; | 1414 | interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; |
1514 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; | 1415 | clocks = <&cpg CPG_MOD 807>; |
1515 | clocks = <&cpg CPG_MOD 328>; | ||
1516 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1416 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1517 | resets = <&cpg 328>; | 1417 | resets = <&cpg 807>; |
1418 | renesas,id = <4>; | ||
1518 | status = "disabled"; | 1419 | status = "disabled"; |
1420 | |||
1421 | ports { | ||
1422 | #address-cells = <1>; | ||
1423 | #size-cells = <0>; | ||
1424 | |||
1425 | port@1 { | ||
1426 | #address-cells = <1>; | ||
1427 | #size-cells = <0>; | ||
1428 | |||
1429 | reg = <1>; | ||
1430 | |||
1431 | vin4csi20: endpoint@0 { | ||
1432 | reg = <0>; | ||
1433 | remote-endpoint= <&csi20vin4>; | ||
1434 | }; | ||
1435 | vin4csi40: endpoint@2 { | ||
1436 | reg = <2>; | ||
1437 | remote-endpoint= <&csi40vin4>; | ||
1438 | }; | ||
1439 | }; | ||
1440 | }; | ||
1519 | }; | 1441 | }; |
1520 | 1442 | ||
1521 | ohci0: usb@ee080000 { | 1443 | vin5: video@e6ef5000 { |
1522 | compatible = "generic-ohci"; | 1444 | compatible = "renesas,vin-r8a7796"; |
1523 | reg = <0 0xee080000 0 0x100>; | 1445 | reg = <0 0xe6ef5000 0 0x1000>; |
1524 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 1446 | interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; |
1525 | clocks = <&cpg CPG_MOD 703>; | 1447 | clocks = <&cpg CPG_MOD 806>; |
1526 | phys = <&usb2_phy0>; | ||
1527 | phy-names = "usb"; | ||
1528 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1448 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1529 | resets = <&cpg 703>; | 1449 | resets = <&cpg 806>; |
1450 | renesas,id = <5>; | ||
1530 | status = "disabled"; | 1451 | status = "disabled"; |
1452 | |||
1453 | ports { | ||
1454 | #address-cells = <1>; | ||
1455 | #size-cells = <0>; | ||
1456 | |||
1457 | port@1 { | ||
1458 | #address-cells = <1>; | ||
1459 | #size-cells = <0>; | ||
1460 | |||
1461 | reg = <1>; | ||
1462 | |||
1463 | vin5csi20: endpoint@0 { | ||
1464 | reg = <0>; | ||
1465 | remote-endpoint= <&csi20vin5>; | ||
1466 | }; | ||
1467 | vin5csi40: endpoint@2 { | ||
1468 | reg = <2>; | ||
1469 | remote-endpoint= <&csi40vin5>; | ||
1470 | }; | ||
1471 | }; | ||
1472 | }; | ||
1531 | }; | 1473 | }; |
1532 | 1474 | ||
1533 | ehci0: usb@ee080100 { | 1475 | vin6: video@e6ef6000 { |
1534 | compatible = "generic-ehci"; | 1476 | compatible = "renesas,vin-r8a7796"; |
1535 | reg = <0 0xee080100 0 0x100>; | 1477 | reg = <0 0xe6ef6000 0 0x1000>; |
1536 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 1478 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; |
1537 | clocks = <&cpg CPG_MOD 703>; | 1479 | clocks = <&cpg CPG_MOD 805>; |
1538 | phys = <&usb2_phy0>; | ||
1539 | phy-names = "usb"; | ||
1540 | companion= <&ohci0>; | ||
1541 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1480 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1542 | resets = <&cpg 703>; | 1481 | resets = <&cpg 805>; |
1482 | renesas,id = <6>; | ||
1543 | status = "disabled"; | 1483 | status = "disabled"; |
1484 | |||
1485 | ports { | ||
1486 | #address-cells = <1>; | ||
1487 | #size-cells = <0>; | ||
1488 | |||
1489 | port@1 { | ||
1490 | #address-cells = <1>; | ||
1491 | #size-cells = <0>; | ||
1492 | |||
1493 | reg = <1>; | ||
1494 | |||
1495 | vin6csi20: endpoint@0 { | ||
1496 | reg = <0>; | ||
1497 | remote-endpoint= <&csi20vin6>; | ||
1498 | }; | ||
1499 | vin6csi40: endpoint@2 { | ||
1500 | reg = <2>; | ||
1501 | remote-endpoint= <&csi40vin6>; | ||
1502 | }; | ||
1503 | }; | ||
1504 | }; | ||
1544 | }; | 1505 | }; |
1545 | 1506 | ||
1546 | usb2_phy0: usb-phy@ee080200 { | 1507 | vin7: video@e6ef7000 { |
1547 | compatible = "renesas,usb2-phy-r8a7796", | 1508 | compatible = "renesas,vin-r8a7796"; |
1548 | "renesas,rcar-gen3-usb2-phy"; | 1509 | reg = <0 0xe6ef7000 0 0x1000>; |
1549 | reg = <0 0xee080200 0 0x700>; | 1510 | interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; |
1550 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 1511 | clocks = <&cpg CPG_MOD 804>; |
1551 | clocks = <&cpg CPG_MOD 703>; | ||
1552 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1512 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1553 | resets = <&cpg 703>; | 1513 | resets = <&cpg 804>; |
1554 | #phy-cells = <0>; | 1514 | renesas,id = <7>; |
1555 | status = "disabled"; | 1515 | status = "disabled"; |
1516 | |||
1517 | ports { | ||
1518 | #address-cells = <1>; | ||
1519 | #size-cells = <0>; | ||
1520 | |||
1521 | port@1 { | ||
1522 | #address-cells = <1>; | ||
1523 | #size-cells = <0>; | ||
1524 | |||
1525 | reg = <1>; | ||
1526 | |||
1527 | vin7csi20: endpoint@0 { | ||
1528 | reg = <0>; | ||
1529 | remote-endpoint= <&csi20vin7>; | ||
1530 | }; | ||
1531 | vin7csi40: endpoint@2 { | ||
1532 | reg = <2>; | ||
1533 | remote-endpoint= <&csi40vin7>; | ||
1534 | }; | ||
1535 | }; | ||
1536 | }; | ||
1556 | }; | 1537 | }; |
1557 | 1538 | ||
1558 | ohci1: usb@ee0a0000 { | 1539 | drif00: rif@e6f40000 { |
1559 | compatible = "generic-ohci"; | 1540 | compatible = "renesas,r8a7796-drif", |
1560 | reg = <0 0xee0a0000 0 0x100>; | 1541 | "renesas,rcar-gen3-drif"; |
1561 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | 1542 | reg = <0 0xe6f40000 0 0x64>; |
1562 | clocks = <&cpg CPG_MOD 702>; | 1543 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; |
1563 | phys = <&usb2_phy1>; | 1544 | clocks = <&cpg CPG_MOD 515>; |
1564 | phy-names = "usb"; | 1545 | clock-names = "fck"; |
1546 | dmas = <&dmac1 0x20>, <&dmac2 0x20>; | ||
1547 | dma-names = "rx", "rx"; | ||
1565 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1548 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1566 | resets = <&cpg 702>; | 1549 | resets = <&cpg 515>; |
1550 | renesas,bonding = <&drif01>; | ||
1567 | status = "disabled"; | 1551 | status = "disabled"; |
1568 | }; | 1552 | }; |
1569 | 1553 | ||
1570 | ehci1: usb@ee0a0100 { | 1554 | drif01: rif@e6f50000 { |
1571 | compatible = "generic-ehci"; | 1555 | compatible = "renesas,r8a7796-drif", |
1572 | reg = <0 0xee0a0100 0 0x100>; | 1556 | "renesas,rcar-gen3-drif"; |
1573 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | 1557 | reg = <0 0xe6f50000 0 0x64>; |
1574 | clocks = <&cpg CPG_MOD 702>; | 1558 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; |
1575 | phys = <&usb2_phy1>; | 1559 | clocks = <&cpg CPG_MOD 514>; |
1576 | phy-names = "usb"; | 1560 | clock-names = "fck"; |
1577 | companion= <&ohci1>; | 1561 | dmas = <&dmac1 0x22>, <&dmac2 0x22>; |
1562 | dma-names = "rx", "rx"; | ||
1578 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1563 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1579 | resets = <&cpg 702>; | 1564 | resets = <&cpg 514>; |
1565 | renesas,bonding = <&drif00>; | ||
1580 | status = "disabled"; | 1566 | status = "disabled"; |
1581 | }; | 1567 | }; |
1582 | 1568 | ||
1583 | usb2_phy1: usb-phy@ee0a0200 { | 1569 | drif10: rif@e6f60000 { |
1584 | compatible = "renesas,usb2-phy-r8a7796", | 1570 | compatible = "renesas,r8a7796-drif", |
1585 | "renesas,rcar-gen3-usb2-phy"; | 1571 | "renesas,rcar-gen3-drif"; |
1586 | reg = <0 0xee0a0200 0 0x700>; | 1572 | reg = <0 0xe6f60000 0 0x64>; |
1587 | clocks = <&cpg CPG_MOD 702>; | 1573 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; |
1574 | clocks = <&cpg CPG_MOD 513>; | ||
1575 | clock-names = "fck"; | ||
1576 | dmas = <&dmac1 0x24>, <&dmac2 0x24>; | ||
1577 | dma-names = "rx", "rx"; | ||
1588 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1578 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1589 | resets = <&cpg 702>; | 1579 | resets = <&cpg 513>; |
1590 | #phy-cells = <0>; | 1580 | renesas,bonding = <&drif11>; |
1591 | status = "disabled"; | 1581 | status = "disabled"; |
1592 | }; | 1582 | }; |
1593 | 1583 | ||
1594 | sdhi0: sd@ee100000 { | 1584 | drif11: rif@e6f70000 { |
1595 | compatible = "renesas,sdhi-r8a7796", | 1585 | compatible = "renesas,r8a7796-drif", |
1596 | "renesas,rcar-gen3-sdhi"; | 1586 | "renesas,rcar-gen3-drif"; |
1597 | reg = <0 0xee100000 0 0x2000>; | 1587 | reg = <0 0xe6f70000 0 0x64>; |
1598 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | 1588 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; |
1599 | clocks = <&cpg CPG_MOD 314>; | 1589 | clocks = <&cpg CPG_MOD 512>; |
1600 | max-frequency = <200000000>; | 1590 | clock-names = "fck"; |
1591 | dmas = <&dmac1 0x26>, <&dmac2 0x26>; | ||
1592 | dma-names = "rx", "rx"; | ||
1601 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1593 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1602 | resets = <&cpg 314>; | 1594 | resets = <&cpg 512>; |
1595 | renesas,bonding = <&drif10>; | ||
1603 | status = "disabled"; | 1596 | status = "disabled"; |
1604 | }; | 1597 | }; |
1605 | 1598 | ||
1606 | sdhi1: sd@ee120000 { | 1599 | drif20: rif@e6f80000 { |
1607 | compatible = "renesas,sdhi-r8a7796", | 1600 | compatible = "renesas,r8a7796-drif", |
1608 | "renesas,rcar-gen3-sdhi"; | 1601 | "renesas,rcar-gen3-drif"; |
1609 | reg = <0 0xee120000 0 0x2000>; | 1602 | reg = <0 0xe6f80000 0 0x64>; |
1610 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; | 1603 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; |
1611 | clocks = <&cpg CPG_MOD 313>; | 1604 | clocks = <&cpg CPG_MOD 511>; |
1612 | max-frequency = <200000000>; | 1605 | clock-names = "fck"; |
1606 | dmas = <&dmac1 0x28>, <&dmac2 0x28>; | ||
1607 | dma-names = "rx", "rx"; | ||
1613 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1608 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1614 | resets = <&cpg 313>; | 1609 | resets = <&cpg 511>; |
1610 | renesas,bonding = <&drif21>; | ||
1615 | status = "disabled"; | 1611 | status = "disabled"; |
1616 | }; | 1612 | }; |
1617 | 1613 | ||
1618 | sdhi2: sd@ee140000 { | 1614 | drif21: rif@e6f90000 { |
1619 | compatible = "renesas,sdhi-r8a7796", | 1615 | compatible = "renesas,r8a7796-drif", |
1620 | "renesas,rcar-gen3-sdhi"; | 1616 | "renesas,rcar-gen3-drif"; |
1621 | reg = <0 0xee140000 0 0x2000>; | 1617 | reg = <0 0xe6f90000 0 0x64>; |
1622 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | 1618 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; |
1623 | clocks = <&cpg CPG_MOD 312>; | 1619 | clocks = <&cpg CPG_MOD 510>; |
1624 | max-frequency = <200000000>; | 1620 | clock-names = "fck"; |
1621 | dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; | ||
1622 | dma-names = "rx", "rx"; | ||
1625 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1623 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1626 | resets = <&cpg 312>; | 1624 | resets = <&cpg 510>; |
1625 | renesas,bonding = <&drif20>; | ||
1627 | status = "disabled"; | 1626 | status = "disabled"; |
1628 | }; | 1627 | }; |
1629 | 1628 | ||
1630 | sdhi3: sd@ee160000 { | 1629 | drif30: rif@e6fa0000 { |
1631 | compatible = "renesas,sdhi-r8a7796", | 1630 | compatible = "renesas,r8a7796-drif", |
1632 | "renesas,rcar-gen3-sdhi"; | 1631 | "renesas,rcar-gen3-drif"; |
1633 | reg = <0 0xee160000 0 0x2000>; | 1632 | reg = <0 0xe6fa0000 0 0x64>; |
1634 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | 1633 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; |
1635 | clocks = <&cpg CPG_MOD 311>; | 1634 | clocks = <&cpg CPG_MOD 509>; |
1636 | max-frequency = <200000000>; | 1635 | clock-names = "fck"; |
1636 | dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; | ||
1637 | dma-names = "rx", "rx"; | ||
1637 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1638 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1638 | resets = <&cpg 311>; | 1639 | resets = <&cpg 509>; |
1640 | renesas,bonding = <&drif31>; | ||
1639 | status = "disabled"; | 1641 | status = "disabled"; |
1640 | }; | 1642 | }; |
1641 | 1643 | ||
1642 | tsc: thermal@e6198000 { | 1644 | drif31: rif@e6fb0000 { |
1643 | compatible = "renesas,r8a7796-thermal"; | 1645 | compatible = "renesas,r8a7796-drif", |
1644 | reg = <0 0xe6198000 0 0x100>, | 1646 | "renesas,rcar-gen3-drif"; |
1645 | <0 0xe61a0000 0 0x100>, | 1647 | reg = <0 0xe6fb0000 0 0x64>; |
1646 | <0 0xe61a8000 0 0x100>; | 1648 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; |
1647 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, | 1649 | clocks = <&cpg CPG_MOD 508>; |
1648 | <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | 1650 | clock-names = "fck"; |
1649 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | 1651 | dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; |
1650 | clocks = <&cpg CPG_MOD 522>; | 1652 | dma-names = "rx", "rx"; |
1651 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 1653 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1652 | resets = <&cpg 522>; | 1654 | resets = <&cpg 508>; |
1653 | #thermal-sensor-cells = <1>; | 1655 | renesas,bonding = <&drif30>; |
1654 | status = "okay"; | 1656 | status = "disabled"; |
1655 | }; | 1657 | }; |
1656 | 1658 | ||
1657 | rcar_sound: sound@ec500000 { | 1659 | rcar_sound: sound@ec500000 { |
@@ -1848,6 +1850,261 @@ | |||
1848 | dma-names = "rx", "tx", "rxu", "txu"; | 1850 | dma-names = "rx", "tx", "rxu", "txu"; |
1849 | }; | 1851 | }; |
1850 | }; | 1852 | }; |
1853 | |||
1854 | ports { | ||
1855 | #address-cells = <1>; | ||
1856 | #size-cells = <0>; | ||
1857 | port@0 { | ||
1858 | reg = <0>; | ||
1859 | }; | ||
1860 | port@1 { | ||
1861 | reg = <1>; | ||
1862 | }; | ||
1863 | }; | ||
1864 | }; | ||
1865 | |||
1866 | audma0: dma-controller@ec700000 { | ||
1867 | compatible = "renesas,dmac-r8a7796", | ||
1868 | "renesas,rcar-dmac"; | ||
1869 | reg = <0 0xec700000 0 0x10000>; | ||
1870 | interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH | ||
1871 | GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH | ||
1872 | GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH | ||
1873 | GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH | ||
1874 | GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH | ||
1875 | GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH | ||
1876 | GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH | ||
1877 | GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH | ||
1878 | GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH | ||
1879 | GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH | ||
1880 | GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH | ||
1881 | GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH | ||
1882 | GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH | ||
1883 | GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH | ||
1884 | GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH | ||
1885 | GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH | ||
1886 | GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; | ||
1887 | interrupt-names = "error", | ||
1888 | "ch0", "ch1", "ch2", "ch3", | ||
1889 | "ch4", "ch5", "ch6", "ch7", | ||
1890 | "ch8", "ch9", "ch10", "ch11", | ||
1891 | "ch12", "ch13", "ch14", "ch15"; | ||
1892 | clocks = <&cpg CPG_MOD 502>; | ||
1893 | clock-names = "fck"; | ||
1894 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1895 | resets = <&cpg 502>; | ||
1896 | #dma-cells = <1>; | ||
1897 | dma-channels = <16>; | ||
1898 | iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>, | ||
1899 | <&ipmmu_mp 2>, <&ipmmu_mp 3>, | ||
1900 | <&ipmmu_mp 4>, <&ipmmu_mp 5>, | ||
1901 | <&ipmmu_mp 6>, <&ipmmu_mp 7>, | ||
1902 | <&ipmmu_mp 8>, <&ipmmu_mp 9>, | ||
1903 | <&ipmmu_mp 10>, <&ipmmu_mp 11>, | ||
1904 | <&ipmmu_mp 12>, <&ipmmu_mp 13>, | ||
1905 | <&ipmmu_mp 14>, <&ipmmu_mp 15>; | ||
1906 | }; | ||
1907 | |||
1908 | audma1: dma-controller@ec720000 { | ||
1909 | compatible = "renesas,dmac-r8a7796", | ||
1910 | "renesas,rcar-dmac"; | ||
1911 | reg = <0 0xec720000 0 0x10000>; | ||
1912 | interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH | ||
1913 | GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH | ||
1914 | GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH | ||
1915 | GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH | ||
1916 | GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH | ||
1917 | GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH | ||
1918 | GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH | ||
1919 | GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH | ||
1920 | GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH | ||
1921 | GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH | ||
1922 | GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH | ||
1923 | GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH | ||
1924 | GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH | ||
1925 | GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH | ||
1926 | GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH | ||
1927 | GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH | ||
1928 | GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; | ||
1929 | interrupt-names = "error", | ||
1930 | "ch0", "ch1", "ch2", "ch3", | ||
1931 | "ch4", "ch5", "ch6", "ch7", | ||
1932 | "ch8", "ch9", "ch10", "ch11", | ||
1933 | "ch12", "ch13", "ch14", "ch15"; | ||
1934 | clocks = <&cpg CPG_MOD 501>; | ||
1935 | clock-names = "fck"; | ||
1936 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1937 | resets = <&cpg 501>; | ||
1938 | #dma-cells = <1>; | ||
1939 | dma-channels = <16>; | ||
1940 | iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>, | ||
1941 | <&ipmmu_mp 18>, <&ipmmu_mp 19>, | ||
1942 | <&ipmmu_mp 20>, <&ipmmu_mp 21>, | ||
1943 | <&ipmmu_mp 22>, <&ipmmu_mp 23>, | ||
1944 | <&ipmmu_mp 24>, <&ipmmu_mp 25>, | ||
1945 | <&ipmmu_mp 26>, <&ipmmu_mp 27>, | ||
1946 | <&ipmmu_mp 28>, <&ipmmu_mp 29>, | ||
1947 | <&ipmmu_mp 30>, <&ipmmu_mp 31>; | ||
1948 | }; | ||
1949 | |||
1950 | xhci0: usb@ee000000 { | ||
1951 | compatible = "renesas,xhci-r8a7796", | ||
1952 | "renesas,rcar-gen3-xhci"; | ||
1953 | reg = <0 0xee000000 0 0xc00>; | ||
1954 | interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; | ||
1955 | clocks = <&cpg CPG_MOD 328>; | ||
1956 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1957 | resets = <&cpg 328>; | ||
1958 | status = "disabled"; | ||
1959 | }; | ||
1960 | |||
1961 | usb3_peri0: usb@ee020000 { | ||
1962 | compatible = "renesas,r8a7796-usb3-peri", | ||
1963 | "renesas,rcar-gen3-usb3-peri"; | ||
1964 | reg = <0 0xee020000 0 0x400>; | ||
1965 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; | ||
1966 | clocks = <&cpg CPG_MOD 328>; | ||
1967 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1968 | resets = <&cpg 328>; | ||
1969 | status = "disabled"; | ||
1970 | }; | ||
1971 | |||
1972 | ohci0: usb@ee080000 { | ||
1973 | compatible = "generic-ohci"; | ||
1974 | reg = <0 0xee080000 0 0x100>; | ||
1975 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | ||
1976 | clocks = <&cpg CPG_MOD 703>; | ||
1977 | phys = <&usb2_phy0>; | ||
1978 | phy-names = "usb"; | ||
1979 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1980 | resets = <&cpg 703>; | ||
1981 | status = "disabled"; | ||
1982 | }; | ||
1983 | |||
1984 | ohci1: usb@ee0a0000 { | ||
1985 | compatible = "generic-ohci"; | ||
1986 | reg = <0 0xee0a0000 0 0x100>; | ||
1987 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | ||
1988 | clocks = <&cpg CPG_MOD 702>; | ||
1989 | phys = <&usb2_phy1>; | ||
1990 | phy-names = "usb"; | ||
1991 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1992 | resets = <&cpg 702>; | ||
1993 | status = "disabled"; | ||
1994 | }; | ||
1995 | |||
1996 | ehci0: usb@ee080100 { | ||
1997 | compatible = "generic-ehci"; | ||
1998 | reg = <0 0xee080100 0 0x100>; | ||
1999 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | ||
2000 | clocks = <&cpg CPG_MOD 703>; | ||
2001 | phys = <&usb2_phy0>; | ||
2002 | phy-names = "usb"; | ||
2003 | companion= <&ohci0>; | ||
2004 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2005 | resets = <&cpg 703>; | ||
2006 | status = "disabled"; | ||
2007 | }; | ||
2008 | |||
2009 | ehci1: usb@ee0a0100 { | ||
2010 | compatible = "generic-ehci"; | ||
2011 | reg = <0 0xee0a0100 0 0x100>; | ||
2012 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | ||
2013 | clocks = <&cpg CPG_MOD 702>; | ||
2014 | phys = <&usb2_phy1>; | ||
2015 | phy-names = "usb"; | ||
2016 | companion= <&ohci1>; | ||
2017 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2018 | resets = <&cpg 702>; | ||
2019 | status = "disabled"; | ||
2020 | }; | ||
2021 | |||
2022 | usb2_phy0: usb-phy@ee080200 { | ||
2023 | compatible = "renesas,usb2-phy-r8a7796", | ||
2024 | "renesas,rcar-gen3-usb2-phy"; | ||
2025 | reg = <0 0xee080200 0 0x700>; | ||
2026 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | ||
2027 | clocks = <&cpg CPG_MOD 703>; | ||
2028 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2029 | resets = <&cpg 703>; | ||
2030 | #phy-cells = <0>; | ||
2031 | status = "disabled"; | ||
2032 | }; | ||
2033 | |||
2034 | usb2_phy1: usb-phy@ee0a0200 { | ||
2035 | compatible = "renesas,usb2-phy-r8a7796", | ||
2036 | "renesas,rcar-gen3-usb2-phy"; | ||
2037 | reg = <0 0xee0a0200 0 0x700>; | ||
2038 | clocks = <&cpg CPG_MOD 702>; | ||
2039 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2040 | resets = <&cpg 702>; | ||
2041 | #phy-cells = <0>; | ||
2042 | status = "disabled"; | ||
2043 | }; | ||
2044 | |||
2045 | sdhi0: sd@ee100000 { | ||
2046 | compatible = "renesas,sdhi-r8a7796", | ||
2047 | "renesas,rcar-gen3-sdhi"; | ||
2048 | reg = <0 0xee100000 0 0x2000>; | ||
2049 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | ||
2050 | clocks = <&cpg CPG_MOD 314>; | ||
2051 | max-frequency = <200000000>; | ||
2052 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2053 | resets = <&cpg 314>; | ||
2054 | status = "disabled"; | ||
2055 | }; | ||
2056 | |||
2057 | sdhi1: sd@ee120000 { | ||
2058 | compatible = "renesas,sdhi-r8a7796", | ||
2059 | "renesas,rcar-gen3-sdhi"; | ||
2060 | reg = <0 0xee120000 0 0x2000>; | ||
2061 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; | ||
2062 | clocks = <&cpg CPG_MOD 313>; | ||
2063 | max-frequency = <200000000>; | ||
2064 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2065 | resets = <&cpg 313>; | ||
2066 | status = "disabled"; | ||
2067 | }; | ||
2068 | |||
2069 | sdhi2: sd@ee140000 { | ||
2070 | compatible = "renesas,sdhi-r8a7796", | ||
2071 | "renesas,rcar-gen3-sdhi"; | ||
2072 | reg = <0 0xee140000 0 0x2000>; | ||
2073 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
2074 | clocks = <&cpg CPG_MOD 312>; | ||
2075 | max-frequency = <200000000>; | ||
2076 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2077 | resets = <&cpg 312>; | ||
2078 | status = "disabled"; | ||
2079 | }; | ||
2080 | |||
2081 | sdhi3: sd@ee160000 { | ||
2082 | compatible = "renesas,sdhi-r8a7796", | ||
2083 | "renesas,rcar-gen3-sdhi"; | ||
2084 | reg = <0 0xee160000 0 0x2000>; | ||
2085 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | ||
2086 | clocks = <&cpg CPG_MOD 311>; | ||
2087 | max-frequency = <200000000>; | ||
2088 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2089 | resets = <&cpg 311>; | ||
2090 | status = "disabled"; | ||
2091 | }; | ||
2092 | |||
2093 | gic: interrupt-controller@f1010000 { | ||
2094 | compatible = "arm,gic-400"; | ||
2095 | #interrupt-cells = <3>; | ||
2096 | #address-cells = <0>; | ||
2097 | interrupt-controller; | ||
2098 | reg = <0x0 0xf1010000 0 0x1000>, | ||
2099 | <0x0 0xf1020000 0 0x20000>, | ||
2100 | <0x0 0xf1040000 0 0x20000>, | ||
2101 | <0x0 0xf1060000 0 0x20000>; | ||
2102 | interrupts = <GIC_PPI 9 | ||
2103 | (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; | ||
2104 | clocks = <&cpg CPG_MOD 408>; | ||
2105 | clock-names = "clk"; | ||
2106 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2107 | resets = <&cpg 408>; | ||
1851 | }; | 2108 | }; |
1852 | 2109 | ||
1853 | pciec0: pcie@fe000000 { | 2110 | pciec0: pcie@fe000000 { |
@@ -1860,6 +2117,26 @@ | |||
1860 | /* placeholder */ | 2117 | /* placeholder */ |
1861 | }; | 2118 | }; |
1862 | 2119 | ||
2120 | imr-lx4@fe860000 { | ||
2121 | compatible = "renesas,r8a7796-imr-lx4", | ||
2122 | "renesas,imr-lx4"; | ||
2123 | reg = <0 0xfe860000 0 0x2000>; | ||
2124 | interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; | ||
2125 | clocks = <&cpg CPG_MOD 823>; | ||
2126 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2127 | resets = <&cpg 823>; | ||
2128 | }; | ||
2129 | |||
2130 | imr-lx4@fe870000 { | ||
2131 | compatible = "renesas,r8a7796-imr-lx4", | ||
2132 | "renesas,imr-lx4"; | ||
2133 | reg = <0 0xfe870000 0 0x2000>; | ||
2134 | interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||
2135 | clocks = <&cpg CPG_MOD 822>; | ||
2136 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2137 | resets = <&cpg 822>; | ||
2138 | }; | ||
2139 | |||
1863 | fdp1@fe940000 { | 2140 | fdp1@fe940000 { |
1864 | compatible = "renesas,fdp1"; | 2141 | compatible = "renesas,fdp1"; |
1865 | reg = <0 0xfe940000 0 0x2400>; | 2142 | reg = <0 0xfe940000 0 0x2400>; |
@@ -1878,17 +2155,6 @@ | |||
1878 | resets = <&cpg 615>; | 2155 | resets = <&cpg 615>; |
1879 | }; | 2156 | }; |
1880 | 2157 | ||
1881 | vspb: vsp@fe960000 { | ||
1882 | compatible = "renesas,vsp2"; | ||
1883 | reg = <0 0xfe960000 0 0x8000>; | ||
1884 | interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; | ||
1885 | clocks = <&cpg CPG_MOD 626>; | ||
1886 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
1887 | resets = <&cpg 626>; | ||
1888 | |||
1889 | renesas,fcp = <&fcpvb0>; | ||
1890 | }; | ||
1891 | |||
1892 | fcpvb0: fcp@fe96f000 { | 2158 | fcpvb0: fcp@fe96f000 { |
1893 | compatible = "renesas,fcpv"; | 2159 | compatible = "renesas,fcpv"; |
1894 | reg = <0 0xfe96f000 0 0x200>; | 2160 | reg = <0 0xfe96f000 0 0x200>; |
@@ -1897,17 +2163,6 @@ | |||
1897 | resets = <&cpg 607>; | 2163 | resets = <&cpg 607>; |
1898 | }; | 2164 | }; |
1899 | 2165 | ||
1900 | vspi0: vsp@fe9a0000 { | ||
1901 | compatible = "renesas,vsp2"; | ||
1902 | reg = <0 0xfe9a0000 0 0x8000>; | ||
1903 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; | ||
1904 | clocks = <&cpg CPG_MOD 631>; | ||
1905 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
1906 | resets = <&cpg 631>; | ||
1907 | |||
1908 | renesas,fcp = <&fcpvi0>; | ||
1909 | }; | ||
1910 | |||
1911 | fcpvi0: fcp@fe9af000 { | 2166 | fcpvi0: fcp@fe9af000 { |
1912 | compatible = "renesas,fcpv"; | 2167 | compatible = "renesas,fcpv"; |
1913 | reg = <0 0xfe9af000 0 0x200>; | 2168 | reg = <0 0xfe9af000 0 0x200>; |
@@ -1917,6 +2172,44 @@ | |||
1917 | iommus = <&ipmmu_vc0 19>; | 2172 | iommus = <&ipmmu_vc0 19>; |
1918 | }; | 2173 | }; |
1919 | 2174 | ||
2175 | fcpvd0: fcp@fea27000 { | ||
2176 | compatible = "renesas,fcpv"; | ||
2177 | reg = <0 0xfea27000 0 0x200>; | ||
2178 | clocks = <&cpg CPG_MOD 603>; | ||
2179 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2180 | resets = <&cpg 603>; | ||
2181 | iommus = <&ipmmu_vi0 8>; | ||
2182 | }; | ||
2183 | |||
2184 | fcpvd1: fcp@fea2f000 { | ||
2185 | compatible = "renesas,fcpv"; | ||
2186 | reg = <0 0xfea2f000 0 0x200>; | ||
2187 | clocks = <&cpg CPG_MOD 602>; | ||
2188 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2189 | resets = <&cpg 602>; | ||
2190 | iommus = <&ipmmu_vi0 9>; | ||
2191 | }; | ||
2192 | |||
2193 | fcpvd2: fcp@fea37000 { | ||
2194 | compatible = "renesas,fcpv"; | ||
2195 | reg = <0 0xfea37000 0 0x200>; | ||
2196 | clocks = <&cpg CPG_MOD 601>; | ||
2197 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2198 | resets = <&cpg 601>; | ||
2199 | iommus = <&ipmmu_vi0 10>; | ||
2200 | }; | ||
2201 | |||
2202 | vspb: vsp@fe960000 { | ||
2203 | compatible = "renesas,vsp2"; | ||
2204 | reg = <0 0xfe960000 0 0x8000>; | ||
2205 | interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; | ||
2206 | clocks = <&cpg CPG_MOD 626>; | ||
2207 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2208 | resets = <&cpg 626>; | ||
2209 | |||
2210 | renesas,fcp = <&fcpvb0>; | ||
2211 | }; | ||
2212 | |||
1920 | vspd0: vsp@fea20000 { | 2213 | vspd0: vsp@fea20000 { |
1921 | compatible = "renesas,vsp2"; | 2214 | compatible = "renesas,vsp2"; |
1922 | reg = <0 0xfea20000 0 0x8000>; | 2215 | reg = <0 0xfea20000 0 0x8000>; |
@@ -1928,15 +2221,6 @@ | |||
1928 | renesas,fcp = <&fcpvd0>; | 2221 | renesas,fcp = <&fcpvd0>; |
1929 | }; | 2222 | }; |
1930 | 2223 | ||
1931 | fcpvd0: fcp@fea27000 { | ||
1932 | compatible = "renesas,fcpv"; | ||
1933 | reg = <0 0xfea27000 0 0x200>; | ||
1934 | clocks = <&cpg CPG_MOD 603>; | ||
1935 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1936 | resets = <&cpg 603>; | ||
1937 | iommus = <&ipmmu_vi0 8>; | ||
1938 | }; | ||
1939 | |||
1940 | vspd1: vsp@fea28000 { | 2224 | vspd1: vsp@fea28000 { |
1941 | compatible = "renesas,vsp2"; | 2225 | compatible = "renesas,vsp2"; |
1942 | reg = <0 0xfea28000 0 0x8000>; | 2226 | reg = <0 0xfea28000 0 0x8000>; |
@@ -1948,15 +2232,6 @@ | |||
1948 | renesas,fcp = <&fcpvd1>; | 2232 | renesas,fcp = <&fcpvd1>; |
1949 | }; | 2233 | }; |
1950 | 2234 | ||
1951 | fcpvd1: fcp@fea2f000 { | ||
1952 | compatible = "renesas,fcpv"; | ||
1953 | reg = <0 0xfea2f000 0 0x200>; | ||
1954 | clocks = <&cpg CPG_MOD 602>; | ||
1955 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
1956 | resets = <&cpg 602>; | ||
1957 | iommus = <&ipmmu_vi0 9>; | ||
1958 | }; | ||
1959 | |||
1960 | vspd2: vsp@fea30000 { | 2235 | vspd2: vsp@fea30000 { |
1961 | compatible = "renesas,vsp2"; | 2236 | compatible = "renesas,vsp2"; |
1962 | reg = <0 0xfea30000 0 0x8000>; | 2237 | reg = <0 0xfea30000 0 0x8000>; |
@@ -1968,13 +2243,126 @@ | |||
1968 | renesas,fcp = <&fcpvd2>; | 2243 | renesas,fcp = <&fcpvd2>; |
1969 | }; | 2244 | }; |
1970 | 2245 | ||
1971 | fcpvd2: fcp@fea37000 { | 2246 | vspi0: vsp@fe9a0000 { |
1972 | compatible = "renesas,fcpv"; | 2247 | compatible = "renesas,vsp2"; |
1973 | reg = <0 0xfea37000 0 0x200>; | 2248 | reg = <0 0xfe9a0000 0 0x8000>; |
1974 | clocks = <&cpg CPG_MOD 601>; | 2249 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; |
2250 | clocks = <&cpg CPG_MOD 631>; | ||
2251 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2252 | resets = <&cpg 631>; | ||
2253 | |||
2254 | renesas,fcp = <&fcpvi0>; | ||
2255 | }; | ||
2256 | |||
2257 | csi20: csi2@fea80000 { | ||
2258 | compatible = "renesas,r8a7796-csi2"; | ||
2259 | reg = <0 0xfea80000 0 0x10000>; | ||
2260 | interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; | ||
2261 | clocks = <&cpg CPG_MOD 714>; | ||
1975 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 2262 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
1976 | resets = <&cpg 601>; | 2263 | resets = <&cpg 714>; |
1977 | iommus = <&ipmmu_vi0 10>; | 2264 | status = "disabled"; |
2265 | |||
2266 | ports { | ||
2267 | #address-cells = <1>; | ||
2268 | #size-cells = <0>; | ||
2269 | |||
2270 | port@1 { | ||
2271 | #address-cells = <1>; | ||
2272 | #size-cells = <0>; | ||
2273 | |||
2274 | reg = <1>; | ||
2275 | |||
2276 | csi20vin0: endpoint@0 { | ||
2277 | reg = <0>; | ||
2278 | remote-endpoint = <&vin0csi20>; | ||
2279 | }; | ||
2280 | csi20vin1: endpoint@1 { | ||
2281 | reg = <1>; | ||
2282 | remote-endpoint = <&vin1csi20>; | ||
2283 | }; | ||
2284 | csi20vin2: endpoint@2 { | ||
2285 | reg = <2>; | ||
2286 | remote-endpoint = <&vin2csi20>; | ||
2287 | }; | ||
2288 | csi20vin3: endpoint@3 { | ||
2289 | reg = <3>; | ||
2290 | remote-endpoint = <&vin3csi20>; | ||
2291 | }; | ||
2292 | csi20vin4: endpoint@4 { | ||
2293 | reg = <4>; | ||
2294 | remote-endpoint = <&vin4csi20>; | ||
2295 | }; | ||
2296 | csi20vin5: endpoint@5 { | ||
2297 | reg = <5>; | ||
2298 | remote-endpoint = <&vin5csi20>; | ||
2299 | }; | ||
2300 | csi20vin6: endpoint@6 { | ||
2301 | reg = <6>; | ||
2302 | remote-endpoint = <&vin6csi20>; | ||
2303 | }; | ||
2304 | csi20vin7: endpoint@7 { | ||
2305 | reg = <7>; | ||
2306 | remote-endpoint = <&vin7csi20>; | ||
2307 | }; | ||
2308 | }; | ||
2309 | }; | ||
2310 | }; | ||
2311 | |||
2312 | csi40: csi2@feaa0000 { | ||
2313 | compatible = "renesas,r8a7796-csi2"; | ||
2314 | reg = <0 0xfeaa0000 0 0x10000>; | ||
2315 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
2316 | clocks = <&cpg CPG_MOD 716>; | ||
2317 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
2318 | resets = <&cpg 716>; | ||
2319 | status = "disabled"; | ||
2320 | |||
2321 | ports { | ||
2322 | #address-cells = <1>; | ||
2323 | #size-cells = <0>; | ||
2324 | |||
2325 | port@1 { | ||
2326 | #address-cells = <1>; | ||
2327 | #size-cells = <0>; | ||
2328 | |||
2329 | reg = <1>; | ||
2330 | |||
2331 | csi40vin0: endpoint@0 { | ||
2332 | reg = <0>; | ||
2333 | remote-endpoint = <&vin0csi40>; | ||
2334 | }; | ||
2335 | csi40vin1: endpoint@1 { | ||
2336 | reg = <1>; | ||
2337 | remote-endpoint = <&vin1csi40>; | ||
2338 | }; | ||
2339 | csi40vin2: endpoint@2 { | ||
2340 | reg = <2>; | ||
2341 | remote-endpoint = <&vin2csi40>; | ||
2342 | }; | ||
2343 | csi40vin3: endpoint@3 { | ||
2344 | reg = <3>; | ||
2345 | remote-endpoint = <&vin3csi40>; | ||
2346 | }; | ||
2347 | csi40vin4: endpoint@4 { | ||
2348 | reg = <4>; | ||
2349 | remote-endpoint = <&vin4csi40>; | ||
2350 | }; | ||
2351 | csi40vin5: endpoint@5 { | ||
2352 | reg = <5>; | ||
2353 | remote-endpoint = <&vin5csi40>; | ||
2354 | }; | ||
2355 | csi40vin6: endpoint@6 { | ||
2356 | reg = <6>; | ||
2357 | remote-endpoint = <&vin6csi40>; | ||
2358 | }; | ||
2359 | csi40vin7: endpoint@7 { | ||
2360 | reg = <7>; | ||
2361 | remote-endpoint = <&vin7csi40>; | ||
2362 | }; | ||
2363 | }; | ||
2364 | |||
2365 | }; | ||
1978 | }; | 2366 | }; |
1979 | 2367 | ||
1980 | hdmi0: hdmi@fead0000 { | 2368 | hdmi0: hdmi@fead0000 { |
@@ -1999,6 +2387,10 @@ | |||
1999 | port@1 { | 2387 | port@1 { |
2000 | reg = <1>; | 2388 | reg = <1>; |
2001 | }; | 2389 | }; |
2390 | port@2 { | ||
2391 | /* HDMI sound */ | ||
2392 | reg = <2>; | ||
2393 | }; | ||
2002 | }; | 2394 | }; |
2003 | }; | 2395 | }; |
2004 | 2396 | ||
@@ -2042,35 +2434,12 @@ | |||
2042 | }; | 2434 | }; |
2043 | }; | 2435 | }; |
2044 | 2436 | ||
2045 | imr-lx4@fe860000 { | 2437 | prr: chipid@fff00044 { |
2046 | compatible = "renesas,r8a7796-imr-lx4", | 2438 | compatible = "renesas,prr"; |
2047 | "renesas,imr-lx4"; | 2439 | reg = <0 0xfff00044 0 4>; |
2048 | reg = <0 0xfe860000 0 0x2000>; | ||
2049 | interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; | ||
2050 | clocks = <&cpg CPG_MOD 823>; | ||
2051 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2052 | resets = <&cpg 823>; | ||
2053 | }; | ||
2054 | |||
2055 | imr-lx4@fe870000 { | ||
2056 | compatible = "renesas,r8a7796-imr-lx4", | ||
2057 | "renesas,imr-lx4"; | ||
2058 | reg = <0 0xfe870000 0 0x2000>; | ||
2059 | interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||
2060 | clocks = <&cpg CPG_MOD 822>; | ||
2061 | power-domains = <&sysc R8A7796_PD_A3VC>; | ||
2062 | resets = <&cpg 822>; | ||
2063 | }; | 2440 | }; |
2064 | }; | 2441 | }; |
2065 | 2442 | ||
2066 | timer { | ||
2067 | compatible = "arm,armv8-timer"; | ||
2068 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2069 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2070 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2071 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; | ||
2072 | }; | ||
2073 | |||
2074 | thermal-zones { | 2443 | thermal-zones { |
2075 | sensor_thermal1: sensor-thermal1 { | 2444 | sensor_thermal1: sensor-thermal1 { |
2076 | polling-delay-passive = <250>; | 2445 | polling-delay-passive = <250>; |
@@ -2080,12 +2449,12 @@ | |||
2080 | trips { | 2449 | trips { |
2081 | sensor1_passive: sensor1-passive { | 2450 | sensor1_passive: sensor1-passive { |
2082 | temperature = <95000>; | 2451 | temperature = <95000>; |
2083 | hysteresis = <2000>; | 2452 | hysteresis = <1000>; |
2084 | type = "passive"; | 2453 | type = "passive"; |
2085 | }; | 2454 | }; |
2086 | sensor1_crit: sensor1-crit { | 2455 | sensor1_crit: sensor1-crit { |
2087 | temperature = <120000>; | 2456 | temperature = <120000>; |
2088 | hysteresis = <2000>; | 2457 | hysteresis = <1000>; |
2089 | type = "critical"; | 2458 | type = "critical"; |
2090 | }; | 2459 | }; |
2091 | }; | 2460 | }; |
@@ -2106,12 +2475,12 @@ | |||
2106 | trips { | 2475 | trips { |
2107 | sensor2_passive: sensor2-passive { | 2476 | sensor2_passive: sensor2-passive { |
2108 | temperature = <95000>; | 2477 | temperature = <95000>; |
2109 | hysteresis = <2000>; | 2478 | hysteresis = <1000>; |
2110 | type = "passive"; | 2479 | type = "passive"; |
2111 | }; | 2480 | }; |
2112 | sensor2_crit: sensor2-crit { | 2481 | sensor2_crit: sensor2-crit { |
2113 | temperature = <120000>; | 2482 | temperature = <120000>; |
2114 | hysteresis = <2000>; | 2483 | hysteresis = <1000>; |
2115 | type = "critical"; | 2484 | type = "critical"; |
2116 | }; | 2485 | }; |
2117 | }; | 2486 | }; |
@@ -2132,12 +2501,12 @@ | |||
2132 | trips { | 2501 | trips { |
2133 | sensor3_passive: sensor3-passive { | 2502 | sensor3_passive: sensor3-passive { |
2134 | temperature = <95000>; | 2503 | temperature = <95000>; |
2135 | hysteresis = <2000>; | 2504 | hysteresis = <1000>; |
2136 | type = "passive"; | 2505 | type = "passive"; |
2137 | }; | 2506 | }; |
2138 | sensor3_crit: sensor3-crit { | 2507 | sensor3_crit: sensor3-crit { |
2139 | temperature = <120000>; | 2508 | temperature = <120000>; |
2140 | hysteresis = <2000>; | 2509 | hysteresis = <1000>; |
2141 | type = "critical"; | 2510 | type = "critical"; |
2142 | }; | 2511 | }; |
2143 | }; | 2512 | }; |
@@ -2151,6 +2520,14 @@ | |||
2151 | }; | 2520 | }; |
2152 | }; | 2521 | }; |
2153 | 2522 | ||
2523 | timer { | ||
2524 | compatible = "arm,armv8-timer"; | ||
2525 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2526 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2527 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, | ||
2528 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; | ||
2529 | }; | ||
2530 | |||
2154 | /* External USB clocks - can be overridden by the board */ | 2531 | /* External USB clocks - can be overridden by the board */ |
2155 | usb3s0_clk: usb3s0 { | 2532 | usb3s0_clk: usb3s0 { |
2156 | compatible = "fixed-clock"; | 2533 | compatible = "fixed-clock"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a77965-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a77965-salvator-x.dts index 75d890d91df9..340a3c72b65a 100644 --- a/arch/arm64/boot/dts/renesas/r8a77965-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a77965-salvator-x.dts | |||
@@ -19,3 +19,31 @@ | |||
19 | reg = <0x0 0x48000000 0x0 0x78000000>; | 19 | reg = <0x0 0x48000000 0x0 0x78000000>; |
20 | }; | 20 | }; |
21 | }; | 21 | }; |
22 | |||
23 | &du { | ||
24 | clocks = <&cpg CPG_MOD 724>, | ||
25 | <&cpg CPG_MOD 723>, | ||
26 | <&cpg CPG_MOD 721>, | ||
27 | <&versaclock5 1>, | ||
28 | <&x21_clk>, | ||
29 | <&versaclock5 2>; | ||
30 | clock-names = "du.0", "du.1", "du.3", | ||
31 | "dclkin.0", "dclkin.1", "dclkin.3"; | ||
32 | }; | ||
33 | |||
34 | &hdmi0 { | ||
35 | status = "okay"; | ||
36 | |||
37 | ports { | ||
38 | port@1 { | ||
39 | reg = <1>; | ||
40 | rcar_dw_hdmi0_out: endpoint { | ||
41 | remote-endpoint = <&hdmi0_con>; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | &hdmi0_con { | ||
48 | remote-endpoint = <&rcar_dw_hdmi0_out>; | ||
49 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts index a83a00deed9e..9de4e3db1621 100644 --- a/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts +++ b/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts | |||
@@ -19,3 +19,31 @@ | |||
19 | reg = <0x0 0x48000000 0x0 0x78000000>; | 19 | reg = <0x0 0x48000000 0x0 0x78000000>; |
20 | }; | 20 | }; |
21 | }; | 21 | }; |
22 | |||
23 | &du { | ||
24 | clocks = <&cpg CPG_MOD 724>, | ||
25 | <&cpg CPG_MOD 723>, | ||
26 | <&cpg CPG_MOD 721>, | ||
27 | <&versaclock6 1>, | ||
28 | <&x21_clk>, | ||
29 | <&versaclock6 2>; | ||
30 | clock-names = "du.0", "du.1", "du.3", | ||
31 | "dclkin.0", "dclkin.1", "dclkin.3"; | ||
32 | }; | ||
33 | |||
34 | &hdmi0 { | ||
35 | status = "okay"; | ||
36 | |||
37 | ports { | ||
38 | port@1 { | ||
39 | reg = <1>; | ||
40 | rcar_dw_hdmi0_out: endpoint { | ||
41 | remote-endpoint = <&hdmi0_con>; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | &hdmi0_con { | ||
48 | remote-endpoint = <&rcar_dw_hdmi0_out>; | ||
49 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi index f0871fcdd984..486aecacb22a 100644 --- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi | |||
@@ -8,8 +8,9 @@ | |||
8 | * Copyright (C) 2016 Renesas Electronics Corp. | 8 | * Copyright (C) 2016 Renesas Electronics Corp. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <dt-bindings/clock/renesas-cpg-mssr.h> | 11 | #include <dt-bindings/clock/r8a77965-cpg-mssr.h> |
12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
13 | #include <dt-bindings/power/r8a77965-sysc.h> | ||
13 | 14 | ||
14 | #define CPG_AUDIO_CLK_I 10 | 15 | #define CPG_AUDIO_CLK_I 10 |
15 | 16 | ||
@@ -19,12 +20,44 @@ | |||
19 | #size-cells = <2>; | 20 | #size-cells = <2>; |
20 | 21 | ||
21 | aliases { | 22 | aliases { |
23 | i2c0 = &i2c0; | ||
24 | i2c1 = &i2c1; | ||
25 | i2c2 = &i2c2; | ||
26 | i2c3 = &i2c3; | ||
27 | i2c4 = &i2c4; | ||
28 | i2c5 = &i2c5; | ||
29 | i2c6 = &i2c6; | ||
22 | i2c7 = &i2c_dvfs; | 30 | i2c7 = &i2c_dvfs; |
23 | }; | 31 | }; |
24 | 32 | ||
25 | psci { | 33 | /* |
26 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | 34 | * The external audio clocks are configured as 0 Hz fixed frequency |
27 | method = "smc"; | 35 | * clocks by default. |
36 | * Boards that provide audio clocks should override them. | ||
37 | */ | ||
38 | audio_clk_a: audio_clk_a { | ||
39 | compatible = "fixed-clock"; | ||
40 | #clock-cells = <0>; | ||
41 | clock-frequency = <0>; | ||
42 | }; | ||
43 | |||
44 | audio_clk_b: audio_clk_b { | ||
45 | compatible = "fixed-clock"; | ||
46 | #clock-cells = <0>; | ||
47 | clock-frequency = <0>; | ||
48 | }; | ||
49 | |||
50 | audio_clk_c: audio_clk_c { | ||
51 | compatible = "fixed-clock"; | ||
52 | #clock-cells = <0>; | ||
53 | clock-frequency = <0>; | ||
54 | }; | ||
55 | |||
56 | /* External CAN clock - to be overridden by boards that provide it */ | ||
57 | can_clk: can { | ||
58 | compatible = "fixed-clock"; | ||
59 | #clock-cells = <0>; | ||
60 | clock-frequency = <0>; | ||
28 | }; | 61 | }; |
29 | 62 | ||
30 | cpus { | 63 | cpus { |
@@ -35,23 +68,23 @@ | |||
35 | compatible = "arm,cortex-a57", "arm,armv8"; | 68 | compatible = "arm,cortex-a57", "arm,armv8"; |
36 | reg = <0x0>; | 69 | reg = <0x0>; |
37 | device_type = "cpu"; | 70 | device_type = "cpu"; |
38 | power-domains = <&sysc 0>; | 71 | power-domains = <&sysc R8A77965_PD_CA57_CPU0>; |
39 | next-level-cache = <&L2_CA57>; | 72 | next-level-cache = <&L2_CA57>; |
40 | enable-method = "psci"; | 73 | enable-method = "psci"; |
41 | }; | 74 | }; |
42 | 75 | ||
43 | a57_1: cpu@1 { | 76 | a57_1: cpu@1 { |
44 | compatible = "arm,cortex-a57","arm,armv8"; | 77 | compatible = "arm,cortex-a57", "arm,armv8"; |
45 | reg = <0x1>; | 78 | reg = <0x1>; |
46 | device_type = "cpu"; | 79 | device_type = "cpu"; |
47 | power-domains = <&sysc 1>; | 80 | power-domains = <&sysc R8A77965_PD_CA57_CPU1>; |
48 | next-level-cache = <&L2_CA57>; | 81 | next-level-cache = <&L2_CA57>; |
49 | enable-method = "psci"; | 82 | enable-method = "psci"; |
50 | }; | 83 | }; |
51 | 84 | ||
52 | L2_CA57: cache-controller-0 { | 85 | L2_CA57: cache-controller-0 { |
53 | compatible = "cache"; | 86 | compatible = "cache"; |
54 | power-domains = <&sysc 12>; | 87 | power-domains = <&sysc R8A77965_PD_CA57_SCU>; |
55 | cache-unified; | 88 | cache-unified; |
56 | cache-level = <2>; | 89 | cache-level = <2>; |
57 | }; | 90 | }; |
@@ -71,34 +104,24 @@ | |||
71 | clock-frequency = <0>; | 104 | clock-frequency = <0>; |
72 | }; | 105 | }; |
73 | 106 | ||
74 | /* | 107 | /* External PCIe clock - can be overridden by the board */ |
75 | * The external audio clocks are configured as 0 Hz fixed frequency | 108 | pcie_bus_clk: pcie_bus { |
76 | * clocks by default. | ||
77 | * Boards that provide audio clocks should override them. | ||
78 | */ | ||
79 | audio_clk_a: audio_clk_a { | ||
80 | compatible = "fixed-clock"; | ||
81 | #clock-cells = <0>; | ||
82 | clock-frequency = <0>; | ||
83 | }; | ||
84 | |||
85 | audio_clk_b: audio_clk_b { | ||
86 | compatible = "fixed-clock"; | 109 | compatible = "fixed-clock"; |
87 | #clock-cells = <0>; | 110 | #clock-cells = <0>; |
88 | clock-frequency = <0>; | 111 | clock-frequency = <0>; |
89 | }; | 112 | }; |
90 | 113 | ||
91 | audio_clk_c: audio_clk_c { | 114 | pmu_a57 { |
92 | compatible = "fixed-clock"; | 115 | compatible = "arm,cortex-a57-pmu"; |
93 | #clock-cells = <0>; | 116 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, |
94 | clock-frequency = <0>; | 117 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; |
118 | interrupt-affinity = <&a57_0>, | ||
119 | <&a57_1>; | ||
95 | }; | 120 | }; |
96 | 121 | ||
97 | /* External CAN clock - to be overridden by boards that provide it */ | 122 | psci { |
98 | can_clk: can { | 123 | compatible = "arm,psci-1.0", "arm,psci-0.2"; |
99 | compatible = "fixed-clock"; | 124 | method = "smc"; |
100 | #clock-cells = <0>; | ||
101 | clock-frequency = <0>; | ||
102 | }; | 125 | }; |
103 | 126 | ||
104 | /* External SCIF clock - to be overridden by boards that provide it */ | 127 | /* External SCIF clock - to be overridden by boards that provide it */ |
@@ -108,42 +131,6 @@ | |||
108 | clock-frequency = <0>; | 131 | clock-frequency = <0>; |
109 | }; | 132 | }; |
110 | 133 | ||
111 | /* External PCIe clock - can be overridden by the board */ | ||
112 | pcie_bus_clk: pcie_bus { | ||
113 | compatible = "fixed-clock"; | ||
114 | #clock-cells = <0>; | ||
115 | clock-frequency = <0>; | ||
116 | }; | ||
117 | |||
118 | /* External USB clocks - can be overridden by the board */ | ||
119 | usb3s0_clk: usb3s0 { | ||
120 | compatible = "fixed-clock"; | ||
121 | #clock-cells = <0>; | ||
122 | clock-frequency = <0>; | ||
123 | }; | ||
124 | |||
125 | usb_extal_clk: usb_extal { | ||
126 | compatible = "fixed-clock"; | ||
127 | #clock-cells = <0>; | ||
128 | clock-frequency = <0>; | ||
129 | }; | ||
130 | |||
131 | timer { | ||
132 | compatible = "arm,armv8-timer"; | ||
133 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
134 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
135 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
136 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; | ||
137 | }; | ||
138 | |||
139 | pmu_a57 { | ||
140 | compatible = "arm,cortex-a57-pmu"; | ||
141 | interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | ||
142 | <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
143 | interrupt-affinity = <&a57_0>, | ||
144 | <&a57_1>; | ||
145 | }; | ||
146 | |||
147 | soc { | 134 | soc { |
148 | compatible = "simple-bus"; | 135 | compatible = "simple-bus"; |
149 | interrupt-parent = <&gic>; | 136 | interrupt-parent = <&gic>; |
@@ -151,52 +138,9 @@ | |||
151 | #size-cells = <2>; | 138 | #size-cells = <2>; |
152 | ranges; | 139 | ranges; |
153 | 140 | ||
154 | gic: interrupt-controller@f1010000 { | 141 | wdt0: watchdog@e6020000 { |
155 | compatible = "arm,gic-400"; | 142 | reg = <0 0xe6020000 0 0x0c>; |
156 | #interrupt-cells = <3>; | 143 | /* placeholder */ |
157 | #address-cells = <0>; | ||
158 | interrupt-controller; | ||
159 | reg = <0x0 0xf1010000 0 0x1000>, | ||
160 | <0x0 0xf1020000 0 0x20000>, | ||
161 | <0x0 0xf1040000 0 0x20000>, | ||
162 | <0x0 0xf1060000 0 0x20000>; | ||
163 | interrupts = <GIC_PPI 9 | ||
164 | (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; | ||
165 | clocks = <&cpg CPG_MOD 408>; | ||
166 | clock-names = "clk"; | ||
167 | power-domains = <&sysc 32>; | ||
168 | resets = <&cpg 408>; | ||
169 | }; | ||
170 | |||
171 | pfc: pin-controller@e6060000 { | ||
172 | compatible = "renesas,pfc-r8a77965"; | ||
173 | reg = <0 0xe6060000 0 0x50c>; | ||
174 | }; | ||
175 | |||
176 | cpg: clock-controller@e6150000 { | ||
177 | compatible = "renesas,r8a77965-cpg-mssr"; | ||
178 | reg = <0 0xe6150000 0 0x1000>; | ||
179 | clocks = <&extal_clk>, <&extalr_clk>; | ||
180 | clock-names = "extal", "extalr"; | ||
181 | #clock-cells = <2>; | ||
182 | #power-domain-cells = <0>; | ||
183 | #reset-cells = <1>; | ||
184 | }; | ||
185 | |||
186 | rst: reset-controller@e6160000 { | ||
187 | compatible = "renesas,r8a77965-rst"; | ||
188 | reg = <0 0xe6160000 0 0x0200>; | ||
189 | }; | ||
190 | |||
191 | prr: chipid@fff00044 { | ||
192 | compatible = "renesas,prr"; | ||
193 | reg = <0 0xfff00044 0 4>; | ||
194 | }; | ||
195 | |||
196 | sysc: system-controller@e6180000 { | ||
197 | compatible = "renesas,r8a77965-sysc"; | ||
198 | reg = <0 0xe6180000 0 0x0400>; | ||
199 | #power-domain-cells = <1>; | ||
200 | }; | 144 | }; |
201 | 145 | ||
202 | gpio0: gpio@e6050000 { | 146 | gpio0: gpio@e6050000 { |
@@ -210,7 +154,7 @@ | |||
210 | #interrupt-cells = <2>; | 154 | #interrupt-cells = <2>; |
211 | interrupt-controller; | 155 | interrupt-controller; |
212 | clocks = <&cpg CPG_MOD 912>; | 156 | clocks = <&cpg CPG_MOD 912>; |
213 | power-domains = <&sysc 32>; | 157 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
214 | resets = <&cpg 912>; | 158 | resets = <&cpg 912>; |
215 | }; | 159 | }; |
216 | 160 | ||
@@ -225,7 +169,7 @@ | |||
225 | #interrupt-cells = <2>; | 169 | #interrupt-cells = <2>; |
226 | interrupt-controller; | 170 | interrupt-controller; |
227 | clocks = <&cpg CPG_MOD 911>; | 171 | clocks = <&cpg CPG_MOD 911>; |
228 | power-domains = <&sysc 32>; | 172 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
229 | resets = <&cpg 911>; | 173 | resets = <&cpg 911>; |
230 | }; | 174 | }; |
231 | 175 | ||
@@ -240,7 +184,7 @@ | |||
240 | #interrupt-cells = <2>; | 184 | #interrupt-cells = <2>; |
241 | interrupt-controller; | 185 | interrupt-controller; |
242 | clocks = <&cpg CPG_MOD 910>; | 186 | clocks = <&cpg CPG_MOD 910>; |
243 | power-domains = <&sysc 32>; | 187 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
244 | resets = <&cpg 910>; | 188 | resets = <&cpg 910>; |
245 | }; | 189 | }; |
246 | 190 | ||
@@ -255,7 +199,7 @@ | |||
255 | #interrupt-cells = <2>; | 199 | #interrupt-cells = <2>; |
256 | interrupt-controller; | 200 | interrupt-controller; |
257 | clocks = <&cpg CPG_MOD 909>; | 201 | clocks = <&cpg CPG_MOD 909>; |
258 | power-domains = <&sysc 32>; | 202 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
259 | resets = <&cpg 909>; | 203 | resets = <&cpg 909>; |
260 | }; | 204 | }; |
261 | 205 | ||
@@ -270,7 +214,7 @@ | |||
270 | #interrupt-cells = <2>; | 214 | #interrupt-cells = <2>; |
271 | interrupt-controller; | 215 | interrupt-controller; |
272 | clocks = <&cpg CPG_MOD 908>; | 216 | clocks = <&cpg CPG_MOD 908>; |
273 | power-domains = <&sysc 32>; | 217 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
274 | resets = <&cpg 908>; | 218 | resets = <&cpg 908>; |
275 | }; | 219 | }; |
276 | 220 | ||
@@ -285,7 +229,7 @@ | |||
285 | #interrupt-cells = <2>; | 229 | #interrupt-cells = <2>; |
286 | interrupt-controller; | 230 | interrupt-controller; |
287 | clocks = <&cpg CPG_MOD 907>; | 231 | clocks = <&cpg CPG_MOD 907>; |
288 | power-domains = <&sysc 32>; | 232 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
289 | resets = <&cpg 907>; | 233 | resets = <&cpg 907>; |
290 | }; | 234 | }; |
291 | 235 | ||
@@ -300,7 +244,7 @@ | |||
300 | #interrupt-cells = <2>; | 244 | #interrupt-cells = <2>; |
301 | interrupt-controller; | 245 | interrupt-controller; |
302 | clocks = <&cpg CPG_MOD 906>; | 246 | clocks = <&cpg CPG_MOD 906>; |
303 | power-domains = <&sysc 32>; | 247 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
304 | resets = <&cpg 906>; | 248 | resets = <&cpg 906>; |
305 | }; | 249 | }; |
306 | 250 | ||
@@ -315,10 +259,51 @@ | |||
315 | #interrupt-cells = <2>; | 259 | #interrupt-cells = <2>; |
316 | interrupt-controller; | 260 | interrupt-controller; |
317 | clocks = <&cpg CPG_MOD 905>; | 261 | clocks = <&cpg CPG_MOD 905>; |
318 | power-domains = <&sysc 32>; | 262 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
319 | resets = <&cpg 905>; | 263 | resets = <&cpg 905>; |
320 | }; | 264 | }; |
321 | 265 | ||
266 | pfc: pin-controller@e6060000 { | ||
267 | compatible = "renesas,pfc-r8a77965"; | ||
268 | reg = <0 0xe6060000 0 0x50c>; | ||
269 | }; | ||
270 | |||
271 | cpg: clock-controller@e6150000 { | ||
272 | compatible = "renesas,r8a77965-cpg-mssr"; | ||
273 | reg = <0 0xe6150000 0 0x1000>; | ||
274 | clocks = <&extal_clk>, <&extalr_clk>; | ||
275 | clock-names = "extal", "extalr"; | ||
276 | #clock-cells = <2>; | ||
277 | #power-domain-cells = <0>; | ||
278 | #reset-cells = <1>; | ||
279 | }; | ||
280 | |||
281 | rst: reset-controller@e6160000 { | ||
282 | compatible = "renesas,r8a77965-rst"; | ||
283 | reg = <0 0xe6160000 0 0x0200>; | ||
284 | }; | ||
285 | |||
286 | sysc: system-controller@e6180000 { | ||
287 | compatible = "renesas,r8a77965-sysc"; | ||
288 | reg = <0 0xe6180000 0 0x0400>; | ||
289 | #power-domain-cells = <1>; | ||
290 | }; | ||
291 | |||
292 | tsc: thermal@e6198000 { | ||
293 | compatible = "renesas,r8a77965-thermal"; | ||
294 | reg = <0 0xe6198000 0 0x100>, | ||
295 | <0 0xe61a0000 0 0x100>, | ||
296 | <0 0xe61a8000 0 0x100>; | ||
297 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, | ||
298 | <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | ||
299 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
300 | clocks = <&cpg CPG_MOD 522>; | ||
301 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
302 | resets = <&cpg 522>; | ||
303 | #thermal-sensor-cells = <1>; | ||
304 | status = "okay"; | ||
305 | }; | ||
306 | |||
322 | intc_ex: interrupt-controller@e61c0000 { | 307 | intc_ex: interrupt-controller@e61c0000 { |
323 | compatible = "renesas,intc-ex-r8a77965", "renesas,irqc"; | 308 | compatible = "renesas,intc-ex-r8a77965", "renesas,irqc"; |
324 | #interrupt-cells = <2>; | 309 | #interrupt-cells = <2>; |
@@ -331,10 +316,199 @@ | |||
331 | GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH | 316 | GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH |
332 | GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; | 317 | GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; |
333 | clocks = <&cpg CPG_MOD 407>; | 318 | clocks = <&cpg CPG_MOD 407>; |
334 | power-domains = <&sysc 32>; | 319 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
335 | resets = <&cpg 407>; | 320 | resets = <&cpg 407>; |
336 | }; | 321 | }; |
337 | 322 | ||
323 | i2c0: i2c@e6500000 { | ||
324 | #address-cells = <1>; | ||
325 | #size-cells = <0>; | ||
326 | compatible = "renesas,i2c-r8a77965", | ||
327 | "renesas,rcar-gen3-i2c"; | ||
328 | reg = <0 0xe6500000 0 0x40>; | ||
329 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
330 | clocks = <&cpg CPG_MOD 931>; | ||
331 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
332 | resets = <&cpg 931>; | ||
333 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | ||
334 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
335 | dma-names = "tx", "rx", "tx", "rx"; | ||
336 | i2c-scl-internal-delay-ns = <110>; | ||
337 | status = "disabled"; | ||
338 | }; | ||
339 | |||
340 | i2c1: i2c@e6508000 { | ||
341 | #address-cells = <1>; | ||
342 | #size-cells = <0>; | ||
343 | compatible = "renesas,i2c-r8a77965", | ||
344 | "renesas,rcar-gen3-i2c"; | ||
345 | reg = <0 0xe6508000 0 0x40>; | ||
346 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
347 | clocks = <&cpg CPG_MOD 930>; | ||
348 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
349 | resets = <&cpg 930>; | ||
350 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | ||
351 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
352 | dma-names = "tx", "rx", "tx", "rx"; | ||
353 | i2c-scl-internal-delay-ns = <6>; | ||
354 | status = "disabled"; | ||
355 | }; | ||
356 | |||
357 | i2c2: i2c@e6510000 { | ||
358 | #address-cells = <1>; | ||
359 | #size-cells = <0>; | ||
360 | compatible = "renesas,i2c-r8a77965", | ||
361 | "renesas,rcar-gen3-i2c"; | ||
362 | reg = <0 0xe6510000 0 0x40>; | ||
363 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
364 | clocks = <&cpg CPG_MOD 929>; | ||
365 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
366 | resets = <&cpg 929>; | ||
367 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | ||
368 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
369 | dma-names = "tx", "rx", "tx", "rx"; | ||
370 | i2c-scl-internal-delay-ns = <6>; | ||
371 | status = "disabled"; | ||
372 | }; | ||
373 | |||
374 | i2c3: i2c@e66d0000 { | ||
375 | #address-cells = <1>; | ||
376 | #size-cells = <0>; | ||
377 | compatible = "renesas,i2c-r8a77965", | ||
378 | "renesas,rcar-gen3-i2c"; | ||
379 | reg = <0 0xe66d0000 0 0x40>; | ||
380 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
381 | clocks = <&cpg CPG_MOD 928>; | ||
382 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
383 | resets = <&cpg 928>; | ||
384 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | ||
385 | dma-names = "tx", "rx"; | ||
386 | i2c-scl-internal-delay-ns = <110>; | ||
387 | status = "disabled"; | ||
388 | }; | ||
389 | |||
390 | i2c4: i2c@e66d8000 { | ||
391 | #address-cells = <1>; | ||
392 | #size-cells = <0>; | ||
393 | compatible = "renesas,i2c-r8a77965", | ||
394 | "renesas,rcar-gen3-i2c"; | ||
395 | reg = <0 0xe66d8000 0 0x40>; | ||
396 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
397 | clocks = <&cpg CPG_MOD 927>; | ||
398 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
399 | resets = <&cpg 927>; | ||
400 | dmas = <&dmac0 0x99>, <&dmac0 0x98>; | ||
401 | dma-names = "tx", "rx"; | ||
402 | i2c-scl-internal-delay-ns = <110>; | ||
403 | status = "disabled"; | ||
404 | }; | ||
405 | |||
406 | i2c5: i2c@e66e0000 { | ||
407 | #address-cells = <1>; | ||
408 | #size-cells = <0>; | ||
409 | compatible = "renesas,i2c-r8a77965", | ||
410 | "renesas,rcar-gen3-i2c"; | ||
411 | reg = <0 0xe66e0000 0 0x40>; | ||
412 | interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
413 | clocks = <&cpg CPG_MOD 919>; | ||
414 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
415 | resets = <&cpg 919>; | ||
416 | dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; | ||
417 | dma-names = "tx", "rx"; | ||
418 | i2c-scl-internal-delay-ns = <110>; | ||
419 | status = "disabled"; | ||
420 | }; | ||
421 | |||
422 | i2c6: i2c@e66e8000 { | ||
423 | #address-cells = <1>; | ||
424 | #size-cells = <0>; | ||
425 | compatible = "renesas,i2c-r8a77965", | ||
426 | "renesas,rcar-gen3-i2c"; | ||
427 | reg = <0 0xe66e8000 0 0x40>; | ||
428 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||
429 | clocks = <&cpg CPG_MOD 918>; | ||
430 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
431 | resets = <&cpg 918>; | ||
432 | dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; | ||
433 | dma-names = "tx", "rx"; | ||
434 | i2c-scl-internal-delay-ns = <6>; | ||
435 | status = "disabled"; | ||
436 | }; | ||
437 | |||
438 | i2c_dvfs: i2c@e60b0000 { | ||
439 | #address-cells = <1>; | ||
440 | #size-cells = <0>; | ||
441 | compatible = "renesas,iic-r8a77965", | ||
442 | "renesas,rcar-gen3-iic", | ||
443 | "renesas,rmobile-iic"; | ||
444 | reg = <0 0xe60b0000 0 0x425>; | ||
445 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | ||
446 | clocks = <&cpg CPG_MOD 926>; | ||
447 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
448 | resets = <&cpg 926>; | ||
449 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | ||
450 | dma-names = "tx", "rx"; | ||
451 | status = "disabled"; | ||
452 | }; | ||
453 | |||
454 | hsusb: usb@e6590000 { | ||
455 | compatible = "renesas,usbhs-r8a7796", | ||
456 | "renesas,rcar-gen3-usbhs"; | ||
457 | reg = <0 0xe6590000 0 0x100>; | ||
458 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | ||
459 | clocks = <&cpg CPG_MOD 704>; | ||
460 | dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, | ||
461 | <&usb_dmac1 0>, <&usb_dmac1 1>; | ||
462 | dma-names = "ch0", "ch1", "ch2", "ch3"; | ||
463 | renesas,buswait = <11>; | ||
464 | phys = <&usb2_phy0>; | ||
465 | phy-names = "usb"; | ||
466 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
467 | resets = <&cpg 704>; | ||
468 | status = "disabled"; | ||
469 | }; | ||
470 | |||
471 | usb_dmac0: dma-controller@e65a0000 { | ||
472 | compatible = "renesas,r8a77965-usb-dmac", | ||
473 | "renesas,usb-dmac"; | ||
474 | reg = <0 0xe65a0000 0 0x100>; | ||
475 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH | ||
476 | GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
477 | interrupt-names = "ch0", "ch1"; | ||
478 | clocks = <&cpg CPG_MOD 330>; | ||
479 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
480 | resets = <&cpg 330>; | ||
481 | #dma-cells = <1>; | ||
482 | dma-channels = <2>; | ||
483 | }; | ||
484 | |||
485 | usb_dmac1: dma-controller@e65b0000 { | ||
486 | compatible = "renesas,r8a77965-usb-dmac", | ||
487 | "renesas,usb-dmac"; | ||
488 | reg = <0 0xe65b0000 0 0x100>; | ||
489 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH | ||
490 | GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
491 | interrupt-names = "ch0", "ch1"; | ||
492 | clocks = <&cpg CPG_MOD 331>; | ||
493 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
494 | resets = <&cpg 331>; | ||
495 | #dma-cells = <1>; | ||
496 | dma-channels = <2>; | ||
497 | }; | ||
498 | |||
499 | usb3_phy0: usb-phy@e65ee000 { | ||
500 | compatible = "renesas,r8a77965-usb3-phy", | ||
501 | "renesas,rcar-gen3-usb3-phy"; | ||
502 | reg = <0 0xe65ee000 0 0x90>; | ||
503 | clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, | ||
504 | <&usb_extal_clk>; | ||
505 | clock-names = "usb3-if", "usb3s_clk", "usb_extal"; | ||
506 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
507 | resets = <&cpg 328>; | ||
508 | #phy-cells = <0>; | ||
509 | status = "disabled"; | ||
510 | }; | ||
511 | |||
338 | dmac0: dma-controller@e6700000 { | 512 | dmac0: dma-controller@e6700000 { |
339 | compatible = "renesas,dmac-r8a77965", | 513 | compatible = "renesas,dmac-r8a77965", |
340 | "renesas,rcar-dmac"; | 514 | "renesas,rcar-dmac"; |
@@ -363,7 +537,7 @@ | |||
363 | "ch12", "ch13", "ch14", "ch15"; | 537 | "ch12", "ch13", "ch14", "ch15"; |
364 | clocks = <&cpg CPG_MOD 219>; | 538 | clocks = <&cpg CPG_MOD 219>; |
365 | clock-names = "fck"; | 539 | clock-names = "fck"; |
366 | power-domains = <&sysc 32>; | 540 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
367 | resets = <&cpg 219>; | 541 | resets = <&cpg 219>; |
368 | #dma-cells = <1>; | 542 | #dma-cells = <1>; |
369 | dma-channels = <16>; | 543 | dma-channels = <16>; |
@@ -397,7 +571,7 @@ | |||
397 | "ch12", "ch13", "ch14", "ch15"; | 571 | "ch12", "ch13", "ch14", "ch15"; |
398 | clocks = <&cpg CPG_MOD 218>; | 572 | clocks = <&cpg CPG_MOD 218>; |
399 | clock-names = "fck"; | 573 | clock-names = "fck"; |
400 | power-domains = <&sysc 32>; | 574 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
401 | resets = <&cpg 218>; | 575 | resets = <&cpg 218>; |
402 | #dma-cells = <1>; | 576 | #dma-cells = <1>; |
403 | dma-channels = <16>; | 577 | dma-channels = <16>; |
@@ -431,12 +605,127 @@ | |||
431 | "ch12", "ch13", "ch14", "ch15"; | 605 | "ch12", "ch13", "ch14", "ch15"; |
432 | clocks = <&cpg CPG_MOD 217>; | 606 | clocks = <&cpg CPG_MOD 217>; |
433 | clock-names = "fck"; | 607 | clock-names = "fck"; |
434 | power-domains = <&sysc 32>; | 608 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
435 | resets = <&cpg 217>; | 609 | resets = <&cpg 217>; |
436 | #dma-cells = <1>; | 610 | #dma-cells = <1>; |
437 | dma-channels = <16>; | 611 | dma-channels = <16>; |
438 | }; | 612 | }; |
439 | 613 | ||
614 | avb: ethernet@e6800000 { | ||
615 | compatible = "renesas,etheravb-r8a77965", | ||
616 | "renesas,etheravb-rcar-gen3"; | ||
617 | reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; | ||
618 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, | ||
619 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | ||
620 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | ||
621 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
622 | <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, | ||
623 | <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, | ||
624 | <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, | ||
625 | <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, | ||
626 | <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
627 | <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, | ||
628 | <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, | ||
629 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
630 | <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
631 | <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | ||
632 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
633 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
634 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
635 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
636 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
637 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
638 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
639 | <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | ||
640 | <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | ||
641 | <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | ||
642 | <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
643 | interrupt-names = "ch0", "ch1", "ch2", "ch3", | ||
644 | "ch4", "ch5", "ch6", "ch7", | ||
645 | "ch8", "ch9", "ch10", "ch11", | ||
646 | "ch12", "ch13", "ch14", "ch15", | ||
647 | "ch16", "ch17", "ch18", "ch19", | ||
648 | "ch20", "ch21", "ch22", "ch23", | ||
649 | "ch24"; | ||
650 | clocks = <&cpg CPG_MOD 812>; | ||
651 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
652 | resets = <&cpg 812>; | ||
653 | phy-mode = "rgmii"; | ||
654 | #address-cells = <1>; | ||
655 | #size-cells = <0>; | ||
656 | status = "disabled"; | ||
657 | }; | ||
658 | |||
659 | pwm0: pwm@e6e30000 { | ||
660 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
661 | reg = <0 0xe6e30000 0 8>; | ||
662 | #pwm-cells = <2>; | ||
663 | clocks = <&cpg CPG_MOD 523>; | ||
664 | resets = <&cpg 523>; | ||
665 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
666 | status = "disabled"; | ||
667 | }; | ||
668 | |||
669 | pwm1: pwm@e6e31000 { | ||
670 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
671 | reg = <0 0xe6e31000 0 8>; | ||
672 | #pwm-cells = <2>; | ||
673 | clocks = <&cpg CPG_MOD 523>; | ||
674 | resets = <&cpg 523>; | ||
675 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
676 | status = "disabled"; | ||
677 | }; | ||
678 | |||
679 | pwm2: pwm@e6e32000 { | ||
680 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
681 | reg = <0 0xe6e32000 0 8>; | ||
682 | #pwm-cells = <2>; | ||
683 | clocks = <&cpg CPG_MOD 523>; | ||
684 | resets = <&cpg 523>; | ||
685 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
686 | status = "disabled"; | ||
687 | }; | ||
688 | |||
689 | pwm3: pwm@e6e33000 { | ||
690 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
691 | reg = <0 0xe6e33000 0 8>; | ||
692 | #pwm-cells = <2>; | ||
693 | clocks = <&cpg CPG_MOD 523>; | ||
694 | resets = <&cpg 523>; | ||
695 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
696 | status = "disabled"; | ||
697 | }; | ||
698 | |||
699 | pwm4: pwm@e6e34000 { | ||
700 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
701 | reg = <0 0xe6e34000 0 8>; | ||
702 | #pwm-cells = <2>; | ||
703 | clocks = <&cpg CPG_MOD 523>; | ||
704 | resets = <&cpg 523>; | ||
705 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
706 | status = "disabled"; | ||
707 | }; | ||
708 | |||
709 | pwm5: pwm@e6e35000 { | ||
710 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
711 | reg = <0 0xe6e35000 0 8>; | ||
712 | #pwm-cells = <2>; | ||
713 | clocks = <&cpg CPG_MOD 523>; | ||
714 | resets = <&cpg 523>; | ||
715 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
716 | status = "disabled"; | ||
717 | }; | ||
718 | |||
719 | pwm6: pwm@e6e36000 { | ||
720 | compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; | ||
721 | reg = <0 0xe6e36000 0 8>; | ||
722 | #pwm-cells = <2>; | ||
723 | clocks = <&cpg CPG_MOD 523>; | ||
724 | resets = <&cpg 523>; | ||
725 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
726 | status = "disabled"; | ||
727 | }; | ||
728 | |||
440 | scif0: serial@e6e60000 { | 729 | scif0: serial@e6e60000 { |
441 | compatible = "renesas,scif-r8a77965", | 730 | compatible = "renesas,scif-r8a77965", |
442 | "renesas,rcar-gen3-scif", "renesas,scif"; | 731 | "renesas,rcar-gen3-scif", "renesas,scif"; |
@@ -449,7 +738,7 @@ | |||
449 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, | 738 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, |
450 | <&dmac2 0x51>, <&dmac2 0x50>; | 739 | <&dmac2 0x51>, <&dmac2 0x50>; |
451 | dma-names = "tx", "rx", "tx", "rx"; | 740 | dma-names = "tx", "rx", "tx", "rx"; |
452 | power-domains = <&sysc 32>; | 741 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
453 | resets = <&cpg 207>; | 742 | resets = <&cpg 207>; |
454 | status = "disabled"; | 743 | status = "disabled"; |
455 | }; | 744 | }; |
@@ -466,7 +755,7 @@ | |||
466 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, | 755 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, |
467 | <&dmac2 0x53>, <&dmac2 0x52>; | 756 | <&dmac2 0x53>, <&dmac2 0x52>; |
468 | dma-names = "tx", "rx", "tx", "rx"; | 757 | dma-names = "tx", "rx", "tx", "rx"; |
469 | power-domains = <&sysc 32>; | 758 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
470 | resets = <&cpg 206>; | 759 | resets = <&cpg 206>; |
471 | status = "disabled"; | 760 | status = "disabled"; |
472 | }; | 761 | }; |
@@ -480,7 +769,7 @@ | |||
480 | <&cpg CPG_CORE 20>, | 769 | <&cpg CPG_CORE 20>, |
481 | <&scif_clk>; | 770 | <&scif_clk>; |
482 | clock-names = "fck", "brg_int", "scif_clk"; | 771 | clock-names = "fck", "brg_int", "scif_clk"; |
483 | power-domains = <&sysc 32>; | 772 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
484 | resets = <&cpg 310>; | 773 | resets = <&cpg 310>; |
485 | status = "disabled"; | 774 | status = "disabled"; |
486 | }; | 775 | }; |
@@ -496,7 +785,7 @@ | |||
496 | clock-names = "fck", "brg_int", "scif_clk"; | 785 | clock-names = "fck", "brg_int", "scif_clk"; |
497 | dmas = <&dmac0 0x57>, <&dmac0 0x56>; | 786 | dmas = <&dmac0 0x57>, <&dmac0 0x56>; |
498 | dma-names = "tx", "rx"; | 787 | dma-names = "tx", "rx"; |
499 | power-domains = <&sysc 32>; | 788 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
500 | resets = <&cpg 204>; | 789 | resets = <&cpg 204>; |
501 | status = "disabled"; | 790 | status = "disabled"; |
502 | }; | 791 | }; |
@@ -512,7 +801,7 @@ | |||
512 | clock-names = "fck", "brg_int", "scif_clk"; | 801 | clock-names = "fck", "brg_int", "scif_clk"; |
513 | dmas = <&dmac0 0x59>, <&dmac0 0x58>; | 802 | dmas = <&dmac0 0x59>, <&dmac0 0x58>; |
514 | dma-names = "tx", "rx"; | 803 | dma-names = "tx", "rx"; |
515 | power-domains = <&sysc 32>; | 804 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
516 | resets = <&cpg 203>; | 805 | resets = <&cpg 203>; |
517 | status = "disabled"; | 806 | status = "disabled"; |
518 | }; | 807 | }; |
@@ -529,243 +818,772 @@ | |||
529 | dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, | 818 | dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, |
530 | <&dmac2 0x5b>, <&dmac2 0x5a>; | 819 | <&dmac2 0x5b>, <&dmac2 0x5a>; |
531 | dma-names = "tx", "rx", "tx", "rx"; | 820 | dma-names = "tx", "rx", "tx", "rx"; |
532 | power-domains = <&sysc 32>; | 821 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
533 | resets = <&cpg 202>; | 822 | resets = <&cpg 202>; |
534 | status = "disabled"; | 823 | status = "disabled"; |
535 | }; | 824 | }; |
536 | 825 | ||
537 | avb: ethernet@e6800000 { | 826 | msiof0: spi@e6e90000 { |
538 | compatible = "renesas,etheravb-r8a77965", | 827 | compatible = "renesas,msiof-r8a77965", |
539 | "renesas,etheravb-rcar-gen3"; | 828 | "renesas,rcar-gen3-msiof"; |
540 | reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; | 829 | reg = <0 0xe6e90000 0 0x0064>; |
541 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, | 830 | interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; |
542 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | 831 | clocks = <&cpg CPG_MOD 211>; |
543 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | 832 | dmas = <&dmac1 0x41>, <&dmac1 0x40>, |
544 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | 833 | <&dmac2 0x41>, <&dmac2 0x40>; |
545 | <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, | 834 | dma-names = "tx", "rx", "tx", "rx"; |
546 | <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, | 835 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; |
547 | <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, | 836 | resets = <&cpg 211>; |
548 | <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, | ||
549 | <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
550 | <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, | ||
551 | <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, | ||
552 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
553 | <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
554 | <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | ||
555 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
556 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
557 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
558 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
559 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
560 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
561 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
562 | <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | ||
563 | <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | ||
564 | <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | ||
565 | <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
566 | interrupt-names = "ch0", "ch1", "ch2", "ch3", | ||
567 | "ch4", "ch5", "ch6", "ch7", | ||
568 | "ch8", "ch9", "ch10", "ch11", | ||
569 | "ch12", "ch13", "ch14", "ch15", | ||
570 | "ch16", "ch17", "ch18", "ch19", | ||
571 | "ch20", "ch21", "ch22", "ch23", | ||
572 | "ch24"; | ||
573 | clocks = <&cpg CPG_MOD 812>; | ||
574 | power-domains = <&sysc 32>; | ||
575 | resets = <&cpg 812>; | ||
576 | phy-mode = "rgmii"; | ||
577 | #address-cells = <1>; | 837 | #address-cells = <1>; |
578 | #size-cells = <0>; | 838 | #size-cells = <0>; |
579 | status = "disabled"; | 839 | status = "disabled"; |
580 | }; | 840 | }; |
581 | 841 | ||
582 | csi20: csi2@fea80000 { | 842 | msiof1: spi@e6ea0000 { |
583 | reg = <0 0xfea80000 0 0x10000>; | 843 | compatible = "renesas,msiof-r8a77965", |
584 | /* placeholder */ | 844 | "renesas,rcar-gen3-msiof"; |
845 | reg = <0 0xe6ea0000 0 0x0064>; | ||
846 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; | ||
847 | clocks = <&cpg CPG_MOD 210>; | ||
848 | dmas = <&dmac1 0x43>, <&dmac1 0x42>, | ||
849 | <&dmac2 0x43>, <&dmac2 0x42>; | ||
850 | dma-names = "tx", "rx", "tx", "rx"; | ||
851 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
852 | resets = <&cpg 210>; | ||
853 | #address-cells = <1>; | ||
854 | #size-cells = <0>; | ||
855 | status = "disabled"; | ||
856 | }; | ||
857 | |||
858 | msiof2: spi@e6c00000 { | ||
859 | compatible = "renesas,msiof-r8a77965", | ||
860 | "renesas,rcar-gen3-msiof"; | ||
861 | reg = <0 0xe6c00000 0 0x0064>; | ||
862 | interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; | ||
863 | clocks = <&cpg CPG_MOD 209>; | ||
864 | dmas = <&dmac0 0x45>, <&dmac0 0x44>; | ||
865 | dma-names = "tx", "rx"; | ||
866 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
867 | resets = <&cpg 209>; | ||
868 | #address-cells = <1>; | ||
869 | #size-cells = <0>; | ||
870 | status = "disabled"; | ||
871 | }; | ||
872 | |||
873 | msiof3: spi@e6c10000 { | ||
874 | compatible = "renesas,msiof-r8a77965", | ||
875 | "renesas,rcar-gen3-msiof"; | ||
876 | reg = <0 0xe6c10000 0 0x0064>; | ||
877 | interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; | ||
878 | clocks = <&cpg CPG_MOD 208>; | ||
879 | dmas = <&dmac0 0x47>, <&dmac0 0x46>; | ||
880 | dma-names = "tx", "rx"; | ||
881 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
882 | resets = <&cpg 208>; | ||
883 | #address-cells = <1>; | ||
884 | #size-cells = <0>; | ||
885 | status = "disabled"; | ||
886 | }; | ||
887 | |||
888 | vin0: video@e6ef0000 { | ||
889 | compatible = "renesas,vin-r8a77965"; | ||
890 | reg = <0 0xe6ef0000 0 0x1000>; | ||
891 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | ||
892 | clocks = <&cpg CPG_MOD 811>; | ||
893 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
894 | resets = <&cpg 811>; | ||
895 | renesas,id = <0>; | ||
896 | status = "disabled"; | ||
585 | 897 | ||
586 | ports { | 898 | ports { |
587 | #address-cells = <1>; | 899 | #address-cells = <1>; |
588 | #size-cells = <0>; | 900 | #size-cells = <0>; |
901 | |||
902 | port@1 { | ||
903 | #address-cells = <1>; | ||
904 | #size-cells = <0>; | ||
905 | |||
906 | reg = <1>; | ||
907 | |||
908 | vin0csi20: endpoint@0 { | ||
909 | reg = <0>; | ||
910 | remote-endpoint= <&csi20vin0>; | ||
911 | }; | ||
912 | vin0csi40: endpoint@2 { | ||
913 | reg = <2>; | ||
914 | remote-endpoint= <&csi40vin0>; | ||
915 | }; | ||
916 | }; | ||
589 | }; | 917 | }; |
590 | }; | 918 | }; |
591 | 919 | ||
592 | csi40: csi2@feaa0000 { | 920 | vin1: video@e6ef1000 { |
593 | reg = <0 0xfeaa0000 0 0x10000>; | 921 | compatible = "renesas,vin-r8a77965"; |
594 | /* placeholder */ | 922 | reg = <0 0xe6ef1000 0 0x1000>; |
923 | interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | ||
924 | clocks = <&cpg CPG_MOD 810>; | ||
925 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
926 | resets = <&cpg 810>; | ||
927 | renesas,id = <1>; | ||
928 | status = "disabled"; | ||
595 | 929 | ||
596 | ports { | 930 | ports { |
597 | #address-cells = <1>; | 931 | #address-cells = <1>; |
598 | #size-cells = <0>; | 932 | #size-cells = <0>; |
599 | }; | ||
600 | }; | ||
601 | 933 | ||
602 | vin0: video@e6ef0000 { | 934 | port@1 { |
603 | reg = <0 0xe6ef0000 0 0x1000>; | 935 | #address-cells = <1>; |
604 | /* placeholder */ | 936 | #size-cells = <0>; |
605 | }; | ||
606 | 937 | ||
607 | vin1: video@e6ef1000 { | 938 | reg = <1>; |
608 | reg = <0 0xe6ef1000 0 0x1000>; | 939 | |
609 | /* placeholder */ | 940 | vin1csi20: endpoint@0 { |
941 | reg = <0>; | ||
942 | remote-endpoint= <&csi20vin1>; | ||
943 | }; | ||
944 | vin1csi40: endpoint@2 { | ||
945 | reg = <2>; | ||
946 | remote-endpoint= <&csi40vin1>; | ||
947 | }; | ||
948 | }; | ||
949 | }; | ||
610 | }; | 950 | }; |
611 | 951 | ||
612 | vin2: video@e6ef2000 { | 952 | vin2: video@e6ef2000 { |
953 | compatible = "renesas,vin-r8a77965"; | ||
613 | reg = <0 0xe6ef2000 0 0x1000>; | 954 | reg = <0 0xe6ef2000 0 0x1000>; |
614 | /* placeholder */ | 955 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; |
956 | clocks = <&cpg CPG_MOD 809>; | ||
957 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
958 | resets = <&cpg 809>; | ||
959 | renesas,id = <2>; | ||
960 | status = "disabled"; | ||
961 | |||
962 | ports { | ||
963 | #address-cells = <1>; | ||
964 | #size-cells = <0>; | ||
965 | |||
966 | port@1 { | ||
967 | #address-cells = <1>; | ||
968 | #size-cells = <0>; | ||
969 | |||
970 | reg = <1>; | ||
971 | |||
972 | vin2csi20: endpoint@0 { | ||
973 | reg = <0>; | ||
974 | remote-endpoint= <&csi20vin2>; | ||
975 | }; | ||
976 | vin2csi40: endpoint@2 { | ||
977 | reg = <2>; | ||
978 | remote-endpoint= <&csi40vin2>; | ||
979 | }; | ||
980 | }; | ||
981 | }; | ||
615 | }; | 982 | }; |
616 | 983 | ||
617 | vin3: video@e6ef3000 { | 984 | vin3: video@e6ef3000 { |
985 | compatible = "renesas,vin-r8a77965"; | ||
618 | reg = <0 0xe6ef3000 0 0x1000>; | 986 | reg = <0 0xe6ef3000 0 0x1000>; |
619 | /* placeholder */ | 987 | interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; |
988 | clocks = <&cpg CPG_MOD 808>; | ||
989 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
990 | resets = <&cpg 808>; | ||
991 | renesas,id = <3>; | ||
992 | status = "disabled"; | ||
993 | |||
994 | ports { | ||
995 | #address-cells = <1>; | ||
996 | #size-cells = <0>; | ||
997 | |||
998 | port@1 { | ||
999 | #address-cells = <1>; | ||
1000 | #size-cells = <0>; | ||
1001 | |||
1002 | reg = <1>; | ||
1003 | |||
1004 | vin3csi20: endpoint@0 { | ||
1005 | reg = <0>; | ||
1006 | remote-endpoint= <&csi20vin3>; | ||
1007 | }; | ||
1008 | vin3csi40: endpoint@2 { | ||
1009 | reg = <2>; | ||
1010 | remote-endpoint= <&csi40vin3>; | ||
1011 | }; | ||
1012 | }; | ||
1013 | }; | ||
620 | }; | 1014 | }; |
621 | 1015 | ||
622 | vin4: video@e6ef4000 { | 1016 | vin4: video@e6ef4000 { |
1017 | compatible = "renesas,vin-r8a77965"; | ||
623 | reg = <0 0xe6ef4000 0 0x1000>; | 1018 | reg = <0 0xe6ef4000 0 0x1000>; |
624 | /* placeholder */ | 1019 | interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; |
1020 | clocks = <&cpg CPG_MOD 807>; | ||
1021 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1022 | resets = <&cpg 807>; | ||
1023 | renesas,id = <4>; | ||
1024 | status = "disabled"; | ||
1025 | |||
1026 | ports { | ||
1027 | #address-cells = <1>; | ||
1028 | #size-cells = <0>; | ||
1029 | |||
1030 | port@1 { | ||
1031 | #address-cells = <1>; | ||
1032 | #size-cells = <0>; | ||
1033 | |||
1034 | reg = <1>; | ||
1035 | |||
1036 | vin4csi20: endpoint@0 { | ||
1037 | reg = <0>; | ||
1038 | remote-endpoint= <&csi20vin4>; | ||
1039 | }; | ||
1040 | vin4csi40: endpoint@2 { | ||
1041 | reg = <2>; | ||
1042 | remote-endpoint= <&csi40vin4>; | ||
1043 | }; | ||
1044 | }; | ||
1045 | }; | ||
625 | }; | 1046 | }; |
626 | 1047 | ||
627 | vin5: video@e6ef5000 { | 1048 | vin5: video@e6ef5000 { |
1049 | compatible = "renesas,vin-r8a77965"; | ||
628 | reg = <0 0xe6ef5000 0 0x1000>; | 1050 | reg = <0 0xe6ef5000 0 0x1000>; |
629 | /* placeholder */ | 1051 | interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; |
1052 | clocks = <&cpg CPG_MOD 806>; | ||
1053 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1054 | resets = <&cpg 806>; | ||
1055 | renesas,id = <5>; | ||
1056 | status = "disabled"; | ||
1057 | |||
1058 | ports { | ||
1059 | #address-cells = <1>; | ||
1060 | #size-cells = <0>; | ||
1061 | |||
1062 | port@1 { | ||
1063 | #address-cells = <1>; | ||
1064 | #size-cells = <0>; | ||
1065 | |||
1066 | reg = <1>; | ||
1067 | |||
1068 | vin5csi20: endpoint@0 { | ||
1069 | reg = <0>; | ||
1070 | remote-endpoint= <&csi20vin5>; | ||
1071 | }; | ||
1072 | vin5csi40: endpoint@2 { | ||
1073 | reg = <2>; | ||
1074 | remote-endpoint= <&csi40vin5>; | ||
1075 | }; | ||
1076 | }; | ||
1077 | }; | ||
630 | }; | 1078 | }; |
631 | 1079 | ||
632 | vin6: video@e6ef6000 { | 1080 | vin6: video@e6ef6000 { |
1081 | compatible = "renesas,vin-r8a77965"; | ||
633 | reg = <0 0xe6ef6000 0 0x1000>; | 1082 | reg = <0 0xe6ef6000 0 0x1000>; |
634 | /* placeholder */ | 1083 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; |
1084 | clocks = <&cpg CPG_MOD 805>; | ||
1085 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1086 | resets = <&cpg 805>; | ||
1087 | renesas,id = <6>; | ||
1088 | status = "disabled"; | ||
1089 | |||
1090 | ports { | ||
1091 | #address-cells = <1>; | ||
1092 | #size-cells = <0>; | ||
1093 | |||
1094 | port@1 { | ||
1095 | #address-cells = <1>; | ||
1096 | #size-cells = <0>; | ||
1097 | |||
1098 | reg = <1>; | ||
1099 | |||
1100 | vin6csi20: endpoint@0 { | ||
1101 | reg = <0>; | ||
1102 | remote-endpoint= <&csi20vin6>; | ||
1103 | }; | ||
1104 | vin6csi40: endpoint@2 { | ||
1105 | reg = <2>; | ||
1106 | remote-endpoint= <&csi40vin6>; | ||
1107 | }; | ||
1108 | }; | ||
1109 | }; | ||
635 | }; | 1110 | }; |
636 | 1111 | ||
637 | vin7: video@e6ef7000 { | 1112 | vin7: video@e6ef7000 { |
1113 | compatible = "renesas,vin-r8a77965"; | ||
638 | reg = <0 0xe6ef7000 0 0x1000>; | 1114 | reg = <0 0xe6ef7000 0 0x1000>; |
1115 | interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; | ||
1116 | clocks = <&cpg CPG_MOD 804>; | ||
1117 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1118 | resets = <&cpg 804>; | ||
1119 | renesas,id = <7>; | ||
1120 | status = "disabled"; | ||
1121 | |||
1122 | ports { | ||
1123 | #address-cells = <1>; | ||
1124 | #size-cells = <0>; | ||
1125 | |||
1126 | port@1 { | ||
1127 | #address-cells = <1>; | ||
1128 | #size-cells = <0>; | ||
1129 | |||
1130 | reg = <1>; | ||
1131 | |||
1132 | vin7csi20: endpoint@0 { | ||
1133 | reg = <0>; | ||
1134 | remote-endpoint= <&csi20vin7>; | ||
1135 | }; | ||
1136 | vin7csi40: endpoint@2 { | ||
1137 | reg = <2>; | ||
1138 | remote-endpoint= <&csi40vin7>; | ||
1139 | }; | ||
1140 | }; | ||
1141 | }; | ||
1142 | }; | ||
1143 | |||
1144 | rcar_sound: sound@ec500000 { | ||
1145 | reg = <0 0xec500000 0 0x1000>, /* SCU */ | ||
1146 | <0 0xec5a0000 0 0x100>, /* ADG */ | ||
1147 | <0 0xec540000 0 0x1000>, /* SSIU */ | ||
1148 | <0 0xec541000 0 0x280>, /* SSI */ | ||
1149 | <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ | ||
639 | /* placeholder */ | 1150 | /* placeholder */ |
1151 | |||
1152 | rcar_sound,dvc { | ||
1153 | dvc0: dvc-0 { | ||
1154 | }; | ||
1155 | dvc1: dvc-1 { | ||
1156 | }; | ||
1157 | }; | ||
1158 | |||
1159 | rcar_sound,src { | ||
1160 | src0: src-0 { | ||
1161 | }; | ||
1162 | src1: src-1 { | ||
1163 | }; | ||
1164 | }; | ||
1165 | |||
1166 | rcar_sound,ssi { | ||
1167 | ssi0: ssi-0 { | ||
1168 | }; | ||
1169 | ssi1: ssi-1 { | ||
1170 | }; | ||
1171 | }; | ||
1172 | |||
1173 | ports { | ||
1174 | #address-cells = <1>; | ||
1175 | #size-cells = <0>; | ||
1176 | port@0 { | ||
1177 | reg = <0>; | ||
1178 | }; | ||
1179 | }; | ||
1180 | }; | ||
1181 | |||
1182 | xhci0: usb@ee000000 { | ||
1183 | compatible = "renesas,xhci-r8a77965", | ||
1184 | "renesas,rcar-gen3-xhci"; | ||
1185 | reg = <0 0xee000000 0 0xc00>; | ||
1186 | interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; | ||
1187 | clocks = <&cpg CPG_MOD 328>; | ||
1188 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1189 | resets = <&cpg 328>; | ||
1190 | status = "disabled"; | ||
1191 | }; | ||
1192 | |||
1193 | usb3_peri0: usb@ee020000 { | ||
1194 | compatible = "renesas,r8a77965-usb3-peri", | ||
1195 | "renesas,rcar-gen3-usb3-peri"; | ||
1196 | reg = <0 0xee020000 0 0x400>; | ||
1197 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; | ||
1198 | clocks = <&cpg CPG_MOD 328>; | ||
1199 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1200 | resets = <&cpg 328>; | ||
1201 | status = "disabled"; | ||
640 | }; | 1202 | }; |
641 | 1203 | ||
642 | ohci0: usb@ee080000 { | 1204 | ohci0: usb@ee080000 { |
1205 | compatible = "generic-ohci"; | ||
643 | reg = <0 0xee080000 0 0x100>; | 1206 | reg = <0 0xee080000 0 0x100>; |
644 | /* placeholder */ | 1207 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
1208 | clocks = <&cpg CPG_MOD 703>; | ||
1209 | phys = <&usb2_phy0>; | ||
1210 | phy-names = "usb"; | ||
1211 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1212 | resets = <&cpg 703>; | ||
1213 | status = "disabled"; | ||
1214 | }; | ||
1215 | |||
1216 | ohci1: usb@ee0a0000 { | ||
1217 | compatible = "generic-ohci"; | ||
1218 | reg = <0 0xee0a0000 0 0x100>; | ||
1219 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | ||
1220 | clocks = <&cpg CPG_MOD 702>; | ||
1221 | phys = <&usb2_phy1>; | ||
1222 | phy-names = "usb"; | ||
1223 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1224 | resets = <&cpg 702>; | ||
1225 | status = "disabled"; | ||
645 | }; | 1226 | }; |
646 | 1227 | ||
647 | ehci0: usb@ee080100 { | 1228 | ehci0: usb@ee080100 { |
1229 | compatible = "generic-ehci"; | ||
648 | reg = <0 0xee080100 0 0x100>; | 1230 | reg = <0 0xee080100 0 0x100>; |
649 | /* placeholder */ | 1231 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
1232 | clocks = <&cpg CPG_MOD 703>; | ||
1233 | phys = <&usb2_phy0>; | ||
1234 | phy-names = "usb"; | ||
1235 | companion = <&ohci0>; | ||
1236 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1237 | resets = <&cpg 703>; | ||
1238 | status = "disabled"; | ||
1239 | }; | ||
1240 | |||
1241 | ehci1: usb@ee0a0100 { | ||
1242 | compatible = "generic-ehci"; | ||
1243 | reg = <0 0xee0a0100 0 0x100>; | ||
1244 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | ||
1245 | clocks = <&cpg CPG_MOD 702>; | ||
1246 | phys = <&usb2_phy1>; | ||
1247 | phy-names = "usb"; | ||
1248 | companion = <&ohci1>; | ||
1249 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1250 | resets = <&cpg 702>; | ||
1251 | status = "disabled"; | ||
650 | }; | 1252 | }; |
651 | 1253 | ||
652 | usb2_phy0: usb-phy@ee080200 { | 1254 | usb2_phy0: usb-phy@ee080200 { |
1255 | compatible = "renesas,usb2-phy-r8a77965", | ||
1256 | "renesas,rcar-gen3-usb2-phy"; | ||
653 | reg = <0 0xee080200 0 0x700>; | 1257 | reg = <0 0xee080200 0 0x700>; |
654 | /* placeholder */ | 1258 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
1259 | clocks = <&cpg CPG_MOD 703>; | ||
1260 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1261 | resets = <&cpg 703>; | ||
1262 | #phy-cells = <0>; | ||
1263 | status = "disabled"; | ||
655 | }; | 1264 | }; |
656 | 1265 | ||
657 | usb2_phy1: usb-phy@ee0a0200 { | 1266 | usb2_phy1: usb-phy@ee0a0200 { |
1267 | compatible = "renesas,usb2-phy-r8a77965", | ||
1268 | "renesas,rcar-gen3-usb2-phy"; | ||
658 | reg = <0 0xee0a0200 0 0x700>; | 1269 | reg = <0 0xee0a0200 0 0x700>; |
659 | /* placeholder */ | 1270 | clocks = <&cpg CPG_MOD 703>; |
1271 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1272 | resets = <&cpg 703>; | ||
1273 | #phy-cells = <0>; | ||
1274 | status = "disabled"; | ||
660 | }; | 1275 | }; |
661 | 1276 | ||
662 | ohci1: usb@ee0a0000 { | 1277 | sdhi0: sd@ee100000 { |
663 | reg = <0 0xee0a0000 0 0x100>; | 1278 | compatible = "renesas,sdhi-r8a77965", |
664 | /* placeholder */ | 1279 | "renesas,rcar-gen3-sdhi"; |
1280 | reg = <0 0xee100000 0 0x2000>; | ||
1281 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | ||
1282 | clocks = <&cpg CPG_MOD 314>; | ||
1283 | max-frequency = <200000000>; | ||
1284 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1285 | resets = <&cpg 314>; | ||
1286 | status = "disabled"; | ||
665 | }; | 1287 | }; |
666 | 1288 | ||
667 | ehci1: usb@ee0a0100 { | 1289 | sdhi1: sd@ee120000 { |
668 | reg = <0 0xee0a0100 0 0x100>; | 1290 | compatible = "renesas,sdhi-r8a77965", |
669 | /* placeholder */ | 1291 | "renesas,rcar-gen3-sdhi"; |
1292 | reg = <0 0xee120000 0 0x2000>; | ||
1293 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; | ||
1294 | clocks = <&cpg CPG_MOD 313>; | ||
1295 | max-frequency = <200000000>; | ||
1296 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1297 | resets = <&cpg 313>; | ||
1298 | status = "disabled"; | ||
670 | }; | 1299 | }; |
671 | 1300 | ||
672 | i2c0: i2c@e6500000 { | 1301 | sdhi2: sd@ee140000 { |
673 | reg = <0 0xe6500000 0 0x40>; | 1302 | compatible = "renesas,sdhi-r8a77965", |
674 | /* placeholder */ | 1303 | "renesas,rcar-gen3-sdhi"; |
1304 | reg = <0 0xee140000 0 0x2000>; | ||
1305 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
1306 | clocks = <&cpg CPG_MOD 312>; | ||
1307 | max-frequency = <200000000>; | ||
1308 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1309 | resets = <&cpg 312>; | ||
1310 | status = "disabled"; | ||
675 | }; | 1311 | }; |
676 | 1312 | ||
677 | i2c1: i2c@e6508000 { | 1313 | sdhi3: sd@ee160000 { |
678 | reg = <0 0xe6508000 0 0x40>; | 1314 | compatible = "renesas,sdhi-r8a77965", |
679 | /* placeholder */ | 1315 | "renesas,rcar-gen3-sdhi"; |
1316 | reg = <0 0xee160000 0 0x2000>; | ||
1317 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | ||
1318 | clocks = <&cpg CPG_MOD 311>; | ||
1319 | max-frequency = <200000000>; | ||
1320 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1321 | resets = <&cpg 311>; | ||
1322 | status = "disabled"; | ||
680 | }; | 1323 | }; |
681 | 1324 | ||
682 | i2c2: i2c@e6510000 { | 1325 | gic: interrupt-controller@f1010000 { |
683 | #address-cells = <1>; | 1326 | compatible = "arm,gic-400"; |
684 | #size-cells = <0>; | 1327 | #interrupt-cells = <3>; |
1328 | #address-cells = <0>; | ||
1329 | interrupt-controller; | ||
1330 | reg = <0x0 0xf1010000 0 0x1000>, | ||
1331 | <0x0 0xf1020000 0 0x20000>, | ||
1332 | <0x0 0xf1040000 0 0x20000>, | ||
1333 | <0x0 0xf1060000 0 0x20000>; | ||
1334 | interrupts = <GIC_PPI 9 | ||
1335 | (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; | ||
1336 | clocks = <&cpg CPG_MOD 408>; | ||
1337 | clock-names = "clk"; | ||
1338 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1339 | resets = <&cpg 408>; | ||
1340 | }; | ||
685 | 1341 | ||
686 | reg = <0 0xe6510000 0 0x40>; | 1342 | pciec0: pcie@fe000000 { |
1343 | reg = <0 0xfe000000 0 0x80000>; | ||
687 | /* placeholder */ | 1344 | /* placeholder */ |
688 | }; | 1345 | }; |
689 | 1346 | ||
690 | i2c3: i2c@e66d0000 { | 1347 | pciec1: pcie@ee800000 { |
691 | reg = <0 0xe66d0000 0 0x40>; | 1348 | reg = <0 0xee800000 0 0x80000>; |
692 | /* placeholder */ | 1349 | /* placeholder */ |
693 | }; | 1350 | }; |
694 | 1351 | ||
695 | i2c4: i2c@e66d8000 { | 1352 | fcpf0: fcp@fe950000 { |
696 | #address-cells = <1>; | 1353 | compatible = "renesas,fcpf"; |
697 | #size-cells = <0>; | 1354 | reg = <0 0xfe950000 0 0x200>; |
1355 | clocks = <&cpg CPG_MOD 615>; | ||
1356 | power-domains = <&sysc R8A77965_PD_A3VP>; | ||
1357 | resets = <&cpg 615>; | ||
1358 | }; | ||
698 | 1359 | ||
699 | reg = <0 0xe66d8000 0 0x40>; | 1360 | vspb: vsp@fe960000 { |
700 | /* placeholder */ | 1361 | compatible = "renesas,vsp2"; |
1362 | reg = <0 0xfe960000 0 0x8000>; | ||
1363 | interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; | ||
1364 | clocks = <&cpg CPG_MOD 626>; | ||
1365 | power-domains = <&sysc R8A77965_PD_A3VP>; | ||
1366 | resets = <&cpg 626>; | ||
1367 | |||
1368 | renesas,fcp = <&fcpvb0>; | ||
701 | }; | 1369 | }; |
702 | 1370 | ||
703 | i2c5: i2c@e66e0000 { | 1371 | fcpvb0: fcp@fe96f000 { |
704 | reg = <0 0xe66e0000 0 0x40>; | 1372 | compatible = "renesas,fcpv"; |
705 | /* placeholder */ | 1373 | reg = <0 0xfe96f000 0 0x200>; |
1374 | clocks = <&cpg CPG_MOD 607>; | ||
1375 | power-domains = <&sysc R8A77965_PD_A3VP>; | ||
1376 | resets = <&cpg 607>; | ||
706 | }; | 1377 | }; |
707 | 1378 | ||
708 | i2c6: i2c@e66e8000 { | 1379 | vspi0: vsp@fe9a0000 { |
709 | reg = <0 0xe66e8000 0 0x40>; | 1380 | compatible = "renesas,vsp2"; |
710 | /* placeholder */ | 1381 | reg = <0 0xfe9a0000 0 0x8000>; |
1382 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; | ||
1383 | clocks = <&cpg CPG_MOD 631>; | ||
1384 | power-domains = <&sysc R8A77965_PD_A3VP>; | ||
1385 | resets = <&cpg 631>; | ||
1386 | |||
1387 | renesas,fcp = <&fcpvi0>; | ||
711 | }; | 1388 | }; |
712 | 1389 | ||
713 | i2c_dvfs: i2c@e60b0000 { | 1390 | fcpvi0: fcp@fe9af000 { |
714 | #address-cells = <1>; | 1391 | compatible = "renesas,fcpv"; |
715 | #size-cells = <0>; | 1392 | reg = <0 0xfe9af000 0 0x200>; |
716 | compatible = "renesas,iic-r8a77965", | 1393 | clocks = <&cpg CPG_MOD 611>; |
717 | "renesas,rcar-gen3-iic", | 1394 | power-domains = <&sysc R8A77965_PD_A3VP>; |
718 | "renesas,rmobile-iic"; | 1395 | resets = <&cpg 611>; |
719 | reg = <0 0xe60b0000 0 0x425>; | ||
720 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | ||
721 | clocks = <&cpg CPG_MOD 926>; | ||
722 | power-domains = <&sysc 32>; | ||
723 | resets = <&cpg 926>; | ||
724 | dmas = <&dmac0 0x11>, <&dmac0 0x10>; | ||
725 | dma-names = "tx", "rx"; | ||
726 | status = "disabled"; | ||
727 | }; | 1396 | }; |
728 | 1397 | ||
729 | pwm0: pwm@e6e30000 { | 1398 | vspd0: vsp@fea20000 { |
730 | reg = <0 0xe6e30000 0 8>; | 1399 | compatible = "renesas,vsp2"; |
731 | /* placeholder */ | 1400 | reg = <0 0xfea20000 0 0x8000>; |
1401 | interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>; | ||
1402 | clocks = <&cpg CPG_MOD 623>; | ||
1403 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1404 | resets = <&cpg 623>; | ||
1405 | |||
1406 | renesas,fcp = <&fcpvd0>; | ||
732 | }; | 1407 | }; |
733 | 1408 | ||
734 | pwm1: pwm@e6e31000 { | 1409 | fcpvd0: fcp@fea27000 { |
735 | reg = <0 0xe6e31000 0 8>; | 1410 | compatible = "renesas,fcpv"; |
736 | #pwm-cells = <2>; | 1411 | reg = <0 0xfea27000 0 0x200>; |
737 | /* placeholder */ | 1412 | clocks = <&cpg CPG_MOD 603>; |
1413 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1414 | resets = <&cpg 603>; | ||
738 | }; | 1415 | }; |
739 | 1416 | ||
740 | pwm2: pwm@e6e32000 { | 1417 | vspd1: vsp@fea28000 { |
741 | reg = <0 0xe6e32000 0 8>; | 1418 | compatible = "renesas,vsp2"; |
742 | /* placeholder */ | 1419 | reg = <0 0xfea28000 0 0x8000>; |
1420 | interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>; | ||
1421 | clocks = <&cpg CPG_MOD 622>; | ||
1422 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1423 | resets = <&cpg 622>; | ||
1424 | |||
1425 | renesas,fcp = <&fcpvd1>; | ||
743 | }; | 1426 | }; |
744 | 1427 | ||
745 | pwm3: pwm@e6e33000 { | 1428 | fcpvd1: fcp@fea2f000 { |
746 | reg = <0 0xe6e33000 0 8>; | 1429 | compatible = "renesas,fcpv"; |
747 | /* placeholder */ | 1430 | reg = <0 0xfea2f000 0 0x200>; |
1431 | clocks = <&cpg CPG_MOD 602>; | ||
1432 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1433 | resets = <&cpg 602>; | ||
748 | }; | 1434 | }; |
749 | 1435 | ||
750 | pwm4: pwm@e6e34000 { | 1436 | csi20: csi2@fea80000 { |
751 | reg = <0 0xe6e34000 0 8>; | 1437 | compatible = "renesas,r8a77965-csi2"; |
752 | /* placeholder */ | 1438 | reg = <0 0xfea80000 0 0x10000>; |
1439 | interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; | ||
1440 | clocks = <&cpg CPG_MOD 714>; | ||
1441 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1442 | resets = <&cpg 714>; | ||
1443 | status = "disabled"; | ||
1444 | |||
1445 | ports { | ||
1446 | #address-cells = <1>; | ||
1447 | #size-cells = <0>; | ||
1448 | |||
1449 | port@1 { | ||
1450 | #address-cells = <1>; | ||
1451 | #size-cells = <0>; | ||
1452 | |||
1453 | reg = <1>; | ||
1454 | |||
1455 | csi20vin0: endpoint@0 { | ||
1456 | reg = <0>; | ||
1457 | remote-endpoint = <&vin0csi20>; | ||
1458 | }; | ||
1459 | csi20vin1: endpoint@1 { | ||
1460 | reg = <1>; | ||
1461 | remote-endpoint = <&vin1csi20>; | ||
1462 | }; | ||
1463 | csi20vin2: endpoint@2 { | ||
1464 | reg = <2>; | ||
1465 | remote-endpoint = <&vin2csi20>; | ||
1466 | }; | ||
1467 | csi20vin3: endpoint@3 { | ||
1468 | reg = <3>; | ||
1469 | remote-endpoint = <&vin3csi20>; | ||
1470 | }; | ||
1471 | csi20vin4: endpoint@4 { | ||
1472 | reg = <4>; | ||
1473 | remote-endpoint = <&vin4csi20>; | ||
1474 | }; | ||
1475 | csi20vin5: endpoint@5 { | ||
1476 | reg = <5>; | ||
1477 | remote-endpoint = <&vin5csi20>; | ||
1478 | }; | ||
1479 | csi20vin6: endpoint@6 { | ||
1480 | reg = <6>; | ||
1481 | remote-endpoint = <&vin6csi20>; | ||
1482 | }; | ||
1483 | csi20vin7: endpoint@7 { | ||
1484 | reg = <7>; | ||
1485 | remote-endpoint = <&vin7csi20>; | ||
1486 | }; | ||
1487 | }; | ||
1488 | }; | ||
753 | }; | 1489 | }; |
754 | 1490 | ||
755 | pwm5: pwm@e6e35000 { | 1491 | csi40: csi2@feaa0000 { |
756 | reg = <0 0xe6e35000 0 8>; | 1492 | compatible = "renesas,r8a77965-csi2"; |
757 | /* placeholder */ | 1493 | reg = <0 0xfeaa0000 0 0x10000>; |
1494 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
1495 | clocks = <&cpg CPG_MOD 716>; | ||
1496 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1497 | resets = <&cpg 716>; | ||
1498 | status = "disabled"; | ||
1499 | |||
1500 | ports { | ||
1501 | #address-cells = <1>; | ||
1502 | #size-cells = <0>; | ||
1503 | |||
1504 | port@1 { | ||
1505 | #address-cells = <1>; | ||
1506 | #size-cells = <0>; | ||
1507 | |||
1508 | reg = <1>; | ||
1509 | |||
1510 | csi40vin0: endpoint@0 { | ||
1511 | reg = <0>; | ||
1512 | remote-endpoint = <&vin0csi40>; | ||
1513 | }; | ||
1514 | csi40vin1: endpoint@1 { | ||
1515 | reg = <1>; | ||
1516 | remote-endpoint = <&vin1csi40>; | ||
1517 | }; | ||
1518 | csi40vin2: endpoint@2 { | ||
1519 | reg = <2>; | ||
1520 | remote-endpoint = <&vin2csi40>; | ||
1521 | }; | ||
1522 | csi40vin3: endpoint@3 { | ||
1523 | reg = <3>; | ||
1524 | remote-endpoint = <&vin3csi40>; | ||
1525 | }; | ||
1526 | csi40vin4: endpoint@4 { | ||
1527 | reg = <4>; | ||
1528 | remote-endpoint = <&vin4csi40>; | ||
1529 | }; | ||
1530 | csi40vin5: endpoint@5 { | ||
1531 | reg = <5>; | ||
1532 | remote-endpoint = <&vin5csi40>; | ||
1533 | }; | ||
1534 | csi40vin6: endpoint@6 { | ||
1535 | reg = <6>; | ||
1536 | remote-endpoint = <&vin6csi40>; | ||
1537 | }; | ||
1538 | csi40vin7: endpoint@7 { | ||
1539 | reg = <7>; | ||
1540 | remote-endpoint = <&vin7csi40>; | ||
1541 | }; | ||
1542 | }; | ||
1543 | }; | ||
758 | }; | 1544 | }; |
759 | 1545 | ||
760 | pwm6: pwm@e6e36000 { | 1546 | hdmi0: hdmi@fead0000 { |
761 | reg = <0 0xe6e36000 0 8>; | 1547 | compatible = "renesas,r8a77965-hdmi", |
762 | /* placeholder */ | 1548 | "renesas,rcar-gen3-hdmi"; |
1549 | reg = <0 0xfead0000 0 0x10000>; | ||
1550 | interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; | ||
1551 | clocks = <&cpg CPG_MOD 729>, | ||
1552 | <&cpg CPG_CORE R8A77965_CLK_HDMI>; | ||
1553 | clock-names = "iahb", "isfr"; | ||
1554 | power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; | ||
1555 | resets = <&cpg 729>; | ||
1556 | status = "disabled"; | ||
1557 | |||
1558 | ports { | ||
1559 | #address-cells = <1>; | ||
1560 | #size-cells = <0>; | ||
1561 | port@0 { | ||
1562 | reg = <0>; | ||
1563 | dw_hdmi0_in: endpoint { | ||
1564 | remote-endpoint = <&du_out_hdmi0>; | ||
1565 | }; | ||
1566 | }; | ||
1567 | port@1 { | ||
1568 | reg = <1>; | ||
1569 | }; | ||
1570 | }; | ||
763 | }; | 1571 | }; |
764 | 1572 | ||
765 | du: display@feb00000 { | 1573 | du: display@feb00000 { |
766 | reg = <0 0xfeb00000 0 0x80000>, | 1574 | compatible = "renesas,du-r8a77965"; |
767 | <0 0xfeb90000 0 0x14>; | 1575 | reg = <0 0xfeb00000 0 0x80000>; |
768 | /* placeholder */ | 1576 | reg-names = "du"; |
1577 | interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, | ||
1578 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, | ||
1579 | <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>; | ||
1580 | clocks = <&cpg CPG_MOD 724>, | ||
1581 | <&cpg CPG_MOD 723>, | ||
1582 | <&cpg CPG_MOD 721>; | ||
1583 | clock-names = "du.0", "du.1", "du.3"; | ||
1584 | status = "disabled"; | ||
1585 | |||
1586 | vsps = <&vspd0 0 &vspd1 0 &vspd0 1>; | ||
769 | 1587 | ||
770 | ports { | 1588 | ports { |
771 | #address-cells = <1>; | 1589 | #address-cells = <1>; |
@@ -779,6 +1597,7 @@ | |||
779 | port@1 { | 1597 | port@1 { |
780 | reg = <1>; | 1598 | reg = <1>; |
781 | du_out_hdmi0: endpoint { | 1599 | du_out_hdmi0: endpoint { |
1600 | remote-endpoint = <&dw_hdmi0_in>; | ||
782 | }; | 1601 | }; |
783 | }; | 1602 | }; |
784 | port@2 { | 1603 | port@2 { |
@@ -789,90 +1608,74 @@ | |||
789 | }; | 1608 | }; |
790 | }; | 1609 | }; |
791 | 1610 | ||
792 | hsusb: usb@e6590000 { | 1611 | prr: chipid@fff00044 { |
793 | reg = <0 0xe6590000 0 0x100>; | 1612 | compatible = "renesas,prr"; |
794 | /* placeholder */ | 1613 | reg = <0 0xfff00044 0 4>; |
795 | }; | ||
796 | |||
797 | pciec0: pcie@fe000000 { | ||
798 | reg = <0 0xfe000000 0 0x80000>; | ||
799 | /* placeholder */ | ||
800 | }; | ||
801 | |||
802 | pciec1: pcie@ee800000 { | ||
803 | reg = <0 0xee800000 0 0x80000>; | ||
804 | /* placeholder */ | ||
805 | }; | 1614 | }; |
1615 | }; | ||
806 | 1616 | ||
807 | rcar_sound: sound@ec500000 { | 1617 | timer { |
808 | reg = <0 0xec500000 0 0x1000>, /* SCU */ | 1618 | compatible = "arm,armv8-timer"; |
809 | <0 0xec5a0000 0 0x100>, /* ADG */ | 1619 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
810 | <0 0xec540000 0 0x1000>, /* SSIU */ | 1620 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
811 | <0 0xec541000 0 0x280>, /* SSI */ | 1621 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
812 | <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ | 1622 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; |
813 | /* placeholder */ | 1623 | }; |
814 | 1624 | ||
815 | rcar_sound,dvc { | 1625 | thermal-zones { |
816 | dvc0: dvc-0 { | 1626 | sensor_thermal1: sensor-thermal1 { |
817 | }; | 1627 | polling-delay-passive = <250>; |
818 | dvc1: dvc-1 { | 1628 | polling-delay = <1000>; |
1629 | thermal-sensors = <&tsc 0>; | ||
1630 | |||
1631 | trips { | ||
1632 | sensor1_crit: sensor1-crit { | ||
1633 | temperature = <120000>; | ||
1634 | hysteresis = <1000>; | ||
1635 | type = "critical"; | ||
819 | }; | 1636 | }; |
820 | }; | 1637 | }; |
1638 | }; | ||
821 | 1639 | ||
822 | rcar_sound,src { | 1640 | sensor_thermal2: sensor-thermal2 { |
823 | src0: src-0 { | 1641 | polling-delay-passive = <250>; |
824 | }; | 1642 | polling-delay = <1000>; |
825 | src1: src-1 { | 1643 | thermal-sensors = <&tsc 1>; |
826 | }; | ||
827 | }; | ||
828 | 1644 | ||
829 | rcar_sound,ssi { | 1645 | trips { |
830 | ssi0: ssi-0 { | 1646 | sensor2_crit: sensor2-crit { |
831 | }; | 1647 | temperature = <120000>; |
832 | ssi1: ssi-1 { | 1648 | hysteresis = <1000>; |
1649 | type = "critical"; | ||
833 | }; | 1650 | }; |
834 | }; | 1651 | }; |
835 | }; | 1652 | }; |
836 | 1653 | ||
837 | sdhi0: sd@ee100000 { | 1654 | sensor_thermal3: sensor-thermal3 { |
838 | reg = <0 0xee100000 0 0x2000>; | 1655 | polling-delay-passive = <250>; |
839 | /* placeholder */ | 1656 | polling-delay = <1000>; |
840 | }; | 1657 | thermal-sensors = <&tsc 2>; |
841 | |||
842 | sdhi1: sd@ee120000 { | ||
843 | reg = <0 0xee120000 0 0x2000>; | ||
844 | /* placeholder */ | ||
845 | }; | ||
846 | 1658 | ||
847 | sdhi2: sd@ee140000 { | 1659 | trips { |
848 | reg = <0 0xee140000 0 0x2000>; | 1660 | sensor3_crit: sensor3-crit { |
849 | /* placeholder */ | 1661 | temperature = <120000>; |
850 | }; | 1662 | hysteresis = <1000>; |
851 | 1663 | type = "critical"; | |
852 | sdhi3: sd@ee160000 { | 1664 | }; |
853 | reg = <0 0xee160000 0 0x2000>; | 1665 | }; |
854 | /* placeholder */ | ||
855 | }; | ||
856 | |||
857 | usb3_phy0: usb-phy@e65ee000 { | ||
858 | reg = <0 0xe65ee000 0 0x90>; | ||
859 | #phy-cells = <0>; | ||
860 | /* placeholder */ | ||
861 | }; | ||
862 | |||
863 | usb3_peri0: usb@ee020000 { | ||
864 | reg = <0 0xee020000 0 0x400>; | ||
865 | /* placeholder */ | ||
866 | }; | 1666 | }; |
1667 | }; | ||
867 | 1668 | ||
868 | xhci0: usb@ee000000 { | 1669 | /* External USB clocks - can be overridden by the board */ |
869 | reg = <0 0xee000000 0 0xc00>; | 1670 | usb3s0_clk: usb3s0 { |
870 | /* placeholder */ | 1671 | compatible = "fixed-clock"; |
871 | }; | 1672 | #clock-cells = <0>; |
1673 | clock-frequency = <0>; | ||
1674 | }; | ||
872 | 1675 | ||
873 | wdt0: watchdog@e6020000 { | 1676 | usb_extal_clk: usb_extal { |
874 | reg = <0 0xe6020000 0 0x0c>; | 1677 | compatible = "fixed-clock"; |
875 | /* placeholder */ | 1678 | #clock-cells = <0>; |
876 | }; | 1679 | clock-frequency = <0>; |
877 | }; | 1680 | }; |
878 | }; | 1681 | }; |
diff --git a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts index 3c5f598c9766..21f9cf5c6e84 100644 --- a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts +++ b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | |||
@@ -31,9 +31,57 @@ | |||
31 | /* first 128MB is reserved for secure area. */ | 31 | /* first 128MB is reserved for secure area. */ |
32 | reg = <0x0 0x48000000 0x0 0x38000000>; | 32 | reg = <0x0 0x48000000 0x0 0x38000000>; |
33 | }; | 33 | }; |
34 | |||
35 | hdmi-out { | ||
36 | compatible = "hdmi-connector"; | ||
37 | type = "a"; | ||
38 | |||
39 | port { | ||
40 | hdmi_con_out: endpoint { | ||
41 | remote-endpoint = <&adv7511_out>; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | d3p3: regulator-fixed { | ||
47 | compatible = "regulator-fixed"; | ||
48 | regulator-name = "fixed-3.3V"; | ||
49 | regulator-min-microvolt = <3300000>; | ||
50 | regulator-max-microvolt = <3300000>; | ||
51 | regulator-boot-on; | ||
52 | regulator-always-on; | ||
53 | }; | ||
54 | |||
55 | lvds-decoder { | ||
56 | compatible = "thine,thc63lvd1024"; | ||
57 | |||
58 | vcc-supply = <&d3p3>; | ||
59 | |||
60 | ports { | ||
61 | #address-cells = <1>; | ||
62 | #size-cells = <0>; | ||
63 | |||
64 | port@0 { | ||
65 | reg = <0>; | ||
66 | thc63lvd1024_in: endpoint { | ||
67 | remote-endpoint = <&lvds0_out>; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | port@2 { | ||
72 | reg = <2>; | ||
73 | thc63lvd1024_out: endpoint { | ||
74 | remote-endpoint = <&adv7511_in>; | ||
75 | }; | ||
76 | }; | ||
77 | }; | ||
78 | }; | ||
34 | }; | 79 | }; |
35 | 80 | ||
36 | &avb { | 81 | &avb { |
82 | pinctrl-0 = <&avb_pins>; | ||
83 | pinctrl-names = "default"; | ||
84 | |||
37 | renesas,no-ether-link; | 85 | renesas,no-ether-link; |
38 | phy-handle = <&phy0>; | 86 | phy-handle = <&phy0>; |
39 | phy-mode = "rgmii-id"; | 87 | phy-mode = "rgmii-id"; |
@@ -47,6 +95,16 @@ | |||
47 | }; | 95 | }; |
48 | }; | 96 | }; |
49 | 97 | ||
98 | &canfd { | ||
99 | pinctrl-0 = <&canfd0_pins>; | ||
100 | pinctrl-names = "default"; | ||
101 | status = "okay"; | ||
102 | |||
103 | channel0 { | ||
104 | status = "okay"; | ||
105 | }; | ||
106 | }; | ||
107 | |||
50 | &extal_clk { | 108 | &extal_clk { |
51 | clock-frequency = <16666666>; | 109 | clock-frequency = <16666666>; |
52 | }; | 110 | }; |
@@ -68,9 +126,51 @@ | |||
68 | gpio-controller; | 126 | gpio-controller; |
69 | #gpio-cells = <2>; | 127 | #gpio-cells = <2>; |
70 | }; | 128 | }; |
129 | |||
130 | hdmi@39 { | ||
131 | compatible = "adi,adv7511w"; | ||
132 | reg = <0x39>; | ||
133 | interrupt-parent = <&gpio1>; | ||
134 | interrupts = <20 IRQ_TYPE_LEVEL_LOW>; | ||
135 | |||
136 | adi,input-depth = <8>; | ||
137 | adi,input-colorspace = "rgb"; | ||
138 | adi,input-clock = "1x"; | ||
139 | adi,input-style = <1>; | ||
140 | adi,input-justification = "evenly"; | ||
141 | |||
142 | ports { | ||
143 | #address-cells = <1>; | ||
144 | #size-cells = <0>; | ||
145 | |||
146 | port@0 { | ||
147 | reg = <0>; | ||
148 | adv7511_in: endpoint { | ||
149 | remote-endpoint = <&thc63lvd1024_out>; | ||
150 | }; | ||
151 | }; | ||
152 | |||
153 | port@1 { | ||
154 | reg = <1>; | ||
155 | adv7511_out: endpoint { | ||
156 | remote-endpoint = <&hdmi_con_out>; | ||
157 | }; | ||
158 | }; | ||
159 | }; | ||
160 | }; | ||
71 | }; | 161 | }; |
72 | 162 | ||
73 | &pfc { | 163 | &pfc { |
164 | avb_pins: avb0 { | ||
165 | groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk"; | ||
166 | function = "avb0"; | ||
167 | }; | ||
168 | |||
169 | canfd0_pins: canfd0 { | ||
170 | groups = "canfd0_data_a"; | ||
171 | function = "canfd0"; | ||
172 | }; | ||
173 | |||
74 | i2c0_pins: i2c0 { | 174 | i2c0_pins: i2c0 { |
75 | groups = "i2c0"; | 175 | groups = "i2c0"; |
76 | function = "i2c0"; | 176 | function = "i2c0"; |
@@ -93,3 +193,19 @@ | |||
93 | 193 | ||
94 | status = "okay"; | 194 | status = "okay"; |
95 | }; | 195 | }; |
196 | |||
197 | &du { | ||
198 | status = "okay"; | ||
199 | }; | ||
200 | |||
201 | &lvds0 { | ||
202 | status = "okay"; | ||
203 | |||
204 | ports { | ||
205 | port@1 { | ||
206 | lvds0_out: endpoint { | ||
207 | remote-endpoint = <&thc63lvd1024_in>; | ||
208 | }; | ||
209 | }; | ||
210 | }; | ||
211 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts b/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts index a8ceeac77992..9fce031a596f 100644 --- a/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts +++ b/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | |||
@@ -29,9 +29,71 @@ | |||
29 | /* first 128MB is reserved for secure area. */ | 29 | /* first 128MB is reserved for secure area. */ |
30 | reg = <0x0 0x48000000 0x0 0x38000000>; | 30 | reg = <0x0 0x48000000 0x0 0x38000000>; |
31 | }; | 31 | }; |
32 | |||
33 | osc5_clk: osc5-clock { | ||
34 | compatible = "fixed-clock"; | ||
35 | #clock-cells = <0>; | ||
36 | clock-frequency = <148500000>; | ||
37 | }; | ||
38 | |||
39 | vcc_d1_8v: regulator-0 { | ||
40 | compatible = "regulator-fixed"; | ||
41 | regulator-name = "VCC_D1.8V"; | ||
42 | regulator-min-microvolt = <1800000>; | ||
43 | regulator-max-microvolt = <1800000>; | ||
44 | regulator-boot-on; | ||
45 | regulator-always-on; | ||
46 | }; | ||
47 | |||
48 | vcc_d3_3v: regulator-1 { | ||
49 | compatible = "regulator-fixed"; | ||
50 | regulator-name = "VCC_D3.3V"; | ||
51 | regulator-min-microvolt = <3300000>; | ||
52 | regulator-max-microvolt = <3300000>; | ||
53 | regulator-boot-on; | ||
54 | regulator-always-on; | ||
55 | }; | ||
56 | |||
57 | lvds-decoder { | ||
58 | compatible = "thine,thc63lvd1024"; | ||
59 | vcc-supply = <&vcc_d3_3v>; | ||
60 | |||
61 | ports { | ||
62 | #address-cells = <1>; | ||
63 | #size-cells = <0>; | ||
64 | |||
65 | port@0 { | ||
66 | reg = <0>; | ||
67 | thc63lvd1024_in: endpoint { | ||
68 | remote-endpoint = <&lvds0_out>; | ||
69 | }; | ||
70 | }; | ||
71 | |||
72 | port@2 { | ||
73 | reg = <2>; | ||
74 | thc63lvd1024_out: endpoint { | ||
75 | remote-endpoint = <&adv7511_in>; | ||
76 | }; | ||
77 | }; | ||
78 | }; | ||
79 | }; | ||
80 | |||
81 | hdmi-out { | ||
82 | compatible = "hdmi-connector"; | ||
83 | type = "a"; | ||
84 | |||
85 | port { | ||
86 | hdmi_con: endpoint { | ||
87 | remote-endpoint = <&adv7511_out>; | ||
88 | }; | ||
89 | }; | ||
90 | }; | ||
32 | }; | 91 | }; |
33 | 92 | ||
34 | &avb { | 93 | &avb { |
94 | pinctrl-0 = <&avb_pins>; | ||
95 | pinctrl-names = "default"; | ||
96 | |||
35 | renesas,no-ether-link; | 97 | renesas,no-ether-link; |
36 | phy-handle = <&phy0>; | 98 | phy-handle = <&phy0>; |
37 | phy-mode = "rgmii-id"; | 99 | phy-mode = "rgmii-id"; |
@@ -43,6 +105,13 @@ | |||
43 | }; | 105 | }; |
44 | }; | 106 | }; |
45 | 107 | ||
108 | &du { | ||
109 | clocks = <&cpg CPG_MOD 724>, | ||
110 | <&osc5_clk>; | ||
111 | clock-names = "du.0", "dclkin.0"; | ||
112 | status = "okay"; | ||
113 | }; | ||
114 | |||
46 | &extal_clk { | 115 | &extal_clk { |
47 | clock-frequency = <16666666>; | 116 | clock-frequency = <16666666>; |
48 | }; | 117 | }; |
@@ -52,12 +121,80 @@ | |||
52 | }; | 121 | }; |
53 | 122 | ||
54 | &pfc { | 123 | &pfc { |
124 | avb_pins: avb0 { | ||
125 | groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk"; | ||
126 | function = "avb0"; | ||
127 | }; | ||
128 | |||
129 | i2c0_pins: i2c0 { | ||
130 | groups = "i2c0"; | ||
131 | function = "i2c0"; | ||
132 | }; | ||
133 | |||
55 | scif0_pins: scif0 { | 134 | scif0_pins: scif0 { |
56 | groups = "scif0_data"; | 135 | groups = "scif0_data"; |
57 | function = "scif0"; | 136 | function = "scif0"; |
58 | }; | 137 | }; |
59 | }; | 138 | }; |
60 | 139 | ||
140 | &i2c0 { | ||
141 | pinctrl-0 = <&i2c0_pins>; | ||
142 | pinctrl-names = "default"; | ||
143 | |||
144 | status = "okay"; | ||
145 | clock-frequency = <400000>; | ||
146 | |||
147 | hdmi@39{ | ||
148 | compatible = "adi,adv7511w"; | ||
149 | #sound-dai-cells = <0>; | ||
150 | reg = <0x39>; | ||
151 | interrupt-parent = <&gpio1>; | ||
152 | interrupts = <20 IRQ_TYPE_LEVEL_LOW>; | ||
153 | avdd-supply = <&vcc_d1_8v>; | ||
154 | dvdd-supply = <&vcc_d1_8v>; | ||
155 | pvdd-supply = <&vcc_d1_8v>; | ||
156 | bgvdd-supply = <&vcc_d1_8v>; | ||
157 | dvdd-3v-supply = <&vcc_d3_3v>; | ||
158 | |||
159 | adi,input-depth = <8>; | ||
160 | adi,input-colorspace = "rgb"; | ||
161 | adi,input-clock = "1x"; | ||
162 | adi,input-style = <1>; | ||
163 | adi,input-justification = "evenly"; | ||
164 | |||
165 | ports { | ||
166 | #address-cells = <1>; | ||
167 | #size-cells = <0>; | ||
168 | |||
169 | port@0 { | ||
170 | reg = <0>; | ||
171 | adv7511_in: endpoint { | ||
172 | remote-endpoint = <&thc63lvd1024_out>; | ||
173 | }; | ||
174 | }; | ||
175 | |||
176 | port@1 { | ||
177 | reg = <1>; | ||
178 | adv7511_out: endpoint { | ||
179 | remote-endpoint = <&hdmi_con>; | ||
180 | }; | ||
181 | }; | ||
182 | }; | ||
183 | }; | ||
184 | }; | ||
185 | |||
186 | &lvds0 { | ||
187 | status = "okay"; | ||
188 | |||
189 | ports { | ||
190 | port@1 { | ||
191 | lvds0_out: endpoint { | ||
192 | remote-endpoint = <&thc63lvd1024_in>; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | }; | ||
197 | |||
61 | &scif0 { | 198 | &scif0 { |
62 | pinctrl-0 = <&scif0_pins>; | 199 | pinctrl-0 = <&scif0_pins>; |
63 | pinctrl-names = "default"; | 200 | pinctrl-names = "default"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a77970.dtsi b/arch/arm64/boot/dts/renesas/r8a77970.dtsi index c6db8ea43906..98a2317a16c4 100644 --- a/arch/arm64/boot/dts/renesas/r8a77970.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77970.dtsi | |||
@@ -41,6 +41,16 @@ | |||
41 | enable-method = "psci"; | 41 | enable-method = "psci"; |
42 | }; | 42 | }; |
43 | 43 | ||
44 | a53_1: cpu@1 { | ||
45 | device_type = "cpu"; | ||
46 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
47 | reg = <1>; | ||
48 | clocks = <&cpg CPG_CORE R8A77970_CLK_Z2>; | ||
49 | power-domains = <&sysc R8A77970_PD_CA53_CPU1>; | ||
50 | next-level-cache = <&L2_CA53>; | ||
51 | enable-method = "psci"; | ||
52 | }; | ||
53 | |||
44 | L2_CA53: cache-controller { | 54 | L2_CA53: cache-controller { |
45 | compatible = "cache"; | 55 | compatible = "cache"; |
46 | power-domains = <&sysc R8A77970_PD_CA53_SCU>; | 56 | power-domains = <&sysc R8A77970_PD_CA53_SCU>; |
@@ -63,11 +73,25 @@ | |||
63 | clock-frequency = <0>; | 73 | clock-frequency = <0>; |
64 | }; | 74 | }; |
65 | 75 | ||
76 | pmu_a53 { | ||
77 | compatible = "arm,cortex-a53-pmu"; | ||
78 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | ||
79 | <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | ||
80 | interrupt-affinity = <&a53_0>, <&a53_1>; | ||
81 | }; | ||
82 | |||
66 | psci { | 83 | psci { |
67 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | 84 | compatible = "arm,psci-1.0", "arm,psci-0.2"; |
68 | method = "smc"; | 85 | method = "smc"; |
69 | }; | 86 | }; |
70 | 87 | ||
88 | /* External CAN clock - to be overridden by boards that provide it */ | ||
89 | can_clk: can { | ||
90 | compatible = "fixed-clock"; | ||
91 | #clock-cells = <0>; | ||
92 | clock-frequency = <0>; | ||
93 | }; | ||
94 | |||
71 | /* External SCIF clock - to be overridden by boards that provide it */ | 95 | /* External SCIF clock - to be overridden by boards that provide it */ |
72 | scif_clk: scif { | 96 | scif_clk: scif { |
73 | compatible = "fixed-clock"; | 97 | compatible = "fixed-clock"; |
@@ -83,23 +107,6 @@ | |||
83 | #size-cells = <2>; | 107 | #size-cells = <2>; |
84 | ranges; | 108 | ranges; |
85 | 109 | ||
86 | gic: interrupt-controller@f1010000 { | ||
87 | compatible = "arm,gic-400"; | ||
88 | #interrupt-cells = <3>; | ||
89 | #address-cells = <0>; | ||
90 | interrupt-controller; | ||
91 | reg = <0 0xf1010000 0 0x1000>, | ||
92 | <0 0xf1020000 0 0x20000>, | ||
93 | <0 0xf1040000 0 0x20000>, | ||
94 | <0 0xf1060000 0 0x20000>; | ||
95 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | | ||
96 | IRQ_TYPE_LEVEL_HIGH)>; | ||
97 | clocks = <&cpg CPG_MOD 408>; | ||
98 | clock-names = "clk"; | ||
99 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
100 | resets = <&cpg 408>; | ||
101 | }; | ||
102 | |||
103 | rwdt: watchdog@e6020000 { | 110 | rwdt: watchdog@e6020000 { |
104 | compatible = "renesas,r8a77970-wdt", | 111 | compatible = "renesas,r8a77970-wdt", |
105 | "renesas,rcar-gen3-wdt"; | 112 | "renesas,rcar-gen3-wdt"; |
@@ -110,75 +117,6 @@ | |||
110 | status = "disabled"; | 117 | status = "disabled"; |
111 | }; | 118 | }; |
112 | 119 | ||
113 | cpg: clock-controller@e6150000 { | ||
114 | compatible = "renesas,r8a77970-cpg-mssr"; | ||
115 | reg = <0 0xe6150000 0 0x1000>; | ||
116 | clocks = <&extal_clk>, <&extalr_clk>; | ||
117 | clock-names = "extal", "extalr"; | ||
118 | #clock-cells = <2>; | ||
119 | #power-domain-cells = <0>; | ||
120 | #reset-cells = <1>; | ||
121 | }; | ||
122 | |||
123 | rst: reset-controller@e6160000 { | ||
124 | compatible = "renesas,r8a77970-rst"; | ||
125 | reg = <0 0xe6160000 0 0x200>; | ||
126 | }; | ||
127 | |||
128 | sysc: system-controller@e6180000 { | ||
129 | compatible = "renesas,r8a77970-sysc"; | ||
130 | reg = <0 0xe6180000 0 0x440>; | ||
131 | #power-domain-cells = <1>; | ||
132 | }; | ||
133 | |||
134 | ipmmu_vi0: mmu@febd0000 { | ||
135 | compatible = "renesas,ipmmu-r8a77970"; | ||
136 | reg = <0 0xfebd0000 0 0x1000>; | ||
137 | renesas,ipmmu-main = <&ipmmu_mm 9>; | ||
138 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
139 | #iommu-cells = <1>; | ||
140 | status = "disabled"; | ||
141 | }; | ||
142 | |||
143 | ipmmu_ir: mmu@ff8b0000 { | ||
144 | compatible = "renesas,ipmmu-r8a77970"; | ||
145 | reg = <0 0xff8b0000 0 0x1000>; | ||
146 | renesas,ipmmu-main = <&ipmmu_mm 3>; | ||
147 | power-domains = <&sysc R8A77970_PD_A3IR>; | ||
148 | #iommu-cells = <1>; | ||
149 | status = "disabled"; | ||
150 | }; | ||
151 | |||
152 | ipmmu_rt: mmu@ffc80000 { | ||
153 | compatible = "renesas,ipmmu-r8a77970"; | ||
154 | reg = <0 0xffc80000 0 0x1000>; | ||
155 | renesas,ipmmu-main = <&ipmmu_mm 7>; | ||
156 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
157 | #iommu-cells = <1>; | ||
158 | }; | ||
159 | |||
160 | ipmmu_ds1: mmu@e7740000 { | ||
161 | compatible = "renesas,ipmmu-r8a77970"; | ||
162 | reg = <0 0xe7740000 0 0x1000>; | ||
163 | renesas,ipmmu-main = <&ipmmu_mm 1>; | ||
164 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
165 | #iommu-cells = <1>; | ||
166 | }; | ||
167 | |||
168 | ipmmu_mm: mmu@e67b0000 { | ||
169 | compatible = "renesas,ipmmu-r8a77970"; | ||
170 | reg = <0 0xe67b0000 0 0x1000>; | ||
171 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
172 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
173 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
174 | #iommu-cells = <1>; | ||
175 | }; | ||
176 | |||
177 | pfc: pin-controller@e6060000 { | ||
178 | compatible = "renesas,pfc-r8a77970"; | ||
179 | reg = <0 0xe6060000 0 0x504>; | ||
180 | }; | ||
181 | |||
182 | gpio0: gpio@e6050000 { | 120 | gpio0: gpio@e6050000 { |
183 | compatible = "renesas,gpio-r8a77970", | 121 | compatible = "renesas,gpio-r8a77970", |
184 | "renesas,rcar-gen3-gpio"; | 122 | "renesas,rcar-gen3-gpio"; |
@@ -269,6 +207,32 @@ | |||
269 | resets = <&cpg 907>; | 207 | resets = <&cpg 907>; |
270 | }; | 208 | }; |
271 | 209 | ||
210 | pfc: pin-controller@e6060000 { | ||
211 | compatible = "renesas,pfc-r8a77970"; | ||
212 | reg = <0 0xe6060000 0 0x504>; | ||
213 | }; | ||
214 | |||
215 | cpg: clock-controller@e6150000 { | ||
216 | compatible = "renesas,r8a77970-cpg-mssr"; | ||
217 | reg = <0 0xe6150000 0 0x1000>; | ||
218 | clocks = <&extal_clk>, <&extalr_clk>; | ||
219 | clock-names = "extal", "extalr"; | ||
220 | #clock-cells = <2>; | ||
221 | #power-domain-cells = <0>; | ||
222 | #reset-cells = <1>; | ||
223 | }; | ||
224 | |||
225 | rst: reset-controller@e6160000 { | ||
226 | compatible = "renesas,r8a77970-rst"; | ||
227 | reg = <0 0xe6160000 0 0x200>; | ||
228 | }; | ||
229 | |||
230 | sysc: system-controller@e6180000 { | ||
231 | compatible = "renesas,r8a77970-sysc"; | ||
232 | reg = <0 0xe6180000 0 0x440>; | ||
233 | #power-domain-cells = <1>; | ||
234 | }; | ||
235 | |||
272 | intc_ex: interrupt-controller@e61c0000 { | 236 | intc_ex: interrupt-controller@e61c0000 { |
273 | compatible = "renesas,intc-ex-r8a77970", "renesas,irqc"; | 237 | compatible = "renesas,intc-ex-r8a77970", "renesas,irqc"; |
274 | #interrupt-cells = <2>; | 238 | #interrupt-cells = <2>; |
@@ -285,67 +249,6 @@ | |||
285 | resets = <&cpg 407>; | 249 | resets = <&cpg 407>; |
286 | }; | 250 | }; |
287 | 251 | ||
288 | prr: chipid@fff00044 { | ||
289 | compatible = "renesas,prr"; | ||
290 | reg = <0 0xfff00044 0 4>; | ||
291 | }; | ||
292 | |||
293 | dmac1: dma-controller@e7300000 { | ||
294 | compatible = "renesas,dmac-r8a77970", | ||
295 | "renesas,rcar-dmac"; | ||
296 | reg = <0 0xe7300000 0 0x10000>; | ||
297 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
298 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
299 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
300 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
301 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
302 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
303 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
304 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
305 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; | ||
306 | interrupt-names = "error", | ||
307 | "ch0", "ch1", "ch2", "ch3", | ||
308 | "ch4", "ch5", "ch6", "ch7"; | ||
309 | clocks = <&cpg CPG_MOD 218>; | ||
310 | clock-names = "fck"; | ||
311 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
312 | resets = <&cpg 218>; | ||
313 | #dma-cells = <1>; | ||
314 | dma-channels = <8>; | ||
315 | iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, | ||
316 | <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, | ||
317 | <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, | ||
318 | <&ipmmu_ds1 6>, <&ipmmu_ds1 7>; | ||
319 | }; | ||
320 | |||
321 | dmac2: dma-controller@e7310000 { | ||
322 | compatible = "renesas,dmac-r8a77970", | ||
323 | "renesas,rcar-dmac"; | ||
324 | reg = <0 0xe7310000 0 0x10000>; | ||
325 | interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH | ||
326 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
327 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
328 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
329 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
330 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
331 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
332 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH | ||
333 | GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; | ||
334 | interrupt-names = "error", | ||
335 | "ch0", "ch1", "ch2", "ch3", | ||
336 | "ch4", "ch5", "ch6", "ch7"; | ||
337 | clocks = <&cpg CPG_MOD 217>; | ||
338 | clock-names = "fck"; | ||
339 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
340 | resets = <&cpg 217>; | ||
341 | #dma-cells = <1>; | ||
342 | dma-channels = <8>; | ||
343 | iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, | ||
344 | <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, | ||
345 | <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, | ||
346 | <&ipmmu_ds1 22>, <&ipmmu_ds1 23>; | ||
347 | }; | ||
348 | |||
349 | i2c0: i2c@e6500000 { | 252 | i2c0: i2c@e6500000 { |
350 | compatible = "renesas,i2c-r8a77970", | 253 | compatible = "renesas,i2c-r8a77970", |
351 | "renesas,rcar-gen3-i2c"; | 254 | "renesas,rcar-gen3-i2c"; |
@@ -502,6 +405,77 @@ | |||
502 | status = "disabled"; | 405 | status = "disabled"; |
503 | }; | 406 | }; |
504 | 407 | ||
408 | canfd: can@e66c0000 { | ||
409 | compatible = "renesas,r8a77970-canfd", | ||
410 | "renesas,rcar-gen3-canfd"; | ||
411 | reg = <0 0xe66c0000 0 0x8000>; | ||
412 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, | ||
413 | <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
414 | clocks = <&cpg CPG_MOD 914>, | ||
415 | <&cpg CPG_CORE R8A77970_CLK_CANFD>, | ||
416 | <&can_clk>; | ||
417 | clock-names = "fck", "canfd", "can_clk"; | ||
418 | assigned-clocks = <&cpg CPG_CORE R8A77970_CLK_CANFD>; | ||
419 | assigned-clock-rates = <40000000>; | ||
420 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
421 | resets = <&cpg 914>; | ||
422 | status = "disabled"; | ||
423 | |||
424 | channel0 { | ||
425 | status = "disabled"; | ||
426 | }; | ||
427 | |||
428 | channel1 { | ||
429 | status = "disabled"; | ||
430 | }; | ||
431 | }; | ||
432 | |||
433 | avb: ethernet@e6800000 { | ||
434 | compatible = "renesas,etheravb-r8a77970", | ||
435 | "renesas,etheravb-rcar-gen3"; | ||
436 | reg = <0 0xe6800000 0 0x800>; | ||
437 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, | ||
438 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | ||
439 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | ||
440 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
441 | <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, | ||
442 | <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, | ||
443 | <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, | ||
444 | <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, | ||
445 | <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
446 | <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, | ||
447 | <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, | ||
448 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
449 | <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
450 | <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | ||
451 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
452 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
453 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
454 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
455 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
456 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
457 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
458 | <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | ||
459 | <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | ||
460 | <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | ||
461 | <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
462 | interrupt-names = "ch0", "ch1", "ch2", "ch3", | ||
463 | "ch4", "ch5", "ch6", "ch7", | ||
464 | "ch8", "ch9", "ch10", "ch11", | ||
465 | "ch12", "ch13", "ch14", "ch15", | ||
466 | "ch16", "ch17", "ch18", "ch19", | ||
467 | "ch20", "ch21", "ch22", "ch23", | ||
468 | "ch24"; | ||
469 | clocks = <&cpg CPG_MOD 812>; | ||
470 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
471 | resets = <&cpg 812>; | ||
472 | phy-mode = "rgmii"; | ||
473 | iommus = <&ipmmu_rt 3>; | ||
474 | #address-cells = <1>; | ||
475 | #size-cells = <0>; | ||
476 | status = "disabled"; | ||
477 | }; | ||
478 | |||
505 | scif0: serial@e6e60000 { | 479 | scif0: serial@e6e60000 { |
506 | compatible = "renesas,scif-r8a77970", | 480 | compatible = "renesas,scif-r8a77970", |
507 | "renesas,rcar-gen3-scif", | 481 | "renesas,rcar-gen3-scif", |
@@ -573,57 +547,358 @@ | |||
573 | status = "disabled"; | 547 | status = "disabled"; |
574 | }; | 548 | }; |
575 | 549 | ||
576 | avb: ethernet@e6800000 { | 550 | |
577 | compatible = "renesas,etheravb-r8a77970", | 551 | vin0: video@e6ef0000 { |
578 | "renesas,etheravb-rcar-gen3"; | 552 | compatible = "renesas,vin-r8a77970"; |
579 | reg = <0 0xe6800000 0 0x800>; | 553 | reg = <0 0xe6ef0000 0 0x1000>; |
580 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, | 554 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; |
581 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | 555 | clocks = <&cpg CPG_MOD 811>; |
582 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | ||
583 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
584 | <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, | ||
585 | <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, | ||
586 | <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, | ||
587 | <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, | ||
588 | <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
589 | <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, | ||
590 | <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, | ||
591 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
592 | <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
593 | <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | ||
594 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
595 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
596 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
597 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
598 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
599 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
600 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
601 | <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | ||
602 | <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | ||
603 | <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | ||
604 | <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
605 | interrupt-names = "ch0", "ch1", "ch2", "ch3", | ||
606 | "ch4", "ch5", "ch6", "ch7", | ||
607 | "ch8", "ch9", "ch10", "ch11", | ||
608 | "ch12", "ch13", "ch14", "ch15", | ||
609 | "ch16", "ch17", "ch18", "ch19", | ||
610 | "ch20", "ch21", "ch22", "ch23", | ||
611 | "ch24"; | ||
612 | clocks = <&cpg CPG_MOD 812>; | ||
613 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | 556 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; |
614 | resets = <&cpg 812>; | 557 | resets = <&cpg 811>; |
615 | phy-mode = "rgmii"; | 558 | renesas,id = <0>; |
616 | iommus = <&ipmmu_rt 3>; | 559 | status = "disabled"; |
617 | #address-cells = <1>; | 560 | |
618 | #size-cells = <0>; | 561 | ports { |
562 | #address-cells = <1>; | ||
563 | #size-cells = <0>; | ||
564 | |||
565 | port@1 { | ||
566 | #address-cells = <1>; | ||
567 | #size-cells = <0>; | ||
568 | |||
569 | reg = <1>; | ||
570 | |||
571 | vin0csi40: endpoint@2 { | ||
572 | reg = <2>; | ||
573 | remote-endpoint= <&csi40vin0>; | ||
574 | }; | ||
575 | }; | ||
576 | }; | ||
577 | }; | ||
578 | |||
579 | vin1: video@e6ef1000 { | ||
580 | compatible = "renesas,vin-r8a77970"; | ||
581 | reg = <0 0xe6ef1000 0 0x1000>; | ||
582 | interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | ||
583 | clocks = <&cpg CPG_MOD 810>; | ||
584 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
585 | resets = <&cpg 810>; | ||
586 | renesas,id = <1>; | ||
587 | status = "disabled"; | ||
588 | |||
589 | ports { | ||
590 | #address-cells = <1>; | ||
591 | #size-cells = <0>; | ||
592 | |||
593 | port@1 { | ||
594 | #address-cells = <1>; | ||
595 | #size-cells = <0>; | ||
596 | |||
597 | reg = <1>; | ||
598 | |||
599 | vin1csi40: endpoint@2 { | ||
600 | reg = <2>; | ||
601 | remote-endpoint= <&csi40vin1>; | ||
602 | }; | ||
603 | }; | ||
604 | }; | ||
605 | }; | ||
606 | |||
607 | vin2: video@e6ef2000 { | ||
608 | compatible = "renesas,vin-r8a77970"; | ||
609 | reg = <0 0xe6ef2000 0 0x1000>; | ||
610 | interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; | ||
611 | clocks = <&cpg CPG_MOD 809>; | ||
612 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
613 | resets = <&cpg 809>; | ||
614 | renesas,id = <2>; | ||
615 | status = "disabled"; | ||
616 | |||
617 | ports { | ||
618 | #address-cells = <1>; | ||
619 | #size-cells = <0>; | ||
620 | |||
621 | port@1 { | ||
622 | #address-cells = <1>; | ||
623 | #size-cells = <0>; | ||
624 | |||
625 | reg = <1>; | ||
626 | |||
627 | vin2csi40: endpoint@2 { | ||
628 | reg = <2>; | ||
629 | remote-endpoint= <&csi40vin2>; | ||
630 | }; | ||
631 | }; | ||
632 | }; | ||
633 | }; | ||
634 | |||
635 | vin3: video@e6ef3000 { | ||
636 | compatible = "renesas,vin-r8a77970"; | ||
637 | reg = <0 0xe6ef3000 0 0x1000>; | ||
638 | interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; | ||
639 | clocks = <&cpg CPG_MOD 808>; | ||
640 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
641 | resets = <&cpg 808>; | ||
642 | renesas,id = <3>; | ||
643 | status = "disabled"; | ||
644 | |||
645 | ports { | ||
646 | #address-cells = <1>; | ||
647 | #size-cells = <0>; | ||
648 | |||
649 | port@1 { | ||
650 | #address-cells = <1>; | ||
651 | #size-cells = <0>; | ||
652 | |||
653 | reg = <1>; | ||
654 | |||
655 | vin3csi40: endpoint@2 { | ||
656 | reg = <2>; | ||
657 | remote-endpoint= <&csi40vin3>; | ||
658 | }; | ||
659 | }; | ||
660 | }; | ||
661 | }; | ||
662 | |||
663 | dmac1: dma-controller@e7300000 { | ||
664 | compatible = "renesas,dmac-r8a77970", | ||
665 | "renesas,rcar-dmac"; | ||
666 | reg = <0 0xe7300000 0 0x10000>; | ||
667 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
668 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
669 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
670 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
671 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
672 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
673 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
674 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
675 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; | ||
676 | interrupt-names = "error", | ||
677 | "ch0", "ch1", "ch2", "ch3", | ||
678 | "ch4", "ch5", "ch6", "ch7"; | ||
679 | clocks = <&cpg CPG_MOD 218>; | ||
680 | clock-names = "fck"; | ||
681 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
682 | resets = <&cpg 218>; | ||
683 | #dma-cells = <1>; | ||
684 | dma-channels = <8>; | ||
685 | iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, | ||
686 | <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, | ||
687 | <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, | ||
688 | <&ipmmu_ds1 6>, <&ipmmu_ds1 7>; | ||
689 | }; | ||
690 | |||
691 | dmac2: dma-controller@e7310000 { | ||
692 | compatible = "renesas,dmac-r8a77970", | ||
693 | "renesas,rcar-dmac"; | ||
694 | reg = <0 0xe7310000 0 0x10000>; | ||
695 | interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH | ||
696 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
697 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
698 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
699 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
700 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
701 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
702 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH | ||
703 | GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; | ||
704 | interrupt-names = "error", | ||
705 | "ch0", "ch1", "ch2", "ch3", | ||
706 | "ch4", "ch5", "ch6", "ch7"; | ||
707 | clocks = <&cpg CPG_MOD 217>; | ||
708 | clock-names = "fck"; | ||
709 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
710 | resets = <&cpg 217>; | ||
711 | #dma-cells = <1>; | ||
712 | dma-channels = <8>; | ||
713 | iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, | ||
714 | <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, | ||
715 | <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, | ||
716 | <&ipmmu_ds1 22>, <&ipmmu_ds1 23>; | ||
717 | }; | ||
718 | |||
719 | ipmmu_ds1: mmu@e7740000 { | ||
720 | compatible = "renesas,ipmmu-r8a77970"; | ||
721 | reg = <0 0xe7740000 0 0x1000>; | ||
722 | renesas,ipmmu-main = <&ipmmu_mm 0>; | ||
723 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
724 | #iommu-cells = <1>; | ||
725 | }; | ||
726 | |||
727 | ipmmu_ir: mmu@ff8b0000 { | ||
728 | compatible = "renesas,ipmmu-r8a77970"; | ||
729 | reg = <0 0xff8b0000 0 0x1000>; | ||
730 | renesas,ipmmu-main = <&ipmmu_mm 3>; | ||
731 | power-domains = <&sysc R8A77970_PD_A3IR>; | ||
732 | #iommu-cells = <1>; | ||
733 | }; | ||
734 | |||
735 | ipmmu_mm: mmu@e67b0000 { | ||
736 | compatible = "renesas,ipmmu-r8a77970"; | ||
737 | reg = <0 0xe67b0000 0 0x1000>; | ||
738 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
739 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
740 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
741 | #iommu-cells = <1>; | ||
742 | }; | ||
743 | |||
744 | ipmmu_rt: mmu@ffc80000 { | ||
745 | compatible = "renesas,ipmmu-r8a77970"; | ||
746 | reg = <0 0xffc80000 0 0x1000>; | ||
747 | renesas,ipmmu-main = <&ipmmu_mm 7>; | ||
748 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
749 | #iommu-cells = <1>; | ||
750 | }; | ||
751 | |||
752 | ipmmu_vi0: mmu@febd0000 { | ||
753 | compatible = "renesas,ipmmu-r8a77970"; | ||
754 | reg = <0 0xfebd0000 0 0x1000>; | ||
755 | renesas,ipmmu-main = <&ipmmu_mm 9>; | ||
756 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
757 | #iommu-cells = <1>; | ||
758 | }; | ||
759 | |||
760 | gic: interrupt-controller@f1010000 { | ||
761 | compatible = "arm,gic-400"; | ||
762 | #interrupt-cells = <3>; | ||
763 | #address-cells = <0>; | ||
764 | interrupt-controller; | ||
765 | reg = <0 0xf1010000 0 0x1000>, | ||
766 | <0 0xf1020000 0 0x20000>, | ||
767 | <0 0xf1040000 0 0x20000>, | ||
768 | <0 0xf1060000 0 0x20000>; | ||
769 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | | ||
770 | IRQ_TYPE_LEVEL_HIGH)>; | ||
771 | clocks = <&cpg CPG_MOD 408>; | ||
772 | clock-names = "clk"; | ||
773 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
774 | resets = <&cpg 408>; | ||
775 | }; | ||
776 | |||
777 | vspd0: vsp@fea20000 { | ||
778 | compatible = "renesas,vsp2"; | ||
779 | reg = <0 0xfea20000 0 0x8000>; | ||
780 | interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; | ||
781 | clocks = <&cpg CPG_MOD 623>; | ||
782 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
783 | resets = <&cpg 623>; | ||
784 | renesas,fcp = <&fcpvd0>; | ||
785 | }; | ||
786 | |||
787 | fcpvd0: fcp@fea27000 { | ||
788 | compatible = "renesas,fcpv"; | ||
789 | reg = <0 0xfea27000 0 0x200>; | ||
790 | clocks = <&cpg CPG_MOD 603>; | ||
791 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
792 | resets = <&cpg 603>; | ||
793 | }; | ||
794 | |||
795 | csi40: csi2@feaa0000 { | ||
796 | compatible = "renesas,r8a77970-csi2"; | ||
797 | reg = <0 0xfeaa0000 0 0x10000>; | ||
798 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
799 | clocks = <&cpg CPG_MOD 716>; | ||
800 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
801 | resets = <&cpg 716>; | ||
802 | status = "disabled"; | ||
803 | |||
804 | ports { | ||
805 | #address-cells = <1>; | ||
806 | #size-cells = <0>; | ||
807 | |||
808 | port@1 { | ||
809 | #address-cells = <1>; | ||
810 | #size-cells = <0>; | ||
811 | |||
812 | reg = <1>; | ||
813 | |||
814 | csi40vin0: endpoint@0 { | ||
815 | reg = <0>; | ||
816 | remote-endpoint = <&vin0csi40>; | ||
817 | }; | ||
818 | csi40vin1: endpoint@1 { | ||
819 | reg = <1>; | ||
820 | remote-endpoint = <&vin1csi40>; | ||
821 | }; | ||
822 | csi40vin2: endpoint@2 { | ||
823 | reg = <2>; | ||
824 | remote-endpoint = <&vin2csi40>; | ||
825 | }; | ||
826 | csi40vin3: endpoint@3 { | ||
827 | reg = <3>; | ||
828 | remote-endpoint = <&vin3csi40>; | ||
829 | }; | ||
830 | }; | ||
831 | }; | ||
832 | }; | ||
833 | |||
834 | du: display@feb00000 { | ||
835 | compatible = "renesas,du-r8a77970"; | ||
836 | reg = <0 0xfeb00000 0 0x80000>; | ||
837 | interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; | ||
838 | clocks = <&cpg CPG_MOD 724>; | ||
839 | clock-names = "du.0"; | ||
840 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
841 | resets = <&cpg 724>; | ||
842 | vsps = <&vspd0>; | ||
843 | status = "disabled"; | ||
844 | |||
845 | ports { | ||
846 | #address-cells = <1>; | ||
847 | #size-cells = <0>; | ||
848 | |||
849 | port@0 { | ||
850 | reg = <0>; | ||
851 | du_out_rgb: endpoint { | ||
852 | }; | ||
853 | }; | ||
854 | |||
855 | port@1 { | ||
856 | reg = <1>; | ||
857 | du_out_lvds0: endpoint { | ||
858 | remote-endpoint = <&lvds0_in>; | ||
859 | }; | ||
860 | }; | ||
861 | }; | ||
862 | }; | ||
863 | |||
864 | lvds0: lvds-encoder@feb90000 { | ||
865 | compatible = "renesas,r8a77970-lvds"; | ||
866 | reg = <0 0xfeb90000 0 0x14>; | ||
867 | clocks = <&cpg CPG_MOD 727>; | ||
868 | power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; | ||
869 | resets = <&cpg 727>; | ||
870 | status = "disabled"; | ||
871 | |||
872 | ports { | ||
873 | #address-cells = <1>; | ||
874 | #size-cells = <0>; | ||
875 | |||
876 | port@0 { | ||
877 | reg = <0>; | ||
878 | lvds0_in: endpoint { | ||
879 | remote-endpoint = | ||
880 | <&du_out_lvds0>; | ||
881 | }; | ||
882 | }; | ||
883 | port@1 { | ||
884 | reg = <1>; | ||
885 | lvds0_out: endpoint { | ||
886 | }; | ||
887 | }; | ||
888 | }; | ||
889 | }; | ||
890 | |||
891 | prr: chipid@fff00044 { | ||
892 | compatible = "renesas,prr"; | ||
893 | reg = <0 0xfff00044 0 4>; | ||
619 | }; | 894 | }; |
620 | }; | 895 | }; |
621 | 896 | ||
622 | timer { | 897 | timer { |
623 | compatible = "arm,armv8-timer"; | 898 | compatible = "arm,armv8-timer"; |
624 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | 899 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
625 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | 900 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
626 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | 901 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, |
627 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; | 902 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; |
628 | }; | 903 | }; |
629 | }; | 904 | }; |
diff --git a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts index 06cf6845765a..0b93a7d76585 100644 --- a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts +++ b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts | |||
@@ -27,9 +27,30 @@ | |||
27 | /* first 128MB is reserved for secure area. */ | 27 | /* first 128MB is reserved for secure area. */ |
28 | reg = <0 0x48000000 0 0x78000000>; | 28 | reg = <0 0x48000000 0 0x78000000>; |
29 | }; | 29 | }; |
30 | |||
31 | d3_3v: regulator-0 { | ||
32 | compatible = "regulator-fixed"; | ||
33 | regulator-name = "D3.3V"; | ||
34 | regulator-min-microvolt = <3300000>; | ||
35 | regulator-max-microvolt = <3300000>; | ||
36 | regulator-boot-on; | ||
37 | regulator-always-on; | ||
38 | }; | ||
39 | |||
40 | vddq_vin01: regulator-1 { | ||
41 | compatible = "regulator-fixed"; | ||
42 | regulator-name = "VDDQ_VIN01"; | ||
43 | regulator-min-microvolt = <1800000>; | ||
44 | regulator-max-microvolt = <1800000>; | ||
45 | regulator-boot-on; | ||
46 | regulator-always-on; | ||
47 | }; | ||
30 | }; | 48 | }; |
31 | 49 | ||
32 | &avb { | 50 | &avb { |
51 | pinctrl-0 = <&avb_pins>; | ||
52 | pinctrl-names = "default"; | ||
53 | |||
33 | phy-mode = "rgmii-id"; | 54 | phy-mode = "rgmii-id"; |
34 | phy-handle = <&phy0>; | 55 | phy-handle = <&phy0>; |
35 | renesas,no-ether-link; | 56 | renesas,no-ether-link; |
@@ -41,6 +62,16 @@ | |||
41 | }; | 62 | }; |
42 | }; | 63 | }; |
43 | 64 | ||
65 | &canfd { | ||
66 | pinctrl-0 = <&canfd0_pins>; | ||
67 | pinctrl-names = "default"; | ||
68 | status = "okay"; | ||
69 | |||
70 | channel0 { | ||
71 | status = "okay"; | ||
72 | }; | ||
73 | }; | ||
74 | |||
44 | &extal_clk { | 75 | &extal_clk { |
45 | clock-frequency = <16666666>; | 76 | clock-frequency = <16666666>; |
46 | }; | 77 | }; |
@@ -49,7 +80,57 @@ | |||
49 | clock-frequency = <32768>; | 80 | clock-frequency = <32768>; |
50 | }; | 81 | }; |
51 | 82 | ||
83 | &mmc0 { | ||
84 | pinctrl-0 = <&mmc_pins>; | ||
85 | pinctrl-1 = <&mmc_pins_uhs>; | ||
86 | pinctrl-names = "default", "state_uhs"; | ||
87 | |||
88 | vmmc-supply = <&d3_3v>; | ||
89 | vqmmc-supply = <&vddq_vin01>; | ||
90 | mmc-hs200-1_8v; | ||
91 | bus-width = <8>; | ||
92 | non-removable; | ||
93 | status = "okay"; | ||
94 | }; | ||
95 | |||
96 | &pfc { | ||
97 | avb_pins: avb { | ||
98 | groups = "avb_mdio", "avb_rgmii"; | ||
99 | function = "avb"; | ||
100 | }; | ||
101 | |||
102 | canfd0_pins: canfd0 { | ||
103 | groups = "canfd0_data_a"; | ||
104 | function = "canfd0"; | ||
105 | }; | ||
106 | |||
107 | mmc_pins: mmc { | ||
108 | groups = "mmc_data8", "mmc_ctrl", "mmc_ds"; | ||
109 | function = "mmc"; | ||
110 | power-source = <3300>; | ||
111 | }; | ||
112 | |||
113 | mmc_pins_uhs: mmc_uhs { | ||
114 | groups = "mmc_data8", "mmc_ctrl", "mmc_ds"; | ||
115 | function = "mmc"; | ||
116 | power-source = <1800>; | ||
117 | }; | ||
118 | |||
119 | scif0_pins: scif0 { | ||
120 | groups = "scif0_data"; | ||
121 | function = "scif0"; | ||
122 | }; | ||
123 | |||
124 | scif_clk_pins: scif_clk { | ||
125 | groups = "scif_clk_b"; | ||
126 | function = "scif_clk"; | ||
127 | }; | ||
128 | }; | ||
129 | |||
52 | &scif0 { | 130 | &scif0 { |
131 | pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>; | ||
132 | pinctrl-names = "default"; | ||
133 | |||
53 | status = "okay"; | 134 | status = "okay"; |
54 | }; | 135 | }; |
55 | 136 | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts new file mode 100644 index 000000000000..c9680994555d --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts | |||
@@ -0,0 +1,60 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | /* | ||
3 | * Device Tree Source for the V3H Starter Kit board | ||
4 | * | ||
5 | * Copyright (C) 2018 Renesas Electronics Corp. | ||
6 | * Copyright (C) 2018 Cogent Embedded, Inc. | ||
7 | */ | ||
8 | |||
9 | /dts-v1/; | ||
10 | #include "r8a77980.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "Renesas V3H Starter Kit board"; | ||
14 | compatible = "renesas,v3hsk", "renesas,r8a77980"; | ||
15 | |||
16 | aliases { | ||
17 | serial0 = &scif0; | ||
18 | }; | ||
19 | |||
20 | chosen { | ||
21 | stdout-path = "serial0:115200n8"; | ||
22 | }; | ||
23 | |||
24 | memory@48000000 { | ||
25 | device_type = "memory"; | ||
26 | /* first 128MB is reserved for secure area. */ | ||
27 | reg = <0 0x48000000 0 0x78000000>; | ||
28 | }; | ||
29 | }; | ||
30 | |||
31 | &extal_clk { | ||
32 | clock-frequency = <16666666>; | ||
33 | }; | ||
34 | |||
35 | &extalr_clk { | ||
36 | clock-frequency = <32768>; | ||
37 | }; | ||
38 | |||
39 | &pfc { | ||
40 | scif0_pins: scif0 { | ||
41 | groups = "scif0_data"; | ||
42 | function = "scif0"; | ||
43 | }; | ||
44 | |||
45 | scif_clk_pins: scif_clk { | ||
46 | groups = "scif_clk_b"; | ||
47 | function = "scif_clk"; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | &scif0 { | ||
52 | pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>; | ||
53 | pinctrl-names = "default"; | ||
54 | |||
55 | status = "okay"; | ||
56 | }; | ||
57 | |||
58 | &scif_clk { | ||
59 | clock-frequency = <14745600>; | ||
60 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi index 03845fd74996..4c40f9f0ebc9 100644 --- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi | |||
@@ -6,9 +6,10 @@ | |||
6 | * Copyright (C) 2018 Cogent Embedded, Inc. | 6 | * Copyright (C) 2018 Cogent Embedded, Inc. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <dt-bindings/clock/r8a77980-cpg-mssr.h> | ||
9 | #include <dt-bindings/interrupt-controller/irq.h> | 10 | #include <dt-bindings/interrupt-controller/irq.h> |
10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
11 | #include <dt-bindings/clock/renesas-cpg-mssr.h> | 12 | #include <dt-bindings/power/r8a77980-sysc.h> |
12 | 13 | ||
13 | / { | 14 | / { |
14 | compatible = "renesas,r8a77980"; | 15 | compatible = "renesas,r8a77980"; |
@@ -23,20 +24,27 @@ | |||
23 | device_type = "cpu"; | 24 | device_type = "cpu"; |
24 | compatible = "arm,cortex-a53", "arm,armv8"; | 25 | compatible = "arm,cortex-a53", "arm,armv8"; |
25 | reg = <0>; | 26 | reg = <0>; |
26 | clocks = <&cpg CPG_CORE 0>; | 27 | clocks = <&cpg CPG_CORE R8A77980_CLK_Z2>; |
27 | power-domains = <&sysc 5>; | 28 | power-domains = <&sysc R8A77980_PD_CA53_CPU0>; |
28 | next-level-cache = <&L2_CA53>; | 29 | next-level-cache = <&L2_CA53>; |
29 | enable-method = "psci"; | 30 | enable-method = "psci"; |
30 | }; | 31 | }; |
31 | 32 | ||
32 | L2_CA53: cache-controller { | 33 | L2_CA53: cache-controller { |
33 | compatible = "cache"; | 34 | compatible = "cache"; |
34 | power-domains = <&sysc 21>; | 35 | power-domains = <&sysc R8A77980_PD_CA53_SCU>; |
35 | cache-unified; | 36 | cache-unified; |
36 | cache-level = <2>; | 37 | cache-level = <2>; |
37 | }; | 38 | }; |
38 | }; | 39 | }; |
39 | 40 | ||
41 | /* External CAN clock - to be overridden by boards that provide it */ | ||
42 | can_clk: can { | ||
43 | compatible = "fixed-clock"; | ||
44 | #clock-cells = <0>; | ||
45 | clock-frequency = <0>; | ||
46 | }; | ||
47 | |||
40 | extal_clk: extal { | 48 | extal_clk: extal { |
41 | compatible = "fixed-clock"; | 49 | compatible = "fixed-clock"; |
42 | #clock-cells = <0>; | 50 | #clock-cells = <0>; |
@@ -71,6 +79,11 @@ | |||
71 | #size-cells = <2>; | 79 | #size-cells = <2>; |
72 | ranges; | 80 | ranges; |
73 | 81 | ||
82 | pfc: pin-controller@e6060000 { | ||
83 | compatible = "renesas,pfc-r8a77980"; | ||
84 | reg = <0 0xe6060000 0 0x50c>; | ||
85 | }; | ||
86 | |||
74 | cpg: clock-controller@e6150000 { | 87 | cpg: clock-controller@e6150000 { |
75 | compatible = "renesas,r8a77980-cpg-mssr"; | 88 | compatible = "renesas,r8a77980-cpg-mssr"; |
76 | reg = <0 0xe6150000 0 0x1000>; | 89 | reg = <0 0xe6150000 0 0x1000>; |
@@ -99,13 +112,13 @@ | |||
99 | reg = <0 0xe6540000 0 0x60>; | 112 | reg = <0 0xe6540000 0 0x60>; |
100 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | 113 | interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; |
101 | clocks = <&cpg CPG_MOD 520>, | 114 | clocks = <&cpg CPG_MOD 520>, |
102 | <&cpg CPG_CORE 19>, | 115 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
103 | <&scif_clk>; | 116 | <&scif_clk>; |
104 | clock-names = "fck", "brg_int", "scif_clk"; | 117 | clock-names = "fck", "brg_int", "scif_clk"; |
105 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, | 118 | dmas = <&dmac1 0x31>, <&dmac1 0x30>, |
106 | <&dmac2 0x31>, <&dmac2 0x30>; | 119 | <&dmac2 0x31>, <&dmac2 0x30>; |
107 | dma-names = "tx", "rx", "tx", "rx"; | 120 | dma-names = "tx", "rx", "tx", "rx"; |
108 | power-domains = <&sysc 32>; | 121 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
109 | resets = <&cpg 520>; | 122 | resets = <&cpg 520>; |
110 | status = "disabled"; | 123 | status = "disabled"; |
111 | }; | 124 | }; |
@@ -117,13 +130,13 @@ | |||
117 | reg = <0 0xe6550000 0 0x60>; | 130 | reg = <0 0xe6550000 0 0x60>; |
118 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; | 131 | interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; |
119 | clocks = <&cpg CPG_MOD 519>, | 132 | clocks = <&cpg CPG_MOD 519>, |
120 | <&cpg CPG_CORE 19>, | 133 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
121 | <&scif_clk>; | 134 | <&scif_clk>; |
122 | clock-names = "fck", "brg_int", "scif_clk"; | 135 | clock-names = "fck", "brg_int", "scif_clk"; |
123 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, | 136 | dmas = <&dmac1 0x33>, <&dmac1 0x32>, |
124 | <&dmac2 0x33>, <&dmac2 0x32>; | 137 | <&dmac2 0x33>, <&dmac2 0x32>; |
125 | dma-names = "tx", "rx", "tx", "rx"; | 138 | dma-names = "tx", "rx", "tx", "rx"; |
126 | power-domains = <&sysc 32>; | 139 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
127 | resets = <&cpg 519>; | 140 | resets = <&cpg 519>; |
128 | status = "disabled"; | 141 | status = "disabled"; |
129 | }; | 142 | }; |
@@ -135,13 +148,13 @@ | |||
135 | reg = <0 0xe6560000 0 0x60>; | 148 | reg = <0 0xe6560000 0 0x60>; |
136 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; | 149 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; |
137 | clocks = <&cpg CPG_MOD 518>, | 150 | clocks = <&cpg CPG_MOD 518>, |
138 | <&cpg CPG_CORE 19>, | 151 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
139 | <&scif_clk>; | 152 | <&scif_clk>; |
140 | clock-names = "fck", "brg_int", "scif_clk"; | 153 | clock-names = "fck", "brg_int", "scif_clk"; |
141 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, | 154 | dmas = <&dmac1 0x35>, <&dmac1 0x34>, |
142 | <&dmac2 0x35>, <&dmac2 0x34>; | 155 | <&dmac2 0x35>, <&dmac2 0x34>; |
143 | dma-names = "tx", "rx", "tx", "rx"; | 156 | dma-names = "tx", "rx", "tx", "rx"; |
144 | power-domains = <&sysc 32>; | 157 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
145 | resets = <&cpg 518>; | 158 | resets = <&cpg 518>; |
146 | status = "disabled"; | 159 | status = "disabled"; |
147 | }; | 160 | }; |
@@ -153,17 +166,42 @@ | |||
153 | reg = <0 0xe66a0000 0 0x60>; | 166 | reg = <0 0xe66a0000 0 0x60>; |
154 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; | 167 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; |
155 | clocks = <&cpg CPG_MOD 517>, | 168 | clocks = <&cpg CPG_MOD 517>, |
156 | <&cpg CPG_CORE 19>, | 169 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
157 | <&scif_clk>; | 170 | <&scif_clk>; |
158 | clock-names = "fck", "brg_int", "scif_clk"; | 171 | clock-names = "fck", "brg_int", "scif_clk"; |
159 | dmas = <&dmac1 0x37>, <&dmac1 0x36>, | 172 | dmas = <&dmac1 0x37>, <&dmac1 0x36>, |
160 | <&dmac2 0x37>, <&dmac2 0x36>; | 173 | <&dmac2 0x37>, <&dmac2 0x36>; |
161 | dma-names = "tx", "rx", "tx", "rx"; | 174 | dma-names = "tx", "rx", "tx", "rx"; |
162 | power-domains = <&sysc 32>; | 175 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
163 | resets = <&cpg 517>; | 176 | resets = <&cpg 517>; |
164 | status = "disabled"; | 177 | status = "disabled"; |
165 | }; | 178 | }; |
166 | 179 | ||
180 | canfd: can@e66c0000 { | ||
181 | compatible = "renesas,r8a77980-canfd", | ||
182 | "renesas,rcar-gen3-canfd"; | ||
183 | reg = <0 0xe66c0000 0 0x8000>; | ||
184 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, | ||
185 | <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
186 | clocks = <&cpg CPG_MOD 914>, | ||
187 | <&cpg CPG_CORE R8A77980_CLK_CANFD>, | ||
188 | <&can_clk>; | ||
189 | clock-names = "fck", "canfd", "can_clk"; | ||
190 | assigned-clocks = <&cpg CPG_CORE R8A77980_CLK_CANFD>; | ||
191 | assigned-clock-rates = <40000000>; | ||
192 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; | ||
193 | resets = <&cpg 914>; | ||
194 | status = "disabled"; | ||
195 | |||
196 | channel0 { | ||
197 | status = "disabled"; | ||
198 | }; | ||
199 | |||
200 | channel1 { | ||
201 | status = "disabled"; | ||
202 | }; | ||
203 | }; | ||
204 | |||
167 | avb: ethernet@e6800000 { | 205 | avb: ethernet@e6800000 { |
168 | compatible = "renesas,etheravb-r8a77980", | 206 | compatible = "renesas,etheravb-r8a77980", |
169 | "renesas,etheravb-rcar-gen3"; | 207 | "renesas,etheravb-rcar-gen3"; |
@@ -201,11 +239,12 @@ | |||
201 | "ch20", "ch21", "ch22", "ch23", | 239 | "ch20", "ch21", "ch22", "ch23", |
202 | "ch24"; | 240 | "ch24"; |
203 | clocks = <&cpg CPG_MOD 812>; | 241 | clocks = <&cpg CPG_MOD 812>; |
204 | power-domains = <&sysc 32>; | 242 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
205 | resets = <&cpg 812>; | 243 | resets = <&cpg 812>; |
206 | phy-mode = "rgmii"; | 244 | phy-mode = "rgmii"; |
207 | #address-cells = <1>; | 245 | #address-cells = <1>; |
208 | #size-cells = <0>; | 246 | #size-cells = <0>; |
247 | status = "disabled"; | ||
209 | }; | 248 | }; |
210 | 249 | ||
211 | scif0: serial@e6e60000 { | 250 | scif0: serial@e6e60000 { |
@@ -215,13 +254,13 @@ | |||
215 | reg = <0 0xe6e60000 0 0x40>; | 254 | reg = <0 0xe6e60000 0 0x40>; |
216 | interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | 255 | interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; |
217 | clocks = <&cpg CPG_MOD 207>, | 256 | clocks = <&cpg CPG_MOD 207>, |
218 | <&cpg CPG_CORE 19>, | 257 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
219 | <&scif_clk>; | 258 | <&scif_clk>; |
220 | clock-names = "fck", "brg_int", "scif_clk"; | 259 | clock-names = "fck", "brg_int", "scif_clk"; |
221 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, | 260 | dmas = <&dmac1 0x51>, <&dmac1 0x50>, |
222 | <&dmac2 0x51>, <&dmac2 0x50>; | 261 | <&dmac2 0x51>, <&dmac2 0x50>; |
223 | dma-names = "tx", "rx", "tx", "rx"; | 262 | dma-names = "tx", "rx", "tx", "rx"; |
224 | power-domains = <&sysc 32>; | 263 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
225 | resets = <&cpg 207>; | 264 | resets = <&cpg 207>; |
226 | status = "disabled"; | 265 | status = "disabled"; |
227 | }; | 266 | }; |
@@ -233,13 +272,13 @@ | |||
233 | reg = <0 0xe6e68000 0 0x40>; | 272 | reg = <0 0xe6e68000 0 0x40>; |
234 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | 273 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; |
235 | clocks = <&cpg CPG_MOD 206>, | 274 | clocks = <&cpg CPG_MOD 206>, |
236 | <&cpg CPG_CORE 19>, | 275 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
237 | <&scif_clk>; | 276 | <&scif_clk>; |
238 | clock-names = "fck", "brg_int", "scif_clk"; | 277 | clock-names = "fck", "brg_int", "scif_clk"; |
239 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, | 278 | dmas = <&dmac1 0x53>, <&dmac1 0x52>, |
240 | <&dmac2 0x53>, <&dmac2 0x52>; | 279 | <&dmac2 0x53>, <&dmac2 0x52>; |
241 | dma-names = "tx", "rx", "tx", "rx"; | 280 | dma-names = "tx", "rx", "tx", "rx"; |
242 | power-domains = <&sysc 32>; | 281 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
243 | resets = <&cpg 206>; | 282 | resets = <&cpg 206>; |
244 | status = "disabled"; | 283 | status = "disabled"; |
245 | }; | 284 | }; |
@@ -251,13 +290,13 @@ | |||
251 | reg = <0 0xe6c50000 0 0x40>; | 290 | reg = <0 0xe6c50000 0 0x40>; |
252 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | 291 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; |
253 | clocks = <&cpg CPG_MOD 204>, | 292 | clocks = <&cpg CPG_MOD 204>, |
254 | <&cpg CPG_CORE 19>, | 293 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
255 | <&scif_clk>; | 294 | <&scif_clk>; |
256 | clock-names = "fck", "brg_int", "scif_clk"; | 295 | clock-names = "fck", "brg_int", "scif_clk"; |
257 | dmas = <&dmac1 0x57>, <&dmac1 0x56>, | 296 | dmas = <&dmac1 0x57>, <&dmac1 0x56>, |
258 | <&dmac2 0x57>, <&dmac2 0x56>; | 297 | <&dmac2 0x57>, <&dmac2 0x56>; |
259 | dma-names = "tx", "rx", "tx", "rx"; | 298 | dma-names = "tx", "rx", "tx", "rx"; |
260 | power-domains = <&sysc 32>; | 299 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
261 | resets = <&cpg 204>; | 300 | resets = <&cpg 204>; |
262 | status = "disabled"; | 301 | status = "disabled"; |
263 | }; | 302 | }; |
@@ -269,13 +308,13 @@ | |||
269 | reg = <0 0xe6c40000 0 0x40>; | 308 | reg = <0 0xe6c40000 0 0x40>; |
270 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; | 309 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |
271 | clocks = <&cpg CPG_MOD 203>, | 310 | clocks = <&cpg CPG_MOD 203>, |
272 | <&cpg CPG_CORE 19>, | 311 | <&cpg CPG_CORE R8A77980_CLK_S3D1>, |
273 | <&scif_clk>; | 312 | <&scif_clk>; |
274 | clock-names = "fck", "brg_int", "scif_clk"; | 313 | clock-names = "fck", "brg_int", "scif_clk"; |
275 | dmas = <&dmac1 0x59>, <&dmac1 0x58>, | 314 | dmas = <&dmac1 0x59>, <&dmac1 0x58>, |
276 | <&dmac2 0x59>, <&dmac2 0x58>; | 315 | <&dmac2 0x59>, <&dmac2 0x58>; |
277 | dma-names = "tx", "rx", "tx", "rx"; | 316 | dma-names = "tx", "rx", "tx", "rx"; |
278 | power-domains = <&sysc 32>; | 317 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
279 | resets = <&cpg 203>; | 318 | resets = <&cpg 203>; |
280 | status = "disabled"; | 319 | status = "disabled"; |
281 | }; | 320 | }; |
@@ -308,7 +347,7 @@ | |||
308 | "ch12", "ch13", "ch14", "ch15"; | 347 | "ch12", "ch13", "ch14", "ch15"; |
309 | clocks = <&cpg CPG_MOD 218>; | 348 | clocks = <&cpg CPG_MOD 218>; |
310 | clock-names = "fck"; | 349 | clock-names = "fck"; |
311 | power-domains = <&sysc 32>; | 350 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
312 | resets = <&cpg 218>; | 351 | resets = <&cpg 218>; |
313 | #dma-cells = <1>; | 352 | #dma-cells = <1>; |
314 | dma-channels = <16>; | 353 | dma-channels = <16>; |
@@ -342,12 +381,24 @@ | |||
342 | "ch12", "ch13", "ch14", "ch15"; | 381 | "ch12", "ch13", "ch14", "ch15"; |
343 | clocks = <&cpg CPG_MOD 217>; | 382 | clocks = <&cpg CPG_MOD 217>; |
344 | clock-names = "fck"; | 383 | clock-names = "fck"; |
345 | power-domains = <&sysc 32>; | 384 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
346 | resets = <&cpg 217>; | 385 | resets = <&cpg 217>; |
347 | #dma-cells = <1>; | 386 | #dma-cells = <1>; |
348 | dma-channels = <16>; | 387 | dma-channels = <16>; |
349 | }; | 388 | }; |
350 | 389 | ||
390 | mmc0: mmc@ee140000 { | ||
391 | compatible = "renesas,sdhi-r8a77980", | ||
392 | "renesas,rcar-gen3-sdhi"; | ||
393 | reg = <0 0xee140000 0 0x2000>; | ||
394 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | ||
395 | clocks = <&cpg CPG_MOD 314>; | ||
396 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; | ||
397 | resets = <&cpg 314>; | ||
398 | max-frequency = <200000000>; | ||
399 | status = "disabled"; | ||
400 | }; | ||
401 | |||
351 | gic: interrupt-controller@f1010000 { | 402 | gic: interrupt-controller@f1010000 { |
352 | compatible = "arm,gic-400"; | 403 | compatible = "arm,gic-400"; |
353 | #interrupt-cells = <3>; | 404 | #interrupt-cells = <3>; |
@@ -361,7 +412,7 @@ | |||
361 | IRQ_TYPE_LEVEL_HIGH)>; | 412 | IRQ_TYPE_LEVEL_HIGH)>; |
362 | clocks = <&cpg CPG_MOD 408>; | 413 | clocks = <&cpg CPG_MOD 408>; |
363 | clock-names = "clk"; | 414 | clock-names = "clk"; |
364 | power-domains = <&sysc 32>; | 415 | power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; |
365 | resets = <&cpg 408>; | 416 | resets = <&cpg 408>; |
366 | }; | 417 | }; |
367 | 418 | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts new file mode 100644 index 000000000000..7a09d0524f9b --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts | |||
@@ -0,0 +1,65 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * Device Tree Source for the ebisu board | ||
4 | * | ||
5 | * Copyright (C) 2018 Renesas Electronics Corp. | ||
6 | */ | ||
7 | |||
8 | /dts-v1/; | ||
9 | #include "r8a77990.dtsi" | ||
10 | #include <dt-bindings/gpio/gpio.h> | ||
11 | |||
12 | / { | ||
13 | model = "Renesas Ebisu board based on r8a77990"; | ||
14 | compatible = "renesas,ebisu", "renesas,r8a77990"; | ||
15 | |||
16 | aliases { | ||
17 | serial0 = &scif2; | ||
18 | ethernet0 = &avb; | ||
19 | }; | ||
20 | |||
21 | chosen { | ||
22 | bootargs = "ignore_loglevel"; | ||
23 | stdout-path = "serial0:115200n8"; | ||
24 | }; | ||
25 | |||
26 | memory@48000000 { | ||
27 | device_type = "memory"; | ||
28 | /* first 128MB is reserved for secure area. */ | ||
29 | reg = <0x0 0x48000000 0x0 0x38000000>; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | &avb { | ||
34 | pinctrl-0 = <&avb_pins>; | ||
35 | pinctrl-names = "default"; | ||
36 | renesas,no-ether-link; | ||
37 | phy-handle = <&phy0>; | ||
38 | phy-mode = "rgmii-txid"; | ||
39 | status = "okay"; | ||
40 | |||
41 | phy0: ethernet-phy@0 { | ||
42 | rxc-skew-ps = <1500>; | ||
43 | reg = <0>; | ||
44 | interrupt-parent = <&gpio2>; | ||
45 | interrupts = <21 IRQ_TYPE_LEVEL_LOW>; | ||
46 | reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | &extal_clk { | ||
51 | clock-frequency = <48000000>; | ||
52 | }; | ||
53 | |||
54 | &pfc { | ||
55 | avb_pins: avb { | ||
56 | mux { | ||
57 | groups = "avb_link", "avb_mii"; | ||
58 | function = "avb"; | ||
59 | }; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | &scif2 { | ||
64 | status = "okay"; | ||
65 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi new file mode 100644 index 000000000000..be4f519711a1 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi | |||
@@ -0,0 +1,281 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * Device Tree Source for the r8a77990 SoC | ||
4 | * | ||
5 | * Copyright (C) 2018 Renesas Electronics Corp. | ||
6 | */ | ||
7 | |||
8 | #include <dt-bindings/clock/renesas-cpg-mssr.h> | ||
9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
10 | |||
11 | / { | ||
12 | compatible = "renesas,r8a77990"; | ||
13 | #address-cells = <2>; | ||
14 | #size-cells = <2>; | ||
15 | |||
16 | cpus { | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <0>; | ||
19 | |||
20 | /* 1 core only at this point */ | ||
21 | a53_0: cpu@0 { | ||
22 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
23 | reg = <0x0>; | ||
24 | device_type = "cpu"; | ||
25 | power-domains = <&sysc 5>; | ||
26 | next-level-cache = <&L2_CA53>; | ||
27 | enable-method = "psci"; | ||
28 | }; | ||
29 | |||
30 | L2_CA53: cache-controller-0 { | ||
31 | compatible = "cache"; | ||
32 | power-domains = <&sysc 21>; | ||
33 | cache-unified; | ||
34 | cache-level = <2>; | ||
35 | }; | ||
36 | }; | ||
37 | |||
38 | extal_clk: extal { | ||
39 | compatible = "fixed-clock"; | ||
40 | #clock-cells = <0>; | ||
41 | /* This value must be overridden by the board */ | ||
42 | clock-frequency = <0>; | ||
43 | }; | ||
44 | |||
45 | pmu_a53 { | ||
46 | compatible = "arm,cortex-a53-pmu"; | ||
47 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | ||
48 | interrupt-affinity = <&a53_0>; | ||
49 | }; | ||
50 | |||
51 | psci { | ||
52 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | ||
53 | method = "smc"; | ||
54 | }; | ||
55 | |||
56 | soc: soc { | ||
57 | compatible = "simple-bus"; | ||
58 | interrupt-parent = <&gic>; | ||
59 | #address-cells = <2>; | ||
60 | #size-cells = <2>; | ||
61 | ranges; | ||
62 | |||
63 | gpio0: gpio@e6050000 { | ||
64 | compatible = "renesas,gpio-r8a77990", | ||
65 | "renesas,rcar-gen3-gpio"; | ||
66 | reg = <0 0xe6050000 0 0x50>; | ||
67 | interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; | ||
68 | #gpio-cells = <2>; | ||
69 | gpio-controller; | ||
70 | gpio-ranges = <&pfc 0 0 18>; | ||
71 | #interrupt-cells = <2>; | ||
72 | interrupt-controller; | ||
73 | clocks = <&cpg CPG_MOD 912>; | ||
74 | power-domains = <&sysc 32>; | ||
75 | resets = <&cpg 912>; | ||
76 | }; | ||
77 | |||
78 | gpio1: gpio@e6051000 { | ||
79 | compatible = "renesas,gpio-r8a77990", | ||
80 | "renesas,rcar-gen3-gpio"; | ||
81 | reg = <0 0xe6051000 0 0x50>; | ||
82 | interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; | ||
83 | #gpio-cells = <2>; | ||
84 | gpio-controller; | ||
85 | gpio-ranges = <&pfc 0 32 23>; | ||
86 | #interrupt-cells = <2>; | ||
87 | interrupt-controller; | ||
88 | clocks = <&cpg CPG_MOD 911>; | ||
89 | power-domains = <&sysc 32>; | ||
90 | resets = <&cpg 911>; | ||
91 | }; | ||
92 | |||
93 | gpio2: gpio@e6052000 { | ||
94 | compatible = "renesas,gpio-r8a77990", | ||
95 | "renesas,rcar-gen3-gpio"; | ||
96 | reg = <0 0xe6052000 0 0x50>; | ||
97 | interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; | ||
98 | #gpio-cells = <2>; | ||
99 | gpio-controller; | ||
100 | gpio-ranges = <&pfc 0 64 26>; | ||
101 | #interrupt-cells = <2>; | ||
102 | interrupt-controller; | ||
103 | clocks = <&cpg CPG_MOD 910>; | ||
104 | power-domains = <&sysc 32>; | ||
105 | resets = <&cpg 910>; | ||
106 | }; | ||
107 | |||
108 | gpio3: gpio@e6053000 { | ||
109 | compatible = "renesas,gpio-r8a77990", | ||
110 | "renesas,rcar-gen3-gpio"; | ||
111 | reg = <0 0xe6053000 0 0x50>; | ||
112 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
113 | #gpio-cells = <2>; | ||
114 | gpio-controller; | ||
115 | gpio-ranges = <&pfc 0 96 16>; | ||
116 | #interrupt-cells = <2>; | ||
117 | interrupt-controller; | ||
118 | clocks = <&cpg CPG_MOD 909>; | ||
119 | power-domains = <&sysc 32>; | ||
120 | resets = <&cpg 909>; | ||
121 | }; | ||
122 | |||
123 | gpio4: gpio@e6054000 { | ||
124 | compatible = "renesas,gpio-r8a77990", | ||
125 | "renesas,rcar-gen3-gpio"; | ||
126 | reg = <0 0xe6054000 0 0x50>; | ||
127 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
128 | #gpio-cells = <2>; | ||
129 | gpio-controller; | ||
130 | gpio-ranges = <&pfc 0 128 11>; | ||
131 | #interrupt-cells = <2>; | ||
132 | interrupt-controller; | ||
133 | clocks = <&cpg CPG_MOD 908>; | ||
134 | power-domains = <&sysc 32>; | ||
135 | resets = <&cpg 908>; | ||
136 | }; | ||
137 | |||
138 | gpio5: gpio@e6055000 { | ||
139 | compatible = "renesas,gpio-r8a77990", | ||
140 | "renesas,rcar-gen3-gpio"; | ||
141 | reg = <0 0xe6055000 0 0x50>; | ||
142 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||
143 | #gpio-cells = <2>; | ||
144 | gpio-controller; | ||
145 | gpio-ranges = <&pfc 0 160 20>; | ||
146 | #interrupt-cells = <2>; | ||
147 | interrupt-controller; | ||
148 | clocks = <&cpg CPG_MOD 907>; | ||
149 | power-domains = <&sysc 32>; | ||
150 | resets = <&cpg 907>; | ||
151 | }; | ||
152 | |||
153 | gpio6: gpio@e6055400 { | ||
154 | compatible = "renesas,gpio-r8a77990", | ||
155 | "renesas,rcar-gen3-gpio"; | ||
156 | reg = <0 0xe6055400 0 0x50>; | ||
157 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
158 | #gpio-cells = <2>; | ||
159 | gpio-controller; | ||
160 | gpio-ranges = <&pfc 0 192 18>; | ||
161 | #interrupt-cells = <2>; | ||
162 | interrupt-controller; | ||
163 | clocks = <&cpg CPG_MOD 906>; | ||
164 | power-domains = <&sysc 32>; | ||
165 | resets = <&cpg 906>; | ||
166 | }; | ||
167 | |||
168 | pfc: pin-controller@e6060000 { | ||
169 | compatible = "renesas,pfc-r8a77990"; | ||
170 | reg = <0 0xe6060000 0 0x508>; | ||
171 | }; | ||
172 | |||
173 | cpg: clock-controller@e6150000 { | ||
174 | compatible = "renesas,r8a77990-cpg-mssr"; | ||
175 | reg = <0 0xe6150000 0 0x1000>; | ||
176 | clocks = <&extal_clk>; | ||
177 | clock-names = "extal"; | ||
178 | #clock-cells = <2>; | ||
179 | #power-domain-cells = <0>; | ||
180 | #reset-cells = <1>; | ||
181 | }; | ||
182 | |||
183 | rst: reset-controller@e6160000 { | ||
184 | compatible = "renesas,r8a77990-rst"; | ||
185 | reg = <0 0xe6160000 0 0x0200>; | ||
186 | }; | ||
187 | |||
188 | sysc: system-controller@e6180000 { | ||
189 | compatible = "renesas,r8a77990-sysc"; | ||
190 | reg = <0 0xe6180000 0 0x0400>; | ||
191 | #power-domain-cells = <1>; | ||
192 | }; | ||
193 | |||
194 | avb: ethernet@e6800000 { | ||
195 | compatible = "renesas,etheravb-r8a77990", | ||
196 | "renesas,etheravb-rcar-gen3"; | ||
197 | reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; | ||
198 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, | ||
199 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | ||
200 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | ||
201 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
202 | <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, | ||
203 | <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, | ||
204 | <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, | ||
205 | <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, | ||
206 | <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
207 | <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, | ||
208 | <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, | ||
209 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
210 | <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
211 | <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | ||
212 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
213 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
214 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
215 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
216 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
217 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
218 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
219 | <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | ||
220 | <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | ||
221 | <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | ||
222 | <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
223 | interrupt-names = "ch0", "ch1", "ch2", "ch3", | ||
224 | "ch4", "ch5", "ch6", "ch7", | ||
225 | "ch8", "ch9", "ch10", "ch11", | ||
226 | "ch12", "ch13", "ch14", "ch15", | ||
227 | "ch16", "ch17", "ch18", "ch19", | ||
228 | "ch20", "ch21", "ch22", "ch23", | ||
229 | "ch24"; | ||
230 | clocks = <&cpg CPG_MOD 812>; | ||
231 | power-domains = <&sysc 32>; | ||
232 | resets = <&cpg 812>; | ||
233 | phy-mode = "rgmii"; | ||
234 | #address-cells = <1>; | ||
235 | #size-cells = <0>; | ||
236 | status = "disabled"; | ||
237 | }; | ||
238 | |||
239 | scif2: serial@e6e88000 { | ||
240 | compatible = "renesas,scif-r8a77990", | ||
241 | "renesas,rcar-gen3-scif", "renesas,scif"; | ||
242 | reg = <0 0xe6e88000 0 64>; | ||
243 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | ||
244 | clocks = <&cpg CPG_MOD 310>; | ||
245 | clock-names = "fck"; | ||
246 | power-domains = <&sysc 32>; | ||
247 | resets = <&cpg 310>; | ||
248 | status = "disabled"; | ||
249 | }; | ||
250 | |||
251 | gic: interrupt-controller@f1010000 { | ||
252 | compatible = "arm,gic-400"; | ||
253 | #interrupt-cells = <3>; | ||
254 | #address-cells = <0>; | ||
255 | interrupt-controller; | ||
256 | reg = <0x0 0xf1010000 0 0x1000>, | ||
257 | <0x0 0xf1020000 0 0x20000>, | ||
258 | <0x0 0xf1040000 0 0x20000>, | ||
259 | <0x0 0xf1060000 0 0x20000>; | ||
260 | interrupts = <GIC_PPI 9 | ||
261 | (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; | ||
262 | clocks = <&cpg CPG_MOD 408>; | ||
263 | clock-names = "clk"; | ||
264 | power-domains = <&sysc 32>; | ||
265 | resets = <&cpg 408>; | ||
266 | }; | ||
267 | |||
268 | prr: chipid@fff00044 { | ||
269 | compatible = "renesas,prr"; | ||
270 | reg = <0 0xfff00044 0 4>; | ||
271 | }; | ||
272 | }; | ||
273 | |||
274 | timer { | ||
275 | compatible = "arm,armv8-timer"; | ||
276 | interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | ||
277 | <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | ||
278 | <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, | ||
279 | <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; | ||
280 | }; | ||
281 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts index d03f19414028..9d73de8bc94d 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts +++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts | |||
@@ -91,7 +91,7 @@ | |||
91 | &pfc { | 91 | &pfc { |
92 | avb0_pins: avb { | 92 | avb0_pins: avb { |
93 | mux { | 93 | mux { |
94 | groups = "avb0_link", "avb0_mdc", "avb0_mii"; | 94 | groups = "avb0_link", "avb0_mdio", "avb0_mii"; |
95 | function = "avb0"; | 95 | function = "avb0"; |
96 | }; | 96 | }; |
97 | }; | 97 | }; |
diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi index 82aed7ee984c..2506f46293e8 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi | |||
@@ -18,9 +18,11 @@ | |||
18 | #address-cells = <2>; | 18 | #address-cells = <2>; |
19 | #size-cells = <2>; | 19 | #size-cells = <2>; |
20 | 20 | ||
21 | psci { | 21 | /* External CAN clock - to be overridden by boards that provide it */ |
22 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | 22 | can_clk: can { |
23 | method = "smc"; | 23 | compatible = "fixed-clock"; |
24 | #clock-cells = <0>; | ||
25 | clock-frequency = <0>; | ||
24 | }; | 26 | }; |
25 | 27 | ||
26 | cpus { | 28 | cpus { |
@@ -51,18 +53,16 @@ | |||
51 | clock-frequency = <0>; | 53 | clock-frequency = <0>; |
52 | }; | 54 | }; |
53 | 55 | ||
54 | /* External CAN clock - to be overridden by boards that provide it */ | ||
55 | can_clk: can { | ||
56 | compatible = "fixed-clock"; | ||
57 | #clock-cells = <0>; | ||
58 | clock-frequency = <0>; | ||
59 | }; | ||
60 | |||
61 | pmu_a53 { | 56 | pmu_a53 { |
62 | compatible = "arm,cortex-a53-pmu"; | 57 | compatible = "arm,cortex-a53-pmu"; |
63 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | 58 | interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; |
64 | }; | 59 | }; |
65 | 60 | ||
61 | psci { | ||
62 | compatible = "arm,psci-1.0", "arm,psci-0.2"; | ||
63 | method = "smc"; | ||
64 | }; | ||
65 | |||
66 | scif_clk: scif { | 66 | scif_clk: scif { |
67 | compatible = "fixed-clock"; | 67 | compatible = "fixed-clock"; |
68 | #clock-cells = <0>; | 68 | #clock-cells = <0>; |
@@ -76,23 +76,6 @@ | |||
76 | #size-cells = <2>; | 76 | #size-cells = <2>; |
77 | ranges; | 77 | ranges; |
78 | 78 | ||
79 | gic: interrupt-controller@f1010000 { | ||
80 | compatible = "arm,gic-400"; | ||
81 | #interrupt-cells = <3>; | ||
82 | #address-cells = <0>; | ||
83 | interrupt-controller; | ||
84 | reg = <0x0 0xf1010000 0 0x1000>, | ||
85 | <0x0 0xf1020000 0 0x20000>, | ||
86 | <0x0 0xf1040000 0 0x20000>, | ||
87 | <0x0 0xf1060000 0 0x20000>; | ||
88 | interrupts = <GIC_PPI 9 | ||
89 | (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; | ||
90 | clocks = <&cpg CPG_MOD 408>; | ||
91 | clock-names = "clk"; | ||
92 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
93 | resets = <&cpg 408>; | ||
94 | }; | ||
95 | |||
96 | rwdt: watchdog@e6020000 { | 79 | rwdt: watchdog@e6020000 { |
97 | compatible = "renesas,r8a77995-wdt", | 80 | compatible = "renesas,r8a77995-wdt", |
98 | "renesas,rcar-gen3-wdt"; | 81 | "renesas,rcar-gen3-wdt"; |
@@ -103,207 +86,6 @@ | |||
103 | status = "disabled"; | 86 | status = "disabled"; |
104 | }; | 87 | }; |
105 | 88 | ||
106 | ipmmu_vi0: mmu@febd0000 { | ||
107 | compatible = "renesas,ipmmu-r8a77995"; | ||
108 | reg = <0 0xfebd0000 0 0x1000>; | ||
109 | renesas,ipmmu-main = <&ipmmu_mm 14>; | ||
110 | #iommu-cells = <1>; | ||
111 | status = "disabled"; | ||
112 | }; | ||
113 | |||
114 | ipmmu_vp0: mmu@fe990000 { | ||
115 | compatible = "renesas,ipmmu-r8a77995"; | ||
116 | reg = <0 0xfe990000 0 0x1000>; | ||
117 | renesas,ipmmu-main = <&ipmmu_mm 16>; | ||
118 | #iommu-cells = <1>; | ||
119 | status = "disabled"; | ||
120 | }; | ||
121 | |||
122 | ipmmu_vc0: mmu@fe6b0000 { | ||
123 | compatible = "renesas,ipmmu-r8a77995"; | ||
124 | reg = <0 0xfe6b0000 0 0x1000>; | ||
125 | renesas,ipmmu-main = <&ipmmu_mm 12>; | ||
126 | #iommu-cells = <1>; | ||
127 | status = "disabled"; | ||
128 | }; | ||
129 | |||
130 | ipmmu_pv0: mmu@fd800000 { | ||
131 | compatible = "renesas,ipmmu-r8a77995"; | ||
132 | reg = <0 0xfd800000 0 0x1000>; | ||
133 | renesas,ipmmu-main = <&ipmmu_mm 6>; | ||
134 | #iommu-cells = <1>; | ||
135 | status = "disabled"; | ||
136 | }; | ||
137 | |||
138 | ipmmu_hc: mmu@e6570000 { | ||
139 | compatible = "renesas,ipmmu-r8a77995"; | ||
140 | reg = <0 0xe6570000 0 0x1000>; | ||
141 | renesas,ipmmu-main = <&ipmmu_mm 2>; | ||
142 | #iommu-cells = <1>; | ||
143 | status = "disabled"; | ||
144 | }; | ||
145 | |||
146 | ipmmu_rt: mmu@ffc80000 { | ||
147 | compatible = "renesas,ipmmu-r8a77995"; | ||
148 | reg = <0 0xffc80000 0 0x1000>; | ||
149 | renesas,ipmmu-main = <&ipmmu_mm 10>; | ||
150 | #iommu-cells = <1>; | ||
151 | status = "disabled"; | ||
152 | }; | ||
153 | |||
154 | ipmmu_mp: mmu@ec670000 { | ||
155 | compatible = "renesas,ipmmu-r8a77995"; | ||
156 | reg = <0 0xec670000 0 0x1000>; | ||
157 | renesas,ipmmu-main = <&ipmmu_mm 4>; | ||
158 | #iommu-cells = <1>; | ||
159 | status = "disabled"; | ||
160 | }; | ||
161 | |||
162 | ipmmu_ds0: mmu@e6740000 { | ||
163 | compatible = "renesas,ipmmu-r8a77995"; | ||
164 | reg = <0 0xe6740000 0 0x1000>; | ||
165 | renesas,ipmmu-main = <&ipmmu_mm 0>; | ||
166 | #iommu-cells = <1>; | ||
167 | status = "disabled"; | ||
168 | }; | ||
169 | |||
170 | ipmmu_ds1: mmu@e7740000 { | ||
171 | compatible = "renesas,ipmmu-r8a77995"; | ||
172 | reg = <0 0xe7740000 0 0x1000>; | ||
173 | renesas,ipmmu-main = <&ipmmu_mm 1>; | ||
174 | #iommu-cells = <1>; | ||
175 | status = "disabled"; | ||
176 | }; | ||
177 | |||
178 | ipmmu_mm: mmu@e67b0000 { | ||
179 | compatible = "renesas,ipmmu-r8a77995"; | ||
180 | reg = <0 0xe67b0000 0 0x1000>; | ||
181 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
182 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
183 | #iommu-cells = <1>; | ||
184 | status = "disabled"; | ||
185 | }; | ||
186 | |||
187 | |||
188 | cpg: clock-controller@e6150000 { | ||
189 | compatible = "renesas,r8a77995-cpg-mssr"; | ||
190 | reg = <0 0xe6150000 0 0x1000>; | ||
191 | clocks = <&extal_clk>; | ||
192 | clock-names = "extal"; | ||
193 | #clock-cells = <2>; | ||
194 | #power-domain-cells = <0>; | ||
195 | #reset-cells = <1>; | ||
196 | }; | ||
197 | |||
198 | rst: reset-controller@e6160000 { | ||
199 | compatible = "renesas,r8a77995-rst"; | ||
200 | reg = <0 0xe6160000 0 0x0200>; | ||
201 | }; | ||
202 | |||
203 | pfc: pin-controller@e6060000 { | ||
204 | compatible = "renesas,pfc-r8a77995"; | ||
205 | reg = <0 0xe6060000 0 0x508>; | ||
206 | }; | ||
207 | |||
208 | prr: chipid@fff00044 { | ||
209 | compatible = "renesas,prr"; | ||
210 | reg = <0 0xfff00044 0 4>; | ||
211 | }; | ||
212 | |||
213 | sysc: system-controller@e6180000 { | ||
214 | compatible = "renesas,r8a77995-sysc"; | ||
215 | reg = <0 0xe6180000 0 0x0400>; | ||
216 | #power-domain-cells = <1>; | ||
217 | }; | ||
218 | |||
219 | intc_ex: interrupt-controller@e61c0000 { | ||
220 | compatible = "renesas,intc-ex-r8a77995", "renesas,irqc"; | ||
221 | #interrupt-cells = <2>; | ||
222 | interrupt-controller; | ||
223 | reg = <0 0xe61c0000 0 0x200>; | ||
224 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH | ||
225 | GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH | ||
226 | GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH | ||
227 | GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH | ||
228 | GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH | ||
229 | GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; | ||
230 | clocks = <&cpg CPG_MOD 407>; | ||
231 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
232 | resets = <&cpg 407>; | ||
233 | }; | ||
234 | |||
235 | dmac0: dma-controller@e6700000 { | ||
236 | compatible = "renesas,dmac-r8a77995", | ||
237 | "renesas,rcar-dmac"; | ||
238 | reg = <0 0xe6700000 0 0x10000>; | ||
239 | interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH | ||
240 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH | ||
241 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
242 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
243 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
244 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
245 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
246 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
247 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; | ||
248 | interrupt-names = "error", | ||
249 | "ch0", "ch1", "ch2", "ch3", | ||
250 | "ch4", "ch5", "ch6", "ch7"; | ||
251 | clocks = <&cpg CPG_MOD 219>; | ||
252 | clock-names = "fck"; | ||
253 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
254 | resets = <&cpg 219>; | ||
255 | #dma-cells = <1>; | ||
256 | dma-channels = <8>; | ||
257 | }; | ||
258 | |||
259 | dmac1: dma-controller@e7300000 { | ||
260 | compatible = "renesas,dmac-r8a77995", | ||
261 | "renesas,rcar-dmac"; | ||
262 | reg = <0 0xe7300000 0 0x10000>; | ||
263 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
264 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
265 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
266 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
267 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
268 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
269 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
270 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
271 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; | ||
272 | interrupt-names = "error", | ||
273 | "ch0", "ch1", "ch2", "ch3", | ||
274 | "ch4", "ch5", "ch6", "ch7"; | ||
275 | clocks = <&cpg CPG_MOD 218>; | ||
276 | clock-names = "fck"; | ||
277 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
278 | resets = <&cpg 218>; | ||
279 | #dma-cells = <1>; | ||
280 | dma-channels = <8>; | ||
281 | }; | ||
282 | |||
283 | dmac2: dma-controller@e7310000 { | ||
284 | compatible = "renesas,dmac-r8a77995", | ||
285 | "renesas,rcar-dmac"; | ||
286 | reg = <0 0xe7310000 0 0x10000>; | ||
287 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH | ||
288 | GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH | ||
289 | GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH | ||
290 | GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH | ||
291 | GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH | ||
292 | GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH | ||
293 | GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH | ||
294 | GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH | ||
295 | GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>; | ||
296 | interrupt-names = "error", | ||
297 | "ch0", "ch1", "ch2", "ch3", | ||
298 | "ch4", "ch5", "ch6", "ch7"; | ||
299 | clocks = <&cpg CPG_MOD 217>; | ||
300 | clock-names = "fck"; | ||
301 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
302 | resets = <&cpg 217>; | ||
303 | #dma-cells = <1>; | ||
304 | dma-channels = <8>; | ||
305 | }; | ||
306 | |||
307 | gpio0: gpio@e6050000 { | 89 | gpio0: gpio@e6050000 { |
308 | compatible = "renesas,gpio-r8a77995", | 90 | compatible = "renesas,gpio-r8a77995", |
309 | "renesas,rcar-gen3-gpio", | 91 | "renesas,rcar-gen3-gpio", |
@@ -416,35 +198,112 @@ | |||
416 | resets = <&cpg 906>; | 198 | resets = <&cpg 906>; |
417 | }; | 199 | }; |
418 | 200 | ||
419 | can0: can@e6c30000 { | 201 | pfc: pin-controller@e6060000 { |
420 | compatible = "renesas,can-r8a77995", | 202 | compatible = "renesas,pfc-r8a77995"; |
421 | "renesas,rcar-gen3-can"; | 203 | reg = <0 0xe6060000 0 0x508>; |
422 | reg = <0 0xe6c30000 0 0x1000>; | 204 | }; |
423 | interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; | 205 | |
424 | clocks = <&cpg CPG_MOD 916>, | 206 | cpg: clock-controller@e6150000 { |
425 | <&cpg CPG_CORE R8A77995_CLK_CANFD>, | 207 | compatible = "renesas,r8a77995-cpg-mssr"; |
426 | <&can_clk>; | 208 | reg = <0 0xe6150000 0 0x1000>; |
427 | clock-names = "clkp1", "clkp2", "can_clk"; | 209 | clocks = <&extal_clk>; |
428 | assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; | 210 | clock-names = "extal"; |
429 | assigned-clock-rates = <40000000>; | 211 | #clock-cells = <2>; |
212 | #power-domain-cells = <0>; | ||
213 | #reset-cells = <1>; | ||
214 | }; | ||
215 | |||
216 | rst: reset-controller@e6160000 { | ||
217 | compatible = "renesas,r8a77995-rst"; | ||
218 | reg = <0 0xe6160000 0 0x0200>; | ||
219 | }; | ||
220 | |||
221 | sysc: system-controller@e6180000 { | ||
222 | compatible = "renesas,r8a77995-sysc"; | ||
223 | reg = <0 0xe6180000 0 0x0400>; | ||
224 | #power-domain-cells = <1>; | ||
225 | }; | ||
226 | |||
227 | intc_ex: interrupt-controller@e61c0000 { | ||
228 | compatible = "renesas,intc-ex-r8a77995", "renesas,irqc"; | ||
229 | #interrupt-cells = <2>; | ||
230 | interrupt-controller; | ||
231 | reg = <0 0xe61c0000 0 0x200>; | ||
232 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH | ||
233 | GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH | ||
234 | GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH | ||
235 | GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH | ||
236 | GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH | ||
237 | GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; | ||
238 | clocks = <&cpg CPG_MOD 407>; | ||
430 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 239 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
431 | resets = <&cpg 916>; | 240 | resets = <&cpg 407>; |
241 | }; | ||
242 | |||
243 | i2c0: i2c@e6500000 { | ||
244 | #address-cells = <1>; | ||
245 | #size-cells = <0>; | ||
246 | compatible = "renesas,i2c-r8a77995", | ||
247 | "renesas,rcar-gen3-i2c"; | ||
248 | reg = <0 0xe6500000 0 0x40>; | ||
249 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
250 | clocks = <&cpg CPG_MOD 931>; | ||
251 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
252 | resets = <&cpg 931>; | ||
253 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | ||
254 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
255 | dma-names = "tx", "rx", "tx", "rx"; | ||
256 | i2c-scl-internal-delay-ns = <6>; | ||
432 | status = "disabled"; | 257 | status = "disabled"; |
433 | }; | 258 | }; |
434 | 259 | ||
435 | can1: can@e6c38000 { | 260 | i2c1: i2c@e6508000 { |
436 | compatible = "renesas,can-r8a77995", | 261 | #address-cells = <1>; |
437 | "renesas,rcar-gen3-can"; | 262 | #size-cells = <0>; |
438 | reg = <0 0xe6c38000 0 0x1000>; | 263 | compatible = "renesas,i2c-r8a77995", |
439 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | 264 | "renesas,rcar-gen3-i2c"; |
440 | clocks = <&cpg CPG_MOD 915>, | 265 | reg = <0 0xe6508000 0 0x40>; |
441 | <&cpg CPG_CORE R8A77995_CLK_CANFD>, | 266 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; |
442 | <&can_clk>; | 267 | clocks = <&cpg CPG_MOD 930>; |
443 | clock-names = "clkp1", "clkp2", "can_clk"; | ||
444 | assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; | ||
445 | assigned-clock-rates = <40000000>; | ||
446 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 268 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
447 | resets = <&cpg 915>; | 269 | resets = <&cpg 930>; |
270 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | ||
271 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
272 | dma-names = "tx", "rx", "tx", "rx"; | ||
273 | i2c-scl-internal-delay-ns = <6>; | ||
274 | status = "disabled"; | ||
275 | }; | ||
276 | |||
277 | i2c2: i2c@e6510000 { | ||
278 | #address-cells = <1>; | ||
279 | #size-cells = <0>; | ||
280 | compatible = "renesas,i2c-r8a77995", | ||
281 | "renesas,rcar-gen3-i2c"; | ||
282 | reg = <0 0xe6510000 0 0x40>; | ||
283 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
284 | clocks = <&cpg CPG_MOD 929>; | ||
285 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
286 | resets = <&cpg 929>; | ||
287 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | ||
288 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
289 | dma-names = "tx", "rx", "tx", "rx"; | ||
290 | i2c-scl-internal-delay-ns = <6>; | ||
291 | status = "disabled"; | ||
292 | }; | ||
293 | |||
294 | i2c3: i2c@e66d0000 { | ||
295 | #address-cells = <1>; | ||
296 | #size-cells = <0>; | ||
297 | compatible = "renesas,i2c-r8a77995", | ||
298 | "renesas,rcar-gen3-i2c"; | ||
299 | reg = <0 0xe66d0000 0 0x40>; | ||
300 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
301 | clocks = <&cpg CPG_MOD 928>; | ||
302 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
303 | resets = <&cpg 928>; | ||
304 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | ||
305 | dma-names = "tx", "rx"; | ||
306 | i2c-scl-internal-delay-ns = <6>; | ||
448 | status = "disabled"; | 307 | status = "disabled"; |
449 | }; | 308 | }; |
450 | 309 | ||
@@ -473,6 +332,149 @@ | |||
473 | }; | 332 | }; |
474 | }; | 333 | }; |
475 | 334 | ||
335 | dmac0: dma-controller@e6700000 { | ||
336 | compatible = "renesas,dmac-r8a77995", | ||
337 | "renesas,rcar-dmac"; | ||
338 | reg = <0 0xe6700000 0 0x10000>; | ||
339 | interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH | ||
340 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH | ||
341 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
342 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
343 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
344 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
345 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
346 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
347 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; | ||
348 | interrupt-names = "error", | ||
349 | "ch0", "ch1", "ch2", "ch3", | ||
350 | "ch4", "ch5", "ch6", "ch7"; | ||
351 | clocks = <&cpg CPG_MOD 219>; | ||
352 | clock-names = "fck"; | ||
353 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
354 | resets = <&cpg 219>; | ||
355 | #dma-cells = <1>; | ||
356 | dma-channels = <8>; | ||
357 | }; | ||
358 | |||
359 | dmac1: dma-controller@e7300000 { | ||
360 | compatible = "renesas,dmac-r8a77995", | ||
361 | "renesas,rcar-dmac"; | ||
362 | reg = <0 0xe7300000 0 0x10000>; | ||
363 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
364 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
365 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
366 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
367 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
368 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
369 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
370 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
371 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; | ||
372 | interrupt-names = "error", | ||
373 | "ch0", "ch1", "ch2", "ch3", | ||
374 | "ch4", "ch5", "ch6", "ch7"; | ||
375 | clocks = <&cpg CPG_MOD 218>; | ||
376 | clock-names = "fck"; | ||
377 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
378 | resets = <&cpg 218>; | ||
379 | #dma-cells = <1>; | ||
380 | dma-channels = <8>; | ||
381 | }; | ||
382 | |||
383 | dmac2: dma-controller@e7310000 { | ||
384 | compatible = "renesas,dmac-r8a77995", | ||
385 | "renesas,rcar-dmac"; | ||
386 | reg = <0 0xe7310000 0 0x10000>; | ||
387 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH | ||
388 | GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH | ||
389 | GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH | ||
390 | GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH | ||
391 | GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH | ||
392 | GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH | ||
393 | GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH | ||
394 | GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH | ||
395 | GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>; | ||
396 | interrupt-names = "error", | ||
397 | "ch0", "ch1", "ch2", "ch3", | ||
398 | "ch4", "ch5", "ch6", "ch7"; | ||
399 | clocks = <&cpg CPG_MOD 217>; | ||
400 | clock-names = "fck"; | ||
401 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
402 | resets = <&cpg 217>; | ||
403 | #dma-cells = <1>; | ||
404 | dma-channels = <8>; | ||
405 | }; | ||
406 | |||
407 | ipmmu_ds0: mmu@e6740000 { | ||
408 | compatible = "renesas,ipmmu-r8a77995"; | ||
409 | reg = <0 0xe6740000 0 0x1000>; | ||
410 | renesas,ipmmu-main = <&ipmmu_mm 0>; | ||
411 | #iommu-cells = <1>; | ||
412 | }; | ||
413 | |||
414 | ipmmu_ds1: mmu@e7740000 { | ||
415 | compatible = "renesas,ipmmu-r8a77995"; | ||
416 | reg = <0 0xe7740000 0 0x1000>; | ||
417 | renesas,ipmmu-main = <&ipmmu_mm 1>; | ||
418 | #iommu-cells = <1>; | ||
419 | }; | ||
420 | |||
421 | ipmmu_hc: mmu@e6570000 { | ||
422 | compatible = "renesas,ipmmu-r8a77995"; | ||
423 | reg = <0 0xe6570000 0 0x1000>; | ||
424 | renesas,ipmmu-main = <&ipmmu_mm 2>; | ||
425 | #iommu-cells = <1>; | ||
426 | }; | ||
427 | |||
428 | ipmmu_mm: mmu@e67b0000 { | ||
429 | compatible = "renesas,ipmmu-r8a77995"; | ||
430 | reg = <0 0xe67b0000 0 0x1000>; | ||
431 | interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, | ||
432 | <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | ||
433 | #iommu-cells = <1>; | ||
434 | }; | ||
435 | |||
436 | ipmmu_mp: mmu@ec670000 { | ||
437 | compatible = "renesas,ipmmu-r8a77995"; | ||
438 | reg = <0 0xec670000 0 0x1000>; | ||
439 | renesas,ipmmu-main = <&ipmmu_mm 4>; | ||
440 | #iommu-cells = <1>; | ||
441 | }; | ||
442 | |||
443 | ipmmu_pv0: mmu@fd800000 { | ||
444 | compatible = "renesas,ipmmu-r8a77995"; | ||
445 | reg = <0 0xfd800000 0 0x1000>; | ||
446 | renesas,ipmmu-main = <&ipmmu_mm 6>; | ||
447 | #iommu-cells = <1>; | ||
448 | }; | ||
449 | |||
450 | ipmmu_rt: mmu@ffc80000 { | ||
451 | compatible = "renesas,ipmmu-r8a77995"; | ||
452 | reg = <0 0xffc80000 0 0x1000>; | ||
453 | renesas,ipmmu-main = <&ipmmu_mm 10>; | ||
454 | #iommu-cells = <1>; | ||
455 | }; | ||
456 | |||
457 | ipmmu_vc0: mmu@fe6b0000 { | ||
458 | compatible = "renesas,ipmmu-r8a77995"; | ||
459 | reg = <0 0xfe6b0000 0 0x1000>; | ||
460 | renesas,ipmmu-main = <&ipmmu_mm 12>; | ||
461 | #iommu-cells = <1>; | ||
462 | }; | ||
463 | |||
464 | ipmmu_vi0: mmu@febd0000 { | ||
465 | compatible = "renesas,ipmmu-r8a77995"; | ||
466 | reg = <0 0xfebd0000 0 0x1000>; | ||
467 | renesas,ipmmu-main = <&ipmmu_mm 14>; | ||
468 | #iommu-cells = <1>; | ||
469 | }; | ||
470 | |||
471 | ipmmu_vp0: mmu@fe990000 { | ||
472 | compatible = "renesas,ipmmu-r8a77995"; | ||
473 | reg = <0 0xfe990000 0 0x1000>; | ||
474 | renesas,ipmmu-main = <&ipmmu_mm 16>; | ||
475 | #iommu-cells = <1>; | ||
476 | }; | ||
477 | |||
476 | avb: ethernet@e6800000 { | 478 | avb: ethernet@e6800000 { |
477 | compatible = "renesas,etheravb-r8a77995", | 479 | compatible = "renesas,etheravb-r8a77995", |
478 | "renesas,etheravb-rcar-gen3"; | 480 | "renesas,etheravb-rcar-gen3"; |
@@ -519,87 +521,35 @@ | |||
519 | status = "disabled"; | 521 | status = "disabled"; |
520 | }; | 522 | }; |
521 | 523 | ||
522 | scif2: serial@e6e88000 { | 524 | can0: can@e6c30000 { |
523 | compatible = "renesas,scif-r8a77995", | 525 | compatible = "renesas,can-r8a77995", |
524 | "renesas,rcar-gen3-scif", "renesas,scif"; | 526 | "renesas,rcar-gen3-can"; |
525 | reg = <0 0xe6e88000 0 64>; | 527 | reg = <0 0xe6c30000 0 0x1000>; |
526 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | 528 | interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; |
527 | clocks = <&cpg CPG_MOD 310>, | 529 | clocks = <&cpg CPG_MOD 916>, |
528 | <&cpg CPG_CORE R8A77995_CLK_S3D1C>, | 530 | <&cpg CPG_CORE R8A77995_CLK_CANFD>, |
529 | <&scif_clk>; | 531 | <&can_clk>; |
530 | clock-names = "fck", "brg_int", "scif_clk"; | 532 | clock-names = "clkp1", "clkp2", "can_clk"; |
531 | dmas = <&dmac1 0x13>, <&dmac1 0x12>, | 533 | assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; |
532 | <&dmac2 0x13>, <&dmac2 0x12>; | 534 | assigned-clock-rates = <40000000>; |
533 | dma-names = "tx", "rx", "tx", "rx"; | ||
534 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
535 | resets = <&cpg 310>; | ||
536 | status = "disabled"; | ||
537 | }; | ||
538 | |||
539 | i2c0: i2c@e6500000 { | ||
540 | #address-cells = <1>; | ||
541 | #size-cells = <0>; | ||
542 | compatible = "renesas,i2c-r8a77995", | ||
543 | "renesas,rcar-gen3-i2c"; | ||
544 | reg = <0 0xe6500000 0 0x40>; | ||
545 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
546 | clocks = <&cpg CPG_MOD 931>; | ||
547 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
548 | resets = <&cpg 931>; | ||
549 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | ||
550 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
551 | dma-names = "tx", "rx", "tx", "rx"; | ||
552 | i2c-scl-internal-delay-ns = <6>; | ||
553 | status = "disabled"; | ||
554 | }; | ||
555 | |||
556 | i2c1: i2c@e6508000 { | ||
557 | #address-cells = <1>; | ||
558 | #size-cells = <0>; | ||
559 | compatible = "renesas,i2c-r8a77995", | ||
560 | "renesas,rcar-gen3-i2c"; | ||
561 | reg = <0 0xe6508000 0 0x40>; | ||
562 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
563 | clocks = <&cpg CPG_MOD 930>; | ||
564 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
565 | resets = <&cpg 930>; | ||
566 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | ||
567 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
568 | dma-names = "tx", "rx", "tx", "rx"; | ||
569 | i2c-scl-internal-delay-ns = <6>; | ||
570 | status = "disabled"; | ||
571 | }; | ||
572 | |||
573 | i2c2: i2c@e6510000 { | ||
574 | #address-cells = <1>; | ||
575 | #size-cells = <0>; | ||
576 | compatible = "renesas,i2c-r8a77995", | ||
577 | "renesas,rcar-gen3-i2c"; | ||
578 | reg = <0 0xe6510000 0 0x40>; | ||
579 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
580 | clocks = <&cpg CPG_MOD 929>; | ||
581 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 535 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
582 | resets = <&cpg 929>; | 536 | resets = <&cpg 916>; |
583 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | ||
584 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
585 | dma-names = "tx", "rx", "tx", "rx"; | ||
586 | i2c-scl-internal-delay-ns = <6>; | ||
587 | status = "disabled"; | 537 | status = "disabled"; |
588 | }; | 538 | }; |
589 | 539 | ||
590 | i2c3: i2c@e66d0000 { | 540 | can1: can@e6c38000 { |
591 | #address-cells = <1>; | 541 | compatible = "renesas,can-r8a77995", |
592 | #size-cells = <0>; | 542 | "renesas,rcar-gen3-can"; |
593 | compatible = "renesas,i2c-r8a77995", | 543 | reg = <0 0xe6c38000 0 0x1000>; |
594 | "renesas,rcar-gen3-i2c"; | 544 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; |
595 | reg = <0 0xe66d0000 0 0x40>; | 545 | clocks = <&cpg CPG_MOD 915>, |
596 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | 546 | <&cpg CPG_CORE R8A77995_CLK_CANFD>, |
597 | clocks = <&cpg CPG_MOD 928>; | 547 | <&can_clk>; |
548 | clock-names = "clkp1", "clkp2", "can_clk"; | ||
549 | assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; | ||
550 | assigned-clock-rates = <40000000>; | ||
598 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 551 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
599 | resets = <&cpg 928>; | 552 | resets = <&cpg 915>; |
600 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | ||
601 | dma-names = "tx", "rx"; | ||
602 | i2c-scl-internal-delay-ns = <6>; | ||
603 | status = "disabled"; | 553 | status = "disabled"; |
604 | }; | 554 | }; |
605 | 555 | ||
@@ -643,38 +593,54 @@ | |||
643 | status = "disabled"; | 593 | status = "disabled"; |
644 | }; | 594 | }; |
645 | 595 | ||
646 | sdhi2: sd@ee140000 { | 596 | scif2: serial@e6e88000 { |
647 | compatible = "renesas,sdhi-r8a77995", | 597 | compatible = "renesas,scif-r8a77995", |
648 | "renesas,rcar-gen3-sdhi"; | 598 | "renesas,rcar-gen3-scif", "renesas,scif"; |
649 | reg = <0 0xee140000 0 0x2000>; | 599 | reg = <0 0xe6e88000 0 64>; |
650 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | 600 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; |
651 | clocks = <&cpg CPG_MOD 312>; | 601 | clocks = <&cpg CPG_MOD 310>, |
652 | max-frequency = <200000000>; | 602 | <&cpg CPG_CORE R8A77995_CLK_S3D1C>, |
603 | <&scif_clk>; | ||
604 | clock-names = "fck", "brg_int", "scif_clk"; | ||
605 | dmas = <&dmac1 0x13>, <&dmac1 0x12>, | ||
606 | <&dmac2 0x13>, <&dmac2 0x12>; | ||
607 | dma-names = "tx", "rx", "tx", "rx"; | ||
653 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 608 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
654 | resets = <&cpg 312>; | 609 | resets = <&cpg 310>; |
655 | status = "disabled"; | 610 | status = "disabled"; |
656 | }; | 611 | }; |
657 | 612 | ||
658 | ehci0: usb@ee080100 { | 613 | vin4: video@e6ef4000 { |
659 | compatible = "generic-ehci"; | 614 | compatible = "renesas,vin-r8a77995"; |
660 | reg = <0 0xee080100 0 0x100>; | 615 | reg = <0 0xe6ef4000 0 0x1000>; |
616 | interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; | ||
617 | clocks = <&cpg CPG_MOD 807>; | ||
618 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
619 | resets = <&cpg 807>; | ||
620 | renesas,id = <4>; | ||
621 | status = "disabled"; | ||
622 | }; | ||
623 | |||
624 | ohci0: usb@ee080000 { | ||
625 | compatible = "generic-ohci"; | ||
626 | reg = <0 0xee080000 0 0x100>; | ||
661 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 627 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
662 | clocks = <&cpg CPG_MOD 703>; | 628 | clocks = <&cpg CPG_MOD 703>; |
663 | phys = <&usb2_phy0>; | 629 | phys = <&usb2_phy0>; |
664 | phy-names = "usb"; | 630 | phy-names = "usb"; |
665 | companion = <&ohci0>; | ||
666 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 631 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
667 | resets = <&cpg 703>; | 632 | resets = <&cpg 703>; |
668 | status = "disabled"; | 633 | status = "disabled"; |
669 | }; | 634 | }; |
670 | 635 | ||
671 | ohci0: usb@ee080000 { | 636 | ehci0: usb@ee080100 { |
672 | compatible = "generic-ohci"; | 637 | compatible = "generic-ehci"; |
673 | reg = <0 0xee080000 0 0x100>; | 638 | reg = <0 0xee080100 0 0x100>; |
674 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 639 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
675 | clocks = <&cpg CPG_MOD 703>; | 640 | clocks = <&cpg CPG_MOD 703>; |
676 | phys = <&usb2_phy0>; | 641 | phys = <&usb2_phy0>; |
677 | phy-names = "usb"; | 642 | phy-names = "usb"; |
643 | companion = <&ohci0>; | ||
678 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | 644 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; |
679 | resets = <&cpg 703>; | 645 | resets = <&cpg 703>; |
680 | status = "disabled"; | 646 | status = "disabled"; |
@@ -692,6 +658,35 @@ | |||
692 | status = "disabled"; | 658 | status = "disabled"; |
693 | }; | 659 | }; |
694 | 660 | ||
661 | sdhi2: sd@ee140000 { | ||
662 | compatible = "renesas,sdhi-r8a77995", | ||
663 | "renesas,rcar-gen3-sdhi"; | ||
664 | reg = <0 0xee140000 0 0x2000>; | ||
665 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
666 | clocks = <&cpg CPG_MOD 312>; | ||
667 | max-frequency = <200000000>; | ||
668 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
669 | resets = <&cpg 312>; | ||
670 | status = "disabled"; | ||
671 | }; | ||
672 | |||
673 | gic: interrupt-controller@f1010000 { | ||
674 | compatible = "arm,gic-400"; | ||
675 | #interrupt-cells = <3>; | ||
676 | #address-cells = <0>; | ||
677 | interrupt-controller; | ||
678 | reg = <0x0 0xf1010000 0 0x1000>, | ||
679 | <0x0 0xf1020000 0 0x20000>, | ||
680 | <0x0 0xf1040000 0 0x20000>, | ||
681 | <0x0 0xf1060000 0 0x20000>; | ||
682 | interrupts = <GIC_PPI 9 | ||
683 | (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; | ||
684 | clocks = <&cpg CPG_MOD 408>; | ||
685 | clock-names = "clk"; | ||
686 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
687 | resets = <&cpg 408>; | ||
688 | }; | ||
689 | |||
695 | vspbs: vsp@fe960000 { | 690 | vspbs: vsp@fe960000 { |
696 | compatible = "renesas,vsp2"; | 691 | compatible = "renesas,vsp2"; |
697 | reg = <0 0xfe960000 0 0x8000>; | 692 | reg = <0 0xfe960000 0 0x8000>; |
@@ -702,15 +697,6 @@ | |||
702 | renesas,fcp = <&fcpvb0>; | 697 | renesas,fcp = <&fcpvb0>; |
703 | }; | 698 | }; |
704 | 699 | ||
705 | fcpvb0: fcp@fe96f000 { | ||
706 | compatible = "renesas,fcpv"; | ||
707 | reg = <0 0xfe96f000 0 0x200>; | ||
708 | clocks = <&cpg CPG_MOD 607>; | ||
709 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
710 | resets = <&cpg 607>; | ||
711 | iommus = <&ipmmu_vp0 5>; | ||
712 | }; | ||
713 | |||
714 | vspd0: vsp@fea20000 { | 700 | vspd0: vsp@fea20000 { |
715 | compatible = "renesas,vsp2"; | 701 | compatible = "renesas,vsp2"; |
716 | reg = <0 0xfea20000 0 0x8000>; | 702 | reg = <0 0xfea20000 0 0x8000>; |
@@ -721,15 +707,6 @@ | |||
721 | renesas,fcp = <&fcpvd0>; | 707 | renesas,fcp = <&fcpvd0>; |
722 | }; | 708 | }; |
723 | 709 | ||
724 | fcpvd0: fcp@fea27000 { | ||
725 | compatible = "renesas,fcpv"; | ||
726 | reg = <0 0xfea27000 0 0x200>; | ||
727 | clocks = <&cpg CPG_MOD 603>; | ||
728 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
729 | resets = <&cpg 603>; | ||
730 | iommus = <&ipmmu_vi0 8>; | ||
731 | }; | ||
732 | |||
733 | vspd1: vsp@fea28000 { | 710 | vspd1: vsp@fea28000 { |
734 | compatible = "renesas,vsp2"; | 711 | compatible = "renesas,vsp2"; |
735 | reg = <0 0xfea28000 0 0x8000>; | 712 | reg = <0 0xfea28000 0 0x8000>; |
@@ -740,6 +717,24 @@ | |||
740 | renesas,fcp = <&fcpvd1>; | 717 | renesas,fcp = <&fcpvd1>; |
741 | }; | 718 | }; |
742 | 719 | ||
720 | fcpvb0: fcp@fe96f000 { | ||
721 | compatible = "renesas,fcpv"; | ||
722 | reg = <0 0xfe96f000 0 0x200>; | ||
723 | clocks = <&cpg CPG_MOD 607>; | ||
724 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
725 | resets = <&cpg 607>; | ||
726 | iommus = <&ipmmu_vp0 5>; | ||
727 | }; | ||
728 | |||
729 | fcpvd0: fcp@fea27000 { | ||
730 | compatible = "renesas,fcpv"; | ||
731 | reg = <0 0xfea27000 0 0x200>; | ||
732 | clocks = <&cpg CPG_MOD 603>; | ||
733 | power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; | ||
734 | resets = <&cpg 603>; | ||
735 | iommus = <&ipmmu_vi0 8>; | ||
736 | }; | ||
737 | |||
743 | fcpvd1: fcp@fea2f000 { | 738 | fcpvd1: fcp@fea2f000 { |
744 | compatible = "renesas,fcpv"; | 739 | compatible = "renesas,fcpv"; |
745 | reg = <0 0xfea2f000 0 0x200>; | 740 | reg = <0 0xfea2f000 0 0x200>; |
@@ -783,6 +778,11 @@ | |||
783 | }; | 778 | }; |
784 | }; | 779 | }; |
785 | }; | 780 | }; |
781 | |||
782 | prr: chipid@fff00044 { | ||
783 | compatible = "renesas,prr"; | ||
784 | reg = <0 0xfff00044 0 4>; | ||
785 | }; | ||
786 | }; | 786 | }; |
787 | 787 | ||
788 | timer { | 788 | timer { |
diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi index 2a7f36abd2dd..9256fbaaab7f 100644 --- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi +++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi | |||
@@ -66,6 +66,29 @@ | |||
66 | enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; | 66 | enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | cvbs-in { | ||
70 | compatible = "composite-video-connector"; | ||
71 | label = "CVBS IN"; | ||
72 | |||
73 | port { | ||
74 | cvbs_con: endpoint { | ||
75 | remote-endpoint = <&adv7482_ain7>; | ||
76 | }; | ||
77 | }; | ||
78 | }; | ||
79 | |||
80 | hdmi-in { | ||
81 | compatible = "hdmi-connector"; | ||
82 | label = "HDMI IN"; | ||
83 | type = "a"; | ||
84 | |||
85 | port { | ||
86 | hdmi_in_con: endpoint { | ||
87 | remote-endpoint = <&adv7482_hdmi>; | ||
88 | }; | ||
89 | }; | ||
90 | }; | ||
91 | |||
69 | reg_1p8v: regulator0 { | 92 | reg_1p8v: regulator0 { |
70 | compatible = "regulator-fixed"; | 93 | compatible = "regulator-fixed"; |
71 | regulator-name = "fixed-1.8V"; | 94 | regulator-name = "fixed-1.8V"; |
@@ -93,20 +116,12 @@ | |||
93 | regulator-always-on; | 116 | regulator-always-on; |
94 | }; | 117 | }; |
95 | 118 | ||
96 | rsnd_ak4613: sound { | 119 | sound_card: sound { |
97 | compatible = "simple-audio-card"; | 120 | compatible = "audio-graph-card"; |
98 | |||
99 | simple-audio-card,format = "left_j"; | ||
100 | simple-audio-card,bitclock-master = <&sndcpu>; | ||
101 | simple-audio-card,frame-master = <&sndcpu>; | ||
102 | 121 | ||
103 | sndcpu: simple-audio-card,cpu { | 122 | label = "rcar-sound"; |
104 | sound-dai = <&rcar_sound>; | ||
105 | }; | ||
106 | 123 | ||
107 | sndcodec: simple-audio-card,codec { | 124 | dais = <&rsnd_port0>; |
108 | sound-dai = <&ak4613>; | ||
109 | }; | ||
110 | }; | 125 | }; |
111 | 126 | ||
112 | vbus0_usb2: regulator-vbus0-usb2 { | 127 | vbus0_usb2: regulator-vbus0-usb2 { |
@@ -268,6 +283,37 @@ | |||
268 | }; | 283 | }; |
269 | }; | 284 | }; |
270 | 285 | ||
286 | &csi20 { | ||
287 | status = "okay"; | ||
288 | |||
289 | ports { | ||
290 | port@0 { | ||
291 | reg = <0>; | ||
292 | csi20_in: endpoint { | ||
293 | clock-lanes = <0>; | ||
294 | data-lanes = <1>; | ||
295 | remote-endpoint = <&adv7482_txb>; | ||
296 | }; | ||
297 | }; | ||
298 | }; | ||
299 | }; | ||
300 | |||
301 | &csi40 { | ||
302 | status = "okay"; | ||
303 | |||
304 | ports { | ||
305 | port@0 { | ||
306 | reg = <0>; | ||
307 | |||
308 | csi40_in: endpoint { | ||
309 | clock-lanes = <0>; | ||
310 | data-lanes = <1 2 3 4>; | ||
311 | remote-endpoint = <&adv7482_txa>; | ||
312 | }; | ||
313 | }; | ||
314 | }; | ||
315 | }; | ||
316 | |||
271 | &du { | 317 | &du { |
272 | pinctrl-0 = <&du_pins>; | 318 | pinctrl-0 = <&du_pins>; |
273 | pinctrl-names = "default"; | 319 | pinctrl-names = "default"; |
@@ -322,6 +368,12 @@ | |||
322 | asahi-kasei,out4-single-end; | 368 | asahi-kasei,out4-single-end; |
323 | asahi-kasei,out5-single-end; | 369 | asahi-kasei,out5-single-end; |
324 | asahi-kasei,out6-single-end; | 370 | asahi-kasei,out6-single-end; |
371 | |||
372 | port { | ||
373 | ak4613_endpoint: endpoint { | ||
374 | remote-endpoint = <&rsnd_endpoint0>; | ||
375 | }; | ||
376 | }; | ||
325 | }; | 377 | }; |
326 | 378 | ||
327 | cs2000: clk_multiplier@4f { | 379 | cs2000: clk_multiplier@4f { |
@@ -359,6 +411,55 @@ | |||
359 | 411 | ||
360 | shunt-resistor-micro-ohms = <5000>; | 412 | shunt-resistor-micro-ohms = <5000>; |
361 | }; | 413 | }; |
414 | |||
415 | video-receiver@70 { | ||
416 | compatible = "adi,adv7482"; | ||
417 | reg = <0x70>; | ||
418 | |||
419 | #address-cells = <1>; | ||
420 | #size-cells = <0>; | ||
421 | |||
422 | interrupt-parent = <&gpio6>; | ||
423 | interrupt-names = "intrq1", "intrq2"; | ||
424 | interrupts = <30 IRQ_TYPE_LEVEL_LOW>, | ||
425 | <31 IRQ_TYPE_LEVEL_LOW>; | ||
426 | |||
427 | port@7 { | ||
428 | reg = <7>; | ||
429 | |||
430 | adv7482_ain7: endpoint { | ||
431 | remote-endpoint = <&cvbs_con>; | ||
432 | }; | ||
433 | }; | ||
434 | |||
435 | port@8 { | ||
436 | reg = <8>; | ||
437 | |||
438 | adv7482_hdmi: endpoint { | ||
439 | remote-endpoint = <&hdmi_in_con>; | ||
440 | }; | ||
441 | }; | ||
442 | |||
443 | port@10 { | ||
444 | reg = <10>; | ||
445 | |||
446 | adv7482_txa: endpoint { | ||
447 | clock-lanes = <0>; | ||
448 | data-lanes = <1 2 3 4>; | ||
449 | remote-endpoint = <&csi40_in>; | ||
450 | }; | ||
451 | }; | ||
452 | |||
453 | port@11 { | ||
454 | reg = <11>; | ||
455 | |||
456 | adv7482_txb: endpoint { | ||
457 | clock-lanes = <0>; | ||
458 | data-lanes = <1>; | ||
459 | remote-endpoint = <&csi20_in>; | ||
460 | }; | ||
461 | }; | ||
462 | }; | ||
362 | }; | 463 | }; |
363 | 464 | ||
364 | &i2c_dvfs { | 465 | &i2c_dvfs { |
@@ -376,6 +477,8 @@ | |||
376 | #interrupt-cells = <2>; | 477 | #interrupt-cells = <2>; |
377 | gpio-controller; | 478 | gpio-controller; |
378 | #gpio-cells = <2>; | 479 | #gpio-cells = <2>; |
480 | rohm,ddr-backup-power = <0xf>; | ||
481 | rohm,rstbmode-level; | ||
379 | 482 | ||
380 | regulators { | 483 | regulators { |
381 | dvfs: dvfs { | 484 | dvfs: dvfs { |
@@ -387,6 +490,12 @@ | |||
387 | }; | 490 | }; |
388 | }; | 491 | }; |
389 | }; | 492 | }; |
493 | |||
494 | eeprom@50 { | ||
495 | compatible = "rohm,br24t01", "atmel,24c01"; | ||
496 | reg = <0x50>; | ||
497 | pagesize = <8>; | ||
498 | }; | ||
390 | }; | 499 | }; |
391 | 500 | ||
392 | &ohci0 { | 501 | &ohci0 { |
@@ -416,12 +525,12 @@ | |||
416 | 525 | ||
417 | avb_pins: avb { | 526 | avb_pins: avb { |
418 | mux { | 527 | mux { |
419 | groups = "avb_link", "avb_mdc", "avb_mii"; | 528 | groups = "avb_link", "avb_mdio", "avb_mii"; |
420 | function = "avb"; | 529 | function = "avb"; |
421 | }; | 530 | }; |
422 | 531 | ||
423 | pins_mdc { | 532 | pins_mdio { |
424 | groups = "avb_mdc"; | 533 | groups = "avb_mdio"; |
425 | drive-strength = <24>; | 534 | drive-strength = <24>; |
426 | }; | 535 | }; |
427 | 536 | ||
@@ -581,10 +690,18 @@ | |||
581 | <&audio_clk_c>, | 690 | <&audio_clk_c>, |
582 | <&cpg CPG_CORE CPG_AUDIO_CLK_I>; | 691 | <&cpg CPG_CORE CPG_AUDIO_CLK_I>; |
583 | 692 | ||
584 | rcar_sound,dai { | 693 | ports { |
585 | dai0 { | 694 | rsnd_port0: port@0 { |
586 | playback = <&ssi0 &src0 &dvc0>; | 695 | rsnd_endpoint0: endpoint { |
587 | capture = <&ssi1 &src1 &dvc1>; | 696 | remote-endpoint = <&ak4613_endpoint>; |
697 | |||
698 | dai-format = "left_j"; | ||
699 | bitclock-master = <&rsnd_endpoint0>; | ||
700 | frame-master = <&rsnd_endpoint0>; | ||
701 | |||
702 | playback = <&ssi0 &src0 &dvc0>; | ||
703 | capture = <&ssi1 &src1 &dvc1>; | ||
704 | }; | ||
588 | }; | 705 | }; |
589 | }; | 706 | }; |
590 | }; | 707 | }; |
@@ -689,6 +806,38 @@ | |||
689 | clock-frequency = <100000000>; | 806 | clock-frequency = <100000000>; |
690 | }; | 807 | }; |
691 | 808 | ||
809 | &vin0 { | ||
810 | status = "okay"; | ||
811 | }; | ||
812 | |||
813 | &vin1 { | ||
814 | status = "okay"; | ||
815 | }; | ||
816 | |||
817 | &vin2 { | ||
818 | status = "okay"; | ||
819 | }; | ||
820 | |||
821 | &vin3 { | ||
822 | status = "okay"; | ||
823 | }; | ||
824 | |||
825 | &vin4 { | ||
826 | status = "okay"; | ||
827 | }; | ||
828 | |||
829 | &vin5 { | ||
830 | status = "okay"; | ||
831 | }; | ||
832 | |||
833 | &vin6 { | ||
834 | status = "okay"; | ||
835 | }; | ||
836 | |||
837 | &vin7 { | ||
838 | status = "okay"; | ||
839 | }; | ||
840 | |||
692 | &wdt0 { | 841 | &wdt0 { |
693 | timeout-sec = <60>; | 842 | timeout-sec = <60>; |
694 | status = "okay"; | 843 | status = "okay"; |
diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi index 6f814845f8b6..0edb16e6b372 100644 --- a/arch/arm64/boot/dts/renesas/ulcb.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi | |||
@@ -243,6 +243,32 @@ | |||
243 | 243 | ||
244 | &i2c_dvfs { | 244 | &i2c_dvfs { |
245 | status = "okay"; | 245 | status = "okay"; |
246 | |||
247 | pmic: pmic@30 { | ||
248 | pinctrl-0 = <&irq0_pins>; | ||
249 | pinctrl-names = "default"; | ||
250 | |||
251 | compatible = "rohm,bd9571mwv"; | ||
252 | reg = <0x30>; | ||
253 | interrupt-parent = <&intc_ex>; | ||
254 | interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | ||
255 | interrupt-controller; | ||
256 | #interrupt-cells = <2>; | ||
257 | gpio-controller; | ||
258 | #gpio-cells = <2>; | ||
259 | rohm,ddr-backup-power = <0xf>; | ||
260 | rohm,rstbmode-pulse; | ||
261 | |||
262 | regulators { | ||
263 | dvfs: dvfs { | ||
264 | regulator-name = "dvfs"; | ||
265 | regulator-min-microvolt = <750000>; | ||
266 | regulator-max-microvolt = <1030000>; | ||
267 | regulator-boot-on; | ||
268 | regulator-always-on; | ||
269 | }; | ||
270 | }; | ||
271 | }; | ||
246 | }; | 272 | }; |
247 | 273 | ||
248 | &ohci1 { | 274 | &ohci1 { |
@@ -255,12 +281,12 @@ | |||
255 | 281 | ||
256 | avb_pins: avb { | 282 | avb_pins: avb { |
257 | mux { | 283 | mux { |
258 | groups = "avb_link", "avb_mdc", "avb_mii"; | 284 | groups = "avb_link", "avb_mdio", "avb_mii"; |
259 | function = "avb"; | 285 | function = "avb"; |
260 | }; | 286 | }; |
261 | 287 | ||
262 | pins_mdc { | 288 | pins_mdio { |
263 | groups = "avb_mdc"; | 289 | groups = "avb_mdio"; |
264 | drive-strength = <24>; | 290 | drive-strength = <24>; |
265 | }; | 291 | }; |
266 | 292 | ||
@@ -276,6 +302,11 @@ | |||
276 | function = "i2c2"; | 302 | function = "i2c2"; |
277 | }; | 303 | }; |
278 | 304 | ||
305 | irq0_pins: irq0 { | ||
306 | groups = "intc_ex_irq0"; | ||
307 | function = "intc_ex"; | ||
308 | }; | ||
309 | |||
279 | scif2_pins: scif2 { | 310 | scif2_pins: scif2 { |
280 | groups = "scif2_data_a"; | 311 | groups = "scif2_data_a"; |
281 | function = "scif2"; | 312 | function = "scif2"; |
diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 5a7d693009ef..e778af766fae 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c | |||
@@ -603,6 +603,9 @@ static const struct of_device_id qcom_scm_dt_match[] = { | |||
603 | { .compatible = "qcom,scm-msm8996", | 603 | { .compatible = "qcom,scm-msm8996", |
604 | .data = NULL, /* no clocks */ | 604 | .data = NULL, /* no clocks */ |
605 | }, | 605 | }, |
606 | { .compatible = "qcom,scm-ipq4019", | ||
607 | .data = NULL, /* no clocks */ | ||
608 | }, | ||
606 | { .compatible = "qcom,scm", | 609 | { .compatible = "qcom,scm", |
607 | .data = (void *)(SCM_HAS_CORE_CLK | 610 | .data = (void *)(SCM_HAS_CORE_CLK |
608 | | SCM_HAS_IFACE_CLK | 611 | | SCM_HAS_IFACE_CLK |
diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 0b49a62b38a3..59731a950c1f 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c | |||
@@ -505,6 +505,7 @@ EXPORT_SYMBOL_GPL(of_platform_default_populate); | |||
505 | #ifndef CONFIG_PPC | 505 | #ifndef CONFIG_PPC |
506 | static const struct of_device_id reserved_mem_matches[] = { | 506 | static const struct of_device_id reserved_mem_matches[] = { |
507 | { .compatible = "qcom,rmtfs-mem" }, | 507 | { .compatible = "qcom,rmtfs-mem" }, |
508 | { .compatible = "qcom,cmd-db" }, | ||
508 | { .compatible = "ramoops" }, | 509 | { .compatible = "ramoops" }, |
509 | {} | 510 | {} |
510 | }; | 511 | }; |
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 40523577bdaa..113e884697fd 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile | |||
@@ -14,7 +14,7 @@ obj-$(CONFIG_ARCH_MXC) += imx/ | |||
14 | obj-$(CONFIG_SOC_XWAY) += lantiq/ | 14 | obj-$(CONFIG_SOC_XWAY) += lantiq/ |
15 | obj-y += mediatek/ | 15 | obj-y += mediatek/ |
16 | obj-$(CONFIG_ARCH_MESON) += amlogic/ | 16 | obj-$(CONFIG_ARCH_MESON) += amlogic/ |
17 | obj-$(CONFIG_ARCH_QCOM) += qcom/ | 17 | obj-y += qcom/ |
18 | obj-y += renesas/ | 18 | obj-y += renesas/ |
19 | obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ | 19 | obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ |
20 | obj-$(CONFIG_SOC_SAMSUNG) += samsung/ | 20 | obj-$(CONFIG_SOC_SAMSUNG) += samsung/ |
diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index d053f2634c67..9dc02f390ba3 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig | |||
@@ -3,6 +3,24 @@ | |||
3 | # | 3 | # |
4 | menu "Qualcomm SoC drivers" | 4 | menu "Qualcomm SoC drivers" |
5 | 5 | ||
6 | config QCOM_COMMAND_DB | ||
7 | bool "Qualcomm Command DB" | ||
8 | depends on (ARCH_QCOM && OF) || COMPILE_TEST | ||
9 | help | ||
10 | Command DB queries shared memory by key string for shared system | ||
11 | resources. Platform drivers that require to set state of a shared | ||
12 | resource on a RPM-hardened platform must use this database to get | ||
13 | SoC specific identifier and information for the shared resources. | ||
14 | |||
15 | config QCOM_GENI_SE | ||
16 | tristate "QCOM GENI Serial Engine Driver" | ||
17 | depends on ARCH_QCOM || COMPILE_TEST | ||
18 | help | ||
19 | This driver is used to manage Generic Interface (GENI) firmware based | ||
20 | Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This | ||
21 | driver is also used to manage the common aspects of multiple Serial | ||
22 | Engines present in the QUP. | ||
23 | |||
6 | config QCOM_GLINK_SSR | 24 | config QCOM_GLINK_SSR |
7 | tristate "Qualcomm Glink SSR driver" | 25 | tristate "Qualcomm Glink SSR driver" |
8 | depends on RPMSG | 26 | depends on RPMSG |
diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index 39de5dee55d9..19dcf957cb3a 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile | |||
@@ -1,4 +1,6 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
2 | obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o | ||
3 | obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.o | ||
2 | obj-$(CONFIG_QCOM_GLINK_SSR) += glink_ssr.o | 4 | obj-$(CONFIG_QCOM_GLINK_SSR) += glink_ssr.o |
3 | obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o | 5 | obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o |
4 | obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o | 6 | obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o |
diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c new file mode 100644 index 000000000000..a6f646295f06 --- /dev/null +++ b/drivers/soc/qcom/cmd-db.c | |||
@@ -0,0 +1,317 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. */ | ||
3 | |||
4 | #include <linux/kernel.h> | ||
5 | #include <linux/of.h> | ||
6 | #include <linux/of_address.h> | ||
7 | #include <linux/of_platform.h> | ||
8 | #include <linux/of_reserved_mem.h> | ||
9 | #include <linux/platform_device.h> | ||
10 | #include <linux/types.h> | ||
11 | |||
12 | #include <soc/qcom/cmd-db.h> | ||
13 | |||
14 | #define NUM_PRIORITY 2 | ||
15 | #define MAX_SLV_ID 8 | ||
16 | #define SLAVE_ID_MASK 0x7 | ||
17 | #define SLAVE_ID_SHIFT 16 | ||
18 | |||
19 | /** | ||
20 | * struct entry_header: header for each entry in cmddb | ||
21 | * | ||
22 | * @id: resource's identifier | ||
23 | * @priority: unused | ||
24 | * @addr: the address of the resource | ||
25 | * @len: length of the data | ||
26 | * @offset: offset from :@data_offset, start of the data | ||
27 | */ | ||
28 | struct entry_header { | ||
29 | u8 id[8]; | ||
30 | __le32 priority[NUM_PRIORITY]; | ||
31 | __le32 addr; | ||
32 | __le16 len; | ||
33 | __le16 offset; | ||
34 | }; | ||
35 | |||
36 | /** | ||
37 | * struct rsc_hdr: resource header information | ||
38 | * | ||
39 | * @slv_id: id for the resource | ||
40 | * @header_offset: entry's header at offset from the end of the cmd_db_header | ||
41 | * @data_offset: entry's data at offset from the end of the cmd_db_header | ||
42 | * @cnt: number of entries for HW type | ||
43 | * @version: MSB is major, LSB is minor | ||
44 | * @reserved: reserved for future use. | ||
45 | */ | ||
46 | struct rsc_hdr { | ||
47 | __le16 slv_id; | ||
48 | __le16 header_offset; | ||
49 | __le16 data_offset; | ||
50 | __le16 cnt; | ||
51 | __le16 version; | ||
52 | __le16 reserved[3]; | ||
53 | }; | ||
54 | |||
55 | /** | ||
56 | * struct cmd_db_header: The DB header information | ||
57 | * | ||
58 | * @version: The cmd db version | ||
59 | * @magic: constant expected in the database | ||
60 | * @header: array of resources | ||
61 | * @checksum: checksum for the header. Unused. | ||
62 | * @reserved: reserved memory | ||
63 | * @data: driver specific data | ||
64 | */ | ||
65 | struct cmd_db_header { | ||
66 | __le32 version; | ||
67 | u8 magic[4]; | ||
68 | struct rsc_hdr header[MAX_SLV_ID]; | ||
69 | __le32 checksum; | ||
70 | __le32 reserved; | ||
71 | u8 data[]; | ||
72 | }; | ||
73 | |||
74 | /** | ||
75 | * DOC: Description of the Command DB database. | ||
76 | * | ||
77 | * At the start of the command DB memory is the cmd_db_header structure. | ||
78 | * The cmd_db_header holds the version, checksum, magic key as well as an | ||
79 | * array for header for each slave (depicted by the rsc_header). Each h/w | ||
80 | * based accelerator is a 'slave' (shared resource) and has slave id indicating | ||
81 | * the type of accelerator. The rsc_header is the header for such individual | ||
82 | * slaves of a given type. The entries for each of these slaves begin at the | ||
83 | * rsc_hdr.header_offset. In addition each slave could have auxiliary data | ||
84 | * that may be needed by the driver. The data for the slave starts at the | ||
85 | * entry_header.offset to the location pointed to by the rsc_hdr.data_offset. | ||
86 | * | ||
87 | * Drivers have a stringified key to a slave/resource. They can query the slave | ||
88 | * information and get the slave id and the auxiliary data and the length of the | ||
89 | * data. Using this information, they can format the request to be sent to the | ||
90 | * h/w accelerator and request a resource state. | ||
91 | */ | ||
92 | |||
93 | static const u8 CMD_DB_MAGIC[] = { 0xdb, 0x30, 0x03, 0x0c }; | ||
94 | |||
95 | static bool cmd_db_magic_matches(const struct cmd_db_header *header) | ||
96 | { | ||
97 | const u8 *magic = header->magic; | ||
98 | |||
99 | return memcmp(magic, CMD_DB_MAGIC, ARRAY_SIZE(CMD_DB_MAGIC)) == 0; | ||
100 | } | ||
101 | |||
102 | static struct cmd_db_header *cmd_db_header; | ||
103 | |||
104 | |||
105 | static inline void *rsc_to_entry_header(struct rsc_hdr *hdr) | ||
106 | { | ||
107 | u16 offset = le16_to_cpu(hdr->header_offset); | ||
108 | |||
109 | return cmd_db_header->data + offset; | ||
110 | } | ||
111 | |||
112 | static inline void * | ||
113 | rsc_offset(struct rsc_hdr *hdr, struct entry_header *ent) | ||
114 | { | ||
115 | u16 offset = le16_to_cpu(hdr->data_offset); | ||
116 | u16 loffset = le16_to_cpu(ent->offset); | ||
117 | |||
118 | return cmd_db_header->data + offset + loffset; | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * cmd_db_ready - Indicates if command DB is available | ||
123 | * | ||
124 | * Return: 0 on success, errno otherwise | ||
125 | */ | ||
126 | int cmd_db_ready(void) | ||
127 | { | ||
128 | if (cmd_db_header == NULL) | ||
129 | return -EPROBE_DEFER; | ||
130 | else if (!cmd_db_magic_matches(cmd_db_header)) | ||
131 | return -EINVAL; | ||
132 | |||
133 | return 0; | ||
134 | } | ||
135 | EXPORT_SYMBOL(cmd_db_ready); | ||
136 | |||
137 | static int cmd_db_get_header(const char *id, struct entry_header *eh, | ||
138 | struct rsc_hdr *rh) | ||
139 | { | ||
140 | struct rsc_hdr *rsc_hdr; | ||
141 | struct entry_header *ent; | ||
142 | int ret, i, j; | ||
143 | u8 query[8]; | ||
144 | |||
145 | ret = cmd_db_ready(); | ||
146 | if (ret) | ||
147 | return ret; | ||
148 | |||
149 | if (!eh || !rh) | ||
150 | return -EINVAL; | ||
151 | |||
152 | /* Pad out query string to same length as in DB */ | ||
153 | strncpy(query, id, sizeof(query)); | ||
154 | |||
155 | for (i = 0; i < MAX_SLV_ID; i++) { | ||
156 | rsc_hdr = &cmd_db_header->header[i]; | ||
157 | if (!rsc_hdr->slv_id) | ||
158 | break; | ||
159 | |||
160 | ent = rsc_to_entry_header(rsc_hdr); | ||
161 | for (j = 0; j < le16_to_cpu(rsc_hdr->cnt); j++, ent++) { | ||
162 | if (memcmp(ent->id, query, sizeof(ent->id)) == 0) | ||
163 | break; | ||
164 | } | ||
165 | |||
166 | if (j < le16_to_cpu(rsc_hdr->cnt)) { | ||
167 | memcpy(eh, ent, sizeof(*ent)); | ||
168 | memcpy(rh, rsc_hdr, sizeof(*rh)); | ||
169 | return 0; | ||
170 | } | ||
171 | } | ||
172 | |||
173 | return -ENODEV; | ||
174 | } | ||
175 | |||
176 | /** | ||
177 | * cmd_db_read_addr() - Query command db for resource id address. | ||
178 | * | ||
179 | * @id: resource id to query for address | ||
180 | * | ||
181 | * Return: resource address on success, 0 on error | ||
182 | * | ||
183 | * This is used to retrieve resource address based on resource | ||
184 | * id. | ||
185 | */ | ||
186 | u32 cmd_db_read_addr(const char *id) | ||
187 | { | ||
188 | int ret; | ||
189 | struct entry_header ent; | ||
190 | struct rsc_hdr rsc_hdr; | ||
191 | |||
192 | ret = cmd_db_get_header(id, &ent, &rsc_hdr); | ||
193 | |||
194 | return ret < 0 ? 0 : le32_to_cpu(ent.addr); | ||
195 | } | ||
196 | EXPORT_SYMBOL(cmd_db_read_addr); | ||
197 | |||
198 | /** | ||
199 | * cmd_db_read_aux_data() - Query command db for aux data. | ||
200 | * | ||
201 | * @id: Resource to retrieve AUX Data on. | ||
202 | * @data: Data buffer to copy returned aux data to. Returns size on NULL | ||
203 | * @len: Caller provides size of data buffer passed in. | ||
204 | * | ||
205 | * Return: size of data on success, errno otherwise | ||
206 | */ | ||
207 | int cmd_db_read_aux_data(const char *id, u8 *data, size_t len) | ||
208 | { | ||
209 | int ret; | ||
210 | struct entry_header ent; | ||
211 | struct rsc_hdr rsc_hdr; | ||
212 | u16 ent_len; | ||
213 | |||
214 | if (!data) | ||
215 | return -EINVAL; | ||
216 | |||
217 | ret = cmd_db_get_header(id, &ent, &rsc_hdr); | ||
218 | if (ret) | ||
219 | return ret; | ||
220 | |||
221 | ent_len = le16_to_cpu(ent.len); | ||
222 | if (len < ent_len) | ||
223 | return -EINVAL; | ||
224 | |||
225 | len = min_t(u16, ent_len, len); | ||
226 | memcpy(data, rsc_offset(&rsc_hdr, &ent), len); | ||
227 | |||
228 | return len; | ||
229 | } | ||
230 | EXPORT_SYMBOL(cmd_db_read_aux_data); | ||
231 | |||
232 | /** | ||
233 | * cmd_db_read_aux_data_len - Get the length of the auxiliary data stored in DB. | ||
234 | * | ||
235 | * @id: Resource to retrieve AUX Data. | ||
236 | * | ||
237 | * Return: size on success, 0 on error | ||
238 | */ | ||
239 | size_t cmd_db_read_aux_data_len(const char *id) | ||
240 | { | ||
241 | int ret; | ||
242 | struct entry_header ent; | ||
243 | struct rsc_hdr rsc_hdr; | ||
244 | |||
245 | ret = cmd_db_get_header(id, &ent, &rsc_hdr); | ||
246 | |||
247 | return ret < 0 ? 0 : le16_to_cpu(ent.len); | ||
248 | } | ||
249 | EXPORT_SYMBOL(cmd_db_read_aux_data_len); | ||
250 | |||
251 | /** | ||
252 | * cmd_db_read_slave_id - Get the slave ID for a given resource address | ||
253 | * | ||
254 | * @id: Resource id to query the DB for version | ||
255 | * | ||
256 | * Return: cmd_db_hw_type enum on success, CMD_DB_HW_INVALID on error | ||
257 | */ | ||
258 | enum cmd_db_hw_type cmd_db_read_slave_id(const char *id) | ||
259 | { | ||
260 | int ret; | ||
261 | struct entry_header ent; | ||
262 | struct rsc_hdr rsc_hdr; | ||
263 | u32 addr; | ||
264 | |||
265 | ret = cmd_db_get_header(id, &ent, &rsc_hdr); | ||
266 | if (ret < 0) | ||
267 | return CMD_DB_HW_INVALID; | ||
268 | |||
269 | addr = le32_to_cpu(ent.addr); | ||
270 | return (addr >> SLAVE_ID_SHIFT) & SLAVE_ID_MASK; | ||
271 | } | ||
272 | EXPORT_SYMBOL(cmd_db_read_slave_id); | ||
273 | |||
274 | static int cmd_db_dev_probe(struct platform_device *pdev) | ||
275 | { | ||
276 | struct reserved_mem *rmem; | ||
277 | int ret = 0; | ||
278 | |||
279 | rmem = of_reserved_mem_lookup(pdev->dev.of_node); | ||
280 | if (!rmem) { | ||
281 | dev_err(&pdev->dev, "failed to acquire memory region\n"); | ||
282 | return -EINVAL; | ||
283 | } | ||
284 | |||
285 | cmd_db_header = memremap(rmem->base, rmem->size, MEMREMAP_WB); | ||
286 | if (IS_ERR_OR_NULL(cmd_db_header)) { | ||
287 | ret = PTR_ERR(cmd_db_header); | ||
288 | cmd_db_header = NULL; | ||
289 | return ret; | ||
290 | } | ||
291 | |||
292 | if (!cmd_db_magic_matches(cmd_db_header)) { | ||
293 | dev_err(&pdev->dev, "Invalid Command DB Magic\n"); | ||
294 | return -EINVAL; | ||
295 | } | ||
296 | |||
297 | return 0; | ||
298 | } | ||
299 | |||
300 | static const struct of_device_id cmd_db_match_table[] = { | ||
301 | { .compatible = "qcom,cmd-db" }, | ||
302 | { }, | ||
303 | }; | ||
304 | |||
305 | static struct platform_driver cmd_db_dev_driver = { | ||
306 | .probe = cmd_db_dev_probe, | ||
307 | .driver = { | ||
308 | .name = "cmd-db", | ||
309 | .of_match_table = cmd_db_match_table, | ||
310 | }, | ||
311 | }; | ||
312 | |||
313 | static int __init cmd_db_device_init(void) | ||
314 | { | ||
315 | return platform_driver_register(&cmd_db_dev_driver); | ||
316 | } | ||
317 | arch_initcall(cmd_db_device_init); | ||
diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c new file mode 100644 index 000000000000..feed3db21c10 --- /dev/null +++ b/drivers/soc/qcom/qcom-geni-se.c | |||
@@ -0,0 +1,748 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | // Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. | ||
3 | |||
4 | #include <linux/clk.h> | ||
5 | #include <linux/slab.h> | ||
6 | #include <linux/dma-mapping.h> | ||
7 | #include <linux/io.h> | ||
8 | #include <linux/module.h> | ||
9 | #include <linux/of.h> | ||
10 | #include <linux/of_platform.h> | ||
11 | #include <linux/pinctrl/consumer.h> | ||
12 | #include <linux/platform_device.h> | ||
13 | #include <linux/qcom-geni-se.h> | ||
14 | |||
15 | /** | ||
16 | * DOC: Overview | ||
17 | * | ||
18 | * Generic Interface (GENI) Serial Engine (SE) Wrapper driver is introduced | ||
19 | * to manage GENI firmware based Qualcomm Universal Peripheral (QUP) Wrapper | ||
20 | * controller. QUP Wrapper is designed to support various serial bus protocols | ||
21 | * like UART, SPI, I2C, I3C, etc. | ||
22 | */ | ||
23 | |||
24 | /** | ||
25 | * DOC: Hardware description | ||
26 | * | ||
27 | * GENI based QUP is a highly-flexible and programmable module for supporting | ||
28 | * a wide range of serial interfaces like UART, SPI, I2C, I3C, etc. A single | ||
29 | * QUP module can provide upto 8 serial interfaces, using its internal | ||
30 | * serial engines. The actual configuration is determined by the target | ||
31 | * platform configuration. The protocol supported by each interface is | ||
32 | * determined by the firmware loaded to the serial engine. Each SE consists | ||
33 | * of a DMA Engine and GENI sub modules which enable serial engines to | ||
34 | * support FIFO and DMA modes of operation. | ||
35 | * | ||
36 | * | ||
37 | * +-----------------------------------------+ | ||
38 | * |QUP Wrapper | | ||
39 | * | +----------------------------+ | | ||
40 | * --QUP & SE Clocks--> | Serial Engine N | +-IO------> | ||
41 | * | | ... | | Interface | ||
42 | * <---Clock Perf.----+ +----+-----------------------+ | | | ||
43 | * State Interface | | Serial Engine 1 | | | | ||
44 | * | | | | | | ||
45 | * | | | | | | ||
46 | * <--------AHB-------> | | | | | ||
47 | * | | +----+ | | ||
48 | * | | | | | ||
49 | * | | | | | ||
50 | * <------SE IRQ------+ +----------------------------+ | | ||
51 | * | | | ||
52 | * +-----------------------------------------+ | ||
53 | * | ||
54 | * Figure 1: GENI based QUP Wrapper | ||
55 | * | ||
56 | * The GENI submodules include primary and secondary sequencers which are | ||
57 | * used to drive TX & RX operations. On serial interfaces that operate using | ||
58 | * master-slave model, primary sequencer drives both TX & RX operations. On | ||
59 | * serial interfaces that operate using peer-to-peer model, primary sequencer | ||
60 | * drives TX operation and secondary sequencer drives RX operation. | ||
61 | */ | ||
62 | |||
63 | /** | ||
64 | * DOC: Software description | ||
65 | * | ||
66 | * GENI SE Wrapper driver is structured into 2 parts: | ||
67 | * | ||
68 | * geni_wrapper represents QUP Wrapper controller. This part of the driver | ||
69 | * manages QUP Wrapper information such as hardware version, clock | ||
70 | * performance table that is common to all the internal serial engines. | ||
71 | * | ||
72 | * geni_se represents serial engine. This part of the driver manages serial | ||
73 | * engine information such as clocks, containing QUP Wrapper, etc. This part | ||
74 | * of driver also supports operations (eg. initialize the concerned serial | ||
75 | * engine, select between FIFO and DMA mode of operation etc.) that are | ||
76 | * common to all the serial engines and are independent of serial interfaces. | ||
77 | */ | ||
78 | |||
79 | #define MAX_CLK_PERF_LEVEL 32 | ||
80 | #define NUM_AHB_CLKS 2 | ||
81 | |||
82 | /** | ||
83 | * @struct geni_wrapper - Data structure to represent the QUP Wrapper Core | ||
84 | * @dev: Device pointer of the QUP wrapper core | ||
85 | * @base: Base address of this instance of QUP wrapper core | ||
86 | * @ahb_clks: Handle to the primary & secondary AHB clocks | ||
87 | */ | ||
88 | struct geni_wrapper { | ||
89 | struct device *dev; | ||
90 | void __iomem *base; | ||
91 | struct clk_bulk_data ahb_clks[NUM_AHB_CLKS]; | ||
92 | }; | ||
93 | |||
94 | #define QUP_HW_VER_REG 0x4 | ||
95 | |||
96 | /* Common SE registers */ | ||
97 | #define GENI_INIT_CFG_REVISION 0x0 | ||
98 | #define GENI_S_INIT_CFG_REVISION 0x4 | ||
99 | #define GENI_OUTPUT_CTRL 0x24 | ||
100 | #define GENI_CGC_CTRL 0x28 | ||
101 | #define GENI_CLK_CTRL_RO 0x60 | ||
102 | #define GENI_IF_DISABLE_RO 0x64 | ||
103 | #define GENI_FW_S_REVISION_RO 0x6c | ||
104 | #define SE_GENI_BYTE_GRAN 0x254 | ||
105 | #define SE_GENI_TX_PACKING_CFG0 0x260 | ||
106 | #define SE_GENI_TX_PACKING_CFG1 0x264 | ||
107 | #define SE_GENI_RX_PACKING_CFG0 0x284 | ||
108 | #define SE_GENI_RX_PACKING_CFG1 0x288 | ||
109 | #define SE_GENI_M_GP_LENGTH 0x910 | ||
110 | #define SE_GENI_S_GP_LENGTH 0x914 | ||
111 | #define SE_DMA_TX_PTR_L 0xc30 | ||
112 | #define SE_DMA_TX_PTR_H 0xc34 | ||
113 | #define SE_DMA_TX_ATTR 0xc38 | ||
114 | #define SE_DMA_TX_LEN 0xc3c | ||
115 | #define SE_DMA_TX_IRQ_EN 0xc48 | ||
116 | #define SE_DMA_TX_IRQ_EN_SET 0xc4c | ||
117 | #define SE_DMA_TX_IRQ_EN_CLR 0xc50 | ||
118 | #define SE_DMA_TX_LEN_IN 0xc54 | ||
119 | #define SE_DMA_TX_MAX_BURST 0xc5c | ||
120 | #define SE_DMA_RX_PTR_L 0xd30 | ||
121 | #define SE_DMA_RX_PTR_H 0xd34 | ||
122 | #define SE_DMA_RX_ATTR 0xd38 | ||
123 | #define SE_DMA_RX_LEN 0xd3c | ||
124 | #define SE_DMA_RX_IRQ_EN 0xd48 | ||
125 | #define SE_DMA_RX_IRQ_EN_SET 0xd4c | ||
126 | #define SE_DMA_RX_IRQ_EN_CLR 0xd50 | ||
127 | #define SE_DMA_RX_LEN_IN 0xd54 | ||
128 | #define SE_DMA_RX_MAX_BURST 0xd5c | ||
129 | #define SE_DMA_RX_FLUSH 0xd60 | ||
130 | #define SE_GSI_EVENT_EN 0xe18 | ||
131 | #define SE_IRQ_EN 0xe1c | ||
132 | #define SE_DMA_GENERAL_CFG 0xe30 | ||
133 | |||
134 | /* GENI_OUTPUT_CTRL fields */ | ||
135 | #define DEFAULT_IO_OUTPUT_CTRL_MSK GENMASK(6, 0) | ||
136 | |||
137 | /* GENI_CGC_CTRL fields */ | ||
138 | #define CFG_AHB_CLK_CGC_ON BIT(0) | ||
139 | #define CFG_AHB_WR_ACLK_CGC_ON BIT(1) | ||
140 | #define DATA_AHB_CLK_CGC_ON BIT(2) | ||
141 | #define SCLK_CGC_ON BIT(3) | ||
142 | #define TX_CLK_CGC_ON BIT(4) | ||
143 | #define RX_CLK_CGC_ON BIT(5) | ||
144 | #define EXT_CLK_CGC_ON BIT(6) | ||
145 | #define PROG_RAM_HCLK_OFF BIT(8) | ||
146 | #define PROG_RAM_SCLK_OFF BIT(9) | ||
147 | #define DEFAULT_CGC_EN GENMASK(6, 0) | ||
148 | |||
149 | /* SE_GSI_EVENT_EN fields */ | ||
150 | #define DMA_RX_EVENT_EN BIT(0) | ||
151 | #define DMA_TX_EVENT_EN BIT(1) | ||
152 | #define GENI_M_EVENT_EN BIT(2) | ||
153 | #define GENI_S_EVENT_EN BIT(3) | ||
154 | |||
155 | /* SE_IRQ_EN fields */ | ||
156 | #define DMA_RX_IRQ_EN BIT(0) | ||
157 | #define DMA_TX_IRQ_EN BIT(1) | ||
158 | #define GENI_M_IRQ_EN BIT(2) | ||
159 | #define GENI_S_IRQ_EN BIT(3) | ||
160 | |||
161 | /* SE_DMA_GENERAL_CFG */ | ||
162 | #define DMA_RX_CLK_CGC_ON BIT(0) | ||
163 | #define DMA_TX_CLK_CGC_ON BIT(1) | ||
164 | #define DMA_AHB_SLV_CFG_ON BIT(2) | ||
165 | #define AHB_SEC_SLV_CLK_CGC_ON BIT(3) | ||
166 | #define DUMMY_RX_NON_BUFFERABLE BIT(4) | ||
167 | #define RX_DMA_ZERO_PADDING_EN BIT(5) | ||
168 | #define RX_DMA_IRQ_DELAY_MSK GENMASK(8, 6) | ||
169 | #define RX_DMA_IRQ_DELAY_SHFT 6 | ||
170 | |||
171 | /** | ||
172 | * geni_se_get_qup_hw_version() - Read the QUP wrapper Hardware version | ||
173 | * @se: Pointer to the corresponding serial engine. | ||
174 | * | ||
175 | * Return: Hardware Version of the wrapper. | ||
176 | */ | ||
177 | u32 geni_se_get_qup_hw_version(struct geni_se *se) | ||
178 | { | ||
179 | struct geni_wrapper *wrapper = se->wrapper; | ||
180 | |||
181 | return readl_relaxed(wrapper->base + QUP_HW_VER_REG); | ||
182 | } | ||
183 | EXPORT_SYMBOL(geni_se_get_qup_hw_version); | ||
184 | |||
185 | static void geni_se_io_set_mode(void __iomem *base) | ||
186 | { | ||
187 | u32 val; | ||
188 | |||
189 | val = readl_relaxed(base + SE_IRQ_EN); | ||
190 | val |= GENI_M_IRQ_EN | GENI_S_IRQ_EN; | ||
191 | val |= DMA_TX_IRQ_EN | DMA_RX_IRQ_EN; | ||
192 | writel_relaxed(val, base + SE_IRQ_EN); | ||
193 | |||
194 | val = readl_relaxed(base + SE_GENI_DMA_MODE_EN); | ||
195 | val &= ~GENI_DMA_MODE_EN; | ||
196 | writel_relaxed(val, base + SE_GENI_DMA_MODE_EN); | ||
197 | |||
198 | writel_relaxed(0, base + SE_GSI_EVENT_EN); | ||
199 | } | ||
200 | |||
201 | static void geni_se_io_init(void __iomem *base) | ||
202 | { | ||
203 | u32 val; | ||
204 | |||
205 | val = readl_relaxed(base + GENI_CGC_CTRL); | ||
206 | val |= DEFAULT_CGC_EN; | ||
207 | writel_relaxed(val, base + GENI_CGC_CTRL); | ||
208 | |||
209 | val = readl_relaxed(base + SE_DMA_GENERAL_CFG); | ||
210 | val |= AHB_SEC_SLV_CLK_CGC_ON | DMA_AHB_SLV_CFG_ON; | ||
211 | val |= DMA_TX_CLK_CGC_ON | DMA_RX_CLK_CGC_ON; | ||
212 | writel_relaxed(val, base + SE_DMA_GENERAL_CFG); | ||
213 | |||
214 | writel_relaxed(DEFAULT_IO_OUTPUT_CTRL_MSK, base + GENI_OUTPUT_CTRL); | ||
215 | writel_relaxed(FORCE_DEFAULT, base + GENI_FORCE_DEFAULT_REG); | ||
216 | } | ||
217 | |||
218 | /** | ||
219 | * geni_se_init() - Initialize the GENI serial engine | ||
220 | * @se: Pointer to the concerned serial engine. | ||
221 | * @rx_wm: Receive watermark, in units of FIFO words. | ||
222 | * @rx_rfr_wm: Ready-for-receive watermark, in units of FIFO words. | ||
223 | * | ||
224 | * This function is used to initialize the GENI serial engine, configure | ||
225 | * receive watermark and ready-for-receive watermarks. | ||
226 | */ | ||
227 | void geni_se_init(struct geni_se *se, u32 rx_wm, u32 rx_rfr) | ||
228 | { | ||
229 | u32 val; | ||
230 | |||
231 | geni_se_io_init(se->base); | ||
232 | geni_se_io_set_mode(se->base); | ||
233 | |||
234 | writel_relaxed(rx_wm, se->base + SE_GENI_RX_WATERMARK_REG); | ||
235 | writel_relaxed(rx_rfr, se->base + SE_GENI_RX_RFR_WATERMARK_REG); | ||
236 | |||
237 | val = readl_relaxed(se->base + SE_GENI_M_IRQ_EN); | ||
238 | val |= M_COMMON_GENI_M_IRQ_EN; | ||
239 | writel_relaxed(val, se->base + SE_GENI_M_IRQ_EN); | ||
240 | |||
241 | val = readl_relaxed(se->base + SE_GENI_S_IRQ_EN); | ||
242 | val |= S_COMMON_GENI_S_IRQ_EN; | ||
243 | writel_relaxed(val, se->base + SE_GENI_S_IRQ_EN); | ||
244 | } | ||
245 | EXPORT_SYMBOL(geni_se_init); | ||
246 | |||
247 | static void geni_se_select_fifo_mode(struct geni_se *se) | ||
248 | { | ||
249 | u32 proto = geni_se_read_proto(se); | ||
250 | u32 val; | ||
251 | |||
252 | writel_relaxed(0, se->base + SE_GSI_EVENT_EN); | ||
253 | writel_relaxed(0xffffffff, se->base + SE_GENI_M_IRQ_CLEAR); | ||
254 | writel_relaxed(0xffffffff, se->base + SE_GENI_S_IRQ_CLEAR); | ||
255 | writel_relaxed(0xffffffff, se->base + SE_DMA_TX_IRQ_CLR); | ||
256 | writel_relaxed(0xffffffff, se->base + SE_DMA_RX_IRQ_CLR); | ||
257 | writel_relaxed(0xffffffff, se->base + SE_IRQ_EN); | ||
258 | |||
259 | val = readl_relaxed(se->base + SE_GENI_M_IRQ_EN); | ||
260 | if (proto != GENI_SE_UART) { | ||
261 | val |= M_CMD_DONE_EN | M_TX_FIFO_WATERMARK_EN; | ||
262 | val |= M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN; | ||
263 | } | ||
264 | writel_relaxed(val, se->base + SE_GENI_M_IRQ_EN); | ||
265 | |||
266 | val = readl_relaxed(se->base + SE_GENI_S_IRQ_EN); | ||
267 | if (proto != GENI_SE_UART) | ||
268 | val |= S_CMD_DONE_EN; | ||
269 | writel_relaxed(val, se->base + SE_GENI_S_IRQ_EN); | ||
270 | |||
271 | val = readl_relaxed(se->base + SE_GENI_DMA_MODE_EN); | ||
272 | val &= ~GENI_DMA_MODE_EN; | ||
273 | writel_relaxed(val, se->base + SE_GENI_DMA_MODE_EN); | ||
274 | } | ||
275 | |||
276 | static void geni_se_select_dma_mode(struct geni_se *se) | ||
277 | { | ||
278 | u32 val; | ||
279 | |||
280 | writel_relaxed(0, se->base + SE_GSI_EVENT_EN); | ||
281 | writel_relaxed(0xffffffff, se->base + SE_GENI_M_IRQ_CLEAR); | ||
282 | writel_relaxed(0xffffffff, se->base + SE_GENI_S_IRQ_CLEAR); | ||
283 | writel_relaxed(0xffffffff, se->base + SE_DMA_TX_IRQ_CLR); | ||
284 | writel_relaxed(0xffffffff, se->base + SE_DMA_RX_IRQ_CLR); | ||
285 | writel_relaxed(0xffffffff, se->base + SE_IRQ_EN); | ||
286 | |||
287 | val = readl_relaxed(se->base + SE_GENI_DMA_MODE_EN); | ||
288 | val |= GENI_DMA_MODE_EN; | ||
289 | writel_relaxed(val, se->base + SE_GENI_DMA_MODE_EN); | ||
290 | } | ||
291 | |||
292 | /** | ||
293 | * geni_se_select_mode() - Select the serial engine transfer mode | ||
294 | * @se: Pointer to the concerned serial engine. | ||
295 | * @mode: Transfer mode to be selected. | ||
296 | */ | ||
297 | void geni_se_select_mode(struct geni_se *se, enum geni_se_xfer_mode mode) | ||
298 | { | ||
299 | WARN_ON(mode != GENI_SE_FIFO && mode != GENI_SE_DMA); | ||
300 | |||
301 | switch (mode) { | ||
302 | case GENI_SE_FIFO: | ||
303 | geni_se_select_fifo_mode(se); | ||
304 | break; | ||
305 | case GENI_SE_DMA: | ||
306 | geni_se_select_dma_mode(se); | ||
307 | break; | ||
308 | case GENI_SE_INVALID: | ||
309 | default: | ||
310 | break; | ||
311 | } | ||
312 | } | ||
313 | EXPORT_SYMBOL(geni_se_select_mode); | ||
314 | |||
315 | /** | ||
316 | * DOC: Overview | ||
317 | * | ||
318 | * GENI FIFO packing is highly configurable. TX/RX packing/unpacking consist | ||
319 | * of up to 4 operations, each operation represented by 4 configuration vectors | ||
320 | * of 10 bits programmed in GENI_TX_PACKING_CFG0 and GENI_TX_PACKING_CFG1 for | ||
321 | * TX FIFO and in GENI_RX_PACKING_CFG0 and GENI_RX_PACKING_CFG1 for RX FIFO. | ||
322 | * Refer to below examples for detailed bit-field description. | ||
323 | * | ||
324 | * Example 1: word_size = 7, packing_mode = 4 x 8, msb_to_lsb = 1 | ||
325 | * | ||
326 | * +-----------+-------+-------+-------+-------+ | ||
327 | * | | vec_0 | vec_1 | vec_2 | vec_3 | | ||
328 | * +-----------+-------+-------+-------+-------+ | ||
329 | * | start | 0x6 | 0xe | 0x16 | 0x1e | | ||
330 | * | direction | 1 | 1 | 1 | 1 | | ||
331 | * | length | 6 | 6 | 6 | 6 | | ||
332 | * | stop | 0 | 0 | 0 | 1 | | ||
333 | * +-----------+-------+-------+-------+-------+ | ||
334 | * | ||
335 | * Example 2: word_size = 15, packing_mode = 2 x 16, msb_to_lsb = 0 | ||
336 | * | ||
337 | * +-----------+-------+-------+-------+-------+ | ||
338 | * | | vec_0 | vec_1 | vec_2 | vec_3 | | ||
339 | * +-----------+-------+-------+-------+-------+ | ||
340 | * | start | 0x0 | 0x8 | 0x10 | 0x18 | | ||
341 | * | direction | 0 | 0 | 0 | 0 | | ||
342 | * | length | 7 | 6 | 7 | 6 | | ||
343 | * | stop | 0 | 0 | 0 | 1 | | ||
344 | * +-----------+-------+-------+-------+-------+ | ||
345 | * | ||
346 | * Example 3: word_size = 23, packing_mode = 1 x 32, msb_to_lsb = 1 | ||
347 | * | ||
348 | * +-----------+-------+-------+-------+-------+ | ||
349 | * | | vec_0 | vec_1 | vec_2 | vec_3 | | ||
350 | * +-----------+-------+-------+-------+-------+ | ||
351 | * | start | 0x16 | 0xe | 0x6 | 0x0 | | ||
352 | * | direction | 1 | 1 | 1 | 1 | | ||
353 | * | length | 7 | 7 | 6 | 0 | | ||
354 | * | stop | 0 | 0 | 1 | 0 | | ||
355 | * +-----------+-------+-------+-------+-------+ | ||
356 | * | ||
357 | */ | ||
358 | |||
359 | #define NUM_PACKING_VECTORS 4 | ||
360 | #define PACKING_START_SHIFT 5 | ||
361 | #define PACKING_DIR_SHIFT 4 | ||
362 | #define PACKING_LEN_SHIFT 1 | ||
363 | #define PACKING_STOP_BIT BIT(0) | ||
364 | #define PACKING_VECTOR_SHIFT 10 | ||
365 | /** | ||
366 | * geni_se_config_packing() - Packing configuration of the serial engine | ||
367 | * @se: Pointer to the concerned serial engine | ||
368 | * @bpw: Bits of data per transfer word. | ||
369 | * @pack_words: Number of words per fifo element. | ||
370 | * @msb_to_lsb: Transfer from MSB to LSB or vice-versa. | ||
371 | * @tx_cfg: Flag to configure the TX Packing. | ||
372 | * @rx_cfg: Flag to configure the RX Packing. | ||
373 | * | ||
374 | * This function is used to configure the packing rules for the current | ||
375 | * transfer. | ||
376 | */ | ||
377 | void geni_se_config_packing(struct geni_se *se, int bpw, int pack_words, | ||
378 | bool msb_to_lsb, bool tx_cfg, bool rx_cfg) | ||
379 | { | ||
380 | u32 cfg0, cfg1, cfg[NUM_PACKING_VECTORS] = {0}; | ||
381 | int len; | ||
382 | int temp_bpw = bpw; | ||
383 | int idx_start = msb_to_lsb ? bpw - 1 : 0; | ||
384 | int idx = idx_start; | ||
385 | int idx_delta = msb_to_lsb ? -BITS_PER_BYTE : BITS_PER_BYTE; | ||
386 | int ceil_bpw = ALIGN(bpw, BITS_PER_BYTE); | ||
387 | int iter = (ceil_bpw * pack_words) / BITS_PER_BYTE; | ||
388 | int i; | ||
389 | |||
390 | if (iter <= 0 || iter > NUM_PACKING_VECTORS) | ||
391 | return; | ||
392 | |||
393 | for (i = 0; i < iter; i++) { | ||
394 | len = min_t(int, temp_bpw, BITS_PER_BYTE) - 1; | ||
395 | cfg[i] = idx << PACKING_START_SHIFT; | ||
396 | cfg[i] |= msb_to_lsb << PACKING_DIR_SHIFT; | ||
397 | cfg[i] |= len << PACKING_LEN_SHIFT; | ||
398 | |||
399 | if (temp_bpw <= BITS_PER_BYTE) { | ||
400 | idx = ((i + 1) * BITS_PER_BYTE) + idx_start; | ||
401 | temp_bpw = bpw; | ||
402 | } else { | ||
403 | idx = idx + idx_delta; | ||
404 | temp_bpw = temp_bpw - BITS_PER_BYTE; | ||
405 | } | ||
406 | } | ||
407 | cfg[iter - 1] |= PACKING_STOP_BIT; | ||
408 | cfg0 = cfg[0] | (cfg[1] << PACKING_VECTOR_SHIFT); | ||
409 | cfg1 = cfg[2] | (cfg[3] << PACKING_VECTOR_SHIFT); | ||
410 | |||
411 | if (tx_cfg) { | ||
412 | writel_relaxed(cfg0, se->base + SE_GENI_TX_PACKING_CFG0); | ||
413 | writel_relaxed(cfg1, se->base + SE_GENI_TX_PACKING_CFG1); | ||
414 | } | ||
415 | if (rx_cfg) { | ||
416 | writel_relaxed(cfg0, se->base + SE_GENI_RX_PACKING_CFG0); | ||
417 | writel_relaxed(cfg1, se->base + SE_GENI_RX_PACKING_CFG1); | ||
418 | } | ||
419 | |||
420 | /* | ||
421 | * Number of protocol words in each FIFO entry | ||
422 | * 0 - 4x8, four words in each entry, max word size of 8 bits | ||
423 | * 1 - 2x16, two words in each entry, max word size of 16 bits | ||
424 | * 2 - 1x32, one word in each entry, max word size of 32 bits | ||
425 | * 3 - undefined | ||
426 | */ | ||
427 | if (pack_words || bpw == 32) | ||
428 | writel_relaxed(bpw / 16, se->base + SE_GENI_BYTE_GRAN); | ||
429 | } | ||
430 | EXPORT_SYMBOL(geni_se_config_packing); | ||
431 | |||
432 | static void geni_se_clks_off(struct geni_se *se) | ||
433 | { | ||
434 | struct geni_wrapper *wrapper = se->wrapper; | ||
435 | |||
436 | clk_disable_unprepare(se->clk); | ||
437 | clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), | ||
438 | wrapper->ahb_clks); | ||
439 | } | ||
440 | |||
441 | /** | ||
442 | * geni_se_resources_off() - Turn off resources associated with the serial | ||
443 | * engine | ||
444 | * @se: Pointer to the concerned serial engine. | ||
445 | * | ||
446 | * Return: 0 on success, standard Linux error codes on failure/error. | ||
447 | */ | ||
448 | int geni_se_resources_off(struct geni_se *se) | ||
449 | { | ||
450 | int ret; | ||
451 | |||
452 | ret = pinctrl_pm_select_sleep_state(se->dev); | ||
453 | if (ret) | ||
454 | return ret; | ||
455 | |||
456 | geni_se_clks_off(se); | ||
457 | return 0; | ||
458 | } | ||
459 | EXPORT_SYMBOL(geni_se_resources_off); | ||
460 | |||
461 | static int geni_se_clks_on(struct geni_se *se) | ||
462 | { | ||
463 | int ret; | ||
464 | struct geni_wrapper *wrapper = se->wrapper; | ||
465 | |||
466 | ret = clk_bulk_prepare_enable(ARRAY_SIZE(wrapper->ahb_clks), | ||
467 | wrapper->ahb_clks); | ||
468 | if (ret) | ||
469 | return ret; | ||
470 | |||
471 | ret = clk_prepare_enable(se->clk); | ||
472 | if (ret) | ||
473 | clk_bulk_disable_unprepare(ARRAY_SIZE(wrapper->ahb_clks), | ||
474 | wrapper->ahb_clks); | ||
475 | return ret; | ||
476 | } | ||
477 | |||
478 | /** | ||
479 | * geni_se_resources_on() - Turn on resources associated with the serial | ||
480 | * engine | ||
481 | * @se: Pointer to the concerned serial engine. | ||
482 | * | ||
483 | * Return: 0 on success, standard Linux error codes on failure/error. | ||
484 | */ | ||
485 | int geni_se_resources_on(struct geni_se *se) | ||
486 | { | ||
487 | int ret; | ||
488 | |||
489 | ret = geni_se_clks_on(se); | ||
490 | if (ret) | ||
491 | return ret; | ||
492 | |||
493 | ret = pinctrl_pm_select_default_state(se->dev); | ||
494 | if (ret) | ||
495 | geni_se_clks_off(se); | ||
496 | |||
497 | return ret; | ||
498 | } | ||
499 | EXPORT_SYMBOL(geni_se_resources_on); | ||
500 | |||
501 | /** | ||
502 | * geni_se_clk_tbl_get() - Get the clock table to program DFS | ||
503 | * @se: Pointer to the concerned serial engine. | ||
504 | * @tbl: Table in which the output is returned. | ||
505 | * | ||
506 | * This function is called by the protocol drivers to determine the different | ||
507 | * clock frequencies supported by serial engine core clock. The protocol | ||
508 | * drivers use the output to determine the clock frequency index to be | ||
509 | * programmed into DFS. | ||
510 | * | ||
511 | * Return: number of valid performance levels in the table on success, | ||
512 | * standard Linux error codes on failure. | ||
513 | */ | ||
514 | int geni_se_clk_tbl_get(struct geni_se *se, unsigned long **tbl) | ||
515 | { | ||
516 | unsigned long freq = 0; | ||
517 | int i; | ||
518 | |||
519 | if (se->clk_perf_tbl) { | ||
520 | *tbl = se->clk_perf_tbl; | ||
521 | return se->num_clk_levels; | ||
522 | } | ||
523 | |||
524 | se->clk_perf_tbl = devm_kcalloc(se->dev, MAX_CLK_PERF_LEVEL, | ||
525 | sizeof(*se->clk_perf_tbl), | ||
526 | GFP_KERNEL); | ||
527 | if (!se->clk_perf_tbl) | ||
528 | return -ENOMEM; | ||
529 | |||
530 | for (i = 0; i < MAX_CLK_PERF_LEVEL; i++) { | ||
531 | freq = clk_round_rate(se->clk, freq + 1); | ||
532 | if (!freq || freq == se->clk_perf_tbl[i - 1]) | ||
533 | break; | ||
534 | se->clk_perf_tbl[i] = freq; | ||
535 | } | ||
536 | se->num_clk_levels = i; | ||
537 | *tbl = se->clk_perf_tbl; | ||
538 | return se->num_clk_levels; | ||
539 | } | ||
540 | EXPORT_SYMBOL(geni_se_clk_tbl_get); | ||
541 | |||
542 | /** | ||
543 | * geni_se_clk_freq_match() - Get the matching or closest SE clock frequency | ||
544 | * @se: Pointer to the concerned serial engine. | ||
545 | * @req_freq: Requested clock frequency. | ||
546 | * @index: Index of the resultant frequency in the table. | ||
547 | * @res_freq: Resultant frequency which matches or is closer to the | ||
548 | * requested frequency. | ||
549 | * @exact: Flag to indicate exact multiple requirement of the requested | ||
550 | * frequency. | ||
551 | * | ||
552 | * This function is called by the protocol drivers to determine the matching | ||
553 | * or exact multiple of the requested frequency, as provided by the serial | ||
554 | * engine clock in order to meet the performance requirements. If there is | ||
555 | * no matching or exact multiple of the requested frequency found, then it | ||
556 | * selects the closest floor frequency, if exact flag is not set. | ||
557 | * | ||
558 | * Return: 0 on success, standard Linux error codes on failure. | ||
559 | */ | ||
560 | int geni_se_clk_freq_match(struct geni_se *se, unsigned long req_freq, | ||
561 | unsigned int *index, unsigned long *res_freq, | ||
562 | bool exact) | ||
563 | { | ||
564 | unsigned long *tbl; | ||
565 | int num_clk_levels; | ||
566 | int i; | ||
567 | |||
568 | num_clk_levels = geni_se_clk_tbl_get(se, &tbl); | ||
569 | if (num_clk_levels < 0) | ||
570 | return num_clk_levels; | ||
571 | |||
572 | if (num_clk_levels == 0) | ||
573 | return -EINVAL; | ||
574 | |||
575 | *res_freq = 0; | ||
576 | for (i = 0; i < num_clk_levels; i++) { | ||
577 | if (!(tbl[i] % req_freq)) { | ||
578 | *index = i; | ||
579 | *res_freq = tbl[i]; | ||
580 | return 0; | ||
581 | } | ||
582 | |||
583 | if (!(*res_freq) || ((tbl[i] > *res_freq) && | ||
584 | (tbl[i] < req_freq))) { | ||
585 | *index = i; | ||
586 | *res_freq = tbl[i]; | ||
587 | } | ||
588 | } | ||
589 | |||
590 | if (exact) | ||
591 | return -EINVAL; | ||
592 | |||
593 | return 0; | ||
594 | } | ||
595 | EXPORT_SYMBOL(geni_se_clk_freq_match); | ||
596 | |||
597 | #define GENI_SE_DMA_DONE_EN BIT(0) | ||
598 | #define GENI_SE_DMA_EOT_EN BIT(1) | ||
599 | #define GENI_SE_DMA_AHB_ERR_EN BIT(2) | ||
600 | #define GENI_SE_DMA_EOT_BUF BIT(0) | ||
601 | /** | ||
602 | * geni_se_tx_dma_prep() - Prepare the serial engine for TX DMA transfer | ||
603 | * @se: Pointer to the concerned serial engine. | ||
604 | * @buf: Pointer to the TX buffer. | ||
605 | * @len: Length of the TX buffer. | ||
606 | * @iova: Pointer to store the mapped DMA address. | ||
607 | * | ||
608 | * This function is used to prepare the buffers for DMA TX. | ||
609 | * | ||
610 | * Return: 0 on success, standard Linux error codes on failure. | ||
611 | */ | ||
612 | int geni_se_tx_dma_prep(struct geni_se *se, void *buf, size_t len, | ||
613 | dma_addr_t *iova) | ||
614 | { | ||
615 | struct geni_wrapper *wrapper = se->wrapper; | ||
616 | u32 val; | ||
617 | |||
618 | *iova = dma_map_single(wrapper->dev, buf, len, DMA_TO_DEVICE); | ||
619 | if (dma_mapping_error(wrapper->dev, *iova)) | ||
620 | return -EIO; | ||
621 | |||
622 | val = GENI_SE_DMA_DONE_EN; | ||
623 | val |= GENI_SE_DMA_EOT_EN; | ||
624 | val |= GENI_SE_DMA_AHB_ERR_EN; | ||
625 | writel_relaxed(val, se->base + SE_DMA_TX_IRQ_EN_SET); | ||
626 | writel_relaxed(lower_32_bits(*iova), se->base + SE_DMA_TX_PTR_L); | ||
627 | writel_relaxed(upper_32_bits(*iova), se->base + SE_DMA_TX_PTR_H); | ||
628 | writel_relaxed(GENI_SE_DMA_EOT_BUF, se->base + SE_DMA_TX_ATTR); | ||
629 | writel_relaxed(len, se->base + SE_DMA_TX_LEN); | ||
630 | return 0; | ||
631 | } | ||
632 | EXPORT_SYMBOL(geni_se_tx_dma_prep); | ||
633 | |||
634 | /** | ||
635 | * geni_se_rx_dma_prep() - Prepare the serial engine for RX DMA transfer | ||
636 | * @se: Pointer to the concerned serial engine. | ||
637 | * @buf: Pointer to the RX buffer. | ||
638 | * @len: Length of the RX buffer. | ||
639 | * @iova: Pointer to store the mapped DMA address. | ||
640 | * | ||
641 | * This function is used to prepare the buffers for DMA RX. | ||
642 | * | ||
643 | * Return: 0 on success, standard Linux error codes on failure. | ||
644 | */ | ||
645 | int geni_se_rx_dma_prep(struct geni_se *se, void *buf, size_t len, | ||
646 | dma_addr_t *iova) | ||
647 | { | ||
648 | struct geni_wrapper *wrapper = se->wrapper; | ||
649 | u32 val; | ||
650 | |||
651 | *iova = dma_map_single(wrapper->dev, buf, len, DMA_FROM_DEVICE); | ||
652 | if (dma_mapping_error(wrapper->dev, *iova)) | ||
653 | return -EIO; | ||
654 | |||
655 | val = GENI_SE_DMA_DONE_EN; | ||
656 | val |= GENI_SE_DMA_EOT_EN; | ||
657 | val |= GENI_SE_DMA_AHB_ERR_EN; | ||
658 | writel_relaxed(val, se->base + SE_DMA_RX_IRQ_EN_SET); | ||
659 | writel_relaxed(lower_32_bits(*iova), se->base + SE_DMA_RX_PTR_L); | ||
660 | writel_relaxed(upper_32_bits(*iova), se->base + SE_DMA_RX_PTR_H); | ||
661 | /* RX does not have EOT buffer type bit. So just reset RX_ATTR */ | ||
662 | writel_relaxed(0, se->base + SE_DMA_RX_ATTR); | ||
663 | writel_relaxed(len, se->base + SE_DMA_RX_LEN); | ||
664 | return 0; | ||
665 | } | ||
666 | EXPORT_SYMBOL(geni_se_rx_dma_prep); | ||
667 | |||
668 | /** | ||
669 | * geni_se_tx_dma_unprep() - Unprepare the serial engine after TX DMA transfer | ||
670 | * @se: Pointer to the concerned serial engine. | ||
671 | * @iova: DMA address of the TX buffer. | ||
672 | * @len: Length of the TX buffer. | ||
673 | * | ||
674 | * This function is used to unprepare the DMA buffers after DMA TX. | ||
675 | */ | ||
676 | void geni_se_tx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len) | ||
677 | { | ||
678 | struct geni_wrapper *wrapper = se->wrapper; | ||
679 | |||
680 | if (iova && !dma_mapping_error(wrapper->dev, iova)) | ||
681 | dma_unmap_single(wrapper->dev, iova, len, DMA_TO_DEVICE); | ||
682 | } | ||
683 | EXPORT_SYMBOL(geni_se_tx_dma_unprep); | ||
684 | |||
685 | /** | ||
686 | * geni_se_rx_dma_unprep() - Unprepare the serial engine after RX DMA transfer | ||
687 | * @se: Pointer to the concerned serial engine. | ||
688 | * @iova: DMA address of the RX buffer. | ||
689 | * @len: Length of the RX buffer. | ||
690 | * | ||
691 | * This function is used to unprepare the DMA buffers after DMA RX. | ||
692 | */ | ||
693 | void geni_se_rx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len) | ||
694 | { | ||
695 | struct geni_wrapper *wrapper = se->wrapper; | ||
696 | |||
697 | if (iova && !dma_mapping_error(wrapper->dev, iova)) | ||
698 | dma_unmap_single(wrapper->dev, iova, len, DMA_FROM_DEVICE); | ||
699 | } | ||
700 | EXPORT_SYMBOL(geni_se_rx_dma_unprep); | ||
701 | |||
702 | static int geni_se_probe(struct platform_device *pdev) | ||
703 | { | ||
704 | struct device *dev = &pdev->dev; | ||
705 | struct resource *res; | ||
706 | struct geni_wrapper *wrapper; | ||
707 | int ret; | ||
708 | |||
709 | wrapper = devm_kzalloc(dev, sizeof(*wrapper), GFP_KERNEL); | ||
710 | if (!wrapper) | ||
711 | return -ENOMEM; | ||
712 | |||
713 | wrapper->dev = dev; | ||
714 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
715 | wrapper->base = devm_ioremap_resource(dev, res); | ||
716 | if (IS_ERR(wrapper->base)) | ||
717 | return PTR_ERR(wrapper->base); | ||
718 | |||
719 | wrapper->ahb_clks[0].id = "m-ahb"; | ||
720 | wrapper->ahb_clks[1].id = "s-ahb"; | ||
721 | ret = devm_clk_bulk_get(dev, NUM_AHB_CLKS, wrapper->ahb_clks); | ||
722 | if (ret) { | ||
723 | dev_err(dev, "Err getting AHB clks %d\n", ret); | ||
724 | return ret; | ||
725 | } | ||
726 | |||
727 | dev_set_drvdata(dev, wrapper); | ||
728 | dev_dbg(dev, "GENI SE Driver probed\n"); | ||
729 | return devm_of_platform_populate(dev); | ||
730 | } | ||
731 | |||
732 | static const struct of_device_id geni_se_dt_match[] = { | ||
733 | { .compatible = "qcom,geni-se-qup", }, | ||
734 | {} | ||
735 | }; | ||
736 | MODULE_DEVICE_TABLE(of, geni_se_dt_match); | ||
737 | |||
738 | static struct platform_driver geni_se_driver = { | ||
739 | .driver = { | ||
740 | .name = "geni_se_qup", | ||
741 | .of_match_table = geni_se_dt_match, | ||
742 | }, | ||
743 | .probe = geni_se_probe, | ||
744 | }; | ||
745 | module_platform_driver(geni_se_driver); | ||
746 | |||
747 | MODULE_DESCRIPTION("GENI Serial Engine Driver"); | ||
748 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/soc/qcom/qmi_interface.c b/drivers/soc/qcom/qmi_interface.c index 321982277697..938ca41c56cd 100644 --- a/drivers/soc/qcom/qmi_interface.c +++ b/drivers/soc/qcom/qmi_interface.c | |||
@@ -639,10 +639,11 @@ int qmi_handle_init(struct qmi_handle *qmi, size_t recv_buf_size, | |||
639 | if (ops) | 639 | if (ops) |
640 | qmi->ops = *ops; | 640 | qmi->ops = *ops; |
641 | 641 | ||
642 | /* Make room for the header */ | ||
643 | recv_buf_size += sizeof(struct qmi_header); | ||
644 | /* Must also be sufficient to hold a control packet */ | ||
642 | if (recv_buf_size < sizeof(struct qrtr_ctrl_pkt)) | 645 | if (recv_buf_size < sizeof(struct qrtr_ctrl_pkt)) |
643 | recv_buf_size = sizeof(struct qrtr_ctrl_pkt); | 646 | recv_buf_size = sizeof(struct qrtr_ctrl_pkt); |
644 | else | ||
645 | recv_buf_size += sizeof(struct qmi_header); | ||
646 | 647 | ||
647 | qmi->recv_buf_size = recv_buf_size; | 648 | qmi->recv_buf_size = recv_buf_size; |
648 | qmi->recv_buf = kzalloc(recv_buf_size, GFP_KERNEL); | 649 | qmi->recv_buf = kzalloc(recv_buf_size, GFP_KERNEL); |
diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c index c2346752b3ea..93517ed83355 100644 --- a/drivers/soc/qcom/smd-rpm.c +++ b/drivers/soc/qcom/smd-rpm.c | |||
@@ -226,6 +226,7 @@ static const struct of_device_id qcom_smd_rpm_of_match[] = { | |||
226 | { .compatible = "qcom,rpm-msm8916" }, | 226 | { .compatible = "qcom,rpm-msm8916" }, |
227 | { .compatible = "qcom,rpm-msm8974" }, | 227 | { .compatible = "qcom,rpm-msm8974" }, |
228 | { .compatible = "qcom,rpm-msm8996" }, | 228 | { .compatible = "qcom,rpm-msm8996" }, |
229 | { .compatible = "qcom,rpm-msm8998" }, | ||
229 | {} | 230 | {} |
230 | }; | 231 | }; |
231 | MODULE_DEVICE_TABLE(of, qcom_smd_rpm_of_match); | 232 | MODULE_DEVICE_TABLE(of, qcom_smd_rpm_of_match); |
diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c index 0b94d62fad2b..70b2ee80d6bd 100644 --- a/drivers/soc/qcom/smem.c +++ b/drivers/soc/qcom/smem.c | |||
@@ -280,7 +280,7 @@ struct qcom_smem { | |||
280 | struct smem_region regions[0]; | 280 | struct smem_region regions[0]; |
281 | }; | 281 | }; |
282 | 282 | ||
283 | static struct smem_private_entry * | 283 | static void * |
284 | phdr_to_last_uncached_entry(struct smem_partition_header *phdr) | 284 | phdr_to_last_uncached_entry(struct smem_partition_header *phdr) |
285 | { | 285 | { |
286 | void *p = phdr; | 286 | void *p = phdr; |
@@ -288,15 +288,18 @@ phdr_to_last_uncached_entry(struct smem_partition_header *phdr) | |||
288 | return p + le32_to_cpu(phdr->offset_free_uncached); | 288 | return p + le32_to_cpu(phdr->offset_free_uncached); |
289 | } | 289 | } |
290 | 290 | ||
291 | static void *phdr_to_first_cached_entry(struct smem_partition_header *phdr, | 291 | static struct smem_private_entry * |
292 | phdr_to_first_cached_entry(struct smem_partition_header *phdr, | ||
292 | size_t cacheline) | 293 | size_t cacheline) |
293 | { | 294 | { |
294 | void *p = phdr; | 295 | void *p = phdr; |
296 | struct smem_private_entry *e; | ||
295 | 297 | ||
296 | return p + le32_to_cpu(phdr->size) - ALIGN(sizeof(*phdr), cacheline); | 298 | return p + le32_to_cpu(phdr->size) - ALIGN(sizeof(*e), cacheline); |
297 | } | 299 | } |
298 | 300 | ||
299 | static void *phdr_to_last_cached_entry(struct smem_partition_header *phdr) | 301 | static void * |
302 | phdr_to_last_cached_entry(struct smem_partition_header *phdr) | ||
300 | { | 303 | { |
301 | void *p = phdr; | 304 | void *p = phdr; |
302 | 305 | ||
@@ -361,14 +364,14 @@ static int qcom_smem_alloc_private(struct qcom_smem *smem, | |||
361 | end = phdr_to_last_uncached_entry(phdr); | 364 | end = phdr_to_last_uncached_entry(phdr); |
362 | cached = phdr_to_last_cached_entry(phdr); | 365 | cached = phdr_to_last_cached_entry(phdr); |
363 | 366 | ||
364 | while (hdr < end) { | 367 | if (smem->global_partition) { |
365 | if (hdr->canary != SMEM_PRIVATE_CANARY) { | 368 | dev_err(smem->dev, "Already found the global partition\n"); |
366 | dev_err(smem->dev, | 369 | return -EINVAL; |
367 | "Found invalid canary in hosts %d:%d partition\n", | 370 | } |
368 | phdr->host0, phdr->host1); | ||
369 | return -EINVAL; | ||
370 | } | ||
371 | 371 | ||
372 | while (hdr < end) { | ||
373 | if (hdr->canary != SMEM_PRIVATE_CANARY) | ||
374 | goto bad_canary; | ||
372 | if (le16_to_cpu(hdr->item) == item) | 375 | if (le16_to_cpu(hdr->item) == item) |
373 | return -EEXIST; | 376 | return -EEXIST; |
374 | 377 | ||
@@ -377,7 +380,7 @@ static int qcom_smem_alloc_private(struct qcom_smem *smem, | |||
377 | 380 | ||
378 | /* Check that we don't grow into the cached region */ | 381 | /* Check that we don't grow into the cached region */ |
379 | alloc_size = sizeof(*hdr) + ALIGN(size, 8); | 382 | alloc_size = sizeof(*hdr) + ALIGN(size, 8); |
380 | if ((void *)hdr + alloc_size >= cached) { | 383 | if ((void *)hdr + alloc_size > cached) { |
381 | dev_err(smem->dev, "Out of memory\n"); | 384 | dev_err(smem->dev, "Out of memory\n"); |
382 | return -ENOSPC; | 385 | return -ENOSPC; |
383 | } | 386 | } |
@@ -397,6 +400,11 @@ static int qcom_smem_alloc_private(struct qcom_smem *smem, | |||
397 | le32_add_cpu(&phdr->offset_free_uncached, alloc_size); | 400 | le32_add_cpu(&phdr->offset_free_uncached, alloc_size); |
398 | 401 | ||
399 | return 0; | 402 | return 0; |
403 | bad_canary: | ||
404 | dev_err(smem->dev, "Found invalid canary in hosts %hu:%hu partition\n", | ||
405 | le16_to_cpu(phdr->host0), le16_to_cpu(phdr->host1)); | ||
406 | |||
407 | return -EINVAL; | ||
400 | } | 408 | } |
401 | 409 | ||
402 | static int qcom_smem_alloc_global(struct qcom_smem *smem, | 410 | static int qcom_smem_alloc_global(struct qcom_smem *smem, |
@@ -560,8 +568,8 @@ static void *qcom_smem_get_private(struct qcom_smem *smem, | |||
560 | return ERR_PTR(-ENOENT); | 568 | return ERR_PTR(-ENOENT); |
561 | 569 | ||
562 | invalid_canary: | 570 | invalid_canary: |
563 | dev_err(smem->dev, "Found invalid canary in hosts %d:%d partition\n", | 571 | dev_err(smem->dev, "Found invalid canary in hosts %hu:%hu partition\n", |
564 | phdr->host0, phdr->host1); | 572 | le16_to_cpu(phdr->host0), le16_to_cpu(phdr->host1)); |
565 | 573 | ||
566 | return ERR_PTR(-EINVAL); | 574 | return ERR_PTR(-EINVAL); |
567 | } | 575 | } |
@@ -647,6 +655,33 @@ int qcom_smem_get_free_space(unsigned host) | |||
647 | } | 655 | } |
648 | EXPORT_SYMBOL(qcom_smem_get_free_space); | 656 | EXPORT_SYMBOL(qcom_smem_get_free_space); |
649 | 657 | ||
658 | /** | ||
659 | * qcom_smem_virt_to_phys() - return the physical address associated | ||
660 | * with an smem item pointer (previously returned by qcom_smem_get() | ||
661 | * @p: the virtual address to convert | ||
662 | * | ||
663 | * Returns 0 if the pointer provided is not within any smem region. | ||
664 | */ | ||
665 | phys_addr_t qcom_smem_virt_to_phys(void *p) | ||
666 | { | ||
667 | unsigned i; | ||
668 | |||
669 | for (i = 0; i < __smem->num_regions; i++) { | ||
670 | struct smem_region *region = &__smem->regions[i]; | ||
671 | |||
672 | if (p < region->virt_base) | ||
673 | continue; | ||
674 | if (p < region->virt_base + region->size) { | ||
675 | u64 offset = p - region->virt_base; | ||
676 | |||
677 | return (phys_addr_t)region->aux_base + offset; | ||
678 | } | ||
679 | } | ||
680 | |||
681 | return 0; | ||
682 | } | ||
683 | EXPORT_SYMBOL(qcom_smem_virt_to_phys); | ||
684 | |||
650 | static int qcom_smem_get_sbl_version(struct qcom_smem *smem) | 685 | static int qcom_smem_get_sbl_version(struct qcom_smem *smem) |
651 | { | 686 | { |
652 | struct smem_header *header; | 687 | struct smem_header *header; |
@@ -695,9 +730,10 @@ static u32 qcom_smem_get_item_count(struct qcom_smem *smem) | |||
695 | static int qcom_smem_set_global_partition(struct qcom_smem *smem) | 730 | static int qcom_smem_set_global_partition(struct qcom_smem *smem) |
696 | { | 731 | { |
697 | struct smem_partition_header *header; | 732 | struct smem_partition_header *header; |
698 | struct smem_ptable_entry *entry = NULL; | 733 | struct smem_ptable_entry *entry; |
699 | struct smem_ptable *ptable; | 734 | struct smem_ptable *ptable; |
700 | u32 host0, host1, size; | 735 | u32 host0, host1, size; |
736 | bool found = false; | ||
701 | int i; | 737 | int i; |
702 | 738 | ||
703 | ptable = qcom_smem_get_ptable(smem); | 739 | ptable = qcom_smem_get_ptable(smem); |
@@ -709,11 +745,13 @@ static int qcom_smem_set_global_partition(struct qcom_smem *smem) | |||
709 | host0 = le16_to_cpu(entry->host0); | 745 | host0 = le16_to_cpu(entry->host0); |
710 | host1 = le16_to_cpu(entry->host1); | 746 | host1 = le16_to_cpu(entry->host1); |
711 | 747 | ||
712 | if (host0 == SMEM_GLOBAL_HOST && host0 == host1) | 748 | if (host0 == SMEM_GLOBAL_HOST && host0 == host1) { |
749 | found = true; | ||
713 | break; | 750 | break; |
751 | } | ||
714 | } | 752 | } |
715 | 753 | ||
716 | if (!entry) { | 754 | if (!found) { |
717 | dev_err(smem->dev, "Missing entry for global partition\n"); | 755 | dev_err(smem->dev, "Missing entry for global partition\n"); |
718 | return -EINVAL; | 756 | return -EINVAL; |
719 | } | 757 | } |
@@ -723,11 +761,6 @@ static int qcom_smem_set_global_partition(struct qcom_smem *smem) | |||
723 | return -EINVAL; | 761 | return -EINVAL; |
724 | } | 762 | } |
725 | 763 | ||
726 | if (smem->global_partition) { | ||
727 | dev_err(smem->dev, "Already found the global partition\n"); | ||
728 | return -EINVAL; | ||
729 | } | ||
730 | |||
731 | header = smem->regions[0].virt_base + le32_to_cpu(entry->offset); | 764 | header = smem->regions[0].virt_base + le32_to_cpu(entry->offset); |
732 | host0 = le16_to_cpu(header->host0); | 765 | host0 = le16_to_cpu(header->host0); |
733 | host1 = le16_to_cpu(header->host1); | 766 | host1 = le16_to_cpu(header->host1); |
diff --git a/include/linux/qcom-geni-se.h b/include/linux/qcom-geni-se.h new file mode 100644 index 000000000000..5d6144977828 --- /dev/null +++ b/include/linux/qcom-geni-se.h | |||
@@ -0,0 +1,425 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
2 | /* | ||
3 | * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. | ||
4 | */ | ||
5 | |||
6 | #ifndef _LINUX_QCOM_GENI_SE | ||
7 | #define _LINUX_QCOM_GENI_SE | ||
8 | |||
9 | /* Transfer mode supported by GENI Serial Engines */ | ||
10 | enum geni_se_xfer_mode { | ||
11 | GENI_SE_INVALID, | ||
12 | GENI_SE_FIFO, | ||
13 | GENI_SE_DMA, | ||
14 | }; | ||
15 | |||
16 | /* Protocols supported by GENI Serial Engines */ | ||
17 | enum geni_se_protocol_type { | ||
18 | GENI_SE_NONE, | ||
19 | GENI_SE_SPI, | ||
20 | GENI_SE_UART, | ||
21 | GENI_SE_I2C, | ||
22 | GENI_SE_I3C, | ||
23 | }; | ||
24 | |||
25 | struct geni_wrapper; | ||
26 | struct clk; | ||
27 | |||
28 | /** | ||
29 | * struct geni_se - GENI Serial Engine | ||
30 | * @base: Base Address of the Serial Engine's register block | ||
31 | * @dev: Pointer to the Serial Engine device | ||
32 | * @wrapper: Pointer to the parent QUP Wrapper core | ||
33 | * @clk: Handle to the core serial engine clock | ||
34 | * @num_clk_levels: Number of valid clock levels in clk_perf_tbl | ||
35 | * @clk_perf_tbl: Table of clock frequency input to serial engine clock | ||
36 | */ | ||
37 | struct geni_se { | ||
38 | void __iomem *base; | ||
39 | struct device *dev; | ||
40 | struct geni_wrapper *wrapper; | ||
41 | struct clk *clk; | ||
42 | unsigned int num_clk_levels; | ||
43 | unsigned long *clk_perf_tbl; | ||
44 | }; | ||
45 | |||
46 | /* Common SE registers */ | ||
47 | #define GENI_FORCE_DEFAULT_REG 0x20 | ||
48 | #define SE_GENI_STATUS 0x40 | ||
49 | #define GENI_SER_M_CLK_CFG 0x48 | ||
50 | #define GENI_SER_S_CLK_CFG 0x4c | ||
51 | #define GENI_FW_REVISION_RO 0x68 | ||
52 | #define SE_GENI_CLK_SEL 0x7c | ||
53 | #define SE_GENI_DMA_MODE_EN 0x258 | ||
54 | #define SE_GENI_M_CMD0 0x600 | ||
55 | #define SE_GENI_M_CMD_CTRL_REG 0x604 | ||
56 | #define SE_GENI_M_IRQ_STATUS 0x610 | ||
57 | #define SE_GENI_M_IRQ_EN 0x614 | ||
58 | #define SE_GENI_M_IRQ_CLEAR 0x618 | ||
59 | #define SE_GENI_S_CMD0 0x630 | ||
60 | #define SE_GENI_S_CMD_CTRL_REG 0x634 | ||
61 | #define SE_GENI_S_IRQ_STATUS 0x640 | ||
62 | #define SE_GENI_S_IRQ_EN 0x644 | ||
63 | #define SE_GENI_S_IRQ_CLEAR 0x648 | ||
64 | #define SE_GENI_TX_FIFOn 0x700 | ||
65 | #define SE_GENI_RX_FIFOn 0x780 | ||
66 | #define SE_GENI_TX_FIFO_STATUS 0x800 | ||
67 | #define SE_GENI_RX_FIFO_STATUS 0x804 | ||
68 | #define SE_GENI_TX_WATERMARK_REG 0x80c | ||
69 | #define SE_GENI_RX_WATERMARK_REG 0x810 | ||
70 | #define SE_GENI_RX_RFR_WATERMARK_REG 0x814 | ||
71 | #define SE_GENI_IOS 0x908 | ||
72 | #define SE_DMA_TX_IRQ_STAT 0xc40 | ||
73 | #define SE_DMA_TX_IRQ_CLR 0xc44 | ||
74 | #define SE_DMA_TX_FSM_RST 0xc58 | ||
75 | #define SE_DMA_RX_IRQ_STAT 0xd40 | ||
76 | #define SE_DMA_RX_IRQ_CLR 0xd44 | ||
77 | #define SE_DMA_RX_FSM_RST 0xd58 | ||
78 | #define SE_HW_PARAM_0 0xe24 | ||
79 | #define SE_HW_PARAM_1 0xe28 | ||
80 | |||
81 | /* GENI_FORCE_DEFAULT_REG fields */ | ||
82 | #define FORCE_DEFAULT BIT(0) | ||
83 | |||
84 | /* GENI_STATUS fields */ | ||
85 | #define M_GENI_CMD_ACTIVE BIT(0) | ||
86 | #define S_GENI_CMD_ACTIVE BIT(12) | ||
87 | |||
88 | /* GENI_SER_M_CLK_CFG/GENI_SER_S_CLK_CFG */ | ||
89 | #define SER_CLK_EN BIT(0) | ||
90 | #define CLK_DIV_MSK GENMASK(15, 4) | ||
91 | #define CLK_DIV_SHFT 4 | ||
92 | |||
93 | /* GENI_FW_REVISION_RO fields */ | ||
94 | #define FW_REV_PROTOCOL_MSK GENMASK(15, 8) | ||
95 | #define FW_REV_PROTOCOL_SHFT 8 | ||
96 | |||
97 | /* GENI_CLK_SEL fields */ | ||
98 | #define CLK_SEL_MSK GENMASK(2, 0) | ||
99 | |||
100 | /* SE_GENI_DMA_MODE_EN */ | ||
101 | #define GENI_DMA_MODE_EN BIT(0) | ||
102 | |||
103 | /* GENI_M_CMD0 fields */ | ||
104 | #define M_OPCODE_MSK GENMASK(31, 27) | ||
105 | #define M_OPCODE_SHFT 27 | ||
106 | #define M_PARAMS_MSK GENMASK(26, 0) | ||
107 | |||
108 | /* GENI_M_CMD_CTRL_REG */ | ||
109 | #define M_GENI_CMD_CANCEL BIT(2) | ||
110 | #define M_GENI_CMD_ABORT BIT(1) | ||
111 | #define M_GENI_DISABLE BIT(0) | ||
112 | |||
113 | /* GENI_S_CMD0 fields */ | ||
114 | #define S_OPCODE_MSK GENMASK(31, 27) | ||
115 | #define S_OPCODE_SHFT 27 | ||
116 | #define S_PARAMS_MSK GENMASK(26, 0) | ||
117 | |||
118 | /* GENI_S_CMD_CTRL_REG */ | ||
119 | #define S_GENI_CMD_CANCEL BIT(2) | ||
120 | #define S_GENI_CMD_ABORT BIT(1) | ||
121 | #define S_GENI_DISABLE BIT(0) | ||
122 | |||
123 | /* GENI_M_IRQ_EN fields */ | ||
124 | #define M_CMD_DONE_EN BIT(0) | ||
125 | #define M_CMD_OVERRUN_EN BIT(1) | ||
126 | #define M_ILLEGAL_CMD_EN BIT(2) | ||
127 | #define M_CMD_FAILURE_EN BIT(3) | ||
128 | #define M_CMD_CANCEL_EN BIT(4) | ||
129 | #define M_CMD_ABORT_EN BIT(5) | ||
130 | #define M_TIMESTAMP_EN BIT(6) | ||
131 | #define M_RX_IRQ_EN BIT(7) | ||
132 | #define M_GP_SYNC_IRQ_0_EN BIT(8) | ||
133 | #define M_GP_IRQ_0_EN BIT(9) | ||
134 | #define M_GP_IRQ_1_EN BIT(10) | ||
135 | #define M_GP_IRQ_2_EN BIT(11) | ||
136 | #define M_GP_IRQ_3_EN BIT(12) | ||
137 | #define M_GP_IRQ_4_EN BIT(13) | ||
138 | #define M_GP_IRQ_5_EN BIT(14) | ||
139 | #define M_IO_DATA_DEASSERT_EN BIT(22) | ||
140 | #define M_IO_DATA_ASSERT_EN BIT(23) | ||
141 | #define M_RX_FIFO_RD_ERR_EN BIT(24) | ||
142 | #define M_RX_FIFO_WR_ERR_EN BIT(25) | ||
143 | #define M_RX_FIFO_WATERMARK_EN BIT(26) | ||
144 | #define M_RX_FIFO_LAST_EN BIT(27) | ||
145 | #define M_TX_FIFO_RD_ERR_EN BIT(28) | ||
146 | #define M_TX_FIFO_WR_ERR_EN BIT(29) | ||
147 | #define M_TX_FIFO_WATERMARK_EN BIT(30) | ||
148 | #define M_SEC_IRQ_EN BIT(31) | ||
149 | #define M_COMMON_GENI_M_IRQ_EN (GENMASK(6, 1) | \ | ||
150 | M_IO_DATA_DEASSERT_EN | \ | ||
151 | M_IO_DATA_ASSERT_EN | M_RX_FIFO_RD_ERR_EN | \ | ||
152 | M_RX_FIFO_WR_ERR_EN | M_TX_FIFO_RD_ERR_EN | \ | ||
153 | M_TX_FIFO_WR_ERR_EN) | ||
154 | |||
155 | /* GENI_S_IRQ_EN fields */ | ||
156 | #define S_CMD_DONE_EN BIT(0) | ||
157 | #define S_CMD_OVERRUN_EN BIT(1) | ||
158 | #define S_ILLEGAL_CMD_EN BIT(2) | ||
159 | #define S_CMD_FAILURE_EN BIT(3) | ||
160 | #define S_CMD_CANCEL_EN BIT(4) | ||
161 | #define S_CMD_ABORT_EN BIT(5) | ||
162 | #define S_GP_SYNC_IRQ_0_EN BIT(8) | ||
163 | #define S_GP_IRQ_0_EN BIT(9) | ||
164 | #define S_GP_IRQ_1_EN BIT(10) | ||
165 | #define S_GP_IRQ_2_EN BIT(11) | ||
166 | #define S_GP_IRQ_3_EN BIT(12) | ||
167 | #define S_GP_IRQ_4_EN BIT(13) | ||
168 | #define S_GP_IRQ_5_EN BIT(14) | ||
169 | #define S_IO_DATA_DEASSERT_EN BIT(22) | ||
170 | #define S_IO_DATA_ASSERT_EN BIT(23) | ||
171 | #define S_RX_FIFO_RD_ERR_EN BIT(24) | ||
172 | #define S_RX_FIFO_WR_ERR_EN BIT(25) | ||
173 | #define S_RX_FIFO_WATERMARK_EN BIT(26) | ||
174 | #define S_RX_FIFO_LAST_EN BIT(27) | ||
175 | #define S_COMMON_GENI_S_IRQ_EN (GENMASK(5, 1) | GENMASK(13, 9) | \ | ||
176 | S_RX_FIFO_RD_ERR_EN | S_RX_FIFO_WR_ERR_EN) | ||
177 | |||
178 | /* GENI_/TX/RX/RX_RFR/_WATERMARK_REG fields */ | ||
179 | #define WATERMARK_MSK GENMASK(5, 0) | ||
180 | |||
181 | /* GENI_TX_FIFO_STATUS fields */ | ||
182 | #define TX_FIFO_WC GENMASK(27, 0) | ||
183 | |||
184 | /* GENI_RX_FIFO_STATUS fields */ | ||
185 | #define RX_LAST BIT(31) | ||
186 | #define RX_LAST_BYTE_VALID_MSK GENMASK(30, 28) | ||
187 | #define RX_LAST_BYTE_VALID_SHFT 28 | ||
188 | #define RX_FIFO_WC_MSK GENMASK(24, 0) | ||
189 | |||
190 | /* SE_GENI_IOS fields */ | ||
191 | #define IO2_DATA_IN BIT(1) | ||
192 | #define RX_DATA_IN BIT(0) | ||
193 | |||
194 | /* SE_DMA_TX_IRQ_STAT Register fields */ | ||
195 | #define TX_DMA_DONE BIT(0) | ||
196 | #define TX_EOT BIT(1) | ||
197 | #define TX_SBE BIT(2) | ||
198 | #define TX_RESET_DONE BIT(3) | ||
199 | |||
200 | /* SE_DMA_RX_IRQ_STAT Register fields */ | ||
201 | #define RX_DMA_DONE BIT(0) | ||
202 | #define RX_EOT BIT(1) | ||
203 | #define RX_SBE BIT(2) | ||
204 | #define RX_RESET_DONE BIT(3) | ||
205 | #define RX_FLUSH_DONE BIT(4) | ||
206 | #define RX_GENI_GP_IRQ GENMASK(10, 5) | ||
207 | #define RX_GENI_CANCEL_IRQ BIT(11) | ||
208 | #define RX_GENI_GP_IRQ_EXT GENMASK(13, 12) | ||
209 | |||
210 | /* SE_HW_PARAM_0 fields */ | ||
211 | #define TX_FIFO_WIDTH_MSK GENMASK(29, 24) | ||
212 | #define TX_FIFO_WIDTH_SHFT 24 | ||
213 | #define TX_FIFO_DEPTH_MSK GENMASK(21, 16) | ||
214 | #define TX_FIFO_DEPTH_SHFT 16 | ||
215 | |||
216 | /* SE_HW_PARAM_1 fields */ | ||
217 | #define RX_FIFO_WIDTH_MSK GENMASK(29, 24) | ||
218 | #define RX_FIFO_WIDTH_SHFT 24 | ||
219 | #define RX_FIFO_DEPTH_MSK GENMASK(21, 16) | ||
220 | #define RX_FIFO_DEPTH_SHFT 16 | ||
221 | |||
222 | #define HW_VER_MAJOR_MASK GENMASK(31, 28) | ||
223 | #define HW_VER_MAJOR_SHFT 28 | ||
224 | #define HW_VER_MINOR_MASK GENMASK(27, 16) | ||
225 | #define HW_VER_MINOR_SHFT 16 | ||
226 | #define HW_VER_STEP_MASK GENMASK(15, 0) | ||
227 | |||
228 | #if IS_ENABLED(CONFIG_QCOM_GENI_SE) | ||
229 | |||
230 | u32 geni_se_get_qup_hw_version(struct geni_se *se); | ||
231 | |||
232 | #define geni_se_get_wrapper_version(se, major, minor, step) do { \ | ||
233 | u32 ver; \ | ||
234 | \ | ||
235 | ver = geni_se_get_qup_hw_version(se); \ | ||
236 | major = (ver & HW_VER_MAJOR_MASK) >> HW_VER_MAJOR_SHFT; \ | ||
237 | minor = (ver & HW_VER_MINOR_MASK) >> HW_VER_MINOR_SHFT; \ | ||
238 | step = version & HW_VER_STEP_MASK; \ | ||
239 | } while (0) | ||
240 | |||
241 | /** | ||
242 | * geni_se_read_proto() - Read the protocol configured for a serial engine | ||
243 | * @se: Pointer to the concerned serial engine. | ||
244 | * | ||
245 | * Return: Protocol value as configured in the serial engine. | ||
246 | */ | ||
247 | static inline u32 geni_se_read_proto(struct geni_se *se) | ||
248 | { | ||
249 | u32 val; | ||
250 | |||
251 | val = readl_relaxed(se->base + GENI_FW_REVISION_RO); | ||
252 | |||
253 | return (val & FW_REV_PROTOCOL_MSK) >> FW_REV_PROTOCOL_SHFT; | ||
254 | } | ||
255 | |||
256 | /** | ||
257 | * geni_se_setup_m_cmd() - Setup the primary sequencer | ||
258 | * @se: Pointer to the concerned serial engine. | ||
259 | * @cmd: Command/Operation to setup in the primary sequencer. | ||
260 | * @params: Parameter for the sequencer command. | ||
261 | * | ||
262 | * This function is used to configure the primary sequencer with the | ||
263 | * command and its associated parameters. | ||
264 | */ | ||
265 | static inline void geni_se_setup_m_cmd(struct geni_se *se, u32 cmd, u32 params) | ||
266 | { | ||
267 | u32 m_cmd; | ||
268 | |||
269 | m_cmd = (cmd << M_OPCODE_SHFT) | (params & M_PARAMS_MSK); | ||
270 | writel_relaxed(m_cmd, se->base + SE_GENI_M_CMD0); | ||
271 | } | ||
272 | |||
273 | /** | ||
274 | * geni_se_setup_s_cmd() - Setup the secondary sequencer | ||
275 | * @se: Pointer to the concerned serial engine. | ||
276 | * @cmd: Command/Operation to setup in the secondary sequencer. | ||
277 | * @params: Parameter for the sequencer command. | ||
278 | * | ||
279 | * This function is used to configure the secondary sequencer with the | ||
280 | * command and its associated parameters. | ||
281 | */ | ||
282 | static inline void geni_se_setup_s_cmd(struct geni_se *se, u32 cmd, u32 params) | ||
283 | { | ||
284 | u32 s_cmd; | ||
285 | |||
286 | s_cmd = readl_relaxed(se->base + SE_GENI_S_CMD0); | ||
287 | s_cmd &= ~(S_OPCODE_MSK | S_PARAMS_MSK); | ||
288 | s_cmd |= (cmd << S_OPCODE_SHFT); | ||
289 | s_cmd |= (params & S_PARAMS_MSK); | ||
290 | writel_relaxed(s_cmd, se->base + SE_GENI_S_CMD0); | ||
291 | } | ||
292 | |||
293 | /** | ||
294 | * geni_se_cancel_m_cmd() - Cancel the command configured in the primary | ||
295 | * sequencer | ||
296 | * @se: Pointer to the concerned serial engine. | ||
297 | * | ||
298 | * This function is used to cancel the currently configured command in the | ||
299 | * primary sequencer. | ||
300 | */ | ||
301 | static inline void geni_se_cancel_m_cmd(struct geni_se *se) | ||
302 | { | ||
303 | writel_relaxed(M_GENI_CMD_CANCEL, se->base + SE_GENI_M_CMD_CTRL_REG); | ||
304 | } | ||
305 | |||
306 | /** | ||
307 | * geni_se_cancel_s_cmd() - Cancel the command configured in the secondary | ||
308 | * sequencer | ||
309 | * @se: Pointer to the concerned serial engine. | ||
310 | * | ||
311 | * This function is used to cancel the currently configured command in the | ||
312 | * secondary sequencer. | ||
313 | */ | ||
314 | static inline void geni_se_cancel_s_cmd(struct geni_se *se) | ||
315 | { | ||
316 | writel_relaxed(S_GENI_CMD_CANCEL, se->base + SE_GENI_S_CMD_CTRL_REG); | ||
317 | } | ||
318 | |||
319 | /** | ||
320 | * geni_se_abort_m_cmd() - Abort the command configured in the primary sequencer | ||
321 | * @se: Pointer to the concerned serial engine. | ||
322 | * | ||
323 | * This function is used to force abort the currently configured command in the | ||
324 | * primary sequencer. | ||
325 | */ | ||
326 | static inline void geni_se_abort_m_cmd(struct geni_se *se) | ||
327 | { | ||
328 | writel_relaxed(M_GENI_CMD_ABORT, se->base + SE_GENI_M_CMD_CTRL_REG); | ||
329 | } | ||
330 | |||
331 | /** | ||
332 | * geni_se_abort_s_cmd() - Abort the command configured in the secondary | ||
333 | * sequencer | ||
334 | * @se: Pointer to the concerned serial engine. | ||
335 | * | ||
336 | * This function is used to force abort the currently configured command in the | ||
337 | * secondary sequencer. | ||
338 | */ | ||
339 | static inline void geni_se_abort_s_cmd(struct geni_se *se) | ||
340 | { | ||
341 | writel_relaxed(S_GENI_CMD_ABORT, se->base + SE_GENI_S_CMD_CTRL_REG); | ||
342 | } | ||
343 | |||
344 | /** | ||
345 | * geni_se_get_tx_fifo_depth() - Get the TX fifo depth of the serial engine | ||
346 | * @se: Pointer to the concerned serial engine. | ||
347 | * | ||
348 | * This function is used to get the depth i.e. number of elements in the | ||
349 | * TX fifo of the serial engine. | ||
350 | * | ||
351 | * Return: TX fifo depth in units of FIFO words. | ||
352 | */ | ||
353 | static inline u32 geni_se_get_tx_fifo_depth(struct geni_se *se) | ||
354 | { | ||
355 | u32 val; | ||
356 | |||
357 | val = readl_relaxed(se->base + SE_HW_PARAM_0); | ||
358 | |||
359 | return (val & TX_FIFO_DEPTH_MSK) >> TX_FIFO_DEPTH_SHFT; | ||
360 | } | ||
361 | |||
362 | /** | ||
363 | * geni_se_get_tx_fifo_width() - Get the TX fifo width of the serial engine | ||
364 | * @se: Pointer to the concerned serial engine. | ||
365 | * | ||
366 | * This function is used to get the width i.e. word size per element in the | ||
367 | * TX fifo of the serial engine. | ||
368 | * | ||
369 | * Return: TX fifo width in bits | ||
370 | */ | ||
371 | static inline u32 geni_se_get_tx_fifo_width(struct geni_se *se) | ||
372 | { | ||
373 | u32 val; | ||
374 | |||
375 | val = readl_relaxed(se->base + SE_HW_PARAM_0); | ||
376 | |||
377 | return (val & TX_FIFO_WIDTH_MSK) >> TX_FIFO_WIDTH_SHFT; | ||
378 | } | ||
379 | |||
380 | /** | ||
381 | * geni_se_get_rx_fifo_depth() - Get the RX fifo depth of the serial engine | ||
382 | * @se: Pointer to the concerned serial engine. | ||
383 | * | ||
384 | * This function is used to get the depth i.e. number of elements in the | ||
385 | * RX fifo of the serial engine. | ||
386 | * | ||
387 | * Return: RX fifo depth in units of FIFO words | ||
388 | */ | ||
389 | static inline u32 geni_se_get_rx_fifo_depth(struct geni_se *se) | ||
390 | { | ||
391 | u32 val; | ||
392 | |||
393 | val = readl_relaxed(se->base + SE_HW_PARAM_1); | ||
394 | |||
395 | return (val & RX_FIFO_DEPTH_MSK) >> RX_FIFO_DEPTH_SHFT; | ||
396 | } | ||
397 | |||
398 | void geni_se_init(struct geni_se *se, u32 rx_wm, u32 rx_rfr); | ||
399 | |||
400 | void geni_se_select_mode(struct geni_se *se, enum geni_se_xfer_mode mode); | ||
401 | |||
402 | void geni_se_config_packing(struct geni_se *se, int bpw, int pack_words, | ||
403 | bool msb_to_lsb, bool tx_cfg, bool rx_cfg); | ||
404 | |||
405 | int geni_se_resources_off(struct geni_se *se); | ||
406 | |||
407 | int geni_se_resources_on(struct geni_se *se); | ||
408 | |||
409 | int geni_se_clk_tbl_get(struct geni_se *se, unsigned long **tbl); | ||
410 | |||
411 | int geni_se_clk_freq_match(struct geni_se *se, unsigned long req_freq, | ||
412 | unsigned int *index, unsigned long *res_freq, | ||
413 | bool exact); | ||
414 | |||
415 | int geni_se_tx_dma_prep(struct geni_se *se, void *buf, size_t len, | ||
416 | dma_addr_t *iova); | ||
417 | |||
418 | int geni_se_rx_dma_prep(struct geni_se *se, void *buf, size_t len, | ||
419 | dma_addr_t *iova); | ||
420 | |||
421 | void geni_se_tx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len); | ||
422 | |||
423 | void geni_se_rx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len); | ||
424 | #endif | ||
425 | #endif | ||
diff --git a/include/linux/soc/qcom/smem.h b/include/linux/soc/qcom/smem.h index c1657ed27b30..86e1b358688a 100644 --- a/include/linux/soc/qcom/smem.h +++ b/include/linux/soc/qcom/smem.h | |||
@@ -9,4 +9,6 @@ void *qcom_smem_get(unsigned host, unsigned item, size_t *size); | |||
9 | 9 | ||
10 | int qcom_smem_get_free_space(unsigned host); | 10 | int qcom_smem_get_free_space(unsigned host); |
11 | 11 | ||
12 | phys_addr_t qcom_smem_virt_to_phys(void *p); | ||
13 | |||
12 | #endif | 14 | #endif |
diff --git a/include/soc/qcom/cmd-db.h b/include/soc/qcom/cmd-db.h new file mode 100644 index 000000000000..578180cbc134 --- /dev/null +++ b/include/soc/qcom/cmd-db.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. */ | ||
3 | |||
4 | #ifndef __QCOM_COMMAND_DB_H__ | ||
5 | #define __QCOM_COMMAND_DB_H__ | ||
6 | |||
7 | |||
8 | enum cmd_db_hw_type { | ||
9 | CMD_DB_HW_INVALID = 0, | ||
10 | CMD_DB_HW_MIN = 3, | ||
11 | CMD_DB_HW_ARC = CMD_DB_HW_MIN, | ||
12 | CMD_DB_HW_VRM = 4, | ||
13 | CMD_DB_HW_BCM = 5, | ||
14 | CMD_DB_HW_MAX = CMD_DB_HW_BCM, | ||
15 | CMD_DB_HW_ALL = 0xff, | ||
16 | }; | ||
17 | |||
18 | #if IS_ENABLED(CONFIG_QCOM_COMMAND_DB) | ||
19 | u32 cmd_db_read_addr(const char *resource_id); | ||
20 | |||
21 | int cmd_db_read_aux_data(const char *resource_id, u8 *data, size_t len); | ||
22 | |||
23 | size_t cmd_db_read_aux_data_len(const char *resource_id); | ||
24 | |||
25 | enum cmd_db_hw_type cmd_db_read_slave_id(const char *resource_id); | ||
26 | |||
27 | int cmd_db_ready(void); | ||
28 | #else | ||
29 | static inline u32 cmd_db_read_addr(const char *resource_id) | ||
30 | { return 0; } | ||
31 | |||
32 | static inline int cmd_db_read_aux_data(const char *resource_id, u8 *data, | ||
33 | size_t len) | ||
34 | { return -ENODEV; } | ||
35 | |||
36 | static inline size_t cmd_db_read_aux_data_len(const char *resource_id) | ||
37 | { return -ENODEV; } | ||
38 | |||
39 | static inline enum cmd_db_hw_type cmd_db_read_slave_id(const char *resource_id) | ||
40 | { return -ENODEV; } | ||
41 | |||
42 | static inline int cmd_db_ready(void) | ||
43 | { return -ENODEV; } | ||
44 | #endif /* CONFIG_QCOM_COMMAND_DB */ | ||
45 | #endif /* __QCOM_COMMAND_DB_H__ */ | ||