Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC late updates from Olof Johansson:
"This is a branch with a few merge requests that either came in late,
or took a while longer for us to review and merge than usual and thus
cut it a bit close to the merge window. We stage them in a separate
branch and if things look good, we still send them up -- and that's
the case here.

This is mostly DT additions for Renesas platforms, adding IP block
descriptions for existing and new SoCs.

There are also some driver updates for Qualcomm platforms for SMEM/QMI
and GENI, which is their generalized serial protocol interface"

* tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (186 commits)
soc: qcom: smem: introduce qcom_smem_virt_to_phys()
soc: qcom: qmi: fix a buffer sizing bug
MAINTAINERS: Update pattern for qcom_scm
soc: Unconditionally include qcom Makefile
soc: qcom: smem: check sooner in qcom_smem_set_global_partition()
soc: qcom: smem: fix qcom_smem_set_global_partition()
soc: qcom: smem: fix off-by-one error in qcom_smem_alloc_private()
soc: qcom: smem: byte swap values properly
soc: qcom: smem: return proper type for cached entry functions
soc: qcom: smem: fix first cache entry calculation
soc: qcom: cmd-db: Make endian-agnostic
drivers: qcom: add command DB driver
arm64: dts: renesas: salvator-common: Add ADV7482 support
ARM: dts: r8a7740: Add CEU1
ARM: dts: r8a7740: Add CEU0
arm64: dts: renesas: salvator-common: enable VIN
arm64: dts: renesas: r8a77970: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a77965: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a7796: add VIN and CSI-2 nodes
arm64: dts: renesas: r8a7795-es1: add CSI-2 node
...

+9376 -3842
+2 -1
Documentation/devicetree/bindings/firmware/qcom,scm.txt
··· 11 11 * "qcom,scm-msm8660" for MSM8660 platforms 12 12 * "qcom,scm-msm8690" for MSM8690 platforms 13 13 * "qcom,scm-msm8996" for MSM8996 platforms 14 + * "qcom,scm-ipq4019" for IPQ4019 platforms 14 15 * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc) 15 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 18 * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960" 18 19 * Core, iface, and bus clocks required for "qcom,scm" 19 20 - clock-names: Must contain "core" for the core clock, "iface" for the interface
+1
Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
··· 22 22 "qcom,rpm-apq8084" 23 23 "qcom,rpm-msm8916" 24 24 "qcom,rpm-msm8974" 25 + "qcom,rpm-msm8998" 25 26 26 27 - qcom,smd-channels: 27 28 Usage: required
+1 -1
MAINTAINERS
··· 1830 1830 F: drivers/tty/serial/msm_serial.c 1831 1831 F: drivers/*/pm8???-* 1832 1832 F: drivers/mfd/ssbi.c 1833 - F: drivers/firmware/qcom_scm.c 1833 + F: drivers/firmware/qcom_scm* 1834 1834 T: git git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git 1835 1835 1836 1836 ARM/RADISYS ENP2611 MACHINE SUPPORT
+1
arch/arm/boot/dts/Makefile
··· 807 807 r8a7745-iwg22d-sodimm.dtb \ 808 808 r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ 809 809 r8a7745-sk-rzg1e.dtb \ 810 + r8a77470-iwg23s-sbc.dtb \ 810 811 r8a7778-bockw.dtb \ 811 812 r8a7779-marzen.dtb \ 812 813 r8a7790-lager.dtb \
-3
arch/arm/boot/dts/emev2-kzm9d.dts
··· 34 34 35 35 gpio_keys { 36 36 compatible = "gpio-keys"; 37 - #address-cells = <1>; 38 - #size-cells = <0>; 39 - 40 37 one { 41 38 debounce-interval = <50>; 42 39 wakeup-source;
+3 -2
arch/arm/boot/dts/emev2.dtsi
··· 31 31 #address-cells = <1>; 32 32 #size-cells = <0>; 33 33 34 - cpu@0 { 34 + cpu0: cpu@0 { 35 35 device_type = "cpu"; 36 36 compatible = "arm,cortex-a9"; 37 37 reg = <0>; 38 38 clock-frequency = <533000000>; 39 39 }; 40 - cpu@1 { 40 + cpu1: cpu@1 { 41 41 device_type = "cpu"; 42 42 compatible = "arm,cortex-a9"; 43 43 reg = <1>; ··· 57 57 compatible = "arm,cortex-a9-pmu"; 58 58 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 59 59 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 60 + interrupt-affinity = <&cpu0>, <&cpu1>; 60 61 }; 61 62 62 63 clocks@e0110000 {
+555 -517
arch/arm/boot/dts/r7s72100.dtsi
··· 15 15 16 16 / { 17 17 compatible = "renesas,r7s72100"; 18 - interrupt-parent = <&gic>; 19 18 #address-cells = <1>; 20 19 #size-cells = <1>; 21 20 ··· 30 31 spi4 = &spi4; 31 32 }; 32 33 33 - clocks { 34 - ranges; 34 + /* Fixed factor clocks */ 35 + b_clk: b { 36 + #clock-cells = <0>; 37 + compatible = "fixed-factor-clock"; 38 + clocks = <&cpg_clocks R7S72100_CLK_PLL>; 39 + clock-mult = <1>; 40 + clock-div = <3>; 41 + }; 42 + 43 + cpus { 44 + #address-cells = <1>; 45 + #size-cells = <0>; 46 + 47 + cpu@0 { 48 + device_type = "cpu"; 49 + compatible = "arm,cortex-a9"; 50 + reg = <0>; 51 + clock-frequency = <400000000>; 52 + clocks = <&cpg_clocks R7S72100_CLK_I>; 53 + next-level-cache = <&L2>; 54 + }; 55 + }; 56 + 57 + /* External clocks */ 58 + extal_clk: extal { 59 + #clock-cells = <0>; 60 + compatible = "fixed-clock"; 61 + /* If clk present, value must be set by board */ 62 + clock-frequency = <0>; 63 + }; 64 + 65 + p0_clk: p0 { 66 + #clock-cells = <0>; 67 + compatible = "fixed-factor-clock"; 68 + clocks = <&cpg_clocks R7S72100_CLK_PLL>; 69 + clock-mult = <1>; 70 + clock-div = <12>; 71 + }; 72 + 73 + p1_clk: p1 { 74 + #clock-cells = <0>; 75 + compatible = "fixed-factor-clock"; 76 + clocks = <&cpg_clocks R7S72100_CLK_PLL>; 77 + clock-mult = <1>; 78 + clock-div = <6>; 79 + }; 80 + 81 + pmu { 82 + compatible = "arm,cortex-a9-pmu"; 83 + interrupts-extended = <&gic GIC_PPI 0 IRQ_TYPE_LEVEL_HIGH>; 84 + }; 85 + 86 + rtc_x1_clk: rtc_x1 { 87 + #clock-cells = <0>; 88 + compatible = "fixed-clock"; 89 + /* If clk present, value must be set by board to 32678 */ 90 + clock-frequency = <0>; 91 + }; 92 + 93 + rtc_x3_clk: rtc_x3 { 94 + #clock-cells = <0>; 95 + compatible = "fixed-clock"; 96 + /* If clk present, value must be set by board to 4000000 */ 97 + clock-frequency = <0>; 98 + }; 99 + 100 + soc { 101 + compatible = "simple-bus"; 102 + interrupt-parent = <&gic>; 103 + 35 104 #address-cells = <1>; 36 105 #size-cells = <1>; 106 + ranges; 37 107 38 - /* External clocks */ 39 - extal_clk: extal { 40 - #clock-cells = <0>; 41 - compatible = "fixed-clock"; 42 - /* If clk present, value must be set by board */ 43 - clock-frequency = <0>; 44 - }; 45 - 46 - usb_x1_clk: usb_x1 { 47 - #clock-cells = <0>; 48 - compatible = "fixed-clock"; 49 - /* If clk present, value must be set by board */ 50 - clock-frequency = <0>; 108 + L2: cache-controller@3ffff000 { 109 + compatible = "arm,pl310-cache"; 110 + reg = <0x3ffff000 0x1000>; 111 + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 112 + arm,early-bresp-disable; 113 + arm,full-line-zero-disable; 114 + cache-unified; 115 + cache-level = <2>; 51 116 }; 52 117 53 - rtc_x1_clk: rtc_x1 { 54 - #clock-cells = <0>; 55 - compatible = "fixed-clock"; 56 - /* If clk present, value must be set by board to 32678 */ 57 - clock-frequency = <0>; 118 + scif0: serial@e8007000 { 119 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 120 + reg = <0xe8007000 64>; 121 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, 122 + <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, 123 + <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, 124 + <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 125 + clocks = <&mstp4_clks R7S72100_CLK_SCIF0>; 126 + clock-names = "fck"; 127 + power-domains = <&cpg_clocks>; 128 + status = "disabled"; 58 129 }; 59 130 60 - rtc_x3_clk: rtc_x3 { 61 - #clock-cells = <0>; 62 - compatible = "fixed-clock"; 63 - /* If clk present, value must be set by board to 4000000 */ 64 - clock-frequency = <0>; 131 + scif1: serial@e8007800 { 132 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 133 + reg = <0xe8007800 64>; 134 + interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, 135 + <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, 136 + <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 137 + <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 138 + clocks = <&mstp4_clks R7S72100_CLK_SCIF1>; 139 + clock-names = "fck"; 140 + power-domains = <&cpg_clocks>; 141 + status = "disabled"; 65 142 }; 66 143 67 - /* Fixed factor clocks */ 68 - b_clk: b { 69 - #clock-cells = <0>; 70 - compatible = "fixed-factor-clock"; 71 - clocks = <&cpg_clocks R7S72100_CLK_PLL>; 72 - clock-mult = <1>; 73 - clock-div = <3>; 144 + scif2: serial@e8008000 { 145 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 146 + reg = <0xe8008000 64>; 147 + interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, 148 + <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, 149 + <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, 150 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 151 + clocks = <&mstp4_clks R7S72100_CLK_SCIF2>; 152 + clock-names = "fck"; 153 + power-domains = <&cpg_clocks>; 154 + status = "disabled"; 74 155 }; 75 - p1_clk: p1 { 76 - #clock-cells = <0>; 77 - compatible = "fixed-factor-clock"; 78 - clocks = <&cpg_clocks R7S72100_CLK_PLL>; 79 - clock-mult = <1>; 80 - clock-div = <6>; 156 + 157 + scif3: serial@e8008800 { 158 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 159 + reg = <0xe8008800 64>; 160 + interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, 161 + <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, 162 + <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, 163 + <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; 164 + clocks = <&mstp4_clks R7S72100_CLK_SCIF3>; 165 + clock-names = "fck"; 166 + power-domains = <&cpg_clocks>; 167 + status = "disabled"; 81 168 }; 82 - p0_clk: p0 { 83 - #clock-cells = <0>; 84 - compatible = "fixed-factor-clock"; 85 - clocks = <&cpg_clocks R7S72100_CLK_PLL>; 86 - clock-mult = <1>; 87 - clock-div = <12>; 169 + 170 + scif4: serial@e8009000 { 171 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 172 + reg = <0xe8009000 64>; 173 + interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, 174 + <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, 175 + <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, 176 + <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 177 + clocks = <&mstp4_clks R7S72100_CLK_SCIF4>; 178 + clock-names = "fck"; 179 + power-domains = <&cpg_clocks>; 180 + status = "disabled"; 181 + }; 182 + 183 + scif5: serial@e8009800 { 184 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 185 + reg = <0xe8009800 64>; 186 + interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, 187 + <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, 188 + <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, 189 + <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; 190 + clocks = <&mstp4_clks R7S72100_CLK_SCIF5>; 191 + clock-names = "fck"; 192 + power-domains = <&cpg_clocks>; 193 + status = "disabled"; 194 + }; 195 + 196 + scif6: serial@e800a000 { 197 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 198 + reg = <0xe800a000 64>; 199 + interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, 200 + <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, 201 + <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>, 202 + <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; 203 + clocks = <&mstp4_clks R7S72100_CLK_SCIF6>; 204 + clock-names = "fck"; 205 + power-domains = <&cpg_clocks>; 206 + status = "disabled"; 207 + }; 208 + 209 + scif7: serial@e800a800 { 210 + compatible = "renesas,scif-r7s72100", "renesas,scif"; 211 + reg = <0xe800a800 64>; 212 + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, 213 + <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, 214 + <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, 215 + <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; 216 + clocks = <&mstp4_clks R7S72100_CLK_SCIF7>; 217 + clock-names = "fck"; 218 + power-domains = <&cpg_clocks>; 219 + status = "disabled"; 220 + }; 221 + 222 + spi0: spi@e800c800 { 223 + compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 224 + reg = <0xe800c800 0x24>; 225 + interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, 226 + <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>, 227 + <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; 228 + interrupt-names = "error", "rx", "tx"; 229 + clocks = <&mstp10_clks R7S72100_CLK_SPI0>; 230 + power-domains = <&cpg_clocks>; 231 + num-cs = <1>; 232 + #address-cells = <1>; 233 + #size-cells = <0>; 234 + status = "disabled"; 235 + }; 236 + 237 + spi1: spi@e800d000 { 238 + compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 239 + reg = <0xe800d000 0x24>; 240 + interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>, 241 + <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, 242 + <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; 243 + interrupt-names = "error", "rx", "tx"; 244 + clocks = <&mstp10_clks R7S72100_CLK_SPI1>; 245 + power-domains = <&cpg_clocks>; 246 + num-cs = <1>; 247 + #address-cells = <1>; 248 + #size-cells = <0>; 249 + status = "disabled"; 250 + }; 251 + 252 + spi2: spi@e800d800 { 253 + compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 254 + reg = <0xe800d800 0x24>; 255 + interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, 256 + <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, 257 + <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 258 + interrupt-names = "error", "rx", "tx"; 259 + clocks = <&mstp10_clks R7S72100_CLK_SPI2>; 260 + power-domains = <&cpg_clocks>; 261 + num-cs = <1>; 262 + #address-cells = <1>; 263 + #size-cells = <0>; 264 + status = "disabled"; 265 + }; 266 + 267 + spi3: spi@e800e000 { 268 + compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 269 + reg = <0xe800e000 0x24>; 270 + interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, 271 + <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>, 272 + <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; 273 + interrupt-names = "error", "rx", "tx"; 274 + clocks = <&mstp10_clks R7S72100_CLK_SPI3>; 275 + power-domains = <&cpg_clocks>; 276 + num-cs = <1>; 277 + #address-cells = <1>; 278 + #size-cells = <0>; 279 + status = "disabled"; 280 + }; 281 + 282 + spi4: spi@e800e800 { 283 + compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 284 + reg = <0xe800e800 0x24>; 285 + interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>, 286 + <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, 287 + <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>; 288 + interrupt-names = "error", "rx", "tx"; 289 + clocks = <&mstp10_clks R7S72100_CLK_SPI4>; 290 + power-domains = <&cpg_clocks>; 291 + num-cs = <1>; 292 + #address-cells = <1>; 293 + #size-cells = <0>; 294 + status = "disabled"; 295 + }; 296 + 297 + usbhs0: usb@e8010000 { 298 + compatible = "renesas,usbhs-r7s72100", "renesas,rza1-usbhs"; 299 + reg = <0xe8010000 0x1a0>; 300 + interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 301 + clocks = <&mstp7_clks R7S72100_CLK_USB0>; 302 + renesas,buswait = <4>; 303 + power-domains = <&cpg_clocks>; 304 + status = "disabled"; 305 + }; 306 + 307 + usbhs1: usb@e8207000 { 308 + compatible = "renesas,usbhs-r7s72100", "renesas,rza1-usbhs"; 309 + reg = <0xe8207000 0x1a0>; 310 + interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 311 + clocks = <&mstp7_clks R7S72100_CLK_USB1>; 312 + renesas,buswait = <4>; 313 + power-domains = <&cpg_clocks>; 314 + status = "disabled"; 315 + }; 316 + 317 + mmcif: mmc@e804c800 { 318 + compatible = "renesas,mmcif-r7s72100", "renesas,sh-mmcif"; 319 + reg = <0xe804c800 0x80>; 320 + interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH 321 + GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 322 + GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 323 + clocks = <&mstp8_clks R7S72100_CLK_MMCIF>; 324 + power-domains = <&cpg_clocks>; 325 + reg-io-width = <4>; 326 + bus-width = <8>; 327 + status = "disabled"; 328 + }; 329 + 330 + sdhi0: sd@e804e000 { 331 + compatible = "renesas,sdhi-r7s72100"; 332 + reg = <0xe804e000 0x100>; 333 + interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 334 + GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 335 + GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 336 + 337 + clocks = <&mstp12_clks R7S72100_CLK_SDHI00>, 338 + <&mstp12_clks R7S72100_CLK_SDHI01>; 339 + clock-names = "core", "cd"; 340 + power-domains = <&cpg_clocks>; 341 + cap-sd-highspeed; 342 + cap-sdio-irq; 343 + status = "disabled"; 344 + }; 345 + 346 + sdhi1: sd@e804e800 { 347 + compatible = "renesas,sdhi-r7s72100"; 348 + reg = <0xe804e800 0x100>; 349 + interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 350 + GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 351 + GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>; 352 + 353 + clocks = <&mstp12_clks R7S72100_CLK_SDHI10>, 354 + <&mstp12_clks R7S72100_CLK_SDHI11>; 355 + clock-names = "core", "cd"; 356 + power-domains = <&cpg_clocks>; 357 + cap-sd-highspeed; 358 + cap-sdio-irq; 359 + status = "disabled"; 360 + }; 361 + 362 + gic: interrupt-controller@e8201000 { 363 + compatible = "arm,pl390"; 364 + #interrupt-cells = <3>; 365 + #address-cells = <0>; 366 + interrupt-controller; 367 + reg = <0xe8201000 0x1000>, 368 + <0xe8202000 0x1000>; 369 + }; 370 + 371 + ether: ethernet@e8203000 { 372 + compatible = "renesas,ether-r7s72100"; 373 + reg = <0xe8203000 0x800>, 374 + <0xe8204800 0x200>; 375 + interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 376 + clocks = <&mstp7_clks R7S72100_CLK_ETHER>; 377 + power-domains = <&cpg_clocks>; 378 + phy-mode = "mii"; 379 + #address-cells = <1>; 380 + #size-cells = <0>; 381 + status = "disabled"; 382 + }; 383 + 384 + ceu: camera@e8210000 { 385 + reg = <0xe8210000 0x3000>; 386 + compatible = "renesas,r7s72100-ceu"; 387 + interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; 388 + clocks = <&mstp6_clks R7S72100_CLK_CEU>; 389 + power-domains = <&cpg_clocks>; 390 + status = "disabled"; 391 + }; 392 + 393 + wdt: watchdog@fcfe0000 { 394 + compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt"; 395 + reg = <0xfcfe0000 0x6>; 396 + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 397 + clocks = <&p0_clk>; 88 398 }; 89 399 90 400 /* Special CPG clocks */ ··· 443 135 #clock-cells = <1>; 444 136 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; 445 137 reg = <0xfcfe042c 4>; 446 - clocks = <&p0_clk>; 447 - clock-indices = <R7S72100_CLK_RTC>; 448 - clock-output-names = "rtc"; 138 + clocks = <&b_clk>, <&p0_clk>; 139 + clock-indices = <R7S72100_CLK_CEU R7S72100_CLK_RTC>; 140 + clock-output-names = "ceu", "rtc"; 449 141 }; 450 142 451 143 mstp7_clks: mstp7_clks@fcfe0430 { ··· 500 192 >; 501 193 clock-output-names = "sdhi00", "sdhi01", "sdhi10", "sdhi11"; 502 194 }; 503 - }; 504 195 505 - cpus { 506 - #address-cells = <1>; 507 - #size-cells = <0>; 196 + pinctrl: pin-controller@fcfe3000 { 197 + compatible = "renesas,r7s72100-ports"; 508 198 509 - cpu@0 { 510 - device_type = "cpu"; 511 - compatible = "arm,cortex-a9"; 512 - reg = <0>; 513 - clock-frequency = <400000000>; 514 - clocks = <&cpg_clocks R7S72100_CLK_I>; 515 - next-level-cache = <&L2>; 199 + reg = <0xfcfe3000 0x4230>; 200 + 201 + port0: gpio-0 { 202 + gpio-controller; 203 + #gpio-cells = <2>; 204 + gpio-ranges = <&pinctrl 0 0 6>; 205 + }; 206 + 207 + port1: gpio-1 { 208 + gpio-controller; 209 + #gpio-cells = <2>; 210 + gpio-ranges = <&pinctrl 0 16 16>; 211 + }; 212 + 213 + port2: gpio-2 { 214 + gpio-controller; 215 + #gpio-cells = <2>; 216 + gpio-ranges = <&pinctrl 0 32 16>; 217 + }; 218 + 219 + port3: gpio-3 { 220 + gpio-controller; 221 + #gpio-cells = <2>; 222 + gpio-ranges = <&pinctrl 0 48 16>; 223 + }; 224 + 225 + port4: gpio-4 { 226 + gpio-controller; 227 + #gpio-cells = <2>; 228 + gpio-ranges = <&pinctrl 0 64 16>; 229 + }; 230 + 231 + port5: gpio-5 { 232 + gpio-controller; 233 + #gpio-cells = <2>; 234 + gpio-ranges = <&pinctrl 0 80 11>; 235 + }; 236 + 237 + port6: gpio-6 { 238 + gpio-controller; 239 + #gpio-cells = <2>; 240 + gpio-ranges = <&pinctrl 0 96 16>; 241 + }; 242 + 243 + port7: gpio-7 { 244 + gpio-controller; 245 + #gpio-cells = <2>; 246 + gpio-ranges = <&pinctrl 0 112 16>; 247 + }; 248 + 249 + port8: gpio-8 { 250 + gpio-controller; 251 + #gpio-cells = <2>; 252 + gpio-ranges = <&pinctrl 0 128 16>; 253 + }; 254 + 255 + port9: gpio-9 { 256 + gpio-controller; 257 + #gpio-cells = <2>; 258 + gpio-ranges = <&pinctrl 0 144 8>; 259 + }; 260 + 261 + port10: gpio-10 { 262 + gpio-controller; 263 + #gpio-cells = <2>; 264 + gpio-ranges = <&pinctrl 0 160 16>; 265 + }; 266 + 267 + port11: gpio-11 { 268 + gpio-controller; 269 + #gpio-cells = <2>; 270 + gpio-ranges = <&pinctrl 0 176 16>; 271 + }; 272 + }; 273 + 274 + ostm0: timer@fcfec000 { 275 + compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 276 + reg = <0xfcfec000 0x30>; 277 + interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; 278 + clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; 279 + power-domains = <&cpg_clocks>; 280 + status = "disabled"; 281 + }; 282 + 283 + ostm1: timer@fcfec400 { 284 + compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 285 + reg = <0xfcfec400 0x30>; 286 + interrupts = <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>; 287 + clocks = <&mstp5_clks R7S72100_CLK_OSTM1>; 288 + power-domains = <&cpg_clocks>; 289 + status = "disabled"; 290 + }; 291 + 292 + i2c0: i2c@fcfee000 { 293 + #address-cells = <1>; 294 + #size-cells = <0>; 295 + compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 296 + reg = <0xfcfee000 0x44>; 297 + interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 298 + <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>, 299 + <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>, 300 + <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 301 + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 302 + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 303 + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 304 + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 305 + clocks = <&mstp9_clks R7S72100_CLK_I2C0>; 306 + clock-frequency = <100000>; 307 + power-domains = <&cpg_clocks>; 308 + status = "disabled"; 309 + }; 310 + 311 + i2c1: i2c@fcfee400 { 312 + #address-cells = <1>; 313 + #size-cells = <0>; 314 + compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 315 + reg = <0xfcfee400 0x44>; 316 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 317 + <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>, 318 + <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>, 319 + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 320 + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 321 + <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, 322 + <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, 323 + <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; 324 + clocks = <&mstp9_clks R7S72100_CLK_I2C1>; 325 + clock-frequency = <100000>; 326 + power-domains = <&cpg_clocks>; 327 + status = "disabled"; 328 + }; 329 + 330 + i2c2: i2c@fcfee800 { 331 + #address-cells = <1>; 332 + #size-cells = <0>; 333 + compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 334 + reg = <0xfcfee800 0x44>; 335 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 336 + <GIC_SPI 174 IRQ_TYPE_EDGE_RISING>, 337 + <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>, 338 + <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 339 + <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, 340 + <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, 341 + <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, 342 + <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 343 + clocks = <&mstp9_clks R7S72100_CLK_I2C2>; 344 + clock-frequency = <100000>; 345 + power-domains = <&cpg_clocks>; 346 + status = "disabled"; 347 + }; 348 + 349 + i2c3: i2c@fcfeec00 { 350 + #address-cells = <1>; 351 + #size-cells = <0>; 352 + compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 353 + reg = <0xfcfeec00 0x44>; 354 + interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, 355 + <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>, 356 + <GIC_SPI 183 IRQ_TYPE_EDGE_RISING>, 357 + <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>, 358 + <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>, 359 + <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, 360 + <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, 361 + <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 362 + clocks = <&mstp9_clks R7S72100_CLK_I2C3>; 363 + clock-frequency = <100000>; 364 + power-domains = <&cpg_clocks>; 365 + status = "disabled"; 366 + }; 367 + 368 + mtu2: timer@fcff0000 { 369 + compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; 370 + reg = <0xfcff0000 0x400>; 371 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 372 + interrupt-names = "tgi0a"; 373 + clocks = <&mstp3_clks R7S72100_CLK_MTU2>; 374 + clock-names = "fck"; 375 + power-domains = <&cpg_clocks>; 376 + status = "disabled"; 377 + }; 378 + 379 + rtc: rtc@fcff1000 { 380 + compatible = "renesas,r7s72100-rtc", "renesas,sh-rtc"; 381 + reg = <0xfcff1000 0x2e>; 382 + interrupts = <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>, 383 + <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, 384 + <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>; 385 + interrupt-names = "alarm", "period", "carry"; 386 + clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>, 387 + <&rtc_x3_clk>, <&extal_clk>; 388 + clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; 389 + power-domains = <&cpg_clocks>; 390 + status = "disabled"; 516 391 }; 517 392 }; 518 393 519 - pinctrl: pin-controller@fcfe3000 { 520 - compatible = "renesas,r7s72100-ports"; 521 - 522 - reg = <0xfcfe3000 0x4230>; 523 - 524 - port0: gpio-0 { 525 - gpio-controller; 526 - #gpio-cells = <2>; 527 - gpio-ranges = <&pinctrl 0 0 6>; 528 - }; 529 - 530 - port1: gpio-1 { 531 - gpio-controller; 532 - #gpio-cells = <2>; 533 - gpio-ranges = <&pinctrl 0 16 16>; 534 - }; 535 - 536 - port2: gpio-2 { 537 - gpio-controller; 538 - #gpio-cells = <2>; 539 - gpio-ranges = <&pinctrl 0 32 16>; 540 - }; 541 - 542 - port3: gpio-3 { 543 - gpio-controller; 544 - #gpio-cells = <2>; 545 - gpio-ranges = <&pinctrl 0 48 16>; 546 - }; 547 - 548 - port4: gpio-4 { 549 - gpio-controller; 550 - #gpio-cells = <2>; 551 - gpio-ranges = <&pinctrl 0 64 16>; 552 - }; 553 - 554 - port5: gpio-5 { 555 - gpio-controller; 556 - #gpio-cells = <2>; 557 - gpio-ranges = <&pinctrl 0 80 11>; 558 - }; 559 - 560 - port6: gpio-6 { 561 - gpio-controller; 562 - #gpio-cells = <2>; 563 - gpio-ranges = <&pinctrl 0 96 16>; 564 - }; 565 - 566 - port7: gpio-7 { 567 - gpio-controller; 568 - #gpio-cells = <2>; 569 - gpio-ranges = <&pinctrl 0 112 16>; 570 - }; 571 - 572 - port8: gpio-8 { 573 - gpio-controller; 574 - #gpio-cells = <2>; 575 - gpio-ranges = <&pinctrl 0 128 16>; 576 - }; 577 - 578 - port9: gpio-9 { 579 - gpio-controller; 580 - #gpio-cells = <2>; 581 - gpio-ranges = <&pinctrl 0 144 8>; 582 - }; 583 - 584 - port10: gpio-10 { 585 - gpio-controller; 586 - #gpio-cells = <2>; 587 - gpio-ranges = <&pinctrl 0 160 16>; 588 - }; 589 - 590 - port11: gpio-11 { 591 - gpio-controller; 592 - #gpio-cells = <2>; 593 - gpio-ranges = <&pinctrl 0 176 16>; 594 - }; 595 - }; 596 - 597 - scif0: serial@e8007000 { 598 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 599 - reg = <0xe8007000 64>; 600 - interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, 601 - <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, 602 - <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, 603 - <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 604 - clocks = <&mstp4_clks R7S72100_CLK_SCIF0>; 605 - clock-names = "fck"; 606 - power-domains = <&cpg_clocks>; 607 - status = "disabled"; 608 - }; 609 - 610 - scif1: serial@e8007800 { 611 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 612 - reg = <0xe8007800 64>; 613 - interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, 614 - <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, 615 - <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 616 - <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 617 - clocks = <&mstp4_clks R7S72100_CLK_SCIF1>; 618 - clock-names = "fck"; 619 - power-domains = <&cpg_clocks>; 620 - status = "disabled"; 621 - }; 622 - 623 - scif2: serial@e8008000 { 624 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 625 - reg = <0xe8008000 64>; 626 - interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, 627 - <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, 628 - <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, 629 - <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 630 - clocks = <&mstp4_clks R7S72100_CLK_SCIF2>; 631 - clock-names = "fck"; 632 - power-domains = <&cpg_clocks>; 633 - status = "disabled"; 634 - }; 635 - 636 - scif3: serial@e8008800 { 637 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 638 - reg = <0xe8008800 64>; 639 - interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, 640 - <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, 641 - <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, 642 - <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; 643 - clocks = <&mstp4_clks R7S72100_CLK_SCIF3>; 644 - clock-names = "fck"; 645 - power-domains = <&cpg_clocks>; 646 - status = "disabled"; 647 - }; 648 - 649 - scif4: serial@e8009000 { 650 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 651 - reg = <0xe8009000 64>; 652 - interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, 653 - <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, 654 - <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, 655 - <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 656 - clocks = <&mstp4_clks R7S72100_CLK_SCIF4>; 657 - clock-names = "fck"; 658 - power-domains = <&cpg_clocks>; 659 - status = "disabled"; 660 - }; 661 - 662 - scif5: serial@e8009800 { 663 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 664 - reg = <0xe8009800 64>; 665 - interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, 666 - <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, 667 - <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, 668 - <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; 669 - clocks = <&mstp4_clks R7S72100_CLK_SCIF5>; 670 - clock-names = "fck"; 671 - power-domains = <&cpg_clocks>; 672 - status = "disabled"; 673 - }; 674 - 675 - scif6: serial@e800a000 { 676 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 677 - reg = <0xe800a000 64>; 678 - interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, 679 - <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, 680 - <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>, 681 - <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; 682 - clocks = <&mstp4_clks R7S72100_CLK_SCIF6>; 683 - clock-names = "fck"; 684 - power-domains = <&cpg_clocks>; 685 - status = "disabled"; 686 - }; 687 - 688 - scif7: serial@e800a800 { 689 - compatible = "renesas,scif-r7s72100", "renesas,scif"; 690 - reg = <0xe800a800 64>; 691 - interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, 692 - <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, 693 - <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, 694 - <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; 695 - clocks = <&mstp4_clks R7S72100_CLK_SCIF7>; 696 - clock-names = "fck"; 697 - power-domains = <&cpg_clocks>; 698 - status = "disabled"; 699 - }; 700 - 701 - spi0: spi@e800c800 { 702 - compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 703 - reg = <0xe800c800 0x24>; 704 - interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, 705 - <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>, 706 - <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>; 707 - interrupt-names = "error", "rx", "tx"; 708 - clocks = <&mstp10_clks R7S72100_CLK_SPI0>; 709 - power-domains = <&cpg_clocks>; 710 - num-cs = <1>; 711 - #address-cells = <1>; 712 - #size-cells = <0>; 713 - status = "disabled"; 714 - }; 715 - 716 - spi1: spi@e800d000 { 717 - compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 718 - reg = <0xe800d000 0x24>; 719 - interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>, 720 - <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, 721 - <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; 722 - interrupt-names = "error", "rx", "tx"; 723 - clocks = <&mstp10_clks R7S72100_CLK_SPI1>; 724 - power-domains = <&cpg_clocks>; 725 - num-cs = <1>; 726 - #address-cells = <1>; 727 - #size-cells = <0>; 728 - status = "disabled"; 729 - }; 730 - 731 - spi2: spi@e800d800 { 732 - compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 733 - reg = <0xe800d800 0x24>; 734 - interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, 735 - <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, 736 - <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 737 - interrupt-names = "error", "rx", "tx"; 738 - clocks = <&mstp10_clks R7S72100_CLK_SPI2>; 739 - power-domains = <&cpg_clocks>; 740 - num-cs = <1>; 741 - #address-cells = <1>; 742 - #size-cells = <0>; 743 - status = "disabled"; 744 - }; 745 - 746 - spi3: spi@e800e000 { 747 - compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 748 - reg = <0xe800e000 0x24>; 749 - interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, 750 - <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>, 751 - <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; 752 - interrupt-names = "error", "rx", "tx"; 753 - clocks = <&mstp10_clks R7S72100_CLK_SPI3>; 754 - power-domains = <&cpg_clocks>; 755 - num-cs = <1>; 756 - #address-cells = <1>; 757 - #size-cells = <0>; 758 - status = "disabled"; 759 - }; 760 - 761 - spi4: spi@e800e800 { 762 - compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 763 - reg = <0xe800e800 0x24>; 764 - interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>, 765 - <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>, 766 - <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>; 767 - interrupt-names = "error", "rx", "tx"; 768 - clocks = <&mstp10_clks R7S72100_CLK_SPI4>; 769 - power-domains = <&cpg_clocks>; 770 - num-cs = <1>; 771 - #address-cells = <1>; 772 - #size-cells = <0>; 773 - status = "disabled"; 774 - }; 775 - 776 - gic: interrupt-controller@e8201000 { 777 - compatible = "arm,pl390"; 778 - #interrupt-cells = <3>; 779 - #address-cells = <0>; 780 - interrupt-controller; 781 - reg = <0xe8201000 0x1000>, 782 - <0xe8202000 0x1000>; 783 - }; 784 - 785 - L2: cache-controller@3ffff000 { 786 - compatible = "arm,pl310-cache"; 787 - reg = <0x3ffff000 0x1000>; 788 - interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 789 - arm,early-bresp-disable; 790 - arm,full-line-zero-disable; 791 - cache-unified; 792 - cache-level = <2>; 793 - }; 794 - 795 - wdt: watchdog@fcfe0000 { 796 - compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt"; 797 - reg = <0xfcfe0000 0x6>; 798 - interrupts = <GIC_SPI 106 IRQ_TYPE_EDGE_RISING>; 799 - clocks = <&p0_clk>; 800 - }; 801 - 802 - i2c0: i2c@fcfee000 { 803 - #address-cells = <1>; 804 - #size-cells = <0>; 805 - compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 806 - reg = <0xfcfee000 0x44>; 807 - interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 808 - <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>, 809 - <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>, 810 - <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 811 - <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 812 - <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 813 - <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 814 - <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 815 - clocks = <&mstp9_clks R7S72100_CLK_I2C0>; 816 - clock-frequency = <100000>; 817 - power-domains = <&cpg_clocks>; 818 - status = "disabled"; 819 - }; 820 - 821 - i2c1: i2c@fcfee400 { 822 - #address-cells = <1>; 823 - #size-cells = <0>; 824 - compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 825 - reg = <0xfcfee400 0x44>; 826 - interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 827 - <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>, 828 - <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>, 829 - <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 830 - <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 831 - <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, 832 - <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, 833 - <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; 834 - clocks = <&mstp9_clks R7S72100_CLK_I2C1>; 835 - clock-frequency = <100000>; 836 - power-domains = <&cpg_clocks>; 837 - status = "disabled"; 838 - }; 839 - 840 - i2c2: i2c@fcfee800 { 841 - #address-cells = <1>; 842 - #size-cells = <0>; 843 - compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 844 - reg = <0xfcfee800 0x44>; 845 - interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 846 - <GIC_SPI 174 IRQ_TYPE_EDGE_RISING>, 847 - <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>, 848 - <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 849 - <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, 850 - <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, 851 - <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, 852 - <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 853 - clocks = <&mstp9_clks R7S72100_CLK_I2C2>; 854 - clock-frequency = <100000>; 855 - power-domains = <&cpg_clocks>; 856 - status = "disabled"; 857 - }; 858 - 859 - i2c3: i2c@fcfeec00 { 860 - #address-cells = <1>; 861 - #size-cells = <0>; 862 - compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; 863 - reg = <0xfcfeec00 0x44>; 864 - interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, 865 - <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>, 866 - <GIC_SPI 183 IRQ_TYPE_EDGE_RISING>, 867 - <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>, 868 - <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>, 869 - <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, 870 - <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, 871 - <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 872 - clocks = <&mstp9_clks R7S72100_CLK_I2C3>; 873 - clock-frequency = <100000>; 874 - power-domains = <&cpg_clocks>; 875 - status = "disabled"; 876 - }; 877 - 878 - mtu2: timer@fcff0000 { 879 - compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; 880 - reg = <0xfcff0000 0x400>; 881 - interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 882 - interrupt-names = "tgi0a"; 883 - clocks = <&mstp3_clks R7S72100_CLK_MTU2>; 884 - clock-names = "fck"; 885 - power-domains = <&cpg_clocks>; 886 - status = "disabled"; 887 - }; 888 - 889 - ether: ethernet@e8203000 { 890 - compatible = "renesas,ether-r7s72100"; 891 - reg = <0xe8203000 0x800>, 892 - <0xe8204800 0x200>; 893 - interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 894 - clocks = <&mstp7_clks R7S72100_CLK_ETHER>; 895 - power-domains = <&cpg_clocks>; 896 - phy-mode = "mii"; 897 - #address-cells = <1>; 898 - #size-cells = <0>; 899 - status = "disabled"; 900 - }; 901 - 902 - mmcif: mmc@e804c800 { 903 - compatible = "renesas,mmcif-r7s72100", "renesas,sh-mmcif"; 904 - reg = <0xe804c800 0x80>; 905 - interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH 906 - GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 907 - GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 908 - clocks = <&mstp8_clks R7S72100_CLK_MMCIF>; 909 - power-domains = <&cpg_clocks>; 910 - reg-io-width = <4>; 911 - bus-width = <8>; 912 - status = "disabled"; 913 - }; 914 - 915 - sdhi0: sd@e804e000 { 916 - compatible = "renesas,sdhi-r7s72100"; 917 - reg = <0xe804e000 0x100>; 918 - interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 919 - GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 920 - GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 921 - 922 - clocks = <&mstp12_clks R7S72100_CLK_SDHI00>, 923 - <&mstp12_clks R7S72100_CLK_SDHI01>; 924 - clock-names = "core", "cd"; 925 - power-domains = <&cpg_clocks>; 926 - cap-sd-highspeed; 927 - cap-sdio-irq; 928 - status = "disabled"; 929 - }; 930 - 931 - sdhi1: sd@e804e800 { 932 - compatible = "renesas,sdhi-r7s72100"; 933 - reg = <0xe804e800 0x100>; 934 - interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 935 - GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 936 - GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>; 937 - 938 - clocks = <&mstp12_clks R7S72100_CLK_SDHI10>, 939 - <&mstp12_clks R7S72100_CLK_SDHI11>; 940 - clock-names = "core", "cd"; 941 - power-domains = <&cpg_clocks>; 942 - cap-sd-highspeed; 943 - cap-sdio-irq; 944 - status = "disabled"; 945 - }; 946 - 947 - ostm0: timer@fcfec000 { 948 - compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 949 - reg = <0xfcfec000 0x30>; 950 - interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>; 951 - clocks = <&mstp5_clks R7S72100_CLK_OSTM0>; 952 - power-domains = <&cpg_clocks>; 953 - status = "disabled"; 954 - }; 955 - 956 - ostm1: timer@fcfec400 { 957 - compatible = "renesas,r7s72100-ostm", "renesas,ostm"; 958 - reg = <0xfcfec400 0x30>; 959 - interrupts = <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>; 960 - clocks = <&mstp5_clks R7S72100_CLK_OSTM1>; 961 - power-domains = <&cpg_clocks>; 962 - status = "disabled"; 963 - }; 964 - 965 - rtc: rtc@fcff1000 { 966 - compatible = "renesas,r7s72100-rtc", "renesas,sh-rtc"; 967 - reg = <0xfcff1000 0x2e>; 968 - interrupts = <GIC_SPI 276 IRQ_TYPE_EDGE_RISING 969 - GIC_SPI 277 IRQ_TYPE_EDGE_RISING 970 - GIC_SPI 278 IRQ_TYPE_EDGE_RISING>; 971 - interrupt-names = "alarm", "period", "carry"; 972 - clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>, 973 - <&rtc_x3_clk>, <&extal_clk>; 974 - clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; 975 - power-domains = <&cpg_clocks>; 976 - status = "disabled"; 394 + usb_x1_clk: usb_x1 { 395 + #clock-cells = <0>; 396 + compatible = "fixed-clock"; 397 + /* If clk present, value must be set by board */ 398 + clock-frequency = <0>; 977 399 }; 978 400 };
+2 -2
arch/arm/boot/dts/r8a73a4-ape6evm.dts
··· 234 234 &sdhi0 { 235 235 vmmc-supply = <&vcc_sdhi0>; 236 236 bus-width = <4>; 237 - toshiba,mmc-wrprotect-disable; 237 + disable-wp; 238 238 pinctrl-names = "default"; 239 239 pinctrl-0 = <&sdhi0_pins>; 240 240 status = "okay"; ··· 244 244 vmmc-supply = <&ape6evm_fixed_3v3>; 245 245 bus-width = <4>; 246 246 broken-cd; 247 - toshiba,mmc-wrprotect-disable; 247 + disable-wp; 248 248 pinctrl-names = "default"; 249 249 pinctrl-0 = <&sdhi1_pins>; 250 250 status = "okay";
+5 -5
arch/arm/boot/dts/r8a73a4.dtsi
··· 57 57 58 58 timer { 59 59 compatible = "arm,armv7-timer"; 60 - interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 61 - <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 62 - <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 63 - <GIC_PPI 10 (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(8) | 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(8) | IRQ_TYPE_LEVEL_LOW)>; 64 64 }; 65 65 66 66 dbsc1: memory-controller@e6790000 { ··· 464 464 <0 0xf1002000 0 0x2000>, 465 465 <0 0xf1004000 0 0x2000>, 466 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 468 clocks = <&mstp4_clks R8A73A4_CLK_INTC_SYS>; 469 469 clock-names = "clk"; 470 470 power-domains = <&pd_c4>;
+18
arch/arm/boot/dts/r8a7740.dtsi
··· 67 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 88 cmt1: timer@e6138000 { 71 89 compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48"; 72 90 reg = <0xe6138000 0x170>;
+5
arch/arm/boot/dts/r8a7743-iwg20m.dtsi
··· 91 91 }; 92 92 }; 93 93 94 + &rwdt { 95 + timeout-sec = <60>; 96 + status = "okay"; 97 + }; 98 + 94 99 &sdhi0 { 95 100 pinctrl-0 = <&sdhi0_pins>; 96 101 pinctrl-names = "default";
+18 -1
arch/arm/boot/dts/r8a7743.dtsi
··· 125 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 135 /* External SCIF clock */ 129 136 scif_clk: scif { 130 137 compatible = "fixed-clock"; ··· 304 297 reg = <0 0xe6160000 0 0x100>; 305 298 }; 306 299 300 + rwdt: watchdog@e6020000 { 301 + compatible = "renesas,r8a7743-wdt", 302 + "renesas,rcar-gen2-wdt"; 303 + reg = <0 0xe6020000 0 0x0c>; 304 + clocks = <&cpg CPG_MOD 402>; 305 + power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 306 + resets = <&cpg 402>; 307 + status = "disabled"; 308 + }; 309 + 307 310 sysc: system-controller@e6180000 { 308 311 compatible = "renesas,r8a7743-sysc"; 309 312 reg = <0 0xe6180000 0 0x200>; ··· 424 407 425 408 smp-sram@0 { 426 409 compatible = "renesas,smp-sram"; 427 - reg = <0 0x10>; 410 + reg = <0 0x100>; 428 411 }; 429 412 }; 430 413
+5
arch/arm/boot/dts/r8a7745-iwg22m.dtsi
··· 91 91 }; 92 92 }; 93 93 94 + &rwdt { 95 + timeout-sec = <60>; 96 + status = "okay"; 97 + }; 98 + 94 99 &sdhi1 { 95 100 pinctrl-0 = <&sdhi1_pins>; 96 101 pinctrl-names = "default";
+18 -1
arch/arm/boot/dts/r8a7745.dtsi
··· 105 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 115 /* External SCIF clock */ 109 116 scif_clk: scif { 110 117 compatible = "fixed-clock"; ··· 269 262 reg = <0 0xe6160000 0 0x100>; 270 263 }; 271 264 265 + rwdt: watchdog@e6020000 { 266 + compatible = "renesas,r8a7745-wdt", 267 + "renesas,rcar-gen2-wdt"; 268 + reg = <0 0xe6020000 0 0x0c>; 269 + clocks = <&cpg CPG_MOD 402>; 270 + power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 271 + resets = <&cpg 402>; 272 + status = "disabled"; 273 + }; 274 + 272 275 sysc: system-controller@e6180000 { 273 276 compatible = "renesas,r8a7745-sysc"; 274 277 reg = <0 0xe6180000 0 0x200>; ··· 377 360 378 361 smp-sram@0 { 379 362 compatible = "renesas,smp-sram"; 380 - reg = <0 0x10>; 363 + reg = <0 0x100>; 381 364 }; 382 365 }; 383 366
+48
arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts
··· 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 + };
+336
arch/arm/boot/dts/r8a77470.dtsi
··· 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 + };
+5 -3
arch/arm/boot/dts/r8a7790-lager.dts
··· 902 902 status = "okay"; 903 903 904 904 port { 905 - #address-cells = <1>; 906 - #size-cells = <0>; 907 - 908 905 vin1ep0: endpoint { 909 906 remote-endpoint = <&adv7180>; 910 907 bus-width = <8>; ··· 924 927 capture = <&ssi1 &src3 &dvc1>; 925 928 }; 926 929 }; 930 + }; 931 + 932 + &rwdt { 933 + timeout-sec = <60>; 934 + status = "okay"; 927 935 }; 928 936 929 937 &ssi1 {
+61 -6
arch/arm/boot/dts/r8a7790.dtsi
··· 202 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 223 /* External SCIF clock */ 206 224 scif_clk: scif { 207 225 compatible = "fixed-clock"; ··· 235 217 #address-cells = <2>; 236 218 #size-cells = <2>; 237 219 ranges; 220 + 221 + rwdt: watchdog@e6020000 { 222 + compatible = "renesas,r8a7790-wdt", 223 + "renesas,rcar-gen2-wdt"; 224 + reg = <0 0xe6020000 0 0x0c>; 225 + clocks = <&cpg CPG_MOD 402>; 226 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 227 + resets = <&cpg 402>; 228 + status = "disabled"; 229 + }; 238 230 239 231 gpio0: gpio@e6050000 { 240 232 compatible = "renesas,gpio-r8a7790", ··· 471 443 472 444 smp-sram@0 { 473 445 compatible = "renesas,smp-sram"; 474 - reg = <0 0x10>; 446 + reg = <0 0x100>; 475 447 }; 476 448 }; 477 449 ··· 1572 1544 interrupt-controller; 1573 1545 reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, 1574 1546 <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; 1575 - interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1547 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 1576 1548 clocks = <&cpg CPG_MOD 408>; 1577 1549 clock-names = "clk"; 1578 1550 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; ··· 1641 1613 clocks = <&cpg CPG_MOD 127>; 1642 1614 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1643 1615 resets = <&cpg 127>; 1616 + }; 1617 + 1618 + fdp1@fe940000 { 1619 + compatible = "renesas,fdp1"; 1620 + reg = <0 0xfe940000 0 0x2400>; 1621 + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 1622 + clocks = <&cpg CPG_MOD 119>; 1623 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1624 + resets = <&cpg 119>; 1625 + }; 1626 + 1627 + fdp1@fe944000 { 1628 + compatible = "renesas,fdp1"; 1629 + reg = <0 0xfe944000 0 0x2400>; 1630 + interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 1631 + clocks = <&cpg CPG_MOD 118>; 1632 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1633 + resets = <&cpg 118>; 1634 + }; 1635 + 1636 + fdp1@fe948000 { 1637 + compatible = "renesas,fdp1"; 1638 + reg = <0 0xfe948000 0 0x2400>; 1639 + interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; 1640 + clocks = <&cpg CPG_MOD 117>; 1641 + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1642 + resets = <&cpg 117>; 1644 1643 }; 1645 1644 1646 1645 jpu: jpeg-codec@fe980000 { ··· 1828 1773 1829 1774 timer { 1830 1775 compatible = "arm,armv7-timer"; 1831 - interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1832 - <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1833 - <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1834 - <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 1776 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 1777 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 1778 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 1779 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 1835 1780 }; 1836 1781 1837 1782 /* External USB clock - can be overridden by the board */
+5 -6
arch/arm/boot/dts/r8a7791-koelsch.dts
··· 643 643 status = "okay"; 644 644 }; 645 645 646 + &rwdt { 647 + timeout-sec = <60>; 648 + status = "okay"; 649 + }; 650 + 646 651 &sata0 { 647 652 status = "okay"; 648 653 }; ··· 855 850 pinctrl-names = "default"; 856 851 857 852 port { 858 - #address-cells = <1>; 859 - #size-cells = <0>; 860 - 861 853 vin0ep2: endpoint { 862 854 remote-endpoint = <&adv7612_out>; 863 855 bus-width = <24>; ··· 873 871 pinctrl-names = "default"; 874 872 875 873 port { 876 - #address-cells = <1>; 877 - #size-cells = <0>; 878 - 879 874 vin1ep: endpoint { 880 875 remote-endpoint = <&adv7180>; 881 876 bus-width = <8>;
+5 -3
arch/arm/boot/dts/r8a7791-porter.dts
··· 386 386 pinctrl-names = "default"; 387 387 388 388 port { 389 - #address-cells = <1>; 390 - #size-cells = <0>; 391 - 392 389 vin0ep: endpoint { 393 390 remote-endpoint = <&adv7180>; 394 391 bus-width = <8>; ··· 476 479 capture = <&ssi1>; 477 480 }; 478 481 }; 482 + }; 483 + 484 + &rwdt { 485 + timeout-sec = <60>; 486 + status = "okay"; 479 487 }; 480 488 481 489 &ssi1 {
+36 -1
arch/arm/boot/dts/r8a7791.dtsi
··· 126 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 136 /* External SCIF clock */ 130 137 scif_clk: scif { 131 138 compatible = "fixed-clock"; ··· 148 141 #address-cells = <2>; 149 142 #size-cells = <2>; 150 143 ranges; 144 + 145 + rwdt: watchdog@e6020000 { 146 + compatible = "renesas,r8a7791-wdt", 147 + "renesas,rcar-gen2-wdt"; 148 + reg = <0 0xe6020000 0 0x0c>; 149 + clocks = <&cpg CPG_MOD 402>; 150 + power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 151 + resets = <&cpg 402>; 152 + status = "disabled"; 153 + }; 151 154 152 155 gpio0: gpio@e6050000 { 153 156 compatible = "renesas,gpio-r8a7791", ··· 424 407 425 408 smp-sram@0 { 426 409 compatible = "renesas,smp-sram"; 427 - reg = <0 0x10>; 410 + reg = <0 0x100>; 428 411 }; 429 412 }; 430 413 ··· 1636 1619 clocks = <&cpg CPG_MOD 127>; 1637 1620 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1638 1621 resets = <&cpg 127>; 1622 + }; 1623 + 1624 + fdp1@fe940000 { 1625 + compatible = "renesas,fdp1"; 1626 + reg = <0 0xfe940000 0 0x2400>; 1627 + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 1628 + clocks = <&cpg CPG_MOD 119>; 1629 + power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1630 + resets = <&cpg 119>; 1631 + }; 1632 + 1633 + fdp1@fe944000 { 1634 + compatible = "renesas,fdp1"; 1635 + reg = <0 0xfe944000 0 0x2400>; 1636 + interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 1637 + clocks = <&cpg CPG_MOD 118>; 1638 + power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1639 + resets = <&cpg 118>; 1639 1640 }; 1640 1641 1641 1642 jpu: jpeg-codec@fe980000 {
+5
arch/arm/boot/dts/r8a7792-blanche.dts
··· 239 239 }; 240 240 }; 241 241 242 + &rwdt { 243 + timeout-sec = <60>; 244 + status = "okay"; 245 + }; 246 + 242 247 &scif0 { 243 248 pinctrl-0 = <&scif0_pins>; 244 249 pinctrl-names = "default";
+14 -2
arch/arm/boot/dts/r8a7792-wheat.dts
··· 168 168 }; 169 169 }; 170 170 171 + &rwdt { 172 + timeout-sec = <60>; 173 + status = "okay"; 174 + }; 175 + 171 176 &scif0 { 172 177 pinctrl-0 = <&scif0_pins>; 173 178 pinctrl-names = "default"; ··· 245 240 status = "okay"; 246 241 clock-frequency = <400000>; 247 242 243 + /* 244 + * The adv75xx resets its addresses to defaults during low power mode. 245 + * Because we have two ADV7513 devices on the same bus, we must change 246 + * both of them away from the defaults so that they do not conflict. 247 + */ 248 248 hdmi@3d { 249 249 compatible = "adi,adv7513"; 250 - reg = <0x3d>; 250 + reg = <0x3d>, <0x2d>, <0x4d>, <0x5d>; 251 + reg-names = "main", "cec", "edid", "packet"; 251 252 252 253 adi,input-depth = <8>; 253 254 adi,input-colorspace = "rgb"; ··· 283 272 284 273 hdmi@39 { 285 274 compatible = "adi,adv7513"; 286 - reg = <0x39>; 275 + reg = <0x39>, <0x29>, <0x49>, <0x59>; 276 + reg-names = "main", "cec", "edid", "packet"; 287 277 288 278 adi,input-depth = <8>; 289 279 adi,input-colorspace = "rgb";
+18 -1
arch/arm/boot/dts/r8a7792.dtsi
··· 85 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 95 /* External SCIF clock */ 89 96 scif_clk: scif { 90 97 compatible = "fixed-clock"; ··· 107 100 #address-cells = <2>; 108 101 #size-cells = <2>; 109 102 ranges; 103 + 104 + rwdt: watchdog@e6020000 { 105 + compatible = "renesas,r8a7792-wdt", 106 + "renesas,rcar-gen2-wdt"; 107 + reg = <0 0xe6020000 0 0x0c>; 108 + clocks = <&cpg CPG_MOD 402>; 109 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 110 + resets = <&cpg 402>; 111 + status = "disabled"; 112 + }; 110 113 111 114 gpio0: gpio@e6050000 { 112 115 compatible = "renesas,gpio-r8a7792", ··· 358 341 359 342 smp-sram@0 { 360 343 compatible = "renesas,smp-sram"; 361 - reg = <0 0x10>; 344 + reg = <0 0x100>; 362 345 }; 363 346 }; 364 347
+5 -6
arch/arm/boot/dts/r8a7793-gose.dts
··· 599 599 status = "okay"; 600 600 }; 601 601 602 + &rwdt { 603 + timeout-sec = <60>; 604 + status = "okay"; 605 + }; 606 + 602 607 &scif0 { 603 608 pinctrl-0 = <&scif0_pins>; 604 609 pinctrl-names = "default"; ··· 763 758 pinctrl-names = "default"; 764 759 765 760 port { 766 - #address-cells = <1>; 767 - #size-cells = <0>; 768 - 769 761 vin0ep2: endpoint { 770 762 remote-endpoint = <&adv7612_out>; 771 763 bus-width = <24>; ··· 782 780 status = "okay"; 783 781 784 782 port { 785 - #address-cells = <1>; 786 - #size-cells = <0>; 787 - 788 783 vin1ep: endpoint { 789 784 remote-endpoint = <&adv7180_out>; 790 785 bus-width = <8>;
+36 -1
arch/arm/boot/dts/r8a7793.dtsi
··· 110 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 120 /* External SCIF clock */ 114 121 scif_clk: scif { 115 122 compatible = "fixed-clock"; ··· 132 125 #address-cells = <2>; 133 126 #size-cells = <2>; 134 127 ranges; 128 + 129 + rwdt: watchdog@e6020000 { 130 + compatible = "renesas,r8a7793-wdt", 131 + "renesas,rcar-gen2-wdt"; 132 + reg = <0 0xe6020000 0 0x0c>; 133 + clocks = <&cpg CPG_MOD 402>; 134 + power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 135 + resets = <&cpg 402>; 136 + status = "disabled"; 137 + }; 135 138 136 139 gpio0: gpio@e6050000 { 137 140 compatible = "renesas,gpio-r8a7793", ··· 409 392 410 393 smp-sram@0 { 411 394 compatible = "renesas,smp-sram"; 412 - reg = <0 0x10>; 395 + reg = <0 0x100>; 413 396 }; 414 397 }; 415 398 ··· 1305 1288 clock-names = "clk"; 1306 1289 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1307 1290 resets = <&cpg 408>; 1291 + }; 1292 + 1293 + fdp1@fe940000 { 1294 + compatible = "renesas,fdp1"; 1295 + reg = <0 0xfe940000 0 0x2400>; 1296 + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 1297 + clocks = <&cpg CPG_MOD 119>; 1298 + power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1299 + resets = <&cpg 119>; 1300 + }; 1301 + 1302 + fdp1@fe944000 { 1303 + compatible = "renesas,fdp1"; 1304 + reg = <0 0xfe944000 0 0x2400>; 1305 + interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 1306 + clocks = <&cpg CPG_MOD 118>; 1307 + power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1308 + resets = <&cpg 118>; 1308 1309 }; 1309 1310 1310 1311 du: display@feb00000 {
+11 -3
arch/arm/boot/dts/r8a7794-alt.dts
··· 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 /* ··· 336 330 status = "okay"; 337 331 }; 338 332 333 + &rwdt { 334 + timeout-sec = <60>; 335 + status = "okay"; 336 + }; 337 + 339 338 &sdhi0 { 340 339 pinctrl-0 = <&sdhi0_pins>; 341 340 pinctrl-1 = <&sdhi0_pins_uhs>; ··· 386 375 pinctrl-names = "default"; 387 376 388 377 port { 389 - #address-cells = <1>; 390 - #size-cells = <0>; 391 - 392 378 vin0ep: endpoint { 393 379 remote-endpoint = <&adv7180>; 394 380 bus-width = <8>;
+5 -3
arch/arm/boot/dts/r8a7794-silk.dts
··· 475 475 pinctrl-names = "default"; 476 476 477 477 port { 478 - #address-cells = <1>; 479 - #size-cells = <0>; 480 - 481 478 vin0ep: endpoint { 482 479 remote-endpoint = <&adv7180>; 483 480 bus-width = <8>; ··· 535 538 capture = <&ssi1>; 536 539 }; 537 540 }; 541 + }; 542 + 543 + &rwdt { 544 + timeout-sec = <60>; 545 + status = "okay"; 538 546 }; 539 547 540 548 &ssi1 {
+27 -1
arch/arm/boot/dts/r8a7794.dtsi
··· 103 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 113 /* External SCIF clock */ 107 114 scif_clk: scif { 108 115 compatible = "fixed-clock"; ··· 125 118 #address-cells = <2>; 126 119 #size-cells = <2>; 127 120 ranges; 121 + 122 + rwdt: watchdog@e6020000 { 123 + compatible = "renesas,r8a7794-wdt", 124 + "renesas,rcar-gen2-wdt"; 125 + reg = <0 0xe6020000 0 0x0c>; 126 + clocks = <&cpg CPG_MOD 402>; 127 + power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 128 + resets = <&cpg 402>; 129 + status = "disabled"; 130 + }; 128 131 129 132 gpio0: gpio@e6050000 { 130 133 compatible = "renesas,gpio-r8a7794", ··· 365 348 366 349 smp-sram@0 { 367 350 compatible = "renesas,smp-sram"; 368 - reg = <0 0x10>; 351 + reg = <0 0x100>; 369 352 }; 370 353 }; 371 354 ··· 1338 1321 clocks = <&cpg CPG_MOD 128>; 1339 1322 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 1340 1323 resets = <&cpg 128>; 1324 + }; 1325 + 1326 + fdp1@fe940000 { 1327 + compatible = "renesas,fdp1"; 1328 + reg = <0 0xfe940000 0 0x2400>; 1329 + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 1330 + clocks = <&cpg CPG_MOD 119>; 1331 + power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 1332 + resets = <&cpg 119>; 1341 1333 }; 1342 1334 1343 1335 du: display@feb00000 {
+5 -4
arch/arm/boot/dts/sh73a0.dtsi
··· 22 22 #address-cells = <1>; 23 23 #size-cells = <0>; 24 24 25 - cpu@0 { 25 + cpu0: cpu@0 { 26 26 device_type = "cpu"; 27 27 compatible = "arm,cortex-a9"; 28 28 reg = <0>; ··· 31 31 power-domains = <&pd_a2sl>; 32 32 next-level-cache = <&L2>; 33 33 }; 34 - cpu@1 { 34 + cpu1: cpu@1 { 35 35 device_type = "cpu"; 36 36 compatible = "arm,cortex-a9"; 37 37 reg = <1>; ··· 91 91 compatible = "arm,cortex-a9-pmu"; 92 92 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 93 93 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 94 + interrupt-affinity = <&cpu0>, <&cpu1>; 94 95 }; 95 96 96 97 cmt1: timer@e6138000 { ··· 337 336 GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 338 337 clocks = <&mstp3_clks SH73A0_CLK_SDHI1>; 339 338 power-domains = <&pd_a3sp>; 340 - toshiba,mmc-wrprotect-disable; 339 + disable-wp; 341 340 cap-sd-highspeed; 342 341 status = "disabled"; 343 342 }; ··· 349 348 GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 350 349 clocks = <&mstp3_clks SH73A0_CLK_SDHI2>; 351 350 power-domains = <&pd_a3sp>; 352 - toshiba,mmc-wrprotect-disable; 351 + disable-wp; 353 352 cap-sd-highspeed; 354 353 status = "disabled"; 355 354 };
+6
arch/arm64/Kconfig.platforms
··· 208 208 help 209 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 217 config ARCH_R8A77995 212 218 bool "Renesas R-Car D3 SoC Platform" 213 219 depends on ARCH_RENESAS
+2 -1
arch/arm64/boot/dts/renesas/Makefile
··· 9 9 dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-xs.dtb 10 10 dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-x.dtb r8a77965-salvator-xs.dtb 11 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 14 dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
+46
arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
··· 56 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 65 &hdmi0 { 60 66 status = "okay"; 61 67 ··· 70 64 reg = <1>; 71 65 rcar_dw_hdmi0_out: endpoint { 72 66 remote-endpoint = <&hdmi0_con>; 67 + }; 68 + }; 69 + port@2 { 70 + reg = <2>; 71 + dw_hdmi0_snd_in: endpoint { 72 + remote-endpoint = <&rsnd_endpoint1>; 73 73 }; 74 74 }; 75 75 }; ··· 95 83 remote-endpoint = <&hdmi1_con>; 96 84 }; 97 85 }; 86 + port@2 { 87 + reg = <2>; 88 + dw_hdmi1_snd_in: endpoint { 89 + remote-endpoint = <&rsnd_endpoint2>; 90 + }; 91 + }; 98 92 }; 99 93 }; 100 94 ··· 110 92 111 93 &ohci2 { 112 94 status = "okay"; 95 + }; 96 + 97 + &rcar_sound { 98 + ports { 99 + /* rsnd_port0 is on salvator-common */ 100 + rsnd_port1: port@1 { 101 + rsnd_endpoint1: endpoint { 102 + remote-endpoint = <&dw_hdmi0_snd_in>; 103 + 104 + dai-format = "i2s"; 105 + bitclock-master = <&rsnd_endpoint1>; 106 + frame-master = <&rsnd_endpoint1>; 107 + 108 + playback = <&ssi2>; 109 + }; 110 + }; 111 + rsnd_port2: port@2 { 112 + rsnd_endpoint2: endpoint { 113 + remote-endpoint = <&dw_hdmi1_snd_in>; 114 + 115 + dai-format = "i2s"; 116 + bitclock-master = <&rsnd_endpoint2>; 117 + frame-master = <&rsnd_endpoint2>; 118 + 119 + playback = <&ssi3>; 120 + }; 121 + }; 122 + }; 113 123 }; 114 124 115 125 &pfc {
+143 -1
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
··· 39 39 reg = <0 0xe7730000 0 0x1000>; 40 40 renesas,ipmmu-main = <&ipmmu_mm 8>; 41 41 #iommu-cells = <1>; 42 - status = "disabled"; 43 42 }; 44 43 45 44 /delete-node/ usb-phy@ee0e0200; ··· 107 108 resets = <&cpg 117>; 108 109 renesas,fcp = <&fcpf2>; 109 110 }; 111 + 112 + csi21: csi2@fea90000 { 113 + compatible = "renesas,r8a7795-csi2"; 114 + reg = <0 0xfea90000 0 0x10000>; 115 + interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; 116 + clocks = <&cpg CPG_MOD 713>; 117 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 118 + resets = <&cpg 713>; 119 + status = "disabled"; 120 + 121 + ports { 122 + #address-cells = <1>; 123 + #size-cells = <0>; 124 + 125 + port@1 { 126 + #address-cells = <1>; 127 + #size-cells = <0>; 128 + 129 + reg = <1>; 130 + 131 + csi21vin0: endpoint@0 { 132 + reg = <0>; 133 + remote-endpoint = <&vin0csi21>; 134 + }; 135 + csi21vin1: endpoint@1 { 136 + reg = <1>; 137 + remote-endpoint = <&vin1csi21>; 138 + }; 139 + csi21vin2: endpoint@2 { 140 + reg = <2>; 141 + remote-endpoint = <&vin2csi21>; 142 + }; 143 + csi21vin3: endpoint@3 { 144 + reg = <3>; 145 + remote-endpoint = <&vin3csi21>; 146 + }; 147 + csi21vin4: endpoint@4 { 148 + reg = <4>; 149 + remote-endpoint = <&vin4csi21>; 150 + }; 151 + csi21vin5: endpoint@5 { 152 + reg = <5>; 153 + remote-endpoint = <&vin5csi21>; 154 + }; 155 + csi21vin6: endpoint@6 { 156 + reg = <6>; 157 + remote-endpoint = <&vin6csi21>; 158 + }; 159 + csi21vin7: endpoint@7 { 160 + reg = <7>; 161 + remote-endpoint = <&vin7csi21>; 162 + }; 163 + }; 164 + }; 165 + }; 110 166 }; 111 167 112 168 &gpio1 { ··· 228 174 229 175 &du { 230 176 vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; 177 + }; 178 + 179 + &vin0 { 180 + ports { 181 + port@1 { 182 + vin0csi21: endpoint@1 { 183 + reg = <1>; 184 + remote-endpoint= <&csi21vin0>; 185 + }; 186 + }; 187 + }; 188 + }; 189 + 190 + &vin1 { 191 + ports { 192 + port@1 { 193 + vin1csi21: endpoint@1 { 194 + reg = <1>; 195 + remote-endpoint= <&csi21vin1>; 196 + }; 197 + }; 198 + }; 199 + }; 200 + 201 + &vin2 { 202 + ports { 203 + port@1 { 204 + vin2csi21: endpoint@1 { 205 + reg = <1>; 206 + remote-endpoint= <&csi21vin2>; 207 + }; 208 + }; 209 + }; 210 + }; 211 + 212 + &vin3 { 213 + ports { 214 + port@1 { 215 + vin3csi21: endpoint@1 { 216 + reg = <1>; 217 + remote-endpoint= <&csi21vin3>; 218 + }; 219 + }; 220 + }; 221 + }; 222 + 223 + &vin4 { 224 + ports { 225 + port@1 { 226 + vin4csi21: endpoint@1 { 227 + reg = <1>; 228 + remote-endpoint= <&csi21vin4>; 229 + }; 230 + }; 231 + }; 232 + }; 233 + 234 + &vin5 { 235 + ports { 236 + port@1 { 237 + vin5csi21: endpoint@1 { 238 + reg = <1>; 239 + remote-endpoint= <&csi21vin5>; 240 + }; 241 + }; 242 + }; 243 + }; 244 + 245 + &vin6 { 246 + ports { 247 + port@1 { 248 + vin6csi21: endpoint@1 { 249 + reg = <1>; 250 + remote-endpoint= <&csi21vin6>; 251 + }; 252 + }; 253 + }; 254 + }; 255 + 256 + &vin7 { 257 + ports { 258 + port@1 { 259 + vin7csi21: endpoint@1 { 260 + reg = <1>; 261 + remote-endpoint= <&csi21vin7>; 262 + }; 263 + }; 264 + }; 231 265 };
+46
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
··· 56 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 65 &hdmi0 { 60 66 status = "okay"; 61 67 ··· 70 64 reg = <1>; 71 65 rcar_dw_hdmi0_out: endpoint { 72 66 remote-endpoint = <&hdmi0_con>; 67 + }; 68 + }; 69 + port@2 { 70 + reg = <2>; 71 + dw_hdmi0_snd_in: endpoint { 72 + remote-endpoint = <&rsnd_endpoint1>; 73 73 }; 74 74 }; 75 75 }; ··· 95 83 remote-endpoint = <&hdmi1_con>; 96 84 }; 97 85 }; 86 + port@2 { 87 + reg = <2>; 88 + dw_hdmi1_snd_in: endpoint { 89 + remote-endpoint = <&rsnd_endpoint2>; 90 + }; 91 + }; 98 92 }; 99 93 }; 100 94 ··· 110 92 111 93 &ohci2 { 112 94 status = "okay"; 95 + }; 96 + 97 + &rcar_sound { 98 + ports { 99 + /* rsnd_port0 is on salvator-common */ 100 + rsnd_port1: port@1 { 101 + rsnd_endpoint1: endpoint { 102 + remote-endpoint = <&dw_hdmi0_snd_in>; 103 + 104 + dai-format = "i2s"; 105 + bitclock-master = <&rsnd_endpoint1>; 106 + frame-master = <&rsnd_endpoint1>; 107 + 108 + playback = <&ssi2>; 109 + }; 110 + }; 111 + rsnd_port2: port@2 { 112 + rsnd_endpoint2: endpoint { 113 + remote-endpoint = <&dw_hdmi1_snd_in>; 114 + 115 + dai-format = "i2s"; 116 + bitclock-master = <&rsnd_endpoint2>; 117 + frame-master = <&rsnd_endpoint2>; 118 + 119 + playback = <&ssi3>; 120 + }; 121 + }; 122 + }; 113 123 }; 114 124 115 125 &pfc {
+85
arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
··· 56 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 75 &hdmi0 { 60 76 status = "okay"; 61 77 ··· 80 64 reg = <1>; 81 65 rcar_dw_hdmi0_out: endpoint { 82 66 remote-endpoint = <&hdmi0_con>; 67 + }; 68 + }; 69 + port@2 { 70 + reg = <2>; 71 + dw_hdmi0_snd_in: endpoint { 72 + remote-endpoint = <&rsnd_endpoint1>; 83 73 }; 84 74 }; 85 75 }; ··· 105 83 remote-endpoint = <&hdmi1_con>; 106 84 }; 107 85 }; 86 + port@2 { 87 + reg = <2>; 88 + dw_hdmi1_snd_in: endpoint { 89 + remote-endpoint = <&rsnd_endpoint2>; 90 + }; 91 + }; 108 92 }; 109 93 }; 110 94 ··· 122 94 status = "okay"; 123 95 }; 124 96 97 + &ohci3 { 98 + dr_mode = "otg"; 99 + status = "okay"; 100 + }; 101 + 102 + &rcar_sound { 103 + ports { 104 + /* rsnd_port0 is on salvator-common */ 105 + rsnd_port1: port@1 { 106 + rsnd_endpoint1: endpoint { 107 + remote-endpoint = <&dw_hdmi0_snd_in>; 108 + 109 + dai-format = "i2s"; 110 + bitclock-master = <&rsnd_endpoint1>; 111 + frame-master = <&rsnd_endpoint1>; 112 + 113 + playback = <&ssi2>; 114 + }; 115 + }; 116 + rsnd_port2: port@2 { 117 + rsnd_endpoint2: endpoint { 118 + remote-endpoint = <&dw_hdmi1_snd_in>; 119 + 120 + dai-format = "i2s"; 121 + bitclock-master = <&rsnd_endpoint2>; 122 + frame-master = <&rsnd_endpoint2>; 123 + 124 + playback = <&ssi3>; 125 + }; 126 + }; 127 + }; 128 + }; 129 + 125 130 &pfc { 126 131 usb2_pins: usb2 { 127 132 groups = "usb2"; 128 133 function = "usb2"; 129 134 }; 135 + 136 + /* 137 + * - On Salvator-X[S], GP6_3[01] are connected to ADV7482 as irq pins 138 + * (when SW31 is the default setting on Salvator-XS). 139 + * - If SW31 is the default setting, you cannot use USB2.0 ch3 on 140 + * r8a7795 with Salvator-XS. 141 + * Hence the SW31 setting must be changed like 2) below. 142 + * 1) Default setting of SW31: ON-ON-OFF-OFF-OFF-OFF: 143 + * - Connect GP6_3[01] to ADV7842. 144 + * 2) Changed setting of SW31: OFF-OFF-ON-ON-ON-ON: 145 + * - Connect GP6_3[01] to BD082065 (USB2.0 ch3's host power). 146 + * - Connect GP6_{04,21} to ADV7842. 147 + */ 148 + usb2_ch3_pins: usb2_ch3 { 149 + groups = "usb2_ch3"; 150 + function = "usb2_ch3"; 151 + }; 130 152 }; 131 153 132 154 &usb2_phy2 { 133 155 pinctrl-0 = <&usb2_pins>; 156 + pinctrl-names = "default"; 157 + 158 + status = "okay"; 159 + }; 160 + 161 + &usb2_phy3 { 162 + pinctrl-0 = <&usb2_ch3_pins>; 134 163 pinctrl-names = "default"; 135 164 136 165 status = "okay";
+1497 -1106
arch/arm64/boot/dts/renesas/r8a7795.dtsi
··· 30 30 i2c7 = &i2c_dvfs; 31 31 }; 32 32 33 - cpus { 34 - #address-cells = <1>; 35 - #size-cells = <0>; 36 - 37 - a57_0: cpu@0 { 38 - compatible = "arm,cortex-a57", "arm,armv8"; 39 - reg = <0x0>; 40 - device_type = "cpu"; 41 - power-domains = <&sysc R8A7795_PD_CA57_CPU0>; 42 - next-level-cache = <&L2_CA57>; 43 - enable-method = "psci"; 44 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 45 - operating-points-v2 = <&cluster0_opp>; 46 - #cooling-cells = <2>; 47 - }; 48 - 49 - a57_1: cpu@1 { 50 - compatible = "arm,cortex-a57","arm,armv8"; 51 - reg = <0x1>; 52 - device_type = "cpu"; 53 - power-domains = <&sysc R8A7795_PD_CA57_CPU1>; 54 - next-level-cache = <&L2_CA57>; 55 - enable-method = "psci"; 56 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 57 - operating-points-v2 = <&cluster0_opp>; 58 - #cooling-cells = <2>; 59 - }; 60 - 61 - a57_2: cpu@2 { 62 - compatible = "arm,cortex-a57","arm,armv8"; 63 - reg = <0x2>; 64 - device_type = "cpu"; 65 - power-domains = <&sysc R8A7795_PD_CA57_CPU2>; 66 - next-level-cache = <&L2_CA57>; 67 - enable-method = "psci"; 68 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 69 - operating-points-v2 = <&cluster0_opp>; 70 - #cooling-cells = <2>; 71 - }; 72 - 73 - a57_3: cpu@3 { 74 - compatible = "arm,cortex-a57","arm,armv8"; 75 - reg = <0x3>; 76 - device_type = "cpu"; 77 - power-domains = <&sysc R8A7795_PD_CA57_CPU3>; 78 - next-level-cache = <&L2_CA57>; 79 - enable-method = "psci"; 80 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 81 - operating-points-v2 = <&cluster0_opp>; 82 - #cooling-cells = <2>; 83 - }; 84 - 85 - a53_0: cpu@100 { 86 - compatible = "arm,cortex-a53", "arm,armv8"; 87 - reg = <0x100>; 88 - device_type = "cpu"; 89 - power-domains = <&sysc R8A7795_PD_CA53_CPU0>; 90 - next-level-cache = <&L2_CA53>; 91 - enable-method = "psci"; 92 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 93 - operating-points-v2 = <&cluster1_opp>; 94 - }; 95 - 96 - a53_1: cpu@101 { 97 - compatible = "arm,cortex-a53","arm,armv8"; 98 - reg = <0x101>; 99 - device_type = "cpu"; 100 - power-domains = <&sysc R8A7795_PD_CA53_CPU1>; 101 - next-level-cache = <&L2_CA53>; 102 - enable-method = "psci"; 103 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 104 - operating-points-v2 = <&cluster1_opp>; 105 - }; 106 - 107 - a53_2: cpu@102 { 108 - compatible = "arm,cortex-a53","arm,armv8"; 109 - reg = <0x102>; 110 - device_type = "cpu"; 111 - power-domains = <&sysc R8A7795_PD_CA53_CPU2>; 112 - next-level-cache = <&L2_CA53>; 113 - enable-method = "psci"; 114 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 115 - operating-points-v2 = <&cluster1_opp>; 116 - }; 117 - 118 - a53_3: cpu@103 { 119 - compatible = "arm,cortex-a53","arm,armv8"; 120 - reg = <0x103>; 121 - device_type = "cpu"; 122 - power-domains = <&sysc R8A7795_PD_CA53_CPU3>; 123 - next-level-cache = <&L2_CA53>; 124 - enable-method = "psci"; 125 - clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 126 - operating-points-v2 = <&cluster1_opp>; 127 - }; 128 - 129 - L2_CA57: cache-controller-0 { 130 - compatible = "cache"; 131 - power-domains = <&sysc R8A7795_PD_CA57_SCU>; 132 - cache-unified; 133 - cache-level = <2>; 134 - }; 135 - 136 - L2_CA53: cache-controller-1 { 137 - compatible = "cache"; 138 - power-domains = <&sysc R8A7795_PD_CA53_SCU>; 139 - cache-unified; 140 - cache-level = <2>; 141 - }; 142 - }; 143 - 144 - extal_clk: extal { 145 - compatible = "fixed-clock"; 146 - #clock-cells = <0>; 147 - /* This value must be overridden by the board */ 148 - clock-frequency = <0>; 149 - }; 150 - 151 - extalr_clk: extalr { 152 - compatible = "fixed-clock"; 153 - #clock-cells = <0>; 154 - /* This value must be overridden by the board */ 155 - clock-frequency = <0>; 156 - }; 157 - 158 33 /* 159 34 * The external audio clocks are configured as 0 Hz fixed frequency 160 35 * clocks by default. ··· 115 240 }; 116 241 }; 117 242 243 + cpus { 244 + #address-cells = <1>; 245 + #size-cells = <0>; 246 + 247 + a57_0: cpu@0 { 248 + compatible = "arm,cortex-a57", "arm,armv8"; 249 + reg = <0x0>; 250 + device_type = "cpu"; 251 + power-domains = <&sysc R8A7795_PD_CA57_CPU0>; 252 + next-level-cache = <&L2_CA57>; 253 + enable-method = "psci"; 254 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 255 + operating-points-v2 = <&cluster0_opp>; 256 + #cooling-cells = <2>; 257 + }; 258 + 259 + a57_1: cpu@1 { 260 + compatible = "arm,cortex-a57", "arm,armv8"; 261 + reg = <0x1>; 262 + device_type = "cpu"; 263 + power-domains = <&sysc R8A7795_PD_CA57_CPU1>; 264 + next-level-cache = <&L2_CA57>; 265 + enable-method = "psci"; 266 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 267 + operating-points-v2 = <&cluster0_opp>; 268 + #cooling-cells = <2>; 269 + }; 270 + 271 + a57_2: cpu@2 { 272 + compatible = "arm,cortex-a57", "arm,armv8"; 273 + reg = <0x2>; 274 + device_type = "cpu"; 275 + power-domains = <&sysc R8A7795_PD_CA57_CPU2>; 276 + next-level-cache = <&L2_CA57>; 277 + enable-method = "psci"; 278 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 279 + operating-points-v2 = <&cluster0_opp>; 280 + #cooling-cells = <2>; 281 + }; 282 + 283 + a57_3: cpu@3 { 284 + compatible = "arm,cortex-a57", "arm,armv8"; 285 + reg = <0x3>; 286 + device_type = "cpu"; 287 + power-domains = <&sysc R8A7795_PD_CA57_CPU3>; 288 + next-level-cache = <&L2_CA57>; 289 + enable-method = "psci"; 290 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 291 + operating-points-v2 = <&cluster0_opp>; 292 + #cooling-cells = <2>; 293 + }; 294 + 295 + a53_0: cpu@100 { 296 + compatible = "arm,cortex-a53", "arm,armv8"; 297 + reg = <0x100>; 298 + device_type = "cpu"; 299 + power-domains = <&sysc R8A7795_PD_CA53_CPU0>; 300 + next-level-cache = <&L2_CA53>; 301 + enable-method = "psci"; 302 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 303 + operating-points-v2 = <&cluster1_opp>; 304 + }; 305 + 306 + a53_1: cpu@101 { 307 + compatible = "arm,cortex-a53", "arm,armv8"; 308 + reg = <0x101>; 309 + device_type = "cpu"; 310 + power-domains = <&sysc R8A7795_PD_CA53_CPU1>; 311 + next-level-cache = <&L2_CA53>; 312 + enable-method = "psci"; 313 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 314 + operating-points-v2 = <&cluster1_opp>; 315 + }; 316 + 317 + a53_2: cpu@102 { 318 + compatible = "arm,cortex-a53", "arm,armv8"; 319 + reg = <0x102>; 320 + device_type = "cpu"; 321 + power-domains = <&sysc R8A7795_PD_CA53_CPU2>; 322 + next-level-cache = <&L2_CA53>; 323 + enable-method = "psci"; 324 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 325 + operating-points-v2 = <&cluster1_opp>; 326 + }; 327 + 328 + a53_3: cpu@103 { 329 + compatible = "arm,cortex-a53", "arm,armv8"; 330 + reg = <0x103>; 331 + device_type = "cpu"; 332 + power-domains = <&sysc R8A7795_PD_CA53_CPU3>; 333 + next-level-cache = <&L2_CA53>; 334 + enable-method = "psci"; 335 + clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 336 + operating-points-v2 = <&cluster1_opp>; 337 + }; 338 + 339 + L2_CA57: cache-controller-0 { 340 + compatible = "cache"; 341 + power-domains = <&sysc R8A7795_PD_CA57_SCU>; 342 + cache-unified; 343 + cache-level = <2>; 344 + }; 345 + 346 + L2_CA53: cache-controller-1 { 347 + compatible = "cache"; 348 + power-domains = <&sysc R8A7795_PD_CA53_SCU>; 349 + cache-unified; 350 + cache-level = <2>; 351 + }; 352 + }; 353 + 354 + extal_clk: extal { 355 + compatible = "fixed-clock"; 356 + #clock-cells = <0>; 357 + /* This value must be overridden by the board */ 358 + clock-frequency = <0>; 359 + }; 360 + 361 + extalr_clk: extalr { 362 + compatible = "fixed-clock"; 363 + #clock-cells = <0>; 364 + /* This value must be overridden by the board */ 365 + clock-frequency = <0>; 366 + }; 367 + 118 368 /* External PCIe clock - can be overridden by the board */ 119 369 pcie_bus_clk: pcie_bus { 120 370 compatible = "fixed-clock"; 121 371 #clock-cells = <0>; 122 372 clock-frequency = <0>; 123 - }; 124 - 125 - pmu_a57 { 126 - compatible = "arm,cortex-a57-pmu"; 127 - interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 128 - <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 129 - <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 130 - <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 131 - interrupt-affinity = <&a57_0>, 132 - <&a57_1>, 133 - <&a57_2>, 134 - <&a57_3>; 135 373 }; 136 374 137 375 pmu_a53 { ··· 257 269 <&a53_1>, 258 270 <&a53_2>, 259 271 <&a53_3>; 272 + }; 273 + 274 + pmu_a57 { 275 + compatible = "arm,cortex-a57-pmu"; 276 + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 277 + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 278 + <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 279 + <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 280 + interrupt-affinity = <&a57_0>, 281 + <&a57_1>, 282 + <&a57_2>, 283 + <&a57_3>; 260 284 }; 261 285 262 286 psci { ··· 290 290 #address-cells = <2>; 291 291 #size-cells = <2>; 292 292 ranges; 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 293 311 294 wdt0: watchdog@e6020000 { 312 295 compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; ··· 420 437 resets = <&cpg 905>; 421 438 }; 422 439 440 + pfc: pin-controller@e6060000 { 441 + compatible = "renesas,pfc-r8a7795"; 442 + reg = <0 0xe6060000 0 0x50c>; 443 + }; 444 + 423 445 cpg: clock-controller@e6150000 { 424 446 compatible = "renesas,r8a7795-cpg-mssr"; 425 447 reg = <0 0xe6150000 0 0x1000>; ··· 440 452 reg = <0 0xe6160000 0 0x0200>; 441 453 }; 442 454 443 - prr: chipid@fff00044 { 444 - compatible = "renesas,prr"; 445 - reg = <0 0xfff00044 0 4>; 446 - }; 447 - 448 455 sysc: system-controller@e6180000 { 449 456 compatible = "renesas,r8a7795-sysc"; 450 457 reg = <0 0xe6180000 0 0x0400>; 451 458 #power-domain-cells = <1>; 452 459 }; 453 460 454 - pfc: pin-controller@e6060000 { 455 - compatible = "renesas,pfc-r8a7795"; 456 - reg = <0 0xe6060000 0 0x50c>; 461 + tsc: thermal@e6198000 { 462 + compatible = "renesas,r8a7795-thermal"; 463 + reg = <0 0xe6198000 0 0x100>, 464 + <0 0xe61a0000 0 0x100>, 465 + <0 0xe61a8000 0 0x100>; 466 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 467 + <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 468 + <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 469 + clocks = <&cpg CPG_MOD 522>; 470 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 471 + resets = <&cpg 522>; 472 + #thermal-sensor-cells = <1>; 473 + status = "okay"; 457 474 }; 458 475 459 476 intc_ex: interrupt-controller@e61c0000 { ··· 477 484 resets = <&cpg 407>; 478 485 }; 479 486 480 - ipmmu_vi0: mmu@febd0000 { 481 - compatible = "renesas,ipmmu-r8a7795"; 482 - reg = <0 0xfebd0000 0 0x1000>; 483 - renesas,ipmmu-main = <&ipmmu_mm 14>; 487 + i2c0: i2c@e6500000 { 488 + #address-cells = <1>; 489 + #size-cells = <0>; 490 + compatible = "renesas,i2c-r8a7795", 491 + "renesas,rcar-gen3-i2c"; 492 + reg = <0 0xe6500000 0 0x40>; 493 + interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 494 + clocks = <&cpg CPG_MOD 931>; 484 495 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 485 - #iommu-cells = <1>; 486 - }; 487 - 488 - ipmmu_vi1: mmu@febe0000 { 489 - compatible = "renesas,ipmmu-r8a7795"; 490 - reg = <0 0xfebe0000 0 0x1000>; 491 - renesas,ipmmu-main = <&ipmmu_mm 15>; 492 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 493 - #iommu-cells = <1>; 496 + resets = <&cpg 931>; 497 + dmas = <&dmac1 0x91>, <&dmac1 0x90>, 498 + <&dmac2 0x91>, <&dmac2 0x90>; 499 + dma-names = "tx", "rx", "tx", "rx"; 500 + i2c-scl-internal-delay-ns = <110>; 494 501 status = "disabled"; 495 502 }; 496 503 497 - ipmmu_vp0: mmu@fe990000 { 498 - compatible = "renesas,ipmmu-r8a7795"; 499 - reg = <0 0xfe990000 0 0x1000>; 500 - renesas,ipmmu-main = <&ipmmu_mm 16>; 501 - power-domains = <&sysc R8A7795_PD_A3VP>; 502 - #iommu-cells = <1>; 503 - status = "disabled"; 504 - }; 505 - 506 - ipmmu_vp1: mmu@fe980000 { 507 - compatible = "renesas,ipmmu-r8a7795"; 508 - reg = <0 0xfe980000 0 0x1000>; 509 - renesas,ipmmu-main = <&ipmmu_mm 17>; 510 - power-domains = <&sysc R8A7795_PD_A3VP>; 511 - #iommu-cells = <1>; 512 - }; 513 - 514 - ipmmu_vc0: mmu@fe6b0000 { 515 - compatible = "renesas,ipmmu-r8a7795"; 516 - reg = <0 0xfe6b0000 0 0x1000>; 517 - renesas,ipmmu-main = <&ipmmu_mm 12>; 518 - power-domains = <&sysc R8A7795_PD_A3VC>; 519 - #iommu-cells = <1>; 520 - status = "disabled"; 521 - }; 522 - 523 - ipmmu_vc1: mmu@fe6f0000 { 524 - compatible = "renesas,ipmmu-r8a7795"; 525 - reg = <0 0xfe6f0000 0 0x1000>; 526 - renesas,ipmmu-main = <&ipmmu_mm 13>; 527 - power-domains = <&sysc R8A7795_PD_A3VC>; 528 - #iommu-cells = <1>; 529 - status = "disabled"; 530 - }; 531 - 532 - ipmmu_pv0: mmu@fd800000 { 533 - compatible = "renesas,ipmmu-r8a7795"; 534 - reg = <0 0xfd800000 0 0x1000>; 535 - renesas,ipmmu-main = <&ipmmu_mm 6>; 504 + i2c1: i2c@e6508000 { 505 + #address-cells = <1>; 506 + #size-cells = <0>; 507 + compatible = "renesas,i2c-r8a7795", 508 + "renesas,rcar-gen3-i2c"; 509 + reg = <0 0xe6508000 0 0x40>; 510 + interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 511 + clocks = <&cpg CPG_MOD 930>; 536 512 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 537 - #iommu-cells = <1>; 513 + resets = <&cpg 930>; 514 + dmas = <&dmac1 0x93>, <&dmac1 0x92>, 515 + <&dmac2 0x93>, <&dmac2 0x92>; 516 + dma-names = "tx", "rx", "tx", "rx"; 517 + i2c-scl-internal-delay-ns = <6>; 538 518 status = "disabled"; 539 519 }; 540 520 541 - ipmmu_pv1: mmu@fd950000 { 542 - compatible = "renesas,ipmmu-r8a7795"; 543 - reg = <0 0xfd950000 0 0x1000>; 544 - renesas,ipmmu-main = <&ipmmu_mm 7>; 521 + i2c2: i2c@e6510000 { 522 + #address-cells = <1>; 523 + #size-cells = <0>; 524 + compatible = "renesas,i2c-r8a7795", 525 + "renesas,rcar-gen3-i2c"; 526 + reg = <0 0xe6510000 0 0x40>; 527 + interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 528 + clocks = <&cpg CPG_MOD 929>; 545 529 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 546 - #iommu-cells = <1>; 530 + resets = <&cpg 929>; 531 + dmas = <&dmac1 0x95>, <&dmac1 0x94>, 532 + <&dmac2 0x95>, <&dmac2 0x94>; 533 + dma-names = "tx", "rx", "tx", "rx"; 534 + i2c-scl-internal-delay-ns = <6>; 547 535 status = "disabled"; 548 536 }; 549 537 550 - ipmmu_pv2: mmu@fd960000 { 551 - compatible = "renesas,ipmmu-r8a7795"; 552 - reg = <0 0xfd960000 0 0x1000>; 553 - renesas,ipmmu-main = <&ipmmu_mm 8>; 538 + i2c3: i2c@e66d0000 { 539 + #address-cells = <1>; 540 + #size-cells = <0>; 541 + compatible = "renesas,i2c-r8a7795", 542 + "renesas,rcar-gen3-i2c"; 543 + reg = <0 0xe66d0000 0 0x40>; 544 + interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 545 + clocks = <&cpg CPG_MOD 928>; 554 546 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 555 - #iommu-cells = <1>; 547 + resets = <&cpg 928>; 548 + dmas = <&dmac0 0x97>, <&dmac0 0x96>; 549 + dma-names = "tx", "rx"; 550 + i2c-scl-internal-delay-ns = <110>; 556 551 status = "disabled"; 557 552 }; 558 553 559 - ipmmu_pv3: mmu@fd970000 { 560 - compatible = "renesas,ipmmu-r8a7795"; 561 - reg = <0 0xfd970000 0 0x1000>; 562 - renesas,ipmmu-main = <&ipmmu_mm 9>; 554 + i2c4: i2c@e66d8000 { 555 + #address-cells = <1>; 556 + #size-cells = <0>; 557 + compatible = "renesas,i2c-r8a7795", 558 + "renesas,rcar-gen3-i2c"; 559 + reg = <0 0xe66d8000 0 0x40>; 560 + interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 561 + clocks = <&cpg CPG_MOD 927>; 563 562 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 564 - #iommu-cells = <1>; 563 + resets = <&cpg 927>; 564 + dmas = <&dmac0 0x99>, <&dmac0 0x98>; 565 + dma-names = "tx", "rx"; 566 + i2c-scl-internal-delay-ns = <110>; 565 567 status = "disabled"; 566 568 }; 567 569 568 - ipmmu_ir: mmu@ff8b0000 { 569 - compatible = "renesas,ipmmu-r8a7795"; 570 - reg = <0 0xff8b0000 0 0x1000>; 571 - renesas,ipmmu-main = <&ipmmu_mm 3>; 572 - power-domains = <&sysc R8A7795_PD_A3IR>; 573 - #iommu-cells = <1>; 570 + i2c5: i2c@e66e0000 { 571 + #address-cells = <1>; 572 + #size-cells = <0>; 573 + compatible = "renesas,i2c-r8a7795", 574 + "renesas,rcar-gen3-i2c"; 575 + reg = <0 0xe66e0000 0 0x40>; 576 + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 577 + clocks = <&cpg CPG_MOD 919>; 578 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 579 + resets = <&cpg 919>; 580 + dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; 581 + dma-names = "tx", "rx"; 582 + i2c-scl-internal-delay-ns = <110>; 574 583 status = "disabled"; 575 584 }; 576 585 577 - ipmmu_hc: mmu@e6570000 { 578 - compatible = "renesas,ipmmu-r8a7795"; 579 - reg = <0 0xe6570000 0 0x1000>; 580 - renesas,ipmmu-main = <&ipmmu_mm 2>; 586 + i2c6: i2c@e66e8000 { 587 + #address-cells = <1>; 588 + #size-cells = <0>; 589 + compatible = "renesas,i2c-r8a7795", 590 + "renesas,rcar-gen3-i2c"; 591 + reg = <0 0xe66e8000 0 0x40>; 592 + interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 593 + clocks = <&cpg CPG_MOD 918>; 581 594 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 582 - #iommu-cells = <1>; 595 + resets = <&cpg 918>; 596 + dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; 597 + dma-names = "tx", "rx"; 598 + i2c-scl-internal-delay-ns = <6>; 583 599 status = "disabled"; 584 600 }; 585 601 586 - ipmmu_rt: mmu@ffc80000 { 587 - compatible = "renesas,ipmmu-r8a7795"; 588 - reg = <0 0xffc80000 0 0x1000>; 589 - renesas,ipmmu-main = <&ipmmu_mm 10>; 602 + i2c_dvfs: i2c@e60b0000 { 603 + #address-cells = <1>; 604 + #size-cells = <0>; 605 + compatible = "renesas,iic-r8a7795", 606 + "renesas,rcar-gen3-iic", 607 + "renesas,rmobile-iic"; 608 + reg = <0 0xe60b0000 0 0x425>; 609 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 610 + clocks = <&cpg CPG_MOD 926>; 590 611 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 591 - #iommu-cells = <1>; 612 + resets = <&cpg 926>; 613 + dmas = <&dmac0 0x11>, <&dmac0 0x10>; 614 + dma-names = "tx", "rx"; 592 615 status = "disabled"; 593 616 }; 594 617 595 - ipmmu_mp0: mmu@ec670000 { 596 - compatible = "renesas,ipmmu-r8a7795"; 597 - reg = <0 0xec670000 0 0x1000>; 598 - renesas,ipmmu-main = <&ipmmu_mm 4>; 618 + hscif0: serial@e6540000 { 619 + compatible = "renesas,hscif-r8a7795", 620 + "renesas,rcar-gen3-hscif", 621 + "renesas,hscif"; 622 + reg = <0 0xe6540000 0 96>; 623 + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 624 + clocks = <&cpg CPG_MOD 520>, 625 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 626 + <&scif_clk>; 627 + clock-names = "fck", "brg_int", "scif_clk"; 628 + dmas = <&dmac1 0x31>, <&dmac1 0x30>, 629 + <&dmac2 0x31>, <&dmac2 0x30>; 630 + dma-names = "tx", "rx", "tx", "rx"; 599 631 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 600 - #iommu-cells = <1>; 632 + resets = <&cpg 520>; 601 633 status = "disabled"; 602 634 }; 603 635 604 - ipmmu_ds0: mmu@e6740000 { 605 - compatible = "renesas,ipmmu-r8a7795"; 606 - reg = <0 0xe6740000 0 0x1000>; 607 - renesas,ipmmu-main = <&ipmmu_mm 0>; 636 + hscif1: serial@e6550000 { 637 + compatible = "renesas,hscif-r8a7795", 638 + "renesas,rcar-gen3-hscif", 639 + "renesas,hscif"; 640 + reg = <0 0xe6550000 0 96>; 641 + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 642 + clocks = <&cpg CPG_MOD 519>, 643 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 644 + <&scif_clk>; 645 + clock-names = "fck", "brg_int", "scif_clk"; 646 + dmas = <&dmac1 0x33>, <&dmac1 0x32>, 647 + <&dmac2 0x33>, <&dmac2 0x32>; 648 + dma-names = "tx", "rx", "tx", "rx"; 608 649 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 609 - #iommu-cells = <1>; 650 + resets = <&cpg 519>; 651 + status = "disabled"; 610 652 }; 611 653 612 - ipmmu_ds1: mmu@e7740000 { 613 - compatible = "renesas,ipmmu-r8a7795"; 614 - reg = <0 0xe7740000 0 0x1000>; 615 - renesas,ipmmu-main = <&ipmmu_mm 1>; 654 + hscif2: serial@e6560000 { 655 + compatible = "renesas,hscif-r8a7795", 656 + "renesas,rcar-gen3-hscif", 657 + "renesas,hscif"; 658 + reg = <0 0xe6560000 0 96>; 659 + interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 660 + clocks = <&cpg CPG_MOD 518>, 661 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 662 + <&scif_clk>; 663 + clock-names = "fck", "brg_int", "scif_clk"; 664 + dmas = <&dmac1 0x35>, <&dmac1 0x34>, 665 + <&dmac2 0x35>, <&dmac2 0x34>; 666 + dma-names = "tx", "rx"; 616 667 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 617 - #iommu-cells = <1>; 668 + resets = <&cpg 518>; 669 + status = "disabled"; 618 670 }; 619 671 620 - ipmmu_mm: mmu@e67b0000 { 621 - compatible = "renesas,ipmmu-r8a7795"; 622 - reg = <0 0xe67b0000 0 0x1000>; 623 - interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 624 - <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 672 + hscif3: serial@e66a0000 { 673 + compatible = "renesas,hscif-r8a7795", 674 + "renesas,rcar-gen3-hscif", 675 + "renesas,hscif"; 676 + reg = <0 0xe66a0000 0 96>; 677 + interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 678 + clocks = <&cpg CPG_MOD 517>, 679 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 680 + <&scif_clk>; 681 + clock-names = "fck", "brg_int", "scif_clk"; 682 + dmas = <&dmac0 0x37>, <&dmac0 0x36>; 683 + dma-names = "tx", "rx"; 625 684 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 626 - #iommu-cells = <1>; 685 + resets = <&cpg 517>; 686 + status = "disabled"; 687 + }; 688 + 689 + hscif4: serial@e66b0000 { 690 + compatible = "renesas,hscif-r8a7795", 691 + "renesas,rcar-gen3-hscif", 692 + "renesas,hscif"; 693 + reg = <0 0xe66b0000 0 96>; 694 + interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 695 + clocks = <&cpg CPG_MOD 516>, 696 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 697 + <&scif_clk>; 698 + clock-names = "fck", "brg_int", "scif_clk"; 699 + dmas = <&dmac0 0x39>, <&dmac0 0x38>; 700 + dma-names = "tx", "rx"; 701 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 702 + resets = <&cpg 516>; 703 + status = "disabled"; 704 + }; 705 + 706 + hsusb: usb@e6590000 { 707 + compatible = "renesas,usbhs-r8a7795", 708 + "renesas,rcar-gen3-usbhs"; 709 + reg = <0 0xe6590000 0 0x100>; 710 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 711 + clocks = <&cpg CPG_MOD 704>; 712 + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 713 + <&usb_dmac1 0>, <&usb_dmac1 1>; 714 + dma-names = "ch0", "ch1", "ch2", "ch3"; 715 + renesas,buswait = <11>; 716 + phys = <&usb2_phy0>; 717 + phy-names = "usb"; 718 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 719 + resets = <&cpg 704>; 720 + status = "disabled"; 721 + }; 722 + 723 + hsusb3: usb@e659c000 { 724 + compatible = "renesas,usbhs-r8a7795", 725 + "renesas,rcar-gen3-usbhs"; 726 + reg = <0 0xe659c000 0 0x100>; 727 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 728 + clocks = <&cpg CPG_MOD 705>; 729 + dmas = <&usb_dmac2 0>, <&usb_dmac2 1>, 730 + <&usb_dmac3 0>, <&usb_dmac3 1>; 731 + dma-names = "ch0", "ch1", "ch2", "ch3"; 732 + renesas,buswait = <11>; 733 + phys = <&usb2_phy3>; 734 + phy-names = "usb"; 735 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 736 + resets = <&cpg 705>; 737 + status = "disabled"; 738 + }; 739 + 740 + usb_dmac0: dma-controller@e65a0000 { 741 + compatible = "renesas,r8a7795-usb-dmac", 742 + "renesas,usb-dmac"; 743 + reg = <0 0xe65a0000 0 0x100>; 744 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 745 + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 746 + interrupt-names = "ch0", "ch1"; 747 + clocks = <&cpg CPG_MOD 330>; 748 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 749 + resets = <&cpg 330>; 750 + #dma-cells = <1>; 751 + dma-channels = <2>; 752 + }; 753 + 754 + usb_dmac1: dma-controller@e65b0000 { 755 + compatible = "renesas,r8a7795-usb-dmac", 756 + "renesas,usb-dmac"; 757 + reg = <0 0xe65b0000 0 0x100>; 758 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 759 + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 760 + interrupt-names = "ch0", "ch1"; 761 + clocks = <&cpg CPG_MOD 331>; 762 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 763 + resets = <&cpg 331>; 764 + #dma-cells = <1>; 765 + dma-channels = <2>; 766 + }; 767 + 768 + usb_dmac2: dma-controller@e6460000 { 769 + compatible = "renesas,r8a7795-usb-dmac", 770 + "renesas,usb-dmac"; 771 + reg = <0 0xe6460000 0 0x100>; 772 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 773 + GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 774 + interrupt-names = "ch0", "ch1"; 775 + clocks = <&cpg CPG_MOD 326>; 776 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 777 + resets = <&cpg 326>; 778 + #dma-cells = <1>; 779 + dma-channels = <2>; 780 + }; 781 + 782 + usb_dmac3: dma-controller@e6470000 { 783 + compatible = "renesas,r8a7795-usb-dmac", 784 + "renesas,usb-dmac"; 785 + reg = <0 0xe6470000 0 0x100>; 786 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 787 + GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 788 + interrupt-names = "ch0", "ch1"; 789 + clocks = <&cpg CPG_MOD 329>; 790 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 791 + resets = <&cpg 329>; 792 + #dma-cells = <1>; 793 + dma-channels = <2>; 794 + }; 795 + 796 + usb3_phy0: usb-phy@e65ee000 { 797 + compatible = "renesas,r8a7795-usb3-phy", 798 + "renesas,rcar-gen3-usb3-phy"; 799 + reg = <0 0xe65ee000 0 0x90>; 800 + clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, 801 + <&usb_extal_clk>; 802 + clock-names = "usb3-if", "usb3s_clk", "usb_extal"; 803 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 804 + resets = <&cpg 328>; 805 + #phy-cells = <0>; 806 + status = "disabled"; 627 807 }; 628 808 629 809 dmac0: dma-controller@e6700000 { ··· 925 759 <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; 926 760 }; 927 761 928 - audma0: dma-controller@ec700000 { 929 - compatible = "renesas,dmac-r8a7795", 930 - "renesas,rcar-dmac"; 931 - reg = <0 0xec700000 0 0x10000>; 932 - interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 933 - GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 934 - GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 935 - GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 936 - GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 937 - GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 938 - GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 939 - GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 940 - GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 941 - GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 942 - GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 943 - GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 944 - GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 945 - GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 946 - GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 947 - GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 948 - GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; 949 - interrupt-names = "error", 950 - "ch0", "ch1", "ch2", "ch3", 951 - "ch4", "ch5", "ch6", "ch7", 952 - "ch8", "ch9", "ch10", "ch11", 953 - "ch12", "ch13", "ch14", "ch15"; 954 - clocks = <&cpg CPG_MOD 502>; 955 - clock-names = "fck"; 762 + ipmmu_ds0: mmu@e6740000 { 763 + compatible = "renesas,ipmmu-r8a7795"; 764 + reg = <0 0xe6740000 0 0x1000>; 765 + renesas,ipmmu-main = <&ipmmu_mm 0>; 956 766 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 957 - resets = <&cpg 502>; 958 - #dma-cells = <1>; 959 - dma-channels = <16>; 960 - iommus = <&ipmmu_mp0 0>, <&ipmmu_mp0 1>, 961 - <&ipmmu_mp0 2>, <&ipmmu_mp0 3>, 962 - <&ipmmu_mp0 4>, <&ipmmu_mp0 5>, 963 - <&ipmmu_mp0 6>, <&ipmmu_mp0 7>, 964 - <&ipmmu_mp0 8>, <&ipmmu_mp0 9>, 965 - <&ipmmu_mp0 10>, <&ipmmu_mp0 11>, 966 - <&ipmmu_mp0 12>, <&ipmmu_mp0 13>, 967 - <&ipmmu_mp0 14>, <&ipmmu_mp0 15>; 767 + #iommu-cells = <1>; 968 768 }; 969 769 970 - audma1: dma-controller@ec720000 { 971 - compatible = "renesas,dmac-r8a7795", 972 - "renesas,rcar-dmac"; 973 - reg = <0 0xec720000 0 0x10000>; 974 - interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 975 - GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 976 - GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 977 - GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 978 - GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 979 - GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 980 - GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 981 - GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 982 - GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 983 - GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 984 - GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 985 - GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 986 - GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 987 - GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 988 - GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH 989 - GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 990 - GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; 991 - interrupt-names = "error", 992 - "ch0", "ch1", "ch2", "ch3", 993 - "ch4", "ch5", "ch6", "ch7", 994 - "ch8", "ch9", "ch10", "ch11", 995 - "ch12", "ch13", "ch14", "ch15"; 996 - clocks = <&cpg CPG_MOD 501>; 997 - clock-names = "fck"; 770 + ipmmu_ds1: mmu@e7740000 { 771 + compatible = "renesas,ipmmu-r8a7795"; 772 + reg = <0 0xe7740000 0 0x1000>; 773 + renesas,ipmmu-main = <&ipmmu_mm 1>; 998 774 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 999 - resets = <&cpg 501>; 1000 - #dma-cells = <1>; 1001 - dma-channels = <16>; 1002 - iommus = <&ipmmu_mp0 16>, <&ipmmu_mp0 17>, 1003 - <&ipmmu_mp0 18>, <&ipmmu_mp0 19>, 1004 - <&ipmmu_mp0 20>, <&ipmmu_mp0 21>, 1005 - <&ipmmu_mp0 22>, <&ipmmu_mp0 23>, 1006 - <&ipmmu_mp0 24>, <&ipmmu_mp0 25>, 1007 - <&ipmmu_mp0 26>, <&ipmmu_mp0 27>, 1008 - <&ipmmu_mp0 28>, <&ipmmu_mp0 29>, 1009 - <&ipmmu_mp0 30>, <&ipmmu_mp0 31>; 775 + #iommu-cells = <1>; 776 + }; 777 + 778 + ipmmu_hc: mmu@e6570000 { 779 + compatible = "renesas,ipmmu-r8a7795"; 780 + reg = <0 0xe6570000 0 0x1000>; 781 + renesas,ipmmu-main = <&ipmmu_mm 2>; 782 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 783 + #iommu-cells = <1>; 784 + }; 785 + 786 + ipmmu_ir: mmu@ff8b0000 { 787 + compatible = "renesas,ipmmu-r8a7795"; 788 + reg = <0 0xff8b0000 0 0x1000>; 789 + renesas,ipmmu-main = <&ipmmu_mm 3>; 790 + power-domains = <&sysc R8A7795_PD_A3IR>; 791 + #iommu-cells = <1>; 792 + }; 793 + 794 + ipmmu_mm: mmu@e67b0000 { 795 + compatible = "renesas,ipmmu-r8a7795"; 796 + reg = <0 0xe67b0000 0 0x1000>; 797 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 798 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 799 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 800 + #iommu-cells = <1>; 801 + }; 802 + 803 + ipmmu_mp0: mmu@ec670000 { 804 + compatible = "renesas,ipmmu-r8a7795"; 805 + reg = <0 0xec670000 0 0x1000>; 806 + renesas,ipmmu-main = <&ipmmu_mm 4>; 807 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 808 + #iommu-cells = <1>; 809 + }; 810 + 811 + ipmmu_pv0: mmu@fd800000 { 812 + compatible = "renesas,ipmmu-r8a7795"; 813 + reg = <0 0xfd800000 0 0x1000>; 814 + renesas,ipmmu-main = <&ipmmu_mm 6>; 815 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 816 + #iommu-cells = <1>; 817 + }; 818 + 819 + ipmmu_pv1: mmu@fd950000 { 820 + compatible = "renesas,ipmmu-r8a7795"; 821 + reg = <0 0xfd950000 0 0x1000>; 822 + renesas,ipmmu-main = <&ipmmu_mm 7>; 823 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 824 + #iommu-cells = <1>; 825 + }; 826 + 827 + ipmmu_pv2: mmu@fd960000 { 828 + compatible = "renesas,ipmmu-r8a7795"; 829 + reg = <0 0xfd960000 0 0x1000>; 830 + renesas,ipmmu-main = <&ipmmu_mm 8>; 831 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 832 + #iommu-cells = <1>; 833 + }; 834 + 835 + ipmmu_pv3: mmu@fd970000 { 836 + compatible = "renesas,ipmmu-r8a7795"; 837 + reg = <0 0xfd970000 0 0x1000>; 838 + renesas,ipmmu-main = <&ipmmu_mm 9>; 839 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 840 + #iommu-cells = <1>; 841 + }; 842 + 843 + ipmmu_rt: mmu@ffc80000 { 844 + compatible = "renesas,ipmmu-r8a7795"; 845 + reg = <0 0xffc80000 0 0x1000>; 846 + renesas,ipmmu-main = <&ipmmu_mm 10>; 847 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 848 + #iommu-cells = <1>; 849 + }; 850 + 851 + ipmmu_vc0: mmu@fe6b0000 { 852 + compatible = "renesas,ipmmu-r8a7795"; 853 + reg = <0 0xfe6b0000 0 0x1000>; 854 + renesas,ipmmu-main = <&ipmmu_mm 12>; 855 + power-domains = <&sysc R8A7795_PD_A3VC>; 856 + #iommu-cells = <1>; 857 + }; 858 + 859 + ipmmu_vc1: mmu@fe6f0000 { 860 + compatible = "renesas,ipmmu-r8a7795"; 861 + reg = <0 0xfe6f0000 0 0x1000>; 862 + renesas,ipmmu-main = <&ipmmu_mm 13>; 863 + power-domains = <&sysc R8A7795_PD_A3VC>; 864 + #iommu-cells = <1>; 865 + }; 866 + 867 + ipmmu_vi0: mmu@febd0000 { 868 + compatible = "renesas,ipmmu-r8a7795"; 869 + reg = <0 0xfebd0000 0 0x1000>; 870 + renesas,ipmmu-main = <&ipmmu_mm 14>; 871 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 872 + #iommu-cells = <1>; 873 + }; 874 + 875 + ipmmu_vi1: mmu@febe0000 { 876 + compatible = "renesas,ipmmu-r8a7795"; 877 + reg = <0 0xfebe0000 0 0x1000>; 878 + renesas,ipmmu-main = <&ipmmu_mm 15>; 879 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 880 + #iommu-cells = <1>; 881 + }; 882 + 883 + ipmmu_vp0: mmu@fe990000 { 884 + compatible = "renesas,ipmmu-r8a7795"; 885 + reg = <0 0xfe990000 0 0x1000>; 886 + renesas,ipmmu-main = <&ipmmu_mm 16>; 887 + power-domains = <&sysc R8A7795_PD_A3VP>; 888 + #iommu-cells = <1>; 889 + }; 890 + 891 + ipmmu_vp1: mmu@fe980000 { 892 + compatible = "renesas,ipmmu-r8a7795"; 893 + reg = <0 0xfe980000 0 0x1000>; 894 + renesas,ipmmu-main = <&ipmmu_mm 17>; 895 + power-domains = <&sysc R8A7795_PD_A3VP>; 896 + #iommu-cells = <1>; 1010 897 }; 1011 898 1012 899 avb: ethernet@e6800000 { ··· 1162 943 1163 944 channel1 { 1164 945 status = "disabled"; 946 + }; 947 + }; 948 + 949 + pwm0: pwm@e6e30000 { 950 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 951 + reg = <0 0xe6e30000 0 0x8>; 952 + clocks = <&cpg CPG_MOD 523>; 953 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 954 + resets = <&cpg 523>; 955 + #pwm-cells = <2>; 956 + status = "disabled"; 957 + }; 958 + 959 + pwm1: pwm@e6e31000 { 960 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 961 + reg = <0 0xe6e31000 0 0x8>; 962 + clocks = <&cpg CPG_MOD 523>; 963 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 964 + resets = <&cpg 523>; 965 + #pwm-cells = <2>; 966 + status = "disabled"; 967 + }; 968 + 969 + pwm2: pwm@e6e32000 { 970 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 971 + reg = <0 0xe6e32000 0 0x8>; 972 + clocks = <&cpg CPG_MOD 523>; 973 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 974 + resets = <&cpg 523>; 975 + #pwm-cells = <2>; 976 + status = "disabled"; 977 + }; 978 + 979 + pwm3: pwm@e6e33000 { 980 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 981 + reg = <0 0xe6e33000 0 0x8>; 982 + clocks = <&cpg CPG_MOD 523>; 983 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 984 + resets = <&cpg 523>; 985 + #pwm-cells = <2>; 986 + status = "disabled"; 987 + }; 988 + 989 + pwm4: pwm@e6e34000 { 990 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 991 + reg = <0 0xe6e34000 0 0x8>; 992 + clocks = <&cpg CPG_MOD 523>; 993 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 994 + resets = <&cpg 523>; 995 + #pwm-cells = <2>; 996 + status = "disabled"; 997 + }; 998 + 999 + pwm5: pwm@e6e35000 { 1000 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 1001 + reg = <0 0xe6e35000 0 0x8>; 1002 + clocks = <&cpg CPG_MOD 523>; 1003 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1004 + resets = <&cpg 523>; 1005 + #pwm-cells = <2>; 1006 + status = "disabled"; 1007 + }; 1008 + 1009 + pwm6: pwm@e6e36000 { 1010 + compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 1011 + reg = <0 0xe6e36000 0 0x8>; 1012 + clocks = <&cpg CPG_MOD 523>; 1013 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1014 + resets = <&cpg 523>; 1015 + #pwm-cells = <2>; 1016 + status = "disabled"; 1017 + }; 1018 + 1019 + scif0: serial@e6e60000 { 1020 + compatible = "renesas,scif-r8a7795", 1021 + "renesas,rcar-gen3-scif", "renesas,scif"; 1022 + reg = <0 0xe6e60000 0 64>; 1023 + interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 1024 + clocks = <&cpg CPG_MOD 207>, 1025 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1026 + <&scif_clk>; 1027 + clock-names = "fck", "brg_int", "scif_clk"; 1028 + dmas = <&dmac1 0x51>, <&dmac1 0x50>, 1029 + <&dmac2 0x51>, <&dmac2 0x50>; 1030 + dma-names = "tx", "rx", "tx", "rx"; 1031 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1032 + resets = <&cpg 207>; 1033 + status = "disabled"; 1034 + }; 1035 + 1036 + scif1: serial@e6e68000 { 1037 + compatible = "renesas,scif-r8a7795", 1038 + "renesas,rcar-gen3-scif", "renesas,scif"; 1039 + reg = <0 0xe6e68000 0 64>; 1040 + interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 1041 + clocks = <&cpg CPG_MOD 206>, 1042 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1043 + <&scif_clk>; 1044 + clock-names = "fck", "brg_int", "scif_clk"; 1045 + dmas = <&dmac1 0x53>, <&dmac1 0x52>, 1046 + <&dmac2 0x53>, <&dmac2 0x52>; 1047 + dma-names = "tx", "rx", "tx", "rx"; 1048 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1049 + resets = <&cpg 206>; 1050 + status = "disabled"; 1051 + }; 1052 + 1053 + scif2: serial@e6e88000 { 1054 + compatible = "renesas,scif-r8a7795", 1055 + "renesas,rcar-gen3-scif", "renesas,scif"; 1056 + reg = <0 0xe6e88000 0 64>; 1057 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 1058 + clocks = <&cpg CPG_MOD 310>, 1059 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1060 + <&scif_clk>; 1061 + clock-names = "fck", "brg_int", "scif_clk"; 1062 + dmas = <&dmac1 0x13>, <&dmac1 0x12>, 1063 + <&dmac2 0x13>, <&dmac2 0x12>; 1064 + dma-names = "tx", "rx", "tx", "rx"; 1065 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1066 + resets = <&cpg 310>; 1067 + status = "disabled"; 1068 + }; 1069 + 1070 + scif3: serial@e6c50000 { 1071 + compatible = "renesas,scif-r8a7795", 1072 + "renesas,rcar-gen3-scif", "renesas,scif"; 1073 + reg = <0 0xe6c50000 0 64>; 1074 + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1075 + clocks = <&cpg CPG_MOD 204>, 1076 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1077 + <&scif_clk>; 1078 + clock-names = "fck", "brg_int", "scif_clk"; 1079 + dmas = <&dmac0 0x57>, <&dmac0 0x56>; 1080 + dma-names = "tx", "rx"; 1081 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1082 + resets = <&cpg 204>; 1083 + status = "disabled"; 1084 + }; 1085 + 1086 + scif4: serial@e6c40000 { 1087 + compatible = "renesas,scif-r8a7795", 1088 + "renesas,rcar-gen3-scif", "renesas,scif"; 1089 + reg = <0 0xe6c40000 0 64>; 1090 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1091 + clocks = <&cpg CPG_MOD 203>, 1092 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1093 + <&scif_clk>; 1094 + clock-names = "fck", "brg_int", "scif_clk"; 1095 + dmas = <&dmac0 0x59>, <&dmac0 0x58>; 1096 + dma-names = "tx", "rx"; 1097 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1098 + resets = <&cpg 203>; 1099 + status = "disabled"; 1100 + }; 1101 + 1102 + scif5: serial@e6f30000 { 1103 + compatible = "renesas,scif-r8a7795", 1104 + "renesas,rcar-gen3-scif", "renesas,scif"; 1105 + reg = <0 0xe6f30000 0 64>; 1106 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1107 + clocks = <&cpg CPG_MOD 202>, 1108 + <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1109 + <&scif_clk>; 1110 + clock-names = "fck", "brg_int", "scif_clk"; 1111 + dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, 1112 + <&dmac2 0x5b>, <&dmac2 0x5a>; 1113 + dma-names = "tx", "rx", "tx", "rx"; 1114 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1115 + resets = <&cpg 202>; 1116 + status = "disabled"; 1117 + }; 1118 + 1119 + msiof0: spi@e6e90000 { 1120 + compatible = "renesas,msiof-r8a7795", 1121 + "renesas,rcar-gen3-msiof"; 1122 + reg = <0 0xe6e90000 0 0x0064>; 1123 + interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1124 + clocks = <&cpg CPG_MOD 211>; 1125 + dmas = <&dmac1 0x41>, <&dmac1 0x40>, 1126 + <&dmac2 0x41>, <&dmac2 0x40>; 1127 + dma-names = "tx", "rx", "tx", "rx"; 1128 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1129 + resets = <&cpg 211>; 1130 + #address-cells = <1>; 1131 + #size-cells = <0>; 1132 + status = "disabled"; 1133 + }; 1134 + 1135 + msiof1: spi@e6ea0000 { 1136 + compatible = "renesas,msiof-r8a7795", 1137 + "renesas,rcar-gen3-msiof"; 1138 + reg = <0 0xe6ea0000 0 0x0064>; 1139 + interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1140 + clocks = <&cpg CPG_MOD 210>; 1141 + dmas = <&dmac1 0x43>, <&dmac1 0x42>, 1142 + <&dmac2 0x43>, <&dmac2 0x42>; 1143 + dma-names = "tx", "rx", "tx", "rx"; 1144 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1145 + resets = <&cpg 210>; 1146 + #address-cells = <1>; 1147 + #size-cells = <0>; 1148 + status = "disabled"; 1149 + }; 1150 + 1151 + msiof2: spi@e6c00000 { 1152 + compatible = "renesas,msiof-r8a7795", 1153 + "renesas,rcar-gen3-msiof"; 1154 + reg = <0 0xe6c00000 0 0x0064>; 1155 + interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1156 + clocks = <&cpg CPG_MOD 209>; 1157 + dmas = <&dmac0 0x45>, <&dmac0 0x44>; 1158 + dma-names = "tx", "rx"; 1159 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1160 + resets = <&cpg 209>; 1161 + #address-cells = <1>; 1162 + #size-cells = <0>; 1163 + status = "disabled"; 1164 + }; 1165 + 1166 + msiof3: spi@e6c10000 { 1167 + compatible = "renesas,msiof-r8a7795", 1168 + "renesas,rcar-gen3-msiof"; 1169 + reg = <0 0xe6c10000 0 0x0064>; 1170 + interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 1171 + clocks = <&cpg CPG_MOD 208>; 1172 + dmas = <&dmac0 0x47>, <&dmac0 0x46>; 1173 + dma-names = "tx", "rx"; 1174 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1175 + resets = <&cpg 208>; 1176 + #address-cells = <1>; 1177 + #size-cells = <0>; 1178 + status = "disabled"; 1179 + }; 1180 + 1181 + vin0: video@e6ef0000 { 1182 + compatible = "renesas,vin-r8a7795"; 1183 + reg = <0 0xe6ef0000 0 0x1000>; 1184 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 1185 + clocks = <&cpg CPG_MOD 811>; 1186 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1187 + resets = <&cpg 811>; 1188 + renesas,id = <0>; 1189 + status = "disabled"; 1190 + 1191 + ports { 1192 + #address-cells = <1>; 1193 + #size-cells = <0>; 1194 + 1195 + port@1 { 1196 + #address-cells = <1>; 1197 + #size-cells = <0>; 1198 + 1199 + reg = <1>; 1200 + 1201 + vin0csi20: endpoint@0 { 1202 + reg = <0>; 1203 + remote-endpoint= <&csi20vin0>; 1204 + }; 1205 + vin0csi40: endpoint@2 { 1206 + reg = <2>; 1207 + remote-endpoint= <&csi40vin0>; 1208 + }; 1209 + }; 1210 + }; 1211 + }; 1212 + 1213 + vin1: video@e6ef1000 { 1214 + compatible = "renesas,vin-r8a7795"; 1215 + reg = <0 0xe6ef1000 0 0x1000>; 1216 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 1217 + clocks = <&cpg CPG_MOD 810>; 1218 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1219 + resets = <&cpg 810>; 1220 + renesas,id = <1>; 1221 + status = "disabled"; 1222 + 1223 + ports { 1224 + #address-cells = <1>; 1225 + #size-cells = <0>; 1226 + 1227 + port@1 { 1228 + #address-cells = <1>; 1229 + #size-cells = <0>; 1230 + 1231 + reg = <1>; 1232 + 1233 + vin1csi20: endpoint@0 { 1234 + reg = <0>; 1235 + remote-endpoint= <&csi20vin1>; 1236 + }; 1237 + vin1csi40: endpoint@2 { 1238 + reg = <2>; 1239 + remote-endpoint= <&csi40vin1>; 1240 + }; 1241 + }; 1242 + }; 1243 + }; 1244 + 1245 + vin2: video@e6ef2000 { 1246 + compatible = "renesas,vin-r8a7795"; 1247 + reg = <0 0xe6ef2000 0 0x1000>; 1248 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 1249 + clocks = <&cpg CPG_MOD 809>; 1250 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1251 + resets = <&cpg 809>; 1252 + renesas,id = <2>; 1253 + status = "disabled"; 1254 + 1255 + ports { 1256 + #address-cells = <1>; 1257 + #size-cells = <0>; 1258 + 1259 + port@1 { 1260 + #address-cells = <1>; 1261 + #size-cells = <0>; 1262 + 1263 + reg = <1>; 1264 + 1265 + vin2csi20: endpoint@0 { 1266 + reg = <0>; 1267 + remote-endpoint= <&csi20vin2>; 1268 + }; 1269 + vin2csi40: endpoint@2 { 1270 + reg = <2>; 1271 + remote-endpoint= <&csi40vin2>; 1272 + }; 1273 + }; 1274 + }; 1275 + }; 1276 + 1277 + vin3: video@e6ef3000 { 1278 + compatible = "renesas,vin-r8a7795"; 1279 + reg = <0 0xe6ef3000 0 0x1000>; 1280 + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 1281 + clocks = <&cpg CPG_MOD 808>; 1282 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1283 + resets = <&cpg 808>; 1284 + renesas,id = <3>; 1285 + status = "disabled"; 1286 + 1287 + ports { 1288 + #address-cells = <1>; 1289 + #size-cells = <0>; 1290 + 1291 + port@1 { 1292 + #address-cells = <1>; 1293 + #size-cells = <0>; 1294 + 1295 + reg = <1>; 1296 + 1297 + vin3csi20: endpoint@0 { 1298 + reg = <0>; 1299 + remote-endpoint= <&csi20vin3>; 1300 + }; 1301 + vin3csi40: endpoint@2 { 1302 + reg = <2>; 1303 + remote-endpoint= <&csi40vin3>; 1304 + }; 1305 + }; 1306 + }; 1307 + }; 1308 + 1309 + vin4: video@e6ef4000 { 1310 + compatible = "renesas,vin-r8a7795"; 1311 + reg = <0 0xe6ef4000 0 0x1000>; 1312 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 1313 + clocks = <&cpg CPG_MOD 807>; 1314 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1315 + resets = <&cpg 807>; 1316 + renesas,id = <4>; 1317 + status = "disabled"; 1318 + 1319 + ports { 1320 + #address-cells = <1>; 1321 + #size-cells = <0>; 1322 + 1323 + port@1 { 1324 + #address-cells = <1>; 1325 + #size-cells = <0>; 1326 + 1327 + reg = <1>; 1328 + 1329 + vin4csi20: endpoint@0 { 1330 + reg = <0>; 1331 + remote-endpoint= <&csi20vin4>; 1332 + }; 1333 + vin4csi41: endpoint@3 { 1334 + reg = <3>; 1335 + remote-endpoint= <&csi41vin4>; 1336 + }; 1337 + }; 1338 + }; 1339 + }; 1340 + 1341 + vin5: video@e6ef5000 { 1342 + compatible = "renesas,vin-r8a7795"; 1343 + reg = <0 0xe6ef5000 0 0x1000>; 1344 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 1345 + clocks = <&cpg CPG_MOD 806>; 1346 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1347 + resets = <&cpg 806>; 1348 + renesas,id = <5>; 1349 + status = "disabled"; 1350 + 1351 + ports { 1352 + #address-cells = <1>; 1353 + #size-cells = <0>; 1354 + 1355 + port@1 { 1356 + #address-cells = <1>; 1357 + #size-cells = <0>; 1358 + 1359 + reg = <1>; 1360 + 1361 + vin5csi20: endpoint@0 { 1362 + reg = <0>; 1363 + remote-endpoint= <&csi20vin5>; 1364 + }; 1365 + vin5csi41: endpoint@3 { 1366 + reg = <3>; 1367 + remote-endpoint= <&csi41vin5>; 1368 + }; 1369 + }; 1370 + }; 1371 + }; 1372 + 1373 + vin6: video@e6ef6000 { 1374 + compatible = "renesas,vin-r8a7795"; 1375 + reg = <0 0xe6ef6000 0 0x1000>; 1376 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 1377 + clocks = <&cpg CPG_MOD 805>; 1378 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1379 + resets = <&cpg 805>; 1380 + renesas,id = <6>; 1381 + status = "disabled"; 1382 + 1383 + ports { 1384 + #address-cells = <1>; 1385 + #size-cells = <0>; 1386 + 1387 + port@1 { 1388 + #address-cells = <1>; 1389 + #size-cells = <0>; 1390 + 1391 + reg = <1>; 1392 + 1393 + vin6csi20: endpoint@0 { 1394 + reg = <0>; 1395 + remote-endpoint= <&csi20vin6>; 1396 + }; 1397 + vin6csi41: endpoint@3 { 1398 + reg = <3>; 1399 + remote-endpoint= <&csi41vin6>; 1400 + }; 1401 + }; 1402 + }; 1403 + }; 1404 + 1405 + vin7: video@e6ef7000 { 1406 + compatible = "renesas,vin-r8a7795"; 1407 + reg = <0 0xe6ef7000 0 0x1000>; 1408 + interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; 1409 + clocks = <&cpg CPG_MOD 804>; 1410 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1411 + resets = <&cpg 804>; 1412 + renesas,id = <7>; 1413 + status = "disabled"; 1414 + 1415 + ports { 1416 + #address-cells = <1>; 1417 + #size-cells = <0>; 1418 + 1419 + port@1 { 1420 + #address-cells = <1>; 1421 + #size-cells = <0>; 1422 + 1423 + reg = <1>; 1424 + 1425 + vin7csi20: endpoint@0 { 1426 + reg = <0>; 1427 + remote-endpoint= <&csi20vin7>; 1428 + }; 1429 + vin7csi41: endpoint@3 { 1430 + reg = <3>; 1431 + remote-endpoint= <&csi41vin7>; 1432 + }; 1433 + }; 1165 1434 }; 1166 1435 }; 1167 1436 ··· 1770 1063 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1771 1064 resets = <&cpg 508>; 1772 1065 renesas,bonding = <&drif30>; 1773 - status = "disabled"; 1774 - }; 1775 - 1776 - hscif0: serial@e6540000 { 1777 - compatible = "renesas,hscif-r8a7795", 1778 - "renesas,rcar-gen3-hscif", 1779 - "renesas,hscif"; 1780 - reg = <0 0xe6540000 0 96>; 1781 - interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 1782 - clocks = <&cpg CPG_MOD 520>, 1783 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1784 - <&scif_clk>; 1785 - clock-names = "fck", "brg_int", "scif_clk"; 1786 - dmas = <&dmac1 0x31>, <&dmac1 0x30>, 1787 - <&dmac2 0x31>, <&dmac2 0x30>; 1788 - dma-names = "tx", "rx", "tx", "rx"; 1789 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1790 - resets = <&cpg 520>; 1791 - status = "disabled"; 1792 - }; 1793 - 1794 - hscif1: serial@e6550000 { 1795 - compatible = "renesas,hscif-r8a7795", 1796 - "renesas,rcar-gen3-hscif", 1797 - "renesas,hscif"; 1798 - reg = <0 0xe6550000 0 96>; 1799 - interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 1800 - clocks = <&cpg CPG_MOD 519>, 1801 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1802 - <&scif_clk>; 1803 - clock-names = "fck", "brg_int", "scif_clk"; 1804 - dmas = <&dmac1 0x33>, <&dmac1 0x32>, 1805 - <&dmac2 0x33>, <&dmac2 0x32>; 1806 - dma-names = "tx", "rx", "tx", "rx"; 1807 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1808 - resets = <&cpg 519>; 1809 - status = "disabled"; 1810 - }; 1811 - 1812 - hscif2: serial@e6560000 { 1813 - compatible = "renesas,hscif-r8a7795", 1814 - "renesas,rcar-gen3-hscif", 1815 - "renesas,hscif"; 1816 - reg = <0 0xe6560000 0 96>; 1817 - interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 1818 - clocks = <&cpg CPG_MOD 518>, 1819 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1820 - <&scif_clk>; 1821 - clock-names = "fck", "brg_int", "scif_clk"; 1822 - dmas = <&dmac1 0x35>, <&dmac1 0x34>, 1823 - <&dmac2 0x35>, <&dmac2 0x34>; 1824 - dma-names = "tx", "rx", "tx", "rx"; 1825 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1826 - resets = <&cpg 518>; 1827 - status = "disabled"; 1828 - }; 1829 - 1830 - hscif3: serial@e66a0000 { 1831 - compatible = "renesas,hscif-r8a7795", 1832 - "renesas,rcar-gen3-hscif", 1833 - "renesas,hscif"; 1834 - reg = <0 0xe66a0000 0 96>; 1835 - interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 1836 - clocks = <&cpg CPG_MOD 517>, 1837 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1838 - <&scif_clk>; 1839 - clock-names = "fck", "brg_int", "scif_clk"; 1840 - dmas = <&dmac0 0x37>, <&dmac0 0x36>; 1841 - dma-names = "tx", "rx"; 1842 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1843 - resets = <&cpg 517>; 1844 - status = "disabled"; 1845 - }; 1846 - 1847 - hscif4: serial@e66b0000 { 1848 - compatible = "renesas,hscif-r8a7795", 1849 - "renesas,rcar-gen3-hscif", 1850 - "renesas,hscif"; 1851 - reg = <0 0xe66b0000 0 96>; 1852 - interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 1853 - clocks = <&cpg CPG_MOD 516>, 1854 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1855 - <&scif_clk>; 1856 - clock-names = "fck", "brg_int", "scif_clk"; 1857 - dmas = <&dmac0 0x39>, <&dmac0 0x38>; 1858 - dma-names = "tx", "rx"; 1859 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1860 - resets = <&cpg 516>; 1861 - status = "disabled"; 1862 - }; 1863 - 1864 - msiof0: spi@e6e90000 { 1865 - compatible = "renesas,msiof-r8a7795", 1866 - "renesas,rcar-gen3-msiof"; 1867 - reg = <0 0xe6e90000 0 0x0064>; 1868 - interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1869 - clocks = <&cpg CPG_MOD 211>; 1870 - dmas = <&dmac1 0x41>, <&dmac1 0x40>, 1871 - <&dmac2 0x41>, <&dmac2 0x40>; 1872 - dma-names = "tx", "rx", "tx", "rx"; 1873 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1874 - resets = <&cpg 211>; 1875 - #address-cells = <1>; 1876 - #size-cells = <0>; 1877 - status = "disabled"; 1878 - }; 1879 - 1880 - msiof1: spi@e6ea0000 { 1881 - compatible = "renesas,msiof-r8a7795", 1882 - "renesas,rcar-gen3-msiof"; 1883 - reg = <0 0xe6ea0000 0 0x0064>; 1884 - interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1885 - clocks = <&cpg CPG_MOD 210>; 1886 - dmas = <&dmac1 0x43>, <&dmac1 0x42>, 1887 - <&dmac2 0x43>, <&dmac2 0x42>; 1888 - dma-names = "tx", "rx", "tx", "rx"; 1889 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1890 - resets = <&cpg 210>; 1891 - #address-cells = <1>; 1892 - #size-cells = <0>; 1893 - status = "disabled"; 1894 - }; 1895 - 1896 - msiof2: spi@e6c00000 { 1897 - compatible = "renesas,msiof-r8a7795", 1898 - "renesas,rcar-gen3-msiof"; 1899 - reg = <0 0xe6c00000 0 0x0064>; 1900 - interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1901 - clocks = <&cpg CPG_MOD 209>; 1902 - dmas = <&dmac0 0x45>, <&dmac0 0x44>; 1903 - dma-names = "tx", "rx"; 1904 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1905 - resets = <&cpg 209>; 1906 - #address-cells = <1>; 1907 - #size-cells = <0>; 1908 - status = "disabled"; 1909 - }; 1910 - 1911 - msiof3: spi@e6c10000 { 1912 - compatible = "renesas,msiof-r8a7795", 1913 - "renesas,rcar-gen3-msiof"; 1914 - reg = <0 0xe6c10000 0 0x0064>; 1915 - interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 1916 - clocks = <&cpg CPG_MOD 208>; 1917 - dmas = <&dmac0 0x47>, <&dmac0 0x46>; 1918 - dma-names = "tx", "rx"; 1919 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1920 - resets = <&cpg 208>; 1921 - #address-cells = <1>; 1922 - #size-cells = <0>; 1923 - status = "disabled"; 1924 - }; 1925 - 1926 - scif0: serial@e6e60000 { 1927 - compatible = "renesas,scif-r8a7795", 1928 - "renesas,rcar-gen3-scif", "renesas,scif"; 1929 - reg = <0 0xe6e60000 0 64>; 1930 - interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 1931 - clocks = <&cpg CPG_MOD 207>, 1932 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1933 - <&scif_clk>; 1934 - clock-names = "fck", "brg_int", "scif_clk"; 1935 - dmas = <&dmac1 0x51>, <&dmac1 0x50>, 1936 - <&dmac2 0x51>, <&dmac2 0x50>; 1937 - dma-names = "tx", "rx", "tx", "rx"; 1938 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1939 - resets = <&cpg 207>; 1940 - status = "disabled"; 1941 - }; 1942 - 1943 - scif1: serial@e6e68000 { 1944 - compatible = "renesas,scif-r8a7795", 1945 - "renesas,rcar-gen3-scif", "renesas,scif"; 1946 - reg = <0 0xe6e68000 0 64>; 1947 - interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 1948 - clocks = <&cpg CPG_MOD 206>, 1949 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1950 - <&scif_clk>; 1951 - clock-names = "fck", "brg_int", "scif_clk"; 1952 - dmas = <&dmac1 0x53>, <&dmac1 0x52>, 1953 - <&dmac2 0x53>, <&dmac2 0x52>; 1954 - dma-names = "tx", "rx", "tx", "rx"; 1955 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1956 - resets = <&cpg 206>; 1957 - status = "disabled"; 1958 - }; 1959 - 1960 - scif2: serial@e6e88000 { 1961 - compatible = "renesas,scif-r8a7795", 1962 - "renesas,rcar-gen3-scif", "renesas,scif"; 1963 - reg = <0 0xe6e88000 0 64>; 1964 - interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 1965 - clocks = <&cpg CPG_MOD 310>, 1966 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1967 - <&scif_clk>; 1968 - clock-names = "fck", "brg_int", "scif_clk"; 1969 - dmas = <&dmac1 0x13>, <&dmac1 0x12>, 1970 - <&dmac2 0x13>, <&dmac2 0x12>; 1971 - dma-names = "tx", "rx", "tx", "rx"; 1972 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1973 - resets = <&cpg 310>; 1974 - status = "disabled"; 1975 - }; 1976 - 1977 - scif3: serial@e6c50000 { 1978 - compatible = "renesas,scif-r8a7795", 1979 - "renesas,rcar-gen3-scif", "renesas,scif"; 1980 - reg = <0 0xe6c50000 0 64>; 1981 - interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1982 - clocks = <&cpg CPG_MOD 204>, 1983 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 1984 - <&scif_clk>; 1985 - clock-names = "fck", "brg_int", "scif_clk"; 1986 - dmas = <&dmac0 0x57>, <&dmac0 0x56>; 1987 - dma-names = "tx", "rx"; 1988 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1989 - resets = <&cpg 204>; 1990 - status = "disabled"; 1991 - }; 1992 - 1993 - scif4: serial@e6c40000 { 1994 - compatible = "renesas,scif-r8a7795", 1995 - "renesas,rcar-gen3-scif", "renesas,scif"; 1996 - reg = <0 0xe6c40000 0 64>; 1997 - interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1998 - clocks = <&cpg CPG_MOD 203>, 1999 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 2000 - <&scif_clk>; 2001 - clock-names = "fck", "brg_int", "scif_clk"; 2002 - dmas = <&dmac0 0x59>, <&dmac0 0x58>; 2003 - dma-names = "tx", "rx"; 2004 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2005 - resets = <&cpg 203>; 2006 - status = "disabled"; 2007 - }; 2008 - 2009 - scif5: serial@e6f30000 { 2010 - compatible = "renesas,scif-r8a7795", 2011 - "renesas,rcar-gen3-scif", "renesas,scif"; 2012 - reg = <0 0xe6f30000 0 64>; 2013 - interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 2014 - clocks = <&cpg CPG_MOD 202>, 2015 - <&cpg CPG_CORE R8A7795_CLK_S3D1>, 2016 - <&scif_clk>; 2017 - clock-names = "fck", "brg_int", "scif_clk"; 2018 - dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, 2019 - <&dmac2 0x5b>, <&dmac2 0x5a>; 2020 - dma-names = "tx", "rx", "tx", "rx"; 2021 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2022 - resets = <&cpg 202>; 2023 - status = "disabled"; 2024 - }; 2025 - 2026 - i2c_dvfs: i2c@e60b0000 { 2027 - #address-cells = <1>; 2028 - #size-cells = <0>; 2029 - compatible = "renesas,iic-r8a7795", 2030 - "renesas,rcar-gen3-iic", 2031 - "renesas,rmobile-iic"; 2032 - reg = <0 0xe60b0000 0 0x425>; 2033 - interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 2034 - clocks = <&cpg CPG_MOD 926>; 2035 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2036 - resets = <&cpg 926>; 2037 - dmas = <&dmac0 0x11>, <&dmac0 0x10>; 2038 - dma-names = "tx", "rx"; 2039 - status = "disabled"; 2040 - }; 2041 - 2042 - i2c0: i2c@e6500000 { 2043 - #address-cells = <1>; 2044 - #size-cells = <0>; 2045 - compatible = "renesas,i2c-r8a7795", 2046 - "renesas,rcar-gen3-i2c"; 2047 - reg = <0 0xe6500000 0 0x40>; 2048 - interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 2049 - clocks = <&cpg CPG_MOD 931>; 2050 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2051 - resets = <&cpg 931>; 2052 - dmas = <&dmac1 0x91>, <&dmac1 0x90>, 2053 - <&dmac2 0x91>, <&dmac2 0x90>; 2054 - dma-names = "tx", "rx", "tx", "rx"; 2055 - i2c-scl-internal-delay-ns = <110>; 2056 - status = "disabled"; 2057 - }; 2058 - 2059 - i2c1: i2c@e6508000 { 2060 - #address-cells = <1>; 2061 - #size-cells = <0>; 2062 - compatible = "renesas,i2c-r8a7795", 2063 - "renesas,rcar-gen3-i2c"; 2064 - reg = <0 0xe6508000 0 0x40>; 2065 - interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 2066 - clocks = <&cpg CPG_MOD 930>; 2067 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2068 - resets = <&cpg 930>; 2069 - dmas = <&dmac1 0x93>, <&dmac1 0x92>, 2070 - <&dmac2 0x93>, <&dmac2 0x92>; 2071 - dma-names = "tx", "rx", "tx", "rx"; 2072 - i2c-scl-internal-delay-ns = <6>; 2073 - status = "disabled"; 2074 - }; 2075 - 2076 - i2c2: i2c@e6510000 { 2077 - #address-cells = <1>; 2078 - #size-cells = <0>; 2079 - compatible = "renesas,i2c-r8a7795", 2080 - "renesas,rcar-gen3-i2c"; 2081 - reg = <0 0xe6510000 0 0x40>; 2082 - interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 2083 - clocks = <&cpg CPG_MOD 929>; 2084 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2085 - resets = <&cpg 929>; 2086 - dmas = <&dmac1 0x95>, <&dmac1 0x94>, 2087 - <&dmac2 0x95>, <&dmac2 0x94>; 2088 - dma-names = "tx", "rx", "tx", "rx"; 2089 - i2c-scl-internal-delay-ns = <6>; 2090 - status = "disabled"; 2091 - }; 2092 - 2093 - i2c3: i2c@e66d0000 { 2094 - #address-cells = <1>; 2095 - #size-cells = <0>; 2096 - compatible = "renesas,i2c-r8a7795", 2097 - "renesas,rcar-gen3-i2c"; 2098 - reg = <0 0xe66d0000 0 0x40>; 2099 - interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 2100 - clocks = <&cpg CPG_MOD 928>; 2101 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2102 - resets = <&cpg 928>; 2103 - dmas = <&dmac0 0x97>, <&dmac0 0x96>; 2104 - dma-names = "tx", "rx"; 2105 - i2c-scl-internal-delay-ns = <110>; 2106 - status = "disabled"; 2107 - }; 2108 - 2109 - i2c4: i2c@e66d8000 { 2110 - #address-cells = <1>; 2111 - #size-cells = <0>; 2112 - compatible = "renesas,i2c-r8a7795", 2113 - "renesas,rcar-gen3-i2c"; 2114 - reg = <0 0xe66d8000 0 0x40>; 2115 - interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 2116 - clocks = <&cpg CPG_MOD 927>; 2117 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2118 - resets = <&cpg 927>; 2119 - dmas = <&dmac0 0x99>, <&dmac0 0x98>; 2120 - dma-names = "tx", "rx"; 2121 - i2c-scl-internal-delay-ns = <110>; 2122 - status = "disabled"; 2123 - }; 2124 - 2125 - i2c5: i2c@e66e0000 { 2126 - #address-cells = <1>; 2127 - #size-cells = <0>; 2128 - compatible = "renesas,i2c-r8a7795", 2129 - "renesas,rcar-gen3-i2c"; 2130 - reg = <0 0xe66e0000 0 0x40>; 2131 - interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 2132 - clocks = <&cpg CPG_MOD 919>; 2133 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2134 - resets = <&cpg 919>; 2135 - dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; 2136 - dma-names = "tx", "rx"; 2137 - i2c-scl-internal-delay-ns = <110>; 2138 - status = "disabled"; 2139 - }; 2140 - 2141 - i2c6: i2c@e66e8000 { 2142 - #address-cells = <1>; 2143 - #size-cells = <0>; 2144 - compatible = "renesas,i2c-r8a7795", 2145 - "renesas,rcar-gen3-i2c"; 2146 - reg = <0 0xe66e8000 0 0x40>; 2147 - interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 2148 - clocks = <&cpg CPG_MOD 918>; 2149 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2150 - resets = <&cpg 918>; 2151 - dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; 2152 - dma-names = "tx", "rx"; 2153 - i2c-scl-internal-delay-ns = <6>; 2154 - status = "disabled"; 2155 - }; 2156 - 2157 - pwm0: pwm@e6e30000 { 2158 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2159 - reg = <0 0xe6e30000 0 0x8>; 2160 - clocks = <&cpg CPG_MOD 523>; 2161 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2162 - resets = <&cpg 523>; 2163 - #pwm-cells = <2>; 2164 - status = "disabled"; 2165 - }; 2166 - 2167 - pwm1: pwm@e6e31000 { 2168 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2169 - reg = <0 0xe6e31000 0 0x8>; 2170 - clocks = <&cpg CPG_MOD 523>; 2171 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2172 - resets = <&cpg 523>; 2173 - #pwm-cells = <2>; 2174 - status = "disabled"; 2175 - }; 2176 - 2177 - pwm2: pwm@e6e32000 { 2178 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2179 - reg = <0 0xe6e32000 0 0x8>; 2180 - clocks = <&cpg CPG_MOD 523>; 2181 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2182 - resets = <&cpg 523>; 2183 - #pwm-cells = <2>; 2184 - status = "disabled"; 2185 - }; 2186 - 2187 - pwm3: pwm@e6e33000 { 2188 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2189 - reg = <0 0xe6e33000 0 0x8>; 2190 - clocks = <&cpg CPG_MOD 523>; 2191 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2192 - resets = <&cpg 523>; 2193 - #pwm-cells = <2>; 2194 - status = "disabled"; 2195 - }; 2196 - 2197 - pwm4: pwm@e6e34000 { 2198 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2199 - reg = <0 0xe6e34000 0 0x8>; 2200 - clocks = <&cpg CPG_MOD 523>; 2201 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2202 - resets = <&cpg 523>; 2203 - #pwm-cells = <2>; 2204 - status = "disabled"; 2205 - }; 2206 - 2207 - pwm5: pwm@e6e35000 { 2208 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2209 - reg = <0 0xe6e35000 0 0x8>; 2210 - clocks = <&cpg CPG_MOD 523>; 2211 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2212 - resets = <&cpg 523>; 2213 - #pwm-cells = <2>; 2214 - status = "disabled"; 2215 - }; 2216 - 2217 - pwm6: pwm@e6e36000 { 2218 - compatible = "renesas,pwm-r8a7795", "renesas,pwm-rcar"; 2219 - reg = <0 0xe6e36000 0 0x8>; 2220 - clocks = <&cpg CPG_MOD 523>; 2221 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2222 - resets = <&cpg 523>; 2223 - #pwm-cells = <2>; 2224 1066 status = "disabled"; 2225 1067 }; 2226 1068 ··· 1967 1711 dma-names = "rx", "tx", "rxu", "txu"; 1968 1712 }; 1969 1713 }; 1714 + 1715 + ports { 1716 + #address-cells = <1>; 1717 + #size-cells = <0>; 1718 + port@0 { 1719 + reg = <0>; 1720 + }; 1721 + port@1 { 1722 + reg = <1>; 1723 + }; 1724 + port@2 { 1725 + reg = <2>; 1726 + }; 1727 + }; 1970 1728 }; 1971 1729 1972 - sata: sata@ee300000 { 1973 - compatible = "renesas,sata-r8a7795", 1974 - "renesas,rcar-gen3-sata"; 1975 - reg = <0 0xee300000 0 0x200000>; 1976 - interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1977 - clocks = <&cpg CPG_MOD 815>; 1730 + audma0: dma-controller@ec700000 { 1731 + compatible = "renesas,dmac-r8a7795", 1732 + "renesas,rcar-dmac"; 1733 + reg = <0 0xec700000 0 0x10000>; 1734 + interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 1735 + GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 1736 + GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 1737 + GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 1738 + GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 1739 + GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 1740 + GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 1741 + GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 1742 + GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 1743 + GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 1744 + GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 1745 + GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 1746 + GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 1747 + GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 1748 + GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 1749 + GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 1750 + GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; 1751 + interrupt-names = "error", 1752 + "ch0", "ch1", "ch2", "ch3", 1753 + "ch4", "ch5", "ch6", "ch7", 1754 + "ch8", "ch9", "ch10", "ch11", 1755 + "ch12", "ch13", "ch14", "ch15"; 1756 + clocks = <&cpg CPG_MOD 502>; 1757 + clock-names = "fck"; 1978 1758 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1979 - resets = <&cpg 815>; 1980 - status = "disabled"; 1981 - iommus = <&ipmmu_hc 2>; 1759 + resets = <&cpg 502>; 1760 + #dma-cells = <1>; 1761 + dma-channels = <16>; 1762 + iommus = <&ipmmu_mp0 0>, <&ipmmu_mp0 1>, 1763 + <&ipmmu_mp0 2>, <&ipmmu_mp0 3>, 1764 + <&ipmmu_mp0 4>, <&ipmmu_mp0 5>, 1765 + <&ipmmu_mp0 6>, <&ipmmu_mp0 7>, 1766 + <&ipmmu_mp0 8>, <&ipmmu_mp0 9>, 1767 + <&ipmmu_mp0 10>, <&ipmmu_mp0 11>, 1768 + <&ipmmu_mp0 12>, <&ipmmu_mp0 13>, 1769 + <&ipmmu_mp0 14>, <&ipmmu_mp0 15>; 1982 1770 }; 1983 1771 1984 - usb3_phy0: usb-phy@e65ee000 { 1985 - compatible = "renesas,r8a7795-usb3-phy", 1986 - "renesas,rcar-gen3-usb3-phy"; 1987 - reg = <0 0xe65ee000 0 0x90>; 1988 - clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, 1989 - <&usb_extal_clk>; 1990 - clock-names = "usb3-if", "usb3s_clk", "usb_extal"; 1772 + audma1: dma-controller@ec720000 { 1773 + compatible = "renesas,dmac-r8a7795", 1774 + "renesas,rcar-dmac"; 1775 + reg = <0 0xec720000 0 0x10000>; 1776 + interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 1777 + GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 1778 + GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 1779 + GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 1780 + GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 1781 + GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 1782 + GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 1783 + GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 1784 + GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 1785 + GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 1786 + GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 1787 + GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 1788 + GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 1789 + GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 1790 + GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH 1791 + GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 1792 + GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; 1793 + interrupt-names = "error", 1794 + "ch0", "ch1", "ch2", "ch3", 1795 + "ch4", "ch5", "ch6", "ch7", 1796 + "ch8", "ch9", "ch10", "ch11", 1797 + "ch12", "ch13", "ch14", "ch15"; 1798 + clocks = <&cpg CPG_MOD 501>; 1799 + clock-names = "fck"; 1991 1800 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1992 - resets = <&cpg 328>; 1993 - #phy-cells = <0>; 1994 - status = "disabled"; 1801 + resets = <&cpg 501>; 1802 + #dma-cells = <1>; 1803 + dma-channels = <16>; 1804 + iommus = <&ipmmu_mp0 16>, <&ipmmu_mp0 17>, 1805 + <&ipmmu_mp0 18>, <&ipmmu_mp0 19>, 1806 + <&ipmmu_mp0 20>, <&ipmmu_mp0 21>, 1807 + <&ipmmu_mp0 22>, <&ipmmu_mp0 23>, 1808 + <&ipmmu_mp0 24>, <&ipmmu_mp0 25>, 1809 + <&ipmmu_mp0 26>, <&ipmmu_mp0 27>, 1810 + <&ipmmu_mp0 28>, <&ipmmu_mp0 29>, 1811 + <&ipmmu_mp0 30>, <&ipmmu_mp0 31>; 1995 1812 }; 1996 1813 1997 1814 xhci0: usb@ee000000 { ··· 2088 1759 status = "disabled"; 2089 1760 }; 2090 1761 2091 - usb_dmac0: dma-controller@e65a0000 { 2092 - compatible = "renesas,r8a7795-usb-dmac", 2093 - "renesas,usb-dmac"; 2094 - reg = <0 0xe65a0000 0 0x100>; 2095 - interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 2096 - GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 2097 - interrupt-names = "ch0", "ch1"; 2098 - clocks = <&cpg CPG_MOD 330>; 2099 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2100 - resets = <&cpg 330>; 2101 - #dma-cells = <1>; 2102 - dma-channels = <2>; 2103 - }; 2104 - 2105 - usb_dmac1: dma-controller@e65b0000 { 2106 - compatible = "renesas,r8a7795-usb-dmac", 2107 - "renesas,usb-dmac"; 2108 - reg = <0 0xe65b0000 0 0x100>; 2109 - interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 2110 - GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 2111 - interrupt-names = "ch0", "ch1"; 2112 - clocks = <&cpg CPG_MOD 331>; 2113 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2114 - resets = <&cpg 331>; 2115 - #dma-cells = <1>; 2116 - dma-channels = <2>; 2117 - }; 2118 - 2119 - usb_dmac2: dma-controller@e6460000 { 2120 - compatible = "renesas,r8a7795-usb-dmac", 2121 - "renesas,usb-dmac"; 2122 - reg = <0 0xe6460000 0 0x100>; 2123 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 2124 - GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 2125 - interrupt-names = "ch0", "ch1"; 2126 - clocks = <&cpg CPG_MOD 326>; 2127 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2128 - resets = <&cpg 326>; 2129 - #dma-cells = <1>; 2130 - dma-channels = <2>; 2131 - }; 2132 - 2133 - usb_dmac3: dma-controller@e6470000 { 2134 - compatible = "renesas,r8a7795-usb-dmac", 2135 - "renesas,usb-dmac"; 2136 - reg = <0 0xe6470000 0 0x100>; 2137 - interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 2138 - GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 2139 - interrupt-names = "ch0", "ch1"; 2140 - clocks = <&cpg CPG_MOD 329>; 2141 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2142 - resets = <&cpg 329>; 2143 - #dma-cells = <1>; 2144 - dma-channels = <2>; 2145 - }; 2146 - 2147 - sdhi0: sd@ee100000 { 2148 - compatible = "renesas,sdhi-r8a7795", 2149 - "renesas,rcar-gen3-sdhi"; 2150 - reg = <0 0xee100000 0 0x2000>; 2151 - interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 2152 - clocks = <&cpg CPG_MOD 314>; 2153 - max-frequency = <200000000>; 2154 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2155 - resets = <&cpg 314>; 2156 - status = "disabled"; 2157 - }; 2158 - 2159 - sdhi1: sd@ee120000 { 2160 - compatible = "renesas,sdhi-r8a7795", 2161 - "renesas,rcar-gen3-sdhi"; 2162 - reg = <0 0xee120000 0 0x2000>; 2163 - interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 2164 - clocks = <&cpg CPG_MOD 313>; 2165 - max-frequency = <200000000>; 2166 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2167 - resets = <&cpg 313>; 2168 - status = "disabled"; 2169 - }; 2170 - 2171 - sdhi2: sd@ee140000 { 2172 - compatible = "renesas,sdhi-r8a7795", 2173 - "renesas,rcar-gen3-sdhi"; 2174 - reg = <0 0xee140000 0 0x2000>; 2175 - interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 2176 - clocks = <&cpg CPG_MOD 312>; 2177 - max-frequency = <200000000>; 2178 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2179 - resets = <&cpg 312>; 2180 - status = "disabled"; 2181 - }; 2182 - 2183 - sdhi3: sd@ee160000 { 2184 - compatible = "renesas,sdhi-r8a7795", 2185 - "renesas,rcar-gen3-sdhi"; 2186 - reg = <0 0xee160000 0 0x2000>; 2187 - interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 2188 - clocks = <&cpg CPG_MOD 311>; 2189 - max-frequency = <200000000>; 2190 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2191 - resets = <&cpg 311>; 2192 - status = "disabled"; 2193 - }; 2194 - 2195 - usb2_phy0: usb-phy@ee080200 { 2196 - compatible = "renesas,usb2-phy-r8a7795", 2197 - "renesas,rcar-gen3-usb2-phy"; 2198 - reg = <0 0xee080200 0 0x700>; 1762 + ohci0: usb@ee080000 { 1763 + compatible = "generic-ohci"; 1764 + reg = <0 0xee080000 0 0x100>; 2199 1765 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2200 1766 clocks = <&cpg CPG_MOD 703>; 1767 + phys = <&usb2_phy0>; 1768 + phy-names = "usb"; 2201 1769 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2202 1770 resets = <&cpg 703>; 2203 - #phy-cells = <0>; 2204 1771 status = "disabled"; 2205 1772 }; 2206 1773 2207 - usb2_phy1: usb-phy@ee0a0200 { 2208 - compatible = "renesas,usb2-phy-r8a7795", 2209 - "renesas,rcar-gen3-usb2-phy"; 2210 - reg = <0 0xee0a0200 0 0x700>; 1774 + ohci1: usb@ee0a0000 { 1775 + compatible = "generic-ohci"; 1776 + reg = <0 0xee0a0000 0 0x100>; 1777 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 2211 1778 clocks = <&cpg CPG_MOD 702>; 1779 + phys = <&usb2_phy1>; 1780 + phy-names = "usb"; 2212 1781 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2213 1782 resets = <&cpg 702>; 2214 - #phy-cells = <0>; 2215 1783 status = "disabled"; 2216 1784 }; 2217 1785 2218 - usb2_phy2: usb-phy@ee0c0200 { 2219 - compatible = "renesas,usb2-phy-r8a7795", 2220 - "renesas,rcar-gen3-usb2-phy"; 2221 - reg = <0 0xee0c0200 0 0x700>; 1786 + ohci2: usb@ee0c0000 { 1787 + compatible = "generic-ohci"; 1788 + reg = <0 0xee0c0000 0 0x100>; 1789 + interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 2222 1790 clocks = <&cpg CPG_MOD 701>; 1791 + phys = <&usb2_phy2>; 1792 + phy-names = "usb"; 2223 1793 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2224 1794 resets = <&cpg 701>; 2225 - #phy-cells = <0>; 2226 1795 status = "disabled"; 2227 1796 }; 2228 1797 2229 - usb2_phy3: usb-phy@ee0e0200 { 2230 - compatible = "renesas,usb2-phy-r8a7795", 2231 - "renesas,rcar-gen3-usb2-phy"; 2232 - reg = <0 0xee0e0200 0 0x700>; 1798 + ohci3: usb@ee0e0000 { 1799 + compatible = "generic-ohci"; 1800 + reg = <0 0xee0e0000 0 0x100>; 2233 1801 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2234 1802 clocks = <&cpg CPG_MOD 700>; 1803 + phys = <&usb2_phy3>; 1804 + phy-names = "usb"; 2235 1805 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2236 1806 resets = <&cpg 700>; 2237 - #phy-cells = <0>; 2238 1807 status = "disabled"; 2239 1808 }; 2240 1809 ··· 2188 1961 status = "disabled"; 2189 1962 }; 2190 1963 2191 - ohci0: usb@ee080000 { 2192 - compatible = "generic-ohci"; 2193 - reg = <0 0xee080000 0 0x100>; 1964 + usb2_phy0: usb-phy@ee080200 { 1965 + compatible = "renesas,usb2-phy-r8a7795", 1966 + "renesas,rcar-gen3-usb2-phy"; 1967 + reg = <0 0xee080200 0 0x700>; 2194 1968 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2195 1969 clocks = <&cpg CPG_MOD 703>; 2196 - phys = <&usb2_phy0>; 2197 - phy-names = "usb"; 2198 1970 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2199 1971 resets = <&cpg 703>; 1972 + #phy-cells = <0>; 2200 1973 status = "disabled"; 2201 1974 }; 2202 1975 2203 - ohci1: usb@ee0a0000 { 2204 - compatible = "generic-ohci"; 2205 - reg = <0 0xee0a0000 0 0x100>; 2206 - interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1976 + usb2_phy1: usb-phy@ee0a0200 { 1977 + compatible = "renesas,usb2-phy-r8a7795", 1978 + "renesas,rcar-gen3-usb2-phy"; 1979 + reg = <0 0xee0a0200 0 0x700>; 2207 1980 clocks = <&cpg CPG_MOD 702>; 2208 - phys = <&usb2_phy1>; 2209 - phy-names = "usb"; 2210 1981 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2211 1982 resets = <&cpg 702>; 1983 + #phy-cells = <0>; 2212 1984 status = "disabled"; 2213 1985 }; 2214 1986 2215 - ohci2: usb@ee0c0000 { 2216 - compatible = "generic-ohci"; 2217 - reg = <0 0xee0c0000 0 0x100>; 2218 - interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1987 + usb2_phy2: usb-phy@ee0c0200 { 1988 + compatible = "renesas,usb2-phy-r8a7795", 1989 + "renesas,rcar-gen3-usb2-phy"; 1990 + reg = <0 0xee0c0200 0 0x700>; 2219 1991 clocks = <&cpg CPG_MOD 701>; 2220 - phys = <&usb2_phy2>; 2221 - phy-names = "usb"; 2222 1992 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2223 1993 resets = <&cpg 701>; 1994 + #phy-cells = <0>; 2224 1995 status = "disabled"; 2225 1996 }; 2226 1997 2227 - ohci3: usb@ee0e0000 { 2228 - compatible = "generic-ohci"; 2229 - reg = <0 0xee0e0000 0 0x100>; 1998 + usb2_phy3: usb-phy@ee0e0200 { 1999 + compatible = "renesas,usb2-phy-r8a7795", 2000 + "renesas,rcar-gen3-usb2-phy"; 2001 + reg = <0 0xee0e0200 0 0x700>; 2230 2002 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2231 2003 clocks = <&cpg CPG_MOD 700>; 2232 - phys = <&usb2_phy3>; 2233 - phy-names = "usb"; 2234 2004 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2235 2005 resets = <&cpg 700>; 2006 + #phy-cells = <0>; 2236 2007 status = "disabled"; 2237 2008 }; 2238 2009 2239 - hsusb: usb@e6590000 { 2240 - compatible = "renesas,usbhs-r8a7795", 2241 - "renesas,rcar-gen3-usbhs"; 2242 - reg = <0 0xe6590000 0 0x100>; 2243 - interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 2244 - clocks = <&cpg CPG_MOD 704>; 2245 - dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 2246 - <&usb_dmac1 0>, <&usb_dmac1 1>; 2247 - dma-names = "ch0", "ch1", "ch2", "ch3"; 2248 - renesas,buswait = <11>; 2249 - phys = <&usb2_phy0>; 2250 - phy-names = "usb"; 2010 + sdhi0: sd@ee100000 { 2011 + compatible = "renesas,sdhi-r8a7795", 2012 + "renesas,rcar-gen3-sdhi"; 2013 + reg = <0 0xee100000 0 0x2000>; 2014 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 2015 + clocks = <&cpg CPG_MOD 314>; 2016 + max-frequency = <200000000>; 2251 2017 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2252 - resets = <&cpg 704>; 2018 + resets = <&cpg 314>; 2253 2019 status = "disabled"; 2254 2020 }; 2255 2021 2256 - hsusb3: usb@e659c000 { 2257 - compatible = "renesas,usbhs-r8a7795", 2258 - "renesas,rcar-gen3-usbhs"; 2259 - reg = <0 0xe659c000 0 0x100>; 2260 - interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 2261 - clocks = <&cpg CPG_MOD 705>; 2262 - dmas = <&usb_dmac2 0>, <&usb_dmac2 1>, 2263 - <&usb_dmac3 0>, <&usb_dmac3 1>; 2264 - dma-names = "ch0", "ch1", "ch2", "ch3"; 2265 - renesas,buswait = <11>; 2266 - phys = <&usb2_phy3>; 2267 - phy-names = "usb"; 2022 + sdhi1: sd@ee120000 { 2023 + compatible = "renesas,sdhi-r8a7795", 2024 + "renesas,rcar-gen3-sdhi"; 2025 + reg = <0 0xee120000 0 0x2000>; 2026 + interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 2027 + clocks = <&cpg CPG_MOD 313>; 2028 + max-frequency = <200000000>; 2268 2029 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2269 - resets = <&cpg 705>; 2030 + resets = <&cpg 313>; 2270 2031 status = "disabled"; 2032 + }; 2033 + 2034 + sdhi2: sd@ee140000 { 2035 + compatible = "renesas,sdhi-r8a7795", 2036 + "renesas,rcar-gen3-sdhi"; 2037 + reg = <0 0xee140000 0 0x2000>; 2038 + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 2039 + clocks = <&cpg CPG_MOD 312>; 2040 + max-frequency = <200000000>; 2041 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2042 + resets = <&cpg 312>; 2043 + status = "disabled"; 2044 + }; 2045 + 2046 + sdhi3: sd@ee160000 { 2047 + compatible = "renesas,sdhi-r8a7795", 2048 + "renesas,rcar-gen3-sdhi"; 2049 + reg = <0 0xee160000 0 0x2000>; 2050 + interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 2051 + clocks = <&cpg CPG_MOD 311>; 2052 + max-frequency = <200000000>; 2053 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2054 + resets = <&cpg 311>; 2055 + status = "disabled"; 2056 + }; 2057 + 2058 + sata: sata@ee300000 { 2059 + compatible = "renesas,sata-r8a7795", 2060 + "renesas,rcar-gen3-sata"; 2061 + reg = <0 0xee300000 0 0x200000>; 2062 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 2063 + clocks = <&cpg CPG_MOD 815>; 2064 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2065 + resets = <&cpg 815>; 2066 + status = "disabled"; 2067 + iommus = <&ipmmu_hc 2>; 2068 + }; 2069 + 2070 + gic: interrupt-controller@f1010000 { 2071 + compatible = "arm,gic-400"; 2072 + #interrupt-cells = <3>; 2073 + #address-cells = <0>; 2074 + interrupt-controller; 2075 + reg = <0x0 0xf1010000 0 0x1000>, 2076 + <0x0 0xf1020000 0 0x20000>, 2077 + <0x0 0xf1040000 0 0x20000>, 2078 + <0x0 0xf1060000 0 0x20000>; 2079 + interrupts = <GIC_PPI 9 2080 + (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 2081 + clocks = <&cpg CPG_MOD 408>; 2082 + clock-names = "clk"; 2083 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2084 + resets = <&cpg 408>; 2271 2085 }; 2272 2086 2273 2087 pciec0: pcie@fe000000 { ··· 2405 2137 resets = <&cpg 820>; 2406 2138 }; 2407 2139 2408 - vspbc: vsp@fe920000 { 2409 - compatible = "renesas,vsp2"; 2410 - reg = <0 0xfe920000 0 0x8000>; 2411 - interrupts = <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>; 2412 - clocks = <&cpg CPG_MOD 624>; 2140 + fdp1@fe940000 { 2141 + compatible = "renesas,fdp1"; 2142 + reg = <0 0xfe940000 0 0x2400>; 2143 + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 2144 + clocks = <&cpg CPG_MOD 119>; 2413 2145 power-domains = <&sysc R8A7795_PD_A3VP>; 2414 - resets = <&cpg 624>; 2415 - 2416 - renesas,fcp = <&fcpvb1>; 2146 + resets = <&cpg 119>; 2147 + renesas,fcp = <&fcpf0>; 2417 2148 }; 2418 2149 2419 - fcpvb1: fcp@fe92f000 { 2420 - compatible = "renesas,fcpv"; 2421 - reg = <0 0xfe92f000 0 0x200>; 2422 - clocks = <&cpg CPG_MOD 606>; 2150 + fdp1@fe944000 { 2151 + compatible = "renesas,fdp1"; 2152 + reg = <0 0xfe944000 0 0x2400>; 2153 + interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 2154 + clocks = <&cpg CPG_MOD 118>; 2423 2155 power-domains = <&sysc R8A7795_PD_A3VP>; 2424 - resets = <&cpg 606>; 2425 - iommus = <&ipmmu_vp1 7>; 2156 + resets = <&cpg 118>; 2157 + renesas,fcp = <&fcpf1>; 2426 2158 }; 2427 2159 2428 2160 fcpf0: fcp@fe950000 { ··· 2443 2175 iommus = <&ipmmu_vp1 1>; 2444 2176 }; 2445 2177 2446 - vspbd: vsp@fe960000 { 2447 - compatible = "renesas,vsp2"; 2448 - reg = <0 0xfe960000 0 0x8000>; 2449 - interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 2450 - clocks = <&cpg CPG_MOD 626>; 2451 - power-domains = <&sysc R8A7795_PD_A3VP>; 2452 - resets = <&cpg 626>; 2453 - 2454 - renesas,fcp = <&fcpvb0>; 2455 - }; 2456 - 2457 2178 fcpvb0: fcp@fe96f000 { 2458 2179 compatible = "renesas,fcpv"; 2459 2180 reg = <0 0xfe96f000 0 0x200>; ··· 2452 2195 iommus = <&ipmmu_vp0 5>; 2453 2196 }; 2454 2197 2455 - vspi0: vsp@fe9a0000 { 2456 - compatible = "renesas,vsp2"; 2457 - reg = <0 0xfe9a0000 0 0x8000>; 2458 - interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; 2459 - clocks = <&cpg CPG_MOD 631>; 2198 + fcpvb1: fcp@fe92f000 { 2199 + compatible = "renesas,fcpv"; 2200 + reg = <0 0xfe92f000 0 0x200>; 2201 + clocks = <&cpg CPG_MOD 606>; 2460 2202 power-domains = <&sysc R8A7795_PD_A3VP>; 2461 - resets = <&cpg 631>; 2462 - 2463 - renesas,fcp = <&fcpvi0>; 2203 + resets = <&cpg 606>; 2204 + iommus = <&ipmmu_vp1 7>; 2464 2205 }; 2465 2206 2466 2207 fcpvi0: fcp@fe9af000 { ··· 2470 2215 iommus = <&ipmmu_vp0 8>; 2471 2216 }; 2472 2217 2473 - vspi1: vsp@fe9b0000 { 2474 - compatible = "renesas,vsp2"; 2475 - reg = <0 0xfe9b0000 0 0x8000>; 2476 - interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; 2477 - clocks = <&cpg CPG_MOD 630>; 2478 - power-domains = <&sysc R8A7795_PD_A3VP>; 2479 - resets = <&cpg 630>; 2480 - 2481 - renesas,fcp = <&fcpvi1>; 2482 - }; 2483 - 2484 2218 fcpvi1: fcp@fe9bf000 { 2485 2219 compatible = "renesas,fcpv"; 2486 2220 reg = <0 0xfe9bf000 0 0x200>; ··· 2477 2233 power-domains = <&sysc R8A7795_PD_A3VP>; 2478 2234 resets = <&cpg 610>; 2479 2235 iommus = <&ipmmu_vp1 9>; 2236 + }; 2237 + 2238 + fcpvd0: fcp@fea27000 { 2239 + compatible = "renesas,fcpv"; 2240 + reg = <0 0xfea27000 0 0x200>; 2241 + clocks = <&cpg CPG_MOD 603>; 2242 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2243 + resets = <&cpg 603>; 2244 + iommus = <&ipmmu_vi0 8>; 2245 + }; 2246 + 2247 + fcpvd1: fcp@fea2f000 { 2248 + compatible = "renesas,fcpv"; 2249 + reg = <0 0xfea2f000 0 0x200>; 2250 + clocks = <&cpg CPG_MOD 602>; 2251 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2252 + resets = <&cpg 602>; 2253 + iommus = <&ipmmu_vi0 9>; 2254 + }; 2255 + 2256 + fcpvd2: fcp@fea37000 { 2257 + compatible = "renesas,fcpv"; 2258 + reg = <0 0xfea37000 0 0x200>; 2259 + clocks = <&cpg CPG_MOD 601>; 2260 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2261 + resets = <&cpg 601>; 2262 + iommus = <&ipmmu_vi1 10>; 2263 + }; 2264 + 2265 + vspbd: vsp@fe960000 { 2266 + compatible = "renesas,vsp2"; 2267 + reg = <0 0xfe960000 0 0x8000>; 2268 + interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 2269 + clocks = <&cpg CPG_MOD 626>; 2270 + power-domains = <&sysc R8A7795_PD_A3VP>; 2271 + resets = <&cpg 626>; 2272 + 2273 + renesas,fcp = <&fcpvb0>; 2274 + }; 2275 + 2276 + vspbc: vsp@fe920000 { 2277 + compatible = "renesas,vsp2"; 2278 + reg = <0 0xfe920000 0 0x8000>; 2279 + interrupts = <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>; 2280 + clocks = <&cpg CPG_MOD 624>; 2281 + power-domains = <&sysc R8A7795_PD_A3VP>; 2282 + resets = <&cpg 624>; 2283 + 2284 + renesas,fcp = <&fcpvb1>; 2480 2285 }; 2481 2286 2482 2287 vspd0: vsp@fea20000 { ··· 2539 2246 renesas,fcp = <&fcpvd0>; 2540 2247 }; 2541 2248 2542 - fcpvd0: fcp@fea27000 { 2543 - compatible = "renesas,fcpv"; 2544 - reg = <0 0xfea27000 0 0x200>; 2545 - clocks = <&cpg CPG_MOD 603>; 2546 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2547 - resets = <&cpg 603>; 2548 - iommus = <&ipmmu_vi0 8>; 2549 - }; 2550 - 2551 2249 vspd1: vsp@fea28000 { 2552 2250 compatible = "renesas,vsp2"; 2553 2251 reg = <0 0xfea28000 0 0x8000>; ··· 2548 2264 resets = <&cpg 622>; 2549 2265 2550 2266 renesas,fcp = <&fcpvd1>; 2551 - }; 2552 - 2553 - fcpvd1: fcp@fea2f000 { 2554 - compatible = "renesas,fcpv"; 2555 - reg = <0 0xfea2f000 0 0x200>; 2556 - clocks = <&cpg CPG_MOD 602>; 2557 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2558 - resets = <&cpg 602>; 2559 - iommus = <&ipmmu_vi0 9>; 2560 2267 }; 2561 2268 2562 2269 vspd2: vsp@fea30000 { ··· 2561 2286 renesas,fcp = <&fcpvd2>; 2562 2287 }; 2563 2288 2564 - fcpvd2: fcp@fea37000 { 2565 - compatible = "renesas,fcpv"; 2566 - reg = <0 0xfea37000 0 0x200>; 2567 - clocks = <&cpg CPG_MOD 601>; 2289 + vspi0: vsp@fe9a0000 { 2290 + compatible = "renesas,vsp2"; 2291 + reg = <0 0xfe9a0000 0 0x8000>; 2292 + interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; 2293 + clocks = <&cpg CPG_MOD 631>; 2294 + power-domains = <&sysc R8A7795_PD_A3VP>; 2295 + resets = <&cpg 631>; 2296 + 2297 + renesas,fcp = <&fcpvi0>; 2298 + }; 2299 + 2300 + vspi1: vsp@fe9b0000 { 2301 + compatible = "renesas,vsp2"; 2302 + reg = <0 0xfe9b0000 0 0x8000>; 2303 + interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; 2304 + clocks = <&cpg CPG_MOD 630>; 2305 + power-domains = <&sysc R8A7795_PD_A3VP>; 2306 + resets = <&cpg 630>; 2307 + 2308 + renesas,fcp = <&fcpvi1>; 2309 + }; 2310 + 2311 + csi20: csi2@fea80000 { 2312 + compatible = "renesas,r8a7795-csi2"; 2313 + reg = <0 0xfea80000 0 0x10000>; 2314 + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 2315 + clocks = <&cpg CPG_MOD 714>; 2568 2316 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2569 - resets = <&cpg 601>; 2570 - iommus = <&ipmmu_vi1 10>; 2317 + resets = <&cpg 714>; 2318 + status = "disabled"; 2319 + 2320 + ports { 2321 + #address-cells = <1>; 2322 + #size-cells = <0>; 2323 + 2324 + port@1 { 2325 + #address-cells = <1>; 2326 + #size-cells = <0>; 2327 + 2328 + reg = <1>; 2329 + 2330 + csi20vin0: endpoint@0 { 2331 + reg = <0>; 2332 + remote-endpoint = <&vin0csi20>; 2333 + }; 2334 + csi20vin1: endpoint@1 { 2335 + reg = <1>; 2336 + remote-endpoint = <&vin1csi20>; 2337 + }; 2338 + csi20vin2: endpoint@2 { 2339 + reg = <2>; 2340 + remote-endpoint = <&vin2csi20>; 2341 + }; 2342 + csi20vin3: endpoint@3 { 2343 + reg = <3>; 2344 + remote-endpoint = <&vin3csi20>; 2345 + }; 2346 + csi20vin4: endpoint@4 { 2347 + reg = <4>; 2348 + remote-endpoint = <&vin4csi20>; 2349 + }; 2350 + csi20vin5: endpoint@5 { 2351 + reg = <5>; 2352 + remote-endpoint = <&vin5csi20>; 2353 + }; 2354 + csi20vin6: endpoint@6 { 2355 + reg = <6>; 2356 + remote-endpoint = <&vin6csi20>; 2357 + }; 2358 + csi20vin7: endpoint@7 { 2359 + reg = <7>; 2360 + remote-endpoint = <&vin7csi20>; 2361 + }; 2362 + }; 2363 + }; 2571 2364 }; 2572 2365 2573 - fdp1@fe940000 { 2574 - compatible = "renesas,fdp1"; 2575 - reg = <0 0xfe940000 0 0x2400>; 2576 - interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 2577 - clocks = <&cpg CPG_MOD 119>; 2578 - power-domains = <&sysc R8A7795_PD_A3VP>; 2579 - resets = <&cpg 119>; 2580 - renesas,fcp = <&fcpf0>; 2366 + csi40: csi2@feaa0000 { 2367 + compatible = "renesas,r8a7795-csi2"; 2368 + reg = <0 0xfeaa0000 0 0x10000>; 2369 + interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 2370 + clocks = <&cpg CPG_MOD 716>; 2371 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2372 + resets = <&cpg 716>; 2373 + status = "disabled"; 2374 + 2375 + ports { 2376 + #address-cells = <1>; 2377 + #size-cells = <0>; 2378 + 2379 + port@1 { 2380 + #address-cells = <1>; 2381 + #size-cells = <0>; 2382 + 2383 + reg = <1>; 2384 + 2385 + csi40vin0: endpoint@0 { 2386 + reg = <0>; 2387 + remote-endpoint = <&vin0csi40>; 2388 + }; 2389 + csi40vin1: endpoint@1 { 2390 + reg = <1>; 2391 + remote-endpoint = <&vin1csi40>; 2392 + }; 2393 + csi40vin2: endpoint@2 { 2394 + reg = <2>; 2395 + remote-endpoint = <&vin2csi40>; 2396 + }; 2397 + csi40vin3: endpoint@3 { 2398 + reg = <3>; 2399 + remote-endpoint = <&vin3csi40>; 2400 + }; 2401 + }; 2402 + }; 2581 2403 }; 2582 2404 2583 - fdp1@fe944000 { 2584 - compatible = "renesas,fdp1"; 2585 - reg = <0 0xfe944000 0 0x2400>; 2586 - interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 2587 - clocks = <&cpg CPG_MOD 118>; 2588 - power-domains = <&sysc R8A7795_PD_A3VP>; 2589 - resets = <&cpg 118>; 2590 - renesas,fcp = <&fcpf1>; 2405 + csi41: csi2@feab0000 { 2406 + compatible = "renesas,r8a7795-csi2"; 2407 + reg = <0 0xfeab0000 0 0x10000>; 2408 + interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; 2409 + clocks = <&cpg CPG_MOD 715>; 2410 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2411 + resets = <&cpg 715>; 2412 + status = "disabled"; 2413 + 2414 + ports { 2415 + #address-cells = <1>; 2416 + #size-cells = <0>; 2417 + 2418 + port@1 { 2419 + #address-cells = <1>; 2420 + #size-cells = <0>; 2421 + 2422 + reg = <1>; 2423 + 2424 + csi41vin4: endpoint@0 { 2425 + reg = <0>; 2426 + remote-endpoint = <&vin4csi41>; 2427 + }; 2428 + csi41vin5: endpoint@1 { 2429 + reg = <1>; 2430 + remote-endpoint = <&vin5csi41>; 2431 + }; 2432 + csi41vin6: endpoint@2 { 2433 + reg = <2>; 2434 + remote-endpoint = <&vin6csi41>; 2435 + }; 2436 + csi41vin7: endpoint@3 { 2437 + reg = <3>; 2438 + remote-endpoint = <&vin7csi41>; 2439 + }; 2440 + }; 2441 + }; 2591 2442 }; 2592 2443 2593 2444 hdmi0: hdmi@fead0000 { ··· 2737 2336 }; 2738 2337 port@1 { 2739 2338 reg = <1>; 2339 + }; 2340 + port@2 { 2341 + /* HDMI sound */ 2342 + reg = <2>; 2740 2343 }; 2741 2344 }; 2742 2345 }; ··· 2766 2361 }; 2767 2362 port@1 { 2768 2363 reg = <1>; 2364 + }; 2365 + port@2 { 2366 + /* HDMI sound */ 2367 + reg = <2>; 2769 2368 }; 2770 2369 }; 2771 2370 }; ··· 2821 2412 }; 2822 2413 }; 2823 2414 2824 - tsc: thermal@e6198000 { 2825 - compatible = "renesas,r8a7795-thermal"; 2826 - reg = <0 0xe6198000 0 0x100>, 2827 - <0 0xe61a0000 0 0x100>, 2828 - <0 0xe61a8000 0 0x100>; 2829 - interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 2830 - <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 2831 - <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 2832 - clocks = <&cpg CPG_MOD 522>; 2833 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2834 - resets = <&cpg 522>; 2835 - #thermal-sensor-cells = <1>; 2836 - status = "okay"; 2415 + prr: chipid@fff00044 { 2416 + compatible = "renesas,prr"; 2417 + reg = <0 0xfff00044 0 4>; 2837 2418 }; 2838 - }; 2839 - 2840 - timer { 2841 - compatible = "arm,armv8-timer"; 2842 - interrupts-extended = <&gic GIC_PPI 13 2843 - (GIC_CPU_MASK_SIMPLE(8) | 2844 - IRQ_TYPE_LEVEL_LOW)>, 2845 - <&gic GIC_PPI 14 2846 - (GIC_CPU_MASK_SIMPLE(8) | 2847 - IRQ_TYPE_LEVEL_LOW)>, 2848 - <&gic GIC_PPI 11 2849 - (GIC_CPU_MASK_SIMPLE(8) | 2850 - IRQ_TYPE_LEVEL_LOW)>, 2851 - <&gic GIC_PPI 10 2852 - (GIC_CPU_MASK_SIMPLE(8) | 2853 - IRQ_TYPE_LEVEL_LOW)>; 2854 2419 }; 2855 2420 2856 2421 thermal-zones { ··· 2836 2453 trips { 2837 2454 sensor1_passive: sensor1-passive { 2838 2455 temperature = <95000>; 2839 - hysteresis = <2000>; 2456 + hysteresis = <1000>; 2840 2457 type = "passive"; 2841 2458 }; 2842 2459 sensor1_crit: sensor1-crit { 2843 2460 temperature = <120000>; 2844 - hysteresis = <2000>; 2461 + hysteresis = <1000>; 2845 2462 type = "critical"; 2846 2463 }; 2847 2464 }; ··· 2862 2479 trips { 2863 2480 sensor2_passive: sensor2-passive { 2864 2481 temperature = <95000>; 2865 - hysteresis = <2000>; 2482 + hysteresis = <1000>; 2866 2483 type = "passive"; 2867 2484 }; 2868 2485 sensor2_crit: sensor2-crit { 2869 2486 temperature = <120000>; 2870 - hysteresis = <2000>; 2487 + hysteresis = <1000>; 2871 2488 type = "critical"; 2872 2489 }; 2873 2490 }; ··· 2888 2505 trips { 2889 2506 sensor3_passive: sensor3-passive { 2890 2507 temperature = <95000>; 2891 - hysteresis = <2000>; 2508 + hysteresis = <1000>; 2892 2509 type = "passive"; 2893 2510 }; 2894 2511 sensor3_crit: sensor3-crit { 2895 2512 temperature = <120000>; 2896 - hysteresis = <2000>; 2513 + hysteresis = <1000>; 2897 2514 type = "critical"; 2898 2515 }; 2899 2516 }; ··· 2905 2522 }; 2906 2523 }; 2907 2524 }; 2525 + }; 2526 + 2527 + timer { 2528 + compatible = "arm,armv8-timer"; 2529 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2530 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2531 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2532 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 2908 2533 }; 2909 2534 2910 2535 /* External USB clocks - can be overridden by the board */
+28
arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
··· 40 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 48 &hdmi0 { 44 49 status = "okay"; 45 50 ··· 55 50 remote-endpoint = <&hdmi0_con>; 56 51 }; 57 52 }; 53 + port@2 { 54 + reg = <2>; 55 + dw_hdmi0_snd_in: endpoint { 56 + remote-endpoint = <&rsnd_endpoint1>; 57 + }; 58 + }; 58 59 }; 59 60 }; 60 61 61 62 &hdmi0_con { 62 63 remote-endpoint = <&rcar_dw_hdmi0_out>; 64 + }; 65 + 66 + &rcar_sound { 67 + ports { 68 + /* rsnd_port0 is on salvator-common */ 69 + rsnd_port1: port@1 { 70 + rsnd_endpoint1: endpoint { 71 + remote-endpoint = <&dw_hdmi0_snd_in>; 72 + 73 + dai-format = "i2s"; 74 + bitclock-master = <&rsnd_endpoint1>; 75 + frame-master = <&rsnd_endpoint1>; 76 + 77 + playback = <&ssi2>; 78 + }; 79 + }; 80 + }; 63 81 };
+28
arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dts
··· 40 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 48 &hdmi0 { 44 49 status = "okay"; 45 50 ··· 55 50 remote-endpoint = <&hdmi0_con>; 56 51 }; 57 52 }; 53 + port@2 { 54 + reg = <2>; 55 + dw_hdmi0_snd_in: endpoint { 56 + remote-endpoint = <&rsnd_endpoint1>; 57 + }; 58 + }; 58 59 }; 59 60 }; 60 61 61 62 &hdmi0_con { 62 63 remote-endpoint = <&rcar_dw_hdmi0_out>; 64 + }; 65 + 66 + &rcar_sound { 67 + ports { 68 + /* rsnd_port0 is on salvator-common */ 69 + rsnd_port1: port@1 { 70 + rsnd_endpoint1: endpoint { 71 + remote-endpoint = <&dw_hdmi0_snd_in>; 72 + 73 + dai-format = "i2s"; 74 + bitclock-master = <&rsnd_endpoint1>; 75 + frame-master = <&rsnd_endpoint1>; 76 + 77 + playback = <&ssi2>; 78 + }; 79 + }; 80 + }; 63 81 };
+1376 -999
arch/arm64/boot/dts/renesas/r8a7796.dtsi
··· 60 60 clock-frequency = <0>; 61 61 }; 62 62 63 - cpus { 64 - #address-cells = <1>; 65 - #size-cells = <0>; 66 - 67 - a57_0: cpu@0 { 68 - compatible = "arm,cortex-a57", "arm,armv8"; 69 - reg = <0x0>; 70 - device_type = "cpu"; 71 - power-domains = <&sysc R8A7796_PD_CA57_CPU0>; 72 - next-level-cache = <&L2_CA57>; 73 - enable-method = "psci"; 74 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 75 - operating-points-v2 = <&cluster0_opp>; 76 - #cooling-cells = <2>; 77 - }; 78 - 79 - a57_1: cpu@1 { 80 - compatible = "arm,cortex-a57","arm,armv8"; 81 - reg = <0x1>; 82 - device_type = "cpu"; 83 - power-domains = <&sysc R8A7796_PD_CA57_CPU1>; 84 - next-level-cache = <&L2_CA57>; 85 - enable-method = "psci"; 86 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 87 - operating-points-v2 = <&cluster0_opp>; 88 - #cooling-cells = <2>; 89 - }; 90 - 91 - a53_0: cpu@100 { 92 - compatible = "arm,cortex-a53", "arm,armv8"; 93 - reg = <0x100>; 94 - device_type = "cpu"; 95 - power-domains = <&sysc R8A7796_PD_CA53_CPU0>; 96 - next-level-cache = <&L2_CA53>; 97 - enable-method = "psci"; 98 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 99 - operating-points-v2 = <&cluster1_opp>; 100 - }; 101 - 102 - a53_1: cpu@101 { 103 - compatible = "arm,cortex-a53","arm,armv8"; 104 - reg = <0x101>; 105 - device_type = "cpu"; 106 - power-domains = <&sysc R8A7796_PD_CA53_CPU1>; 107 - next-level-cache = <&L2_CA53>; 108 - enable-method = "psci"; 109 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 110 - operating-points-v2 = <&cluster1_opp>; 111 - }; 112 - 113 - a53_2: cpu@102 { 114 - compatible = "arm,cortex-a53","arm,armv8"; 115 - reg = <0x102>; 116 - device_type = "cpu"; 117 - power-domains = <&sysc R8A7796_PD_CA53_CPU2>; 118 - next-level-cache = <&L2_CA53>; 119 - enable-method = "psci"; 120 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 121 - operating-points-v2 = <&cluster1_opp>; 122 - }; 123 - 124 - a53_3: cpu@103 { 125 - compatible = "arm,cortex-a53","arm,armv8"; 126 - reg = <0x103>; 127 - device_type = "cpu"; 128 - power-domains = <&sysc R8A7796_PD_CA53_CPU3>; 129 - next-level-cache = <&L2_CA53>; 130 - enable-method = "psci"; 131 - clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 132 - operating-points-v2 = <&cluster1_opp>; 133 - }; 134 - 135 - L2_CA57: cache-controller-0 { 136 - compatible = "cache"; 137 - power-domains = <&sysc R8A7796_PD_CA57_SCU>; 138 - cache-unified; 139 - cache-level = <2>; 140 - }; 141 - 142 - L2_CA53: cache-controller-1 { 143 - compatible = "cache"; 144 - power-domains = <&sysc R8A7796_PD_CA53_SCU>; 145 - cache-unified; 146 - cache-level = <2>; 147 - }; 148 - }; 149 - 150 - extal_clk: extal { 151 - compatible = "fixed-clock"; 152 - #clock-cells = <0>; 153 - /* This value must be overridden by the board */ 154 - clock-frequency = <0>; 155 - }; 156 - 157 - extalr_clk: extalr { 158 - compatible = "fixed-clock"; 159 - #clock-cells = <0>; 160 - /* This value must be overridden by the board */ 161 - clock-frequency = <0>; 162 - }; 163 - 164 63 cluster0_opp: opp_table0 { 165 64 compatible = "operating-points-v2"; 166 65 opp-shared; ··· 126 227 }; 127 228 }; 128 229 230 + cpus { 231 + #address-cells = <1>; 232 + #size-cells = <0>; 233 + 234 + a57_0: cpu@0 { 235 + compatible = "arm,cortex-a57", "arm,armv8"; 236 + reg = <0x0>; 237 + device_type = "cpu"; 238 + power-domains = <&sysc R8A7796_PD_CA57_CPU0>; 239 + next-level-cache = <&L2_CA57>; 240 + enable-method = "psci"; 241 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 242 + operating-points-v2 = <&cluster0_opp>; 243 + #cooling-cells = <2>; 244 + }; 245 + 246 + a57_1: cpu@1 { 247 + compatible = "arm,cortex-a57", "arm,armv8"; 248 + reg = <0x1>; 249 + device_type = "cpu"; 250 + power-domains = <&sysc R8A7796_PD_CA57_CPU1>; 251 + next-level-cache = <&L2_CA57>; 252 + enable-method = "psci"; 253 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 254 + operating-points-v2 = <&cluster0_opp>; 255 + #cooling-cells = <2>; 256 + }; 257 + 258 + a53_0: cpu@100 { 259 + compatible = "arm,cortex-a53", "arm,armv8"; 260 + reg = <0x100>; 261 + device_type = "cpu"; 262 + power-domains = <&sysc R8A7796_PD_CA53_CPU0>; 263 + next-level-cache = <&L2_CA53>; 264 + enable-method = "psci"; 265 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 266 + operating-points-v2 = <&cluster1_opp>; 267 + }; 268 + 269 + a53_1: cpu@101 { 270 + compatible = "arm,cortex-a53", "arm,armv8"; 271 + reg = <0x101>; 272 + device_type = "cpu"; 273 + power-domains = <&sysc R8A7796_PD_CA53_CPU1>; 274 + next-level-cache = <&L2_CA53>; 275 + enable-method = "psci"; 276 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 277 + operating-points-v2 = <&cluster1_opp>; 278 + }; 279 + 280 + a53_2: cpu@102 { 281 + compatible = "arm,cortex-a53", "arm,armv8"; 282 + reg = <0x102>; 283 + device_type = "cpu"; 284 + power-domains = <&sysc R8A7796_PD_CA53_CPU2>; 285 + next-level-cache = <&L2_CA53>; 286 + enable-method = "psci"; 287 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 288 + operating-points-v2 = <&cluster1_opp>; 289 + }; 290 + 291 + a53_3: cpu@103 { 292 + compatible = "arm,cortex-a53", "arm,armv8"; 293 + reg = <0x103>; 294 + device_type = "cpu"; 295 + power-domains = <&sysc R8A7796_PD_CA53_CPU3>; 296 + next-level-cache = <&L2_CA53>; 297 + enable-method = "psci"; 298 + clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 299 + operating-points-v2 = <&cluster1_opp>; 300 + }; 301 + 302 + L2_CA57: cache-controller-0 { 303 + compatible = "cache"; 304 + power-domains = <&sysc R8A7796_PD_CA57_SCU>; 305 + cache-unified; 306 + cache-level = <2>; 307 + }; 308 + 309 + L2_CA53: cache-controller-1 { 310 + compatible = "cache"; 311 + power-domains = <&sysc R8A7796_PD_CA53_SCU>; 312 + cache-unified; 313 + cache-level = <2>; 314 + }; 315 + }; 316 + 317 + extal_clk: extal { 318 + compatible = "fixed-clock"; 319 + #clock-cells = <0>; 320 + /* This value must be overridden by the board */ 321 + clock-frequency = <0>; 322 + }; 323 + 324 + extalr_clk: extalr { 325 + compatible = "fixed-clock"; 326 + #clock-cells = <0>; 327 + /* This value must be overridden by the board */ 328 + clock-frequency = <0>; 329 + }; 330 + 129 331 /* External PCIe clock - can be overridden by the board */ 130 332 pcie_bus_clk: pcie_bus { 131 333 compatible = "fixed-clock"; 132 334 #clock-cells = <0>; 133 335 clock-frequency = <0>; 134 - }; 135 - 136 - pmu_a57 { 137 - compatible = "arm,cortex-a57-pmu"; 138 - interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 139 - <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 140 - interrupt-affinity = <&a57_0>, <&a57_1>; 141 336 }; 142 337 143 338 pmu_a53 { ··· 241 248 <&gic GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, 242 249 <&gic GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 243 250 interrupt-affinity = <&a53_0>, <&a53_1>, <&a53_2>, <&a53_3>; 251 + }; 252 + 253 + pmu_a57 { 254 + compatible = "arm,cortex-a57-pmu"; 255 + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 256 + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 257 + interrupt-affinity = <&a57_0>, <&a57_1>; 244 258 }; 245 259 246 260 psci { ··· 268 268 #address-cells = <2>; 269 269 #size-cells = <2>; 270 270 ranges; 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 271 289 272 wdt0: watchdog@e6020000 { 290 273 compatible = "renesas,r8a7796-wdt", ··· 404 421 reg = <0 0xe6060000 0 0x50c>; 405 422 }; 406 423 407 - ipmmu_vi0: mmu@febd0000 { 408 - compatible = "renesas,ipmmu-r8a7796"; 409 - reg = <0 0xfebd0000 0 0x1000>; 410 - renesas,ipmmu-main = <&ipmmu_mm 9>; 411 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 412 - #iommu-cells = <1>; 413 - }; 414 - 415 - ipmmu_vc0: mmu@fe6b0000 { 416 - compatible = "renesas,ipmmu-r8a7796"; 417 - reg = <0 0xfe6b0000 0 0x1000>; 418 - renesas,ipmmu-main = <&ipmmu_mm 8>; 419 - power-domains = <&sysc R8A7796_PD_A3VC>; 420 - #iommu-cells = <1>; 421 - status = "disabled"; 422 - }; 423 - 424 - ipmmu_pv0: mmu@fd800000 { 425 - compatible = "renesas,ipmmu-r8a7796"; 426 - reg = <0 0xfd800000 0 0x1000>; 427 - renesas,ipmmu-main = <&ipmmu_mm 5>; 428 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 429 - #iommu-cells = <1>; 430 - }; 431 - 432 - ipmmu_pv1: mmu@fd950000 { 433 - compatible = "renesas,ipmmu-r8a7796"; 434 - reg = <0 0xfd950000 0 0x1000>; 435 - renesas,ipmmu-main = <&ipmmu_mm 6>; 436 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 437 - #iommu-cells = <1>; 438 - status = "disabled"; 439 - }; 440 - 441 - ipmmu_ir: mmu@ff8b0000 { 442 - compatible = "renesas,ipmmu-r8a7796"; 443 - reg = <0 0xff8b0000 0 0x1000>; 444 - renesas,ipmmu-main = <&ipmmu_mm 3>; 445 - power-domains = <&sysc R8A7796_PD_A3IR>; 446 - #iommu-cells = <1>; 447 - status = "disabled"; 448 - }; 449 - 450 - ipmmu_hc: mmu@e6570000 { 451 - compatible = "renesas,ipmmu-r8a7796"; 452 - reg = <0 0xe6570000 0 0x1000>; 453 - renesas,ipmmu-main = <&ipmmu_mm 2>; 454 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 455 - #iommu-cells = <1>; 456 - status = "disabled"; 457 - }; 458 - 459 - ipmmu_rt: mmu@ffc80000 { 460 - compatible = "renesas,ipmmu-r8a7796"; 461 - reg = <0 0xffc80000 0 0x1000>; 462 - renesas,ipmmu-main = <&ipmmu_mm 7>; 463 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 464 - #iommu-cells = <1>; 465 - status = "disabled"; 466 - }; 467 - 468 - ipmmu_mp: mmu@ec670000 { 469 - compatible = "renesas,ipmmu-r8a7796"; 470 - reg = <0 0xec670000 0 0x1000>; 471 - renesas,ipmmu-main = <&ipmmu_mm 4>; 472 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 473 - #iommu-cells = <1>; 474 - }; 475 - 476 - ipmmu_ds0: mmu@e6740000 { 477 - compatible = "renesas,ipmmu-r8a7796"; 478 - reg = <0 0xe6740000 0 0x1000>; 479 - renesas,ipmmu-main = <&ipmmu_mm 0>; 480 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 481 - #iommu-cells = <1>; 482 - }; 483 - 484 - ipmmu_ds1: mmu@e7740000 { 485 - compatible = "renesas,ipmmu-r8a7796"; 486 - reg = <0 0xe7740000 0 0x1000>; 487 - renesas,ipmmu-main = <&ipmmu_mm 1>; 488 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 489 - #iommu-cells = <1>; 490 - }; 491 - 492 - ipmmu_mm: mmu@e67b0000 { 493 - compatible = "renesas,ipmmu-r8a7796"; 494 - reg = <0 0xe67b0000 0 0x1000>; 495 - interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 496 - <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 497 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 498 - #iommu-cells = <1>; 499 - }; 500 - 501 424 cpg: clock-controller@e6150000 { 502 425 compatible = "renesas,r8a7796-cpg-mssr"; 503 426 reg = <0 0xe6150000 0 0x1000>; ··· 419 530 reg = <0 0xe6160000 0 0x0200>; 420 531 }; 421 532 422 - prr: chipid@fff00044 { 423 - compatible = "renesas,prr"; 424 - reg = <0 0xfff00044 0 4>; 425 - }; 426 - 427 533 sysc: system-controller@e6180000 { 428 534 compatible = "renesas,r8a7796-sysc"; 429 535 reg = <0 0xe6180000 0 0x0400>; 430 536 #power-domain-cells = <1>; 537 + }; 538 + 539 + tsc: thermal@e6198000 { 540 + compatible = "renesas,r8a7796-thermal"; 541 + reg = <0 0xe6198000 0 0x100>, 542 + <0 0xe61a0000 0 0x100>, 543 + <0 0xe61a8000 0 0x100>; 544 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 545 + <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 546 + <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 547 + clocks = <&cpg CPG_MOD 522>; 548 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 549 + resets = <&cpg 522>; 550 + #thermal-sensor-cells = <1>; 551 + status = "okay"; 431 552 }; 432 553 433 554 intc_ex: interrupt-controller@e61c0000 { ··· 454 555 clocks = <&cpg CPG_MOD 407>; 455 556 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 456 557 resets = <&cpg 407>; 457 - }; 458 - 459 - i2c_dvfs: i2c@e60b0000 { 460 - #address-cells = <1>; 461 - #size-cells = <0>; 462 - compatible = "renesas,iic-r8a7796", 463 - "renesas,rcar-gen3-iic", 464 - "renesas,rmobile-iic"; 465 - reg = <0 0xe60b0000 0 0x425>; 466 - interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 467 - clocks = <&cpg CPG_MOD 926>; 468 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 469 - resets = <&cpg 926>; 470 - dmas = <&dmac0 0x11>, <&dmac0 0x10>; 471 - dma-names = "tx", "rx"; 472 - status = "disabled"; 473 - }; 474 - 475 - pwm0: pwm@e6e30000 { 476 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 477 - reg = <0 0xe6e30000 0 8>; 478 - #pwm-cells = <2>; 479 - clocks = <&cpg CPG_MOD 523>; 480 - resets = <&cpg 523>; 481 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 482 - status = "disabled"; 483 - }; 484 - 485 - pwm1: pwm@e6e31000 { 486 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 487 - reg = <0 0xe6e31000 0 8>; 488 - #pwm-cells = <2>; 489 - clocks = <&cpg CPG_MOD 523>; 490 - resets = <&cpg 523>; 491 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 492 - status = "disabled"; 493 - }; 494 - 495 - pwm2: pwm@e6e32000 { 496 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 497 - reg = <0 0xe6e32000 0 8>; 498 - #pwm-cells = <2>; 499 - clocks = <&cpg CPG_MOD 523>; 500 - resets = <&cpg 523>; 501 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 502 - status = "disabled"; 503 - }; 504 - 505 - pwm3: pwm@e6e33000 { 506 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 507 - reg = <0 0xe6e33000 0 8>; 508 - #pwm-cells = <2>; 509 - clocks = <&cpg CPG_MOD 523>; 510 - resets = <&cpg 523>; 511 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 512 - status = "disabled"; 513 - }; 514 - 515 - pwm4: pwm@e6e34000 { 516 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 517 - reg = <0 0xe6e34000 0 8>; 518 - #pwm-cells = <2>; 519 - clocks = <&cpg CPG_MOD 523>; 520 - resets = <&cpg 523>; 521 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 522 - status = "disabled"; 523 - }; 524 - 525 - pwm5: pwm@e6e35000 { 526 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 527 - reg = <0 0xe6e35000 0 8>; 528 - #pwm-cells = <2>; 529 - clocks = <&cpg CPG_MOD 523>; 530 - resets = <&cpg 523>; 531 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 532 - status = "disabled"; 533 - }; 534 - 535 - pwm6: pwm@e6e36000 { 536 - compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 537 - reg = <0 0xe6e36000 0 8>; 538 - #pwm-cells = <2>; 539 - clocks = <&cpg CPG_MOD 523>; 540 - resets = <&cpg 523>; 541 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 542 - status = "disabled"; 543 558 }; 544 559 545 560 i2c0: i2c@e6500000 { ··· 571 758 status = "disabled"; 572 759 }; 573 760 574 - can0: can@e6c30000 { 575 - compatible = "renesas,can-r8a7796", 576 - "renesas,rcar-gen3-can"; 577 - reg = <0 0xe6c30000 0 0x1000>; 578 - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 579 - clocks = <&cpg CPG_MOD 916>, 580 - <&cpg CPG_CORE R8A7796_CLK_CANFD>, 581 - <&can_clk>; 582 - clock-names = "clkp1", "clkp2", "can_clk"; 583 - assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 584 - assigned-clock-rates = <40000000>; 585 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 586 - resets = <&cpg 916>; 587 - status = "disabled"; 588 - }; 589 - 590 - can1: can@e6c38000 { 591 - compatible = "renesas,can-r8a7796", 592 - "renesas,rcar-gen3-can"; 593 - reg = <0 0xe6c38000 0 0x1000>; 594 - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 595 - clocks = <&cpg CPG_MOD 915>, 596 - <&cpg CPG_CORE R8A7796_CLK_CANFD>, 597 - <&can_clk>; 598 - clock-names = "clkp1", "clkp2", "can_clk"; 599 - assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 600 - assigned-clock-rates = <40000000>; 601 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 602 - resets = <&cpg 915>; 603 - status = "disabled"; 604 - }; 605 - 606 - canfd: can@e66c0000 { 607 - compatible = "renesas,r8a7796-canfd", 608 - "renesas,rcar-gen3-canfd"; 609 - reg = <0 0xe66c0000 0 0x8000>; 610 - interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 611 - <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 612 - clocks = <&cpg CPG_MOD 914>, 613 - <&cpg CPG_CORE R8A7796_CLK_CANFD>, 614 - <&can_clk>; 615 - clock-names = "fck", "canfd", "can_clk"; 616 - assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 617 - assigned-clock-rates = <40000000>; 618 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 619 - resets = <&cpg 914>; 620 - status = "disabled"; 621 - 622 - channel0 { 623 - status = "disabled"; 624 - }; 625 - 626 - channel1 { 627 - status = "disabled"; 628 - }; 629 - }; 630 - 631 - drif00: rif@e6f40000 { 632 - compatible = "renesas,r8a7796-drif", 633 - "renesas,rcar-gen3-drif"; 634 - reg = <0 0xe6f40000 0 0x64>; 635 - interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 636 - clocks = <&cpg CPG_MOD 515>; 637 - clock-names = "fck"; 638 - dmas = <&dmac1 0x20>, <&dmac2 0x20>; 639 - dma-names = "rx", "rx"; 640 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 641 - resets = <&cpg 515>; 642 - renesas,bonding = <&drif01>; 643 - status = "disabled"; 644 - }; 645 - 646 - drif01: rif@e6f50000 { 647 - compatible = "renesas,r8a7796-drif", 648 - "renesas,rcar-gen3-drif"; 649 - reg = <0 0xe6f50000 0 0x64>; 650 - interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 651 - clocks = <&cpg CPG_MOD 514>; 652 - clock-names = "fck"; 653 - dmas = <&dmac1 0x22>, <&dmac2 0x22>; 654 - dma-names = "rx", "rx"; 655 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 656 - resets = <&cpg 514>; 657 - renesas,bonding = <&drif00>; 658 - status = "disabled"; 659 - }; 660 - 661 - drif10: rif@e6f60000 { 662 - compatible = "renesas,r8a7796-drif", 663 - "renesas,rcar-gen3-drif"; 664 - reg = <0 0xe6f60000 0 0x64>; 665 - interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 666 - clocks = <&cpg CPG_MOD 513>; 667 - clock-names = "fck"; 668 - dmas = <&dmac1 0x24>, <&dmac2 0x24>; 669 - dma-names = "rx", "rx"; 670 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 671 - resets = <&cpg 513>; 672 - renesas,bonding = <&drif11>; 673 - status = "disabled"; 674 - }; 675 - 676 - drif11: rif@e6f70000 { 677 - compatible = "renesas,r8a7796-drif", 678 - "renesas,rcar-gen3-drif"; 679 - reg = <0 0xe6f70000 0 0x64>; 680 - interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 681 - clocks = <&cpg CPG_MOD 512>; 682 - clock-names = "fck"; 683 - dmas = <&dmac1 0x26>, <&dmac2 0x26>; 684 - dma-names = "rx", "rx"; 685 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 686 - resets = <&cpg 512>; 687 - renesas,bonding = <&drif10>; 688 - status = "disabled"; 689 - }; 690 - 691 - drif20: rif@e6f80000 { 692 - compatible = "renesas,r8a7796-drif", 693 - "renesas,rcar-gen3-drif"; 694 - reg = <0 0xe6f80000 0 0x64>; 695 - interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 696 - clocks = <&cpg CPG_MOD 511>; 697 - clock-names = "fck"; 698 - dmas = <&dmac1 0x28>, <&dmac2 0x28>; 699 - dma-names = "rx", "rx"; 700 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 701 - resets = <&cpg 511>; 702 - renesas,bonding = <&drif21>; 703 - status = "disabled"; 704 - }; 705 - 706 - drif21: rif@e6f90000 { 707 - compatible = "renesas,r8a7796-drif", 708 - "renesas,rcar-gen3-drif"; 709 - reg = <0 0xe6f90000 0 0x64>; 710 - interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 711 - clocks = <&cpg CPG_MOD 510>; 712 - clock-names = "fck"; 713 - dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; 714 - dma-names = "rx", "rx"; 715 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 716 - resets = <&cpg 510>; 717 - renesas,bonding = <&drif20>; 718 - status = "disabled"; 719 - }; 720 - 721 - drif30: rif@e6fa0000 { 722 - compatible = "renesas,r8a7796-drif", 723 - "renesas,rcar-gen3-drif"; 724 - reg = <0 0xe6fa0000 0 0x64>; 725 - interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 726 - clocks = <&cpg CPG_MOD 509>; 727 - clock-names = "fck"; 728 - dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; 729 - dma-names = "rx", "rx"; 730 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 731 - resets = <&cpg 509>; 732 - renesas,bonding = <&drif31>; 733 - status = "disabled"; 734 - }; 735 - 736 - drif31: rif@e6fb0000 { 737 - compatible = "renesas,r8a7796-drif", 738 - "renesas,rcar-gen3-drif"; 739 - reg = <0 0xe6fb0000 0 0x64>; 740 - interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 741 - clocks = <&cpg CPG_MOD 508>; 742 - clock-names = "fck"; 743 - dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; 744 - dma-names = "rx", "rx"; 745 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 746 - resets = <&cpg 508>; 747 - renesas,bonding = <&drif30>; 748 - status = "disabled"; 749 - }; 750 - 751 - avb: ethernet@e6800000 { 752 - compatible = "renesas,etheravb-r8a7796", 753 - "renesas,etheravb-rcar-gen3"; 754 - reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; 755 - interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 756 - <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 757 - <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 758 - <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 759 - <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 760 - <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 761 - <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 762 - <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 763 - <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 764 - <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 765 - <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 766 - <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 767 - <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 768 - <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 769 - <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 770 - <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 771 - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 772 - <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 773 - <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 774 - <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 775 - <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 776 - <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 777 - <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 778 - <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 779 - <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 780 - interrupt-names = "ch0", "ch1", "ch2", "ch3", 781 - "ch4", "ch5", "ch6", "ch7", 782 - "ch8", "ch9", "ch10", "ch11", 783 - "ch12", "ch13", "ch14", "ch15", 784 - "ch16", "ch17", "ch18", "ch19", 785 - "ch20", "ch21", "ch22", "ch23", 786 - "ch24"; 787 - clocks = <&cpg CPG_MOD 812>; 788 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 789 - resets = <&cpg 812>; 790 - phy-mode = "rgmii"; 791 - iommus = <&ipmmu_ds0 16>; 761 + i2c_dvfs: i2c@e60b0000 { 792 762 #address-cells = <1>; 793 763 #size-cells = <0>; 764 + compatible = "renesas,iic-r8a7796", 765 + "renesas,rcar-gen3-iic", 766 + "renesas,rmobile-iic"; 767 + reg = <0 0xe60b0000 0 0x425>; 768 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 769 + clocks = <&cpg CPG_MOD 926>; 770 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 771 + resets = <&cpg 926>; 772 + dmas = <&dmac0 0x11>, <&dmac0 0x10>; 773 + dma-names = "tx", "rx"; 794 774 status = "disabled"; 795 775 }; 796 776 ··· 672 1066 dma-names = "tx", "rx"; 673 1067 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 674 1068 resets = <&cpg 516>; 1069 + status = "disabled"; 1070 + }; 1071 + 1072 + hsusb: usb@e6590000 { 1073 + compatible = "renesas,usbhs-r8a7796", 1074 + "renesas,rcar-gen3-usbhs"; 1075 + reg = <0 0xe6590000 0 0x100>; 1076 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1077 + clocks = <&cpg CPG_MOD 704>; 1078 + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 1079 + <&usb_dmac1 0>, <&usb_dmac1 1>; 1080 + dma-names = "ch0", "ch1", "ch2", "ch3"; 1081 + renesas,buswait = <11>; 1082 + phys = <&usb2_phy0>; 1083 + phy-names = "usb"; 1084 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1085 + resets = <&cpg 704>; 1086 + status = "disabled"; 1087 + }; 1088 + 1089 + usb_dmac0: dma-controller@e65a0000 { 1090 + compatible = "renesas,r8a7796-usb-dmac", 1091 + "renesas,usb-dmac"; 1092 + reg = <0 0xe65a0000 0 0x100>; 1093 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 1094 + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 1095 + interrupt-names = "ch0", "ch1"; 1096 + clocks = <&cpg CPG_MOD 330>; 1097 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1098 + resets = <&cpg 330>; 1099 + #dma-cells = <1>; 1100 + dma-channels = <2>; 1101 + }; 1102 + 1103 + usb_dmac1: dma-controller@e65b0000 { 1104 + compatible = "renesas,r8a7796-usb-dmac", 1105 + "renesas,usb-dmac"; 1106 + reg = <0 0xe65b0000 0 0x100>; 1107 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 1108 + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 1109 + interrupt-names = "ch0", "ch1"; 1110 + clocks = <&cpg CPG_MOD 331>; 1111 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1112 + resets = <&cpg 331>; 1113 + #dma-cells = <1>; 1114 + dma-channels = <2>; 1115 + }; 1116 + 1117 + usb3_phy0: usb-phy@e65ee000 { 1118 + compatible = "renesas,r8a7796-usb3-phy", 1119 + "renesas,rcar-gen3-usb3-phy"; 1120 + reg = <0 0xe65ee000 0 0x90>; 1121 + clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, 1122 + <&usb_extal_clk>; 1123 + clock-names = "usb3-if", "usb3s_clk", "usb_extal"; 1124 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1125 + resets = <&cpg 328>; 1126 + #phy-cells = <0>; 1127 + status = "disabled"; 1128 + }; 1129 + 1130 + dmac0: dma-controller@e6700000 { 1131 + compatible = "renesas,dmac-r8a7796", 1132 + "renesas,rcar-dmac"; 1133 + reg = <0 0xe6700000 0 0x10000>; 1134 + interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH 1135 + GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 1136 + GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH 1137 + GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 1138 + GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 1139 + GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 1140 + GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 1141 + GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 1142 + GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH 1143 + GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH 1144 + GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH 1145 + GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH 1146 + GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH 1147 + GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 1148 + GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH 1149 + GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH 1150 + GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; 1151 + interrupt-names = "error", 1152 + "ch0", "ch1", "ch2", "ch3", 1153 + "ch4", "ch5", "ch6", "ch7", 1154 + "ch8", "ch9", "ch10", "ch11", 1155 + "ch12", "ch13", "ch14", "ch15"; 1156 + clocks = <&cpg CPG_MOD 219>; 1157 + clock-names = "fck"; 1158 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1159 + resets = <&cpg 219>; 1160 + #dma-cells = <1>; 1161 + dma-channels = <16>; 1162 + iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>, 1163 + <&ipmmu_ds0 2>, <&ipmmu_ds0 3>, 1164 + <&ipmmu_ds0 4>, <&ipmmu_ds0 5>, 1165 + <&ipmmu_ds0 6>, <&ipmmu_ds0 7>, 1166 + <&ipmmu_ds0 8>, <&ipmmu_ds0 9>, 1167 + <&ipmmu_ds0 10>, <&ipmmu_ds0 11>, 1168 + <&ipmmu_ds0 12>, <&ipmmu_ds0 13>, 1169 + <&ipmmu_ds0 14>, <&ipmmu_ds0 15>; 1170 + }; 1171 + 1172 + dmac1: dma-controller@e7300000 { 1173 + compatible = "renesas,dmac-r8a7796", 1174 + "renesas,rcar-dmac"; 1175 + reg = <0 0xe7300000 0 0x10000>; 1176 + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 1177 + GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 1178 + GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 1179 + GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 1180 + GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 1181 + GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 1182 + GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 1183 + GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 1184 + GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH 1185 + GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 1186 + GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 1187 + GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 1188 + GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 1189 + GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 1190 + GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 1191 + GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 1192 + GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; 1193 + interrupt-names = "error", 1194 + "ch0", "ch1", "ch2", "ch3", 1195 + "ch4", "ch5", "ch6", "ch7", 1196 + "ch8", "ch9", "ch10", "ch11", 1197 + "ch12", "ch13", "ch14", "ch15"; 1198 + clocks = <&cpg CPG_MOD 218>; 1199 + clock-names = "fck"; 1200 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1201 + resets = <&cpg 218>; 1202 + #dma-cells = <1>; 1203 + dma-channels = <16>; 1204 + iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, 1205 + <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, 1206 + <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, 1207 + <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, 1208 + <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, 1209 + <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, 1210 + <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, 1211 + <&ipmmu_ds1 14>, <&ipmmu_ds1 15>; 1212 + }; 1213 + 1214 + dmac2: dma-controller@e7310000 { 1215 + compatible = "renesas,dmac-r8a7796", 1216 + "renesas,rcar-dmac"; 1217 + reg = <0 0xe7310000 0 0x10000>; 1218 + interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH 1219 + GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH 1220 + GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH 1221 + GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH 1222 + GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH 1223 + GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH 1224 + GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH 1225 + GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH 1226 + GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH 1227 + GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 1228 + GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 1229 + GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH 1230 + GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH 1231 + GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH 1232 + GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH 1233 + GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH 1234 + GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; 1235 + interrupt-names = "error", 1236 + "ch0", "ch1", "ch2", "ch3", 1237 + "ch4", "ch5", "ch6", "ch7", 1238 + "ch8", "ch9", "ch10", "ch11", 1239 + "ch12", "ch13", "ch14", "ch15"; 1240 + clocks = <&cpg CPG_MOD 217>; 1241 + clock-names = "fck"; 1242 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1243 + resets = <&cpg 217>; 1244 + #dma-cells = <1>; 1245 + dma-channels = <16>; 1246 + iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, 1247 + <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, 1248 + <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, 1249 + <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, 1250 + <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, 1251 + <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, 1252 + <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, 1253 + <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; 1254 + }; 1255 + 1256 + ipmmu_ds0: mmu@e6740000 { 1257 + compatible = "renesas,ipmmu-r8a7796"; 1258 + reg = <0 0xe6740000 0 0x1000>; 1259 + renesas,ipmmu-main = <&ipmmu_mm 0>; 1260 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1261 + #iommu-cells = <1>; 1262 + }; 1263 + 1264 + ipmmu_ds1: mmu@e7740000 { 1265 + compatible = "renesas,ipmmu-r8a7796"; 1266 + reg = <0 0xe7740000 0 0x1000>; 1267 + renesas,ipmmu-main = <&ipmmu_mm 1>; 1268 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1269 + #iommu-cells = <1>; 1270 + }; 1271 + 1272 + ipmmu_hc: mmu@e6570000 { 1273 + compatible = "renesas,ipmmu-r8a7796"; 1274 + reg = <0 0xe6570000 0 0x1000>; 1275 + renesas,ipmmu-main = <&ipmmu_mm 2>; 1276 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1277 + #iommu-cells = <1>; 1278 + }; 1279 + 1280 + ipmmu_ir: mmu@ff8b0000 { 1281 + compatible = "renesas,ipmmu-r8a7796"; 1282 + reg = <0 0xff8b0000 0 0x1000>; 1283 + renesas,ipmmu-main = <&ipmmu_mm 3>; 1284 + power-domains = <&sysc R8A7796_PD_A3IR>; 1285 + #iommu-cells = <1>; 1286 + }; 1287 + 1288 + ipmmu_mm: mmu@e67b0000 { 1289 + compatible = "renesas,ipmmu-r8a7796"; 1290 + reg = <0 0xe67b0000 0 0x1000>; 1291 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 1292 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 1293 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1294 + #iommu-cells = <1>; 1295 + }; 1296 + 1297 + ipmmu_mp: mmu@ec670000 { 1298 + compatible = "renesas,ipmmu-r8a7796"; 1299 + reg = <0 0xec670000 0 0x1000>; 1300 + renesas,ipmmu-main = <&ipmmu_mm 4>; 1301 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1302 + #iommu-cells = <1>; 1303 + }; 1304 + 1305 + ipmmu_pv0: mmu@fd800000 { 1306 + compatible = "renesas,ipmmu-r8a7796"; 1307 + reg = <0 0xfd800000 0 0x1000>; 1308 + renesas,ipmmu-main = <&ipmmu_mm 5>; 1309 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1310 + #iommu-cells = <1>; 1311 + }; 1312 + 1313 + ipmmu_pv1: mmu@fd950000 { 1314 + compatible = "renesas,ipmmu-r8a7796"; 1315 + reg = <0 0xfd950000 0 0x1000>; 1316 + renesas,ipmmu-main = <&ipmmu_mm 6>; 1317 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1318 + #iommu-cells = <1>; 1319 + }; 1320 + 1321 + ipmmu_rt: mmu@ffc80000 { 1322 + compatible = "renesas,ipmmu-r8a7796"; 1323 + reg = <0 0xffc80000 0 0x1000>; 1324 + renesas,ipmmu-main = <&ipmmu_mm 7>; 1325 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1326 + #iommu-cells = <1>; 1327 + }; 1328 + 1329 + ipmmu_vc0: mmu@fe6b0000 { 1330 + compatible = "renesas,ipmmu-r8a7796"; 1331 + reg = <0 0xfe6b0000 0 0x1000>; 1332 + renesas,ipmmu-main = <&ipmmu_mm 8>; 1333 + power-domains = <&sysc R8A7796_PD_A3VC>; 1334 + #iommu-cells = <1>; 1335 + }; 1336 + 1337 + ipmmu_vi0: mmu@febd0000 { 1338 + compatible = "renesas,ipmmu-r8a7796"; 1339 + reg = <0 0xfebd0000 0 0x1000>; 1340 + renesas,ipmmu-main = <&ipmmu_mm 9>; 1341 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1342 + #iommu-cells = <1>; 1343 + }; 1344 + 1345 + avb: ethernet@e6800000 { 1346 + compatible = "renesas,etheravb-r8a7796", 1347 + "renesas,etheravb-rcar-gen3"; 1348 + reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; 1349 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 1350 + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 1351 + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 1352 + <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 1353 + <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 1354 + <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 1355 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 1356 + <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 1357 + <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 1358 + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 1359 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 1360 + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 1361 + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 1362 + <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 1363 + <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 1364 + <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 1365 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 1366 + <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 1367 + <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 1368 + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 1369 + <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 1370 + <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 1371 + <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 1372 + <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 1373 + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 1374 + interrupt-names = "ch0", "ch1", "ch2", "ch3", 1375 + "ch4", "ch5", "ch6", "ch7", 1376 + "ch8", "ch9", "ch10", "ch11", 1377 + "ch12", "ch13", "ch14", "ch15", 1378 + "ch16", "ch17", "ch18", "ch19", 1379 + "ch20", "ch21", "ch22", "ch23", 1380 + "ch24"; 1381 + clocks = <&cpg CPG_MOD 812>; 1382 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1383 + resets = <&cpg 812>; 1384 + phy-mode = "rgmii"; 1385 + iommus = <&ipmmu_ds0 16>; 1386 + #address-cells = <1>; 1387 + #size-cells = <0>; 1388 + status = "disabled"; 1389 + }; 1390 + 1391 + can0: can@e6c30000 { 1392 + compatible = "renesas,can-r8a7796", 1393 + "renesas,rcar-gen3-can"; 1394 + reg = <0 0xe6c30000 0 0x1000>; 1395 + interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1396 + clocks = <&cpg CPG_MOD 916>, 1397 + <&cpg CPG_CORE R8A7796_CLK_CANFD>, 1398 + <&can_clk>; 1399 + clock-names = "clkp1", "clkp2", "can_clk"; 1400 + assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 1401 + assigned-clock-rates = <40000000>; 1402 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1403 + resets = <&cpg 916>; 1404 + status = "disabled"; 1405 + }; 1406 + 1407 + can1: can@e6c38000 { 1408 + compatible = "renesas,can-r8a7796", 1409 + "renesas,rcar-gen3-can"; 1410 + reg = <0 0xe6c38000 0 0x1000>; 1411 + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 1412 + clocks = <&cpg CPG_MOD 915>, 1413 + <&cpg CPG_CORE R8A7796_CLK_CANFD>, 1414 + <&can_clk>; 1415 + clock-names = "clkp1", "clkp2", "can_clk"; 1416 + assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 1417 + assigned-clock-rates = <40000000>; 1418 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1419 + resets = <&cpg 915>; 1420 + status = "disabled"; 1421 + }; 1422 + 1423 + canfd: can@e66c0000 { 1424 + compatible = "renesas,r8a7796-canfd", 1425 + "renesas,rcar-gen3-canfd"; 1426 + reg = <0 0xe66c0000 0 0x8000>; 1427 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 1428 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 1429 + clocks = <&cpg CPG_MOD 914>, 1430 + <&cpg CPG_CORE R8A7796_CLK_CANFD>, 1431 + <&can_clk>; 1432 + clock-names = "fck", "canfd", "can_clk"; 1433 + assigned-clocks = <&cpg CPG_CORE R8A7796_CLK_CANFD>; 1434 + assigned-clock-rates = <40000000>; 1435 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1436 + resets = <&cpg 914>; 1437 + status = "disabled"; 1438 + 1439 + channel0 { 1440 + status = "disabled"; 1441 + }; 1442 + 1443 + channel1 { 1444 + status = "disabled"; 1445 + }; 1446 + }; 1447 + 1448 + pwm0: pwm@e6e30000 { 1449 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1450 + reg = <0 0xe6e30000 0 8>; 1451 + #pwm-cells = <2>; 1452 + clocks = <&cpg CPG_MOD 523>; 1453 + resets = <&cpg 523>; 1454 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1455 + status = "disabled"; 1456 + }; 1457 + 1458 + pwm1: pwm@e6e31000 { 1459 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1460 + reg = <0 0xe6e31000 0 8>; 1461 + #pwm-cells = <2>; 1462 + clocks = <&cpg CPG_MOD 523>; 1463 + resets = <&cpg 523>; 1464 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1465 + status = "disabled"; 1466 + }; 1467 + 1468 + pwm2: pwm@e6e32000 { 1469 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1470 + reg = <0 0xe6e32000 0 8>; 1471 + #pwm-cells = <2>; 1472 + clocks = <&cpg CPG_MOD 523>; 1473 + resets = <&cpg 523>; 1474 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1475 + status = "disabled"; 1476 + }; 1477 + 1478 + pwm3: pwm@e6e33000 { 1479 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1480 + reg = <0 0xe6e33000 0 8>; 1481 + #pwm-cells = <2>; 1482 + clocks = <&cpg CPG_MOD 523>; 1483 + resets = <&cpg 523>; 1484 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1485 + status = "disabled"; 1486 + }; 1487 + 1488 + pwm4: pwm@e6e34000 { 1489 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1490 + reg = <0 0xe6e34000 0 8>; 1491 + #pwm-cells = <2>; 1492 + clocks = <&cpg CPG_MOD 523>; 1493 + resets = <&cpg 523>; 1494 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1495 + status = "disabled"; 1496 + }; 1497 + 1498 + pwm5: pwm@e6e35000 { 1499 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1500 + reg = <0 0xe6e35000 0 8>; 1501 + #pwm-cells = <2>; 1502 + clocks = <&cpg CPG_MOD 523>; 1503 + resets = <&cpg 523>; 1504 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1505 + status = "disabled"; 1506 + }; 1507 + 1508 + pwm6: pwm@e6e36000 { 1509 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 1510 + reg = <0 0xe6e36000 0 8>; 1511 + #pwm-cells = <2>; 1512 + clocks = <&cpg CPG_MOD 523>; 1513 + resets = <&cpg 523>; 1514 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 675 1515 status = "disabled"; 676 1516 }; 677 1517 ··· 1280 1228 status = "disabled"; 1281 1229 }; 1282 1230 1283 - dmac0: dma-controller@e6700000 { 1284 - compatible = "renesas,dmac-r8a7796", 1285 - "renesas,rcar-dmac"; 1286 - reg = <0 0xe6700000 0 0x10000>; 1287 - interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH 1288 - GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 1289 - GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH 1290 - GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 1291 - GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 1292 - GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 1293 - GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 1294 - GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 1295 - GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH 1296 - GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH 1297 - GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH 1298 - GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH 1299 - GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH 1300 - GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 1301 - GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH 1302 - GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH 1303 - GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; 1304 - interrupt-names = "error", 1305 - "ch0", "ch1", "ch2", "ch3", 1306 - "ch4", "ch5", "ch6", "ch7", 1307 - "ch8", "ch9", "ch10", "ch11", 1308 - "ch12", "ch13", "ch14", "ch15"; 1309 - clocks = <&cpg CPG_MOD 219>; 1231 + vin0: video@e6ef0000 { 1232 + compatible = "renesas,vin-r8a7796"; 1233 + reg = <0 0xe6ef0000 0 0x1000>; 1234 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 1235 + clocks = <&cpg CPG_MOD 811>; 1236 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1237 + resets = <&cpg 811>; 1238 + renesas,id = <0>; 1239 + status = "disabled"; 1240 + 1241 + ports { 1242 + #address-cells = <1>; 1243 + #size-cells = <0>; 1244 + 1245 + port@1 { 1246 + #address-cells = <1>; 1247 + #size-cells = <0>; 1248 + 1249 + reg = <1>; 1250 + 1251 + vin0csi20: endpoint@0 { 1252 + reg = <0>; 1253 + remote-endpoint= <&csi20vin0>; 1254 + }; 1255 + vin0csi40: endpoint@2 { 1256 + reg = <2>; 1257 + remote-endpoint= <&csi40vin0>; 1258 + }; 1259 + }; 1260 + }; 1261 + }; 1262 + 1263 + vin1: video@e6ef1000 { 1264 + compatible = "renesas,vin-r8a7796"; 1265 + reg = <0 0xe6ef1000 0 0x1000>; 1266 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 1267 + clocks = <&cpg CPG_MOD 810>; 1268 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1269 + resets = <&cpg 810>; 1270 + renesas,id = <1>; 1271 + status = "disabled"; 1272 + 1273 + ports { 1274 + #address-cells = <1>; 1275 + #size-cells = <0>; 1276 + 1277 + port@1 { 1278 + #address-cells = <1>; 1279 + #size-cells = <0>; 1280 + 1281 + reg = <1>; 1282 + 1283 + vin1csi20: endpoint@0 { 1284 + reg = <0>; 1285 + remote-endpoint= <&csi20vin1>; 1286 + }; 1287 + vin1csi40: endpoint@2 { 1288 + reg = <2>; 1289 + remote-endpoint= <&csi40vin1>; 1290 + }; 1291 + }; 1292 + }; 1293 + }; 1294 + 1295 + vin2: video@e6ef2000 { 1296 + compatible = "renesas,vin-r8a7796"; 1297 + reg = <0 0xe6ef2000 0 0x1000>; 1298 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 1299 + clocks = <&cpg CPG_MOD 809>; 1300 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1301 + resets = <&cpg 809>; 1302 + renesas,id = <2>; 1303 + status = "disabled"; 1304 + 1305 + ports { 1306 + #address-cells = <1>; 1307 + #size-cells = <0>; 1308 + 1309 + port@1 { 1310 + #address-cells = <1>; 1311 + #size-cells = <0>; 1312 + 1313 + reg = <1>; 1314 + 1315 + vin2csi20: endpoint@0 { 1316 + reg = <0>; 1317 + remote-endpoint= <&csi20vin2>; 1318 + }; 1319 + vin2csi40: endpoint@2 { 1320 + reg = <2>; 1321 + remote-endpoint= <&csi40vin2>; 1322 + }; 1323 + }; 1324 + }; 1325 + }; 1326 + 1327 + vin3: video@e6ef3000 { 1328 + compatible = "renesas,vin-r8a7796"; 1329 + reg = <0 0xe6ef3000 0 0x1000>; 1330 + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 1331 + clocks = <&cpg CPG_MOD 808>; 1332 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1333 + resets = <&cpg 808>; 1334 + renesas,id = <3>; 1335 + status = "disabled"; 1336 + 1337 + ports { 1338 + #address-cells = <1>; 1339 + #size-cells = <0>; 1340 + 1341 + port@1 { 1342 + #address-cells = <1>; 1343 + #size-cells = <0>; 1344 + 1345 + reg = <1>; 1346 + 1347 + vin3csi20: endpoint@0 { 1348 + reg = <0>; 1349 + remote-endpoint= <&csi20vin3>; 1350 + }; 1351 + vin3csi40: endpoint@2 { 1352 + reg = <2>; 1353 + remote-endpoint= <&csi40vin3>; 1354 + }; 1355 + }; 1356 + }; 1357 + }; 1358 + 1359 + vin4: video@e6ef4000 { 1360 + compatible = "renesas,vin-r8a7796"; 1361 + reg = <0 0xe6ef4000 0 0x1000>; 1362 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 1363 + clocks = <&cpg CPG_MOD 807>; 1364 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1365 + resets = <&cpg 807>; 1366 + renesas,id = <4>; 1367 + status = "disabled"; 1368 + 1369 + ports { 1370 + #address-cells = <1>; 1371 + #size-cells = <0>; 1372 + 1373 + port@1 { 1374 + #address-cells = <1>; 1375 + #size-cells = <0>; 1376 + 1377 + reg = <1>; 1378 + 1379 + vin4csi20: endpoint@0 { 1380 + reg = <0>; 1381 + remote-endpoint= <&csi20vin4>; 1382 + }; 1383 + vin4csi40: endpoint@2 { 1384 + reg = <2>; 1385 + remote-endpoint= <&csi40vin4>; 1386 + }; 1387 + }; 1388 + }; 1389 + }; 1390 + 1391 + vin5: video@e6ef5000 { 1392 + compatible = "renesas,vin-r8a7796"; 1393 + reg = <0 0xe6ef5000 0 0x1000>; 1394 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 1395 + clocks = <&cpg CPG_MOD 806>; 1396 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1397 + resets = <&cpg 806>; 1398 + renesas,id = <5>; 1399 + status = "disabled"; 1400 + 1401 + ports { 1402 + #address-cells = <1>; 1403 + #size-cells = <0>; 1404 + 1405 + port@1 { 1406 + #address-cells = <1>; 1407 + #size-cells = <0>; 1408 + 1409 + reg = <1>; 1410 + 1411 + vin5csi20: endpoint@0 { 1412 + reg = <0>; 1413 + remote-endpoint= <&csi20vin5>; 1414 + }; 1415 + vin5csi40: endpoint@2 { 1416 + reg = <2>; 1417 + remote-endpoint= <&csi40vin5>; 1418 + }; 1419 + }; 1420 + }; 1421 + }; 1422 + 1423 + vin6: video@e6ef6000 { 1424 + compatible = "renesas,vin-r8a7796"; 1425 + reg = <0 0xe6ef6000 0 0x1000>; 1426 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 1427 + clocks = <&cpg CPG_MOD 805>; 1428 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1429 + resets = <&cpg 805>; 1430 + renesas,id = <6>; 1431 + status = "disabled"; 1432 + 1433 + ports { 1434 + #address-cells = <1>; 1435 + #size-cells = <0>; 1436 + 1437 + port@1 { 1438 + #address-cells = <1>; 1439 + #size-cells = <0>; 1440 + 1441 + reg = <1>; 1442 + 1443 + vin6csi20: endpoint@0 { 1444 + reg = <0>; 1445 + remote-endpoint= <&csi20vin6>; 1446 + }; 1447 + vin6csi40: endpoint@2 { 1448 + reg = <2>; 1449 + remote-endpoint= <&csi40vin6>; 1450 + }; 1451 + }; 1452 + }; 1453 + }; 1454 + 1455 + vin7: video@e6ef7000 { 1456 + compatible = "renesas,vin-r8a7796"; 1457 + reg = <0 0xe6ef7000 0 0x1000>; 1458 + interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; 1459 + clocks = <&cpg CPG_MOD 804>; 1460 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1461 + resets = <&cpg 804>; 1462 + renesas,id = <7>; 1463 + status = "disabled"; 1464 + 1465 + ports { 1466 + #address-cells = <1>; 1467 + #size-cells = <0>; 1468 + 1469 + port@1 { 1470 + #address-cells = <1>; 1471 + #size-cells = <0>; 1472 + 1473 + reg = <1>; 1474 + 1475 + vin7csi20: endpoint@0 { 1476 + reg = <0>; 1477 + remote-endpoint= <&csi20vin7>; 1478 + }; 1479 + vin7csi40: endpoint@2 { 1480 + reg = <2>; 1481 + remote-endpoint= <&csi40vin7>; 1482 + }; 1483 + }; 1484 + }; 1485 + }; 1486 + 1487 + drif00: rif@e6f40000 { 1488 + compatible = "renesas,r8a7796-drif", 1489 + "renesas,rcar-gen3-drif"; 1490 + reg = <0 0xe6f40000 0 0x64>; 1491 + interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1492 + clocks = <&cpg CPG_MOD 515>; 1310 1493 clock-names = "fck"; 1494 + dmas = <&dmac1 0x20>, <&dmac2 0x20>; 1495 + dma-names = "rx", "rx"; 1311 1496 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1312 - resets = <&cpg 219>; 1313 - #dma-cells = <1>; 1314 - dma-channels = <16>; 1315 - iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>, 1316 - <&ipmmu_ds0 2>, <&ipmmu_ds0 3>, 1317 - <&ipmmu_ds0 4>, <&ipmmu_ds0 5>, 1318 - <&ipmmu_ds0 6>, <&ipmmu_ds0 7>, 1319 - <&ipmmu_ds0 8>, <&ipmmu_ds0 9>, 1320 - <&ipmmu_ds0 10>, <&ipmmu_ds0 11>, 1321 - <&ipmmu_ds0 12>, <&ipmmu_ds0 13>, 1322 - <&ipmmu_ds0 14>, <&ipmmu_ds0 15>; 1497 + resets = <&cpg 515>; 1498 + renesas,bonding = <&drif01>; 1499 + status = "disabled"; 1323 1500 }; 1324 1501 1325 - dmac1: dma-controller@e7300000 { 1326 - compatible = "renesas,dmac-r8a7796", 1327 - "renesas,rcar-dmac"; 1328 - reg = <0 0xe7300000 0 0x10000>; 1329 - interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 1330 - GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 1331 - GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 1332 - GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 1333 - GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 1334 - GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 1335 - GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 1336 - GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 1337 - GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH 1338 - GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 1339 - GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 1340 - GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 1341 - GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 1342 - GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 1343 - GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 1344 - GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 1345 - GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; 1346 - interrupt-names = "error", 1347 - "ch0", "ch1", "ch2", "ch3", 1348 - "ch4", "ch5", "ch6", "ch7", 1349 - "ch8", "ch9", "ch10", "ch11", 1350 - "ch12", "ch13", "ch14", "ch15"; 1351 - clocks = <&cpg CPG_MOD 218>; 1502 + drif01: rif@e6f50000 { 1503 + compatible = "renesas,r8a7796-drif", 1504 + "renesas,rcar-gen3-drif"; 1505 + reg = <0 0xe6f50000 0 0x64>; 1506 + interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 1507 + clocks = <&cpg CPG_MOD 514>; 1352 1508 clock-names = "fck"; 1509 + dmas = <&dmac1 0x22>, <&dmac2 0x22>; 1510 + dma-names = "rx", "rx"; 1353 1511 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1354 - resets = <&cpg 218>; 1355 - #dma-cells = <1>; 1356 - dma-channels = <16>; 1357 - iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, 1358 - <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, 1359 - <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, 1360 - <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, 1361 - <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, 1362 - <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, 1363 - <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, 1364 - <&ipmmu_ds1 14>, <&ipmmu_ds1 15>; 1512 + resets = <&cpg 514>; 1513 + renesas,bonding = <&drif00>; 1514 + status = "disabled"; 1365 1515 }; 1366 1516 1367 - dmac2: dma-controller@e7310000 { 1368 - compatible = "renesas,dmac-r8a7796", 1369 - "renesas,rcar-dmac"; 1370 - reg = <0 0xe7310000 0 0x10000>; 1371 - interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH 1372 - GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH 1373 - GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH 1374 - GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH 1375 - GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH 1376 - GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH 1377 - GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH 1378 - GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH 1379 - GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH 1380 - GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 1381 - GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 1382 - GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH 1383 - GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH 1384 - GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH 1385 - GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH 1386 - GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH 1387 - GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; 1388 - interrupt-names = "error", 1389 - "ch0", "ch1", "ch2", "ch3", 1390 - "ch4", "ch5", "ch6", "ch7", 1391 - "ch8", "ch9", "ch10", "ch11", 1392 - "ch12", "ch13", "ch14", "ch15"; 1393 - clocks = <&cpg CPG_MOD 217>; 1517 + drif10: rif@e6f60000 { 1518 + compatible = "renesas,r8a7796-drif", 1519 + "renesas,rcar-gen3-drif"; 1520 + reg = <0 0xe6f60000 0 0x64>; 1521 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1522 + clocks = <&cpg CPG_MOD 513>; 1394 1523 clock-names = "fck"; 1524 + dmas = <&dmac1 0x24>, <&dmac2 0x24>; 1525 + dma-names = "rx", "rx"; 1395 1526 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1396 - resets = <&cpg 217>; 1397 - #dma-cells = <1>; 1398 - dma-channels = <16>; 1399 - iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, 1400 - <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, 1401 - <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, 1402 - <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, 1403 - <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, 1404 - <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, 1405 - <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, 1406 - <&ipmmu_ds1 30>, <&ipmmu_ds1 31>; 1527 + resets = <&cpg 513>; 1528 + renesas,bonding = <&drif11>; 1529 + status = "disabled"; 1407 1530 }; 1408 1531 1409 - audma0: dma-controller@ec700000 { 1410 - compatible = "renesas,dmac-r8a7796", 1411 - "renesas,rcar-dmac"; 1412 - reg = <0 0xec700000 0 0x10000>; 1413 - interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 1414 - GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 1415 - GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 1416 - GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 1417 - GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 1418 - GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 1419 - GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 1420 - GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 1421 - GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 1422 - GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 1423 - GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 1424 - GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 1425 - GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 1426 - GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 1427 - GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 1428 - GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 1429 - GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; 1430 - interrupt-names = "error", 1431 - "ch0", "ch1", "ch2", "ch3", 1432 - "ch4", "ch5", "ch6", "ch7", 1433 - "ch8", "ch9", "ch10", "ch11", 1434 - "ch12", "ch13", "ch14", "ch15"; 1435 - clocks = <&cpg CPG_MOD 502>; 1532 + drif11: rif@e6f70000 { 1533 + compatible = "renesas,r8a7796-drif", 1534 + "renesas,rcar-gen3-drif"; 1535 + reg = <0 0xe6f70000 0 0x64>; 1536 + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 1537 + clocks = <&cpg CPG_MOD 512>; 1436 1538 clock-names = "fck"; 1539 + dmas = <&dmac1 0x26>, <&dmac2 0x26>; 1540 + dma-names = "rx", "rx"; 1437 1541 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1438 - resets = <&cpg 502>; 1439 - #dma-cells = <1>; 1440 - dma-channels = <16>; 1441 - iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>, 1442 - <&ipmmu_mp 2>, <&ipmmu_mp 3>, 1443 - <&ipmmu_mp 4>, <&ipmmu_mp 5>, 1444 - <&ipmmu_mp 6>, <&ipmmu_mp 7>, 1445 - <&ipmmu_mp 8>, <&ipmmu_mp 9>, 1446 - <&ipmmu_mp 10>, <&ipmmu_mp 11>, 1447 - <&ipmmu_mp 12>, <&ipmmu_mp 13>, 1448 - <&ipmmu_mp 14>, <&ipmmu_mp 15>; 1542 + resets = <&cpg 512>; 1543 + renesas,bonding = <&drif10>; 1544 + status = "disabled"; 1449 1545 }; 1450 1546 1451 - audma1: dma-controller@ec720000 { 1452 - compatible = "renesas,dmac-r8a7796", 1453 - "renesas,rcar-dmac"; 1454 - reg = <0 0xec720000 0 0x10000>; 1455 - interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 1456 - GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 1457 - GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 1458 - GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 1459 - GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 1460 - GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 1461 - GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 1462 - GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 1463 - GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 1464 - GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 1465 - GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 1466 - GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 1467 - GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 1468 - GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 1469 - GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH 1470 - GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 1471 - GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; 1472 - interrupt-names = "error", 1473 - "ch0", "ch1", "ch2", "ch3", 1474 - "ch4", "ch5", "ch6", "ch7", 1475 - "ch8", "ch9", "ch10", "ch11", 1476 - "ch12", "ch13", "ch14", "ch15"; 1477 - clocks = <&cpg CPG_MOD 501>; 1547 + drif20: rif@e6f80000 { 1548 + compatible = "renesas,r8a7796-drif", 1549 + "renesas,rcar-gen3-drif"; 1550 + reg = <0 0xe6f80000 0 0x64>; 1551 + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1552 + clocks = <&cpg CPG_MOD 511>; 1478 1553 clock-names = "fck"; 1554 + dmas = <&dmac1 0x28>, <&dmac2 0x28>; 1555 + dma-names = "rx", "rx"; 1479 1556 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1480 - resets = <&cpg 501>; 1481 - #dma-cells = <1>; 1482 - dma-channels = <16>; 1483 - iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>, 1484 - <&ipmmu_mp 18>, <&ipmmu_mp 19>, 1485 - <&ipmmu_mp 20>, <&ipmmu_mp 21>, 1486 - <&ipmmu_mp 22>, <&ipmmu_mp 23>, 1487 - <&ipmmu_mp 24>, <&ipmmu_mp 25>, 1488 - <&ipmmu_mp 26>, <&ipmmu_mp 27>, 1489 - <&ipmmu_mp 28>, <&ipmmu_mp 29>, 1490 - <&ipmmu_mp 30>, <&ipmmu_mp 31>; 1491 - }; 1492 - 1493 - usb_dmac0: dma-controller@e65a0000 { 1494 - compatible = "renesas,r8a7796-usb-dmac", 1495 - "renesas,usb-dmac"; 1496 - reg = <0 0xe65a0000 0 0x100>; 1497 - interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 1498 - GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 1499 - interrupt-names = "ch0", "ch1"; 1500 - clocks = <&cpg CPG_MOD 330>; 1501 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1502 - resets = <&cpg 330>; 1503 - #dma-cells = <1>; 1504 - dma-channels = <2>; 1505 - }; 1506 - 1507 - usb_dmac1: dma-controller@e65b0000 { 1508 - compatible = "renesas,r8a7796-usb-dmac", 1509 - "renesas,usb-dmac"; 1510 - reg = <0 0xe65b0000 0 0x100>; 1511 - interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 1512 - GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 1513 - interrupt-names = "ch0", "ch1"; 1514 - clocks = <&cpg CPG_MOD 331>; 1515 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1516 - resets = <&cpg 331>; 1517 - #dma-cells = <1>; 1518 - dma-channels = <2>; 1519 - }; 1520 - 1521 - hsusb: usb@e6590000 { 1522 - compatible = "renesas,usbhs-r8a7796", 1523 - "renesas,rcar-gen3-usbhs"; 1524 - reg = <0 0xe6590000 0 0x100>; 1525 - interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1526 - clocks = <&cpg CPG_MOD 704>; 1527 - dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 1528 - <&usb_dmac1 0>, <&usb_dmac1 1>; 1529 - dma-names = "ch0", "ch1", "ch2", "ch3"; 1530 - renesas,buswait = <11>; 1531 - phys = <&usb2_phy0>; 1532 - phy-names = "usb"; 1533 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1534 - resets = <&cpg 704>; 1557 + resets = <&cpg 511>; 1558 + renesas,bonding = <&drif21>; 1535 1559 status = "disabled"; 1536 1560 }; 1537 1561 1538 - usb3_phy0: usb-phy@e65ee000 { 1539 - compatible = "renesas,r8a7796-usb3-phy", 1540 - "renesas,rcar-gen3-usb3-phy"; 1541 - reg = <0 0xe65ee000 0 0x90>; 1542 - clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, 1543 - <&usb_extal_clk>; 1544 - clock-names = "usb3-if", "usb3s_clk", "usb_extal"; 1562 + drif21: rif@e6f90000 { 1563 + compatible = "renesas,r8a7796-drif", 1564 + "renesas,rcar-gen3-drif"; 1565 + reg = <0 0xe6f90000 0 0x64>; 1566 + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 1567 + clocks = <&cpg CPG_MOD 510>; 1568 + clock-names = "fck"; 1569 + dmas = <&dmac1 0x2a>, <&dmac2 0x2a>; 1570 + dma-names = "rx", "rx"; 1545 1571 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1546 - resets = <&cpg 328>; 1547 - #phy-cells = <0>; 1572 + resets = <&cpg 510>; 1573 + renesas,bonding = <&drif20>; 1548 1574 status = "disabled"; 1549 1575 }; 1550 1576 1551 - xhci0: usb@ee000000 { 1552 - compatible = "renesas,xhci-r8a7796", 1553 - "renesas,rcar-gen3-xhci"; 1554 - reg = <0 0xee000000 0 0xc00>; 1555 - interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 1556 - clocks = <&cpg CPG_MOD 328>; 1577 + drif30: rif@e6fa0000 { 1578 + compatible = "renesas,r8a7796-drif", 1579 + "renesas,rcar-gen3-drif"; 1580 + reg = <0 0xe6fa0000 0 0x64>; 1581 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1582 + clocks = <&cpg CPG_MOD 509>; 1583 + clock-names = "fck"; 1584 + dmas = <&dmac1 0x2c>, <&dmac2 0x2c>; 1585 + dma-names = "rx", "rx"; 1557 1586 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1558 - resets = <&cpg 328>; 1587 + resets = <&cpg 509>; 1588 + renesas,bonding = <&drif31>; 1559 1589 status = "disabled"; 1560 1590 }; 1561 1591 1562 - usb3_peri0: usb@ee020000 { 1563 - compatible = "renesas,r8a7796-usb3-peri", 1564 - "renesas,rcar-gen3-usb3-peri"; 1565 - reg = <0 0xee020000 0 0x400>; 1566 - interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 1567 - clocks = <&cpg CPG_MOD 328>; 1592 + drif31: rif@e6fb0000 { 1593 + compatible = "renesas,r8a7796-drif", 1594 + "renesas,rcar-gen3-drif"; 1595 + reg = <0 0xe6fb0000 0 0x64>; 1596 + interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1597 + clocks = <&cpg CPG_MOD 508>; 1598 + clock-names = "fck"; 1599 + dmas = <&dmac1 0x2e>, <&dmac2 0x2e>; 1600 + dma-names = "rx", "rx"; 1568 1601 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1569 - resets = <&cpg 328>; 1602 + resets = <&cpg 508>; 1603 + renesas,bonding = <&drif30>; 1570 1604 status = "disabled"; 1571 - }; 1572 - 1573 - ohci0: usb@ee080000 { 1574 - compatible = "generic-ohci"; 1575 - reg = <0 0xee080000 0 0x100>; 1576 - interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1577 - clocks = <&cpg CPG_MOD 703>; 1578 - phys = <&usb2_phy0>; 1579 - phy-names = "usb"; 1580 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1581 - resets = <&cpg 703>; 1582 - status = "disabled"; 1583 - }; 1584 - 1585 - ehci0: usb@ee080100 { 1586 - compatible = "generic-ehci"; 1587 - reg = <0 0xee080100 0 0x100>; 1588 - interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1589 - clocks = <&cpg CPG_MOD 703>; 1590 - phys = <&usb2_phy0>; 1591 - phy-names = "usb"; 1592 - companion= <&ohci0>; 1593 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1594 - resets = <&cpg 703>; 1595 - status = "disabled"; 1596 - }; 1597 - 1598 - usb2_phy0: usb-phy@ee080200 { 1599 - compatible = "renesas,usb2-phy-r8a7796", 1600 - "renesas,rcar-gen3-usb2-phy"; 1601 - reg = <0 0xee080200 0 0x700>; 1602 - interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1603 - clocks = <&cpg CPG_MOD 703>; 1604 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1605 - resets = <&cpg 703>; 1606 - #phy-cells = <0>; 1607 - status = "disabled"; 1608 - }; 1609 - 1610 - ohci1: usb@ee0a0000 { 1611 - compatible = "generic-ohci"; 1612 - reg = <0 0xee0a0000 0 0x100>; 1613 - interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1614 - clocks = <&cpg CPG_MOD 702>; 1615 - phys = <&usb2_phy1>; 1616 - phy-names = "usb"; 1617 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1618 - resets = <&cpg 702>; 1619 - status = "disabled"; 1620 - }; 1621 - 1622 - ehci1: usb@ee0a0100 { 1623 - compatible = "generic-ehci"; 1624 - reg = <0 0xee0a0100 0 0x100>; 1625 - interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1626 - clocks = <&cpg CPG_MOD 702>; 1627 - phys = <&usb2_phy1>; 1628 - phy-names = "usb"; 1629 - companion= <&ohci1>; 1630 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1631 - resets = <&cpg 702>; 1632 - status = "disabled"; 1633 - }; 1634 - 1635 - usb2_phy1: usb-phy@ee0a0200 { 1636 - compatible = "renesas,usb2-phy-r8a7796", 1637 - "renesas,rcar-gen3-usb2-phy"; 1638 - reg = <0 0xee0a0200 0 0x700>; 1639 - clocks = <&cpg CPG_MOD 702>; 1640 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1641 - resets = <&cpg 702>; 1642 - #phy-cells = <0>; 1643 - status = "disabled"; 1644 - }; 1645 - 1646 - sdhi0: sd@ee100000 { 1647 - compatible = "renesas,sdhi-r8a7796", 1648 - "renesas,rcar-gen3-sdhi"; 1649 - reg = <0 0xee100000 0 0x2000>; 1650 - interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 1651 - clocks = <&cpg CPG_MOD 314>; 1652 - max-frequency = <200000000>; 1653 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1654 - resets = <&cpg 314>; 1655 - status = "disabled"; 1656 - }; 1657 - 1658 - sdhi1: sd@ee120000 { 1659 - compatible = "renesas,sdhi-r8a7796", 1660 - "renesas,rcar-gen3-sdhi"; 1661 - reg = <0 0xee120000 0 0x2000>; 1662 - interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 1663 - clocks = <&cpg CPG_MOD 313>; 1664 - max-frequency = <200000000>; 1665 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1666 - resets = <&cpg 313>; 1667 - status = "disabled"; 1668 - }; 1669 - 1670 - sdhi2: sd@ee140000 { 1671 - compatible = "renesas,sdhi-r8a7796", 1672 - "renesas,rcar-gen3-sdhi"; 1673 - reg = <0 0xee140000 0 0x2000>; 1674 - interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 1675 - clocks = <&cpg CPG_MOD 312>; 1676 - max-frequency = <200000000>; 1677 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1678 - resets = <&cpg 312>; 1679 - status = "disabled"; 1680 - }; 1681 - 1682 - sdhi3: sd@ee160000 { 1683 - compatible = "renesas,sdhi-r8a7796", 1684 - "renesas,rcar-gen3-sdhi"; 1685 - reg = <0 0xee160000 0 0x2000>; 1686 - interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 1687 - clocks = <&cpg CPG_MOD 311>; 1688 - max-frequency = <200000000>; 1689 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1690 - resets = <&cpg 311>; 1691 - status = "disabled"; 1692 - }; 1693 - 1694 - tsc: thermal@e6198000 { 1695 - compatible = "renesas,r8a7796-thermal"; 1696 - reg = <0 0xe6198000 0 0x100>, 1697 - <0 0xe61a0000 0 0x100>, 1698 - <0 0xe61a8000 0 0x100>; 1699 - interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 1700 - <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 1701 - <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 1702 - clocks = <&cpg CPG_MOD 522>; 1703 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1704 - resets = <&cpg 522>; 1705 - #thermal-sensor-cells = <1>; 1706 - status = "okay"; 1707 1605 }; 1708 1606 1709 1607 rcar_sound: sound@ec500000 { ··· 1850 1848 dma-names = "rx", "tx", "rxu", "txu"; 1851 1849 }; 1852 1850 }; 1851 + 1852 + ports { 1853 + #address-cells = <1>; 1854 + #size-cells = <0>; 1855 + port@0 { 1856 + reg = <0>; 1857 + }; 1858 + port@1 { 1859 + reg = <1>; 1860 + }; 1861 + }; 1862 + }; 1863 + 1864 + audma0: dma-controller@ec700000 { 1865 + compatible = "renesas,dmac-r8a7796", 1866 + "renesas,rcar-dmac"; 1867 + reg = <0 0xec700000 0 0x10000>; 1868 + interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 1869 + GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 1870 + GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 1871 + GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 1872 + GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 1873 + GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 1874 + GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 1875 + GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 1876 + GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 1877 + GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 1878 + GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 1879 + GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 1880 + GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 1881 + GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 1882 + GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 1883 + GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 1884 + GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; 1885 + interrupt-names = "error", 1886 + "ch0", "ch1", "ch2", "ch3", 1887 + "ch4", "ch5", "ch6", "ch7", 1888 + "ch8", "ch9", "ch10", "ch11", 1889 + "ch12", "ch13", "ch14", "ch15"; 1890 + clocks = <&cpg CPG_MOD 502>; 1891 + clock-names = "fck"; 1892 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1893 + resets = <&cpg 502>; 1894 + #dma-cells = <1>; 1895 + dma-channels = <16>; 1896 + iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>, 1897 + <&ipmmu_mp 2>, <&ipmmu_mp 3>, 1898 + <&ipmmu_mp 4>, <&ipmmu_mp 5>, 1899 + <&ipmmu_mp 6>, <&ipmmu_mp 7>, 1900 + <&ipmmu_mp 8>, <&ipmmu_mp 9>, 1901 + <&ipmmu_mp 10>, <&ipmmu_mp 11>, 1902 + <&ipmmu_mp 12>, <&ipmmu_mp 13>, 1903 + <&ipmmu_mp 14>, <&ipmmu_mp 15>; 1904 + }; 1905 + 1906 + audma1: dma-controller@ec720000 { 1907 + compatible = "renesas,dmac-r8a7796", 1908 + "renesas,rcar-dmac"; 1909 + reg = <0 0xec720000 0 0x10000>; 1910 + interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 1911 + GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 1912 + GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 1913 + GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 1914 + GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 1915 + GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 1916 + GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 1917 + GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 1918 + GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 1919 + GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 1920 + GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 1921 + GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 1922 + GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 1923 + GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 1924 + GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH 1925 + GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 1926 + GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; 1927 + interrupt-names = "error", 1928 + "ch0", "ch1", "ch2", "ch3", 1929 + "ch4", "ch5", "ch6", "ch7", 1930 + "ch8", "ch9", "ch10", "ch11", 1931 + "ch12", "ch13", "ch14", "ch15"; 1932 + clocks = <&cpg CPG_MOD 501>; 1933 + clock-names = "fck"; 1934 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1935 + resets = <&cpg 501>; 1936 + #dma-cells = <1>; 1937 + dma-channels = <16>; 1938 + iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>, 1939 + <&ipmmu_mp 18>, <&ipmmu_mp 19>, 1940 + <&ipmmu_mp 20>, <&ipmmu_mp 21>, 1941 + <&ipmmu_mp 22>, <&ipmmu_mp 23>, 1942 + <&ipmmu_mp 24>, <&ipmmu_mp 25>, 1943 + <&ipmmu_mp 26>, <&ipmmu_mp 27>, 1944 + <&ipmmu_mp 28>, <&ipmmu_mp 29>, 1945 + <&ipmmu_mp 30>, <&ipmmu_mp 31>; 1946 + }; 1947 + 1948 + xhci0: usb@ee000000 { 1949 + compatible = "renesas,xhci-r8a7796", 1950 + "renesas,rcar-gen3-xhci"; 1951 + reg = <0 0xee000000 0 0xc00>; 1952 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 1953 + clocks = <&cpg CPG_MOD 328>; 1954 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1955 + resets = <&cpg 328>; 1956 + status = "disabled"; 1957 + }; 1958 + 1959 + usb3_peri0: usb@ee020000 { 1960 + compatible = "renesas,r8a7796-usb3-peri", 1961 + "renesas,rcar-gen3-usb3-peri"; 1962 + reg = <0 0xee020000 0 0x400>; 1963 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 1964 + clocks = <&cpg CPG_MOD 328>; 1965 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1966 + resets = <&cpg 328>; 1967 + status = "disabled"; 1968 + }; 1969 + 1970 + ohci0: usb@ee080000 { 1971 + compatible = "generic-ohci"; 1972 + reg = <0 0xee080000 0 0x100>; 1973 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1974 + clocks = <&cpg CPG_MOD 703>; 1975 + phys = <&usb2_phy0>; 1976 + phy-names = "usb"; 1977 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1978 + resets = <&cpg 703>; 1979 + status = "disabled"; 1980 + }; 1981 + 1982 + ohci1: usb@ee0a0000 { 1983 + compatible = "generic-ohci"; 1984 + reg = <0 0xee0a0000 0 0x100>; 1985 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1986 + clocks = <&cpg CPG_MOD 702>; 1987 + phys = <&usb2_phy1>; 1988 + phy-names = "usb"; 1989 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1990 + resets = <&cpg 702>; 1991 + status = "disabled"; 1992 + }; 1993 + 1994 + ehci0: usb@ee080100 { 1995 + compatible = "generic-ehci"; 1996 + reg = <0 0xee080100 0 0x100>; 1997 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1998 + clocks = <&cpg CPG_MOD 703>; 1999 + phys = <&usb2_phy0>; 2000 + phy-names = "usb"; 2001 + companion= <&ohci0>; 2002 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2003 + resets = <&cpg 703>; 2004 + status = "disabled"; 2005 + }; 2006 + 2007 + ehci1: usb@ee0a0100 { 2008 + compatible = "generic-ehci"; 2009 + reg = <0 0xee0a0100 0 0x100>; 2010 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 2011 + clocks = <&cpg CPG_MOD 702>; 2012 + phys = <&usb2_phy1>; 2013 + phy-names = "usb"; 2014 + companion= <&ohci1>; 2015 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2016 + resets = <&cpg 702>; 2017 + status = "disabled"; 2018 + }; 2019 + 2020 + usb2_phy0: usb-phy@ee080200 { 2021 + compatible = "renesas,usb2-phy-r8a7796", 2022 + "renesas,rcar-gen3-usb2-phy"; 2023 + reg = <0 0xee080200 0 0x700>; 2024 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2025 + clocks = <&cpg CPG_MOD 703>; 2026 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2027 + resets = <&cpg 703>; 2028 + #phy-cells = <0>; 2029 + status = "disabled"; 2030 + }; 2031 + 2032 + usb2_phy1: usb-phy@ee0a0200 { 2033 + compatible = "renesas,usb2-phy-r8a7796", 2034 + "renesas,rcar-gen3-usb2-phy"; 2035 + reg = <0 0xee0a0200 0 0x700>; 2036 + clocks = <&cpg CPG_MOD 702>; 2037 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2038 + resets = <&cpg 702>; 2039 + #phy-cells = <0>; 2040 + status = "disabled"; 2041 + }; 2042 + 2043 + sdhi0: sd@ee100000 { 2044 + compatible = "renesas,sdhi-r8a7796", 2045 + "renesas,rcar-gen3-sdhi"; 2046 + reg = <0 0xee100000 0 0x2000>; 2047 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 2048 + clocks = <&cpg CPG_MOD 314>; 2049 + max-frequency = <200000000>; 2050 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2051 + resets = <&cpg 314>; 2052 + status = "disabled"; 2053 + }; 2054 + 2055 + sdhi1: sd@ee120000 { 2056 + compatible = "renesas,sdhi-r8a7796", 2057 + "renesas,rcar-gen3-sdhi"; 2058 + reg = <0 0xee120000 0 0x2000>; 2059 + interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 2060 + clocks = <&cpg CPG_MOD 313>; 2061 + max-frequency = <200000000>; 2062 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2063 + resets = <&cpg 313>; 2064 + status = "disabled"; 2065 + }; 2066 + 2067 + sdhi2: sd@ee140000 { 2068 + compatible = "renesas,sdhi-r8a7796", 2069 + "renesas,rcar-gen3-sdhi"; 2070 + reg = <0 0xee140000 0 0x2000>; 2071 + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 2072 + clocks = <&cpg CPG_MOD 312>; 2073 + max-frequency = <200000000>; 2074 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2075 + resets = <&cpg 312>; 2076 + status = "disabled"; 2077 + }; 2078 + 2079 + sdhi3: sd@ee160000 { 2080 + compatible = "renesas,sdhi-r8a7796", 2081 + "renesas,rcar-gen3-sdhi"; 2082 + reg = <0 0xee160000 0 0x2000>; 2083 + interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 2084 + clocks = <&cpg CPG_MOD 311>; 2085 + max-frequency = <200000000>; 2086 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2087 + resets = <&cpg 311>; 2088 + status = "disabled"; 2089 + }; 2090 + 2091 + gic: interrupt-controller@f1010000 { 2092 + compatible = "arm,gic-400"; 2093 + #interrupt-cells = <3>; 2094 + #address-cells = <0>; 2095 + interrupt-controller; 2096 + reg = <0x0 0xf1010000 0 0x1000>, 2097 + <0x0 0xf1020000 0 0x20000>, 2098 + <0x0 0xf1040000 0 0x20000>, 2099 + <0x0 0xf1060000 0 0x20000>; 2100 + interrupts = <GIC_PPI 9 2101 + (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; 2102 + clocks = <&cpg CPG_MOD 408>; 2103 + clock-names = "clk"; 2104 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2105 + resets = <&cpg 408>; 1853 2106 }; 1854 2107 1855 2108 pciec0: pcie@fe000000 { ··· 2115 1858 pciec1: pcie@ee800000 { 2116 1859 reg = <0 0xee800000 0 0x80000>; 2117 1860 /* placeholder */ 1861 + }; 1862 + 1863 + imr-lx4@fe860000 { 1864 + compatible = "renesas,r8a7796-imr-lx4", 1865 + "renesas,imr-lx4"; 1866 + reg = <0 0xfe860000 0 0x2000>; 1867 + interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; 1868 + clocks = <&cpg CPG_MOD 823>; 1869 + power-domains = <&sysc R8A7796_PD_A3VC>; 1870 + resets = <&cpg 823>; 1871 + }; 1872 + 1873 + imr-lx4@fe870000 { 1874 + compatible = "renesas,r8a7796-imr-lx4", 1875 + "renesas,imr-lx4"; 1876 + reg = <0 0xfe870000 0 0x2000>; 1877 + interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 1878 + clocks = <&cpg CPG_MOD 822>; 1879 + power-domains = <&sysc R8A7796_PD_A3VC>; 1880 + resets = <&cpg 822>; 2118 1881 }; 2119 1882 2120 1883 fdp1@fe940000 { ··· 2155 1878 resets = <&cpg 615>; 2156 1879 }; 2157 1880 2158 - vspb: vsp@fe960000 { 2159 - compatible = "renesas,vsp2"; 2160 - reg = <0 0xfe960000 0 0x8000>; 2161 - interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 2162 - clocks = <&cpg CPG_MOD 626>; 2163 - power-domains = <&sysc R8A7796_PD_A3VC>; 2164 - resets = <&cpg 626>; 2165 - 2166 - renesas,fcp = <&fcpvb0>; 2167 - }; 2168 - 2169 1881 fcpvb0: fcp@fe96f000 { 2170 1882 compatible = "renesas,fcpv"; 2171 1883 reg = <0 0xfe96f000 0 0x200>; 2172 1884 clocks = <&cpg CPG_MOD 607>; 2173 1885 power-domains = <&sysc R8A7796_PD_A3VC>; 2174 1886 resets = <&cpg 607>; 2175 - }; 2176 - 2177 - vspi0: vsp@fe9a0000 { 2178 - compatible = "renesas,vsp2"; 2179 - reg = <0 0xfe9a0000 0 0x8000>; 2180 - interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; 2181 - clocks = <&cpg CPG_MOD 631>; 2182 - power-domains = <&sysc R8A7796_PD_A3VC>; 2183 - resets = <&cpg 631>; 2184 - 2185 - renesas,fcp = <&fcpvi0>; 2186 1887 }; 2187 1888 2188 1889 fcpvi0: fcp@fe9af000 { ··· 2170 1915 power-domains = <&sysc R8A7796_PD_A3VC>; 2171 1916 resets = <&cpg 611>; 2172 1917 iommus = <&ipmmu_vc0 19>; 1918 + }; 1919 + 1920 + fcpvd0: fcp@fea27000 { 1921 + compatible = "renesas,fcpv"; 1922 + reg = <0 0xfea27000 0 0x200>; 1923 + clocks = <&cpg CPG_MOD 603>; 1924 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1925 + resets = <&cpg 603>; 1926 + iommus = <&ipmmu_vi0 8>; 1927 + }; 1928 + 1929 + fcpvd1: fcp@fea2f000 { 1930 + compatible = "renesas,fcpv"; 1931 + reg = <0 0xfea2f000 0 0x200>; 1932 + clocks = <&cpg CPG_MOD 602>; 1933 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1934 + resets = <&cpg 602>; 1935 + iommus = <&ipmmu_vi0 9>; 1936 + }; 1937 + 1938 + fcpvd2: fcp@fea37000 { 1939 + compatible = "renesas,fcpv"; 1940 + reg = <0 0xfea37000 0 0x200>; 1941 + clocks = <&cpg CPG_MOD 601>; 1942 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1943 + resets = <&cpg 601>; 1944 + iommus = <&ipmmu_vi0 10>; 1945 + }; 1946 + 1947 + vspb: vsp@fe960000 { 1948 + compatible = "renesas,vsp2"; 1949 + reg = <0 0xfe960000 0 0x8000>; 1950 + interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 1951 + clocks = <&cpg CPG_MOD 626>; 1952 + power-domains = <&sysc R8A7796_PD_A3VC>; 1953 + resets = <&cpg 626>; 1954 + 1955 + renesas,fcp = <&fcpvb0>; 2173 1956 }; 2174 1957 2175 1958 vspd0: vsp@fea20000 { ··· 2221 1928 renesas,fcp = <&fcpvd0>; 2222 1929 }; 2223 1930 2224 - fcpvd0: fcp@fea27000 { 2225 - compatible = "renesas,fcpv"; 2226 - reg = <0 0xfea27000 0 0x200>; 2227 - clocks = <&cpg CPG_MOD 603>; 2228 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2229 - resets = <&cpg 603>; 2230 - iommus = <&ipmmu_vi0 8>; 2231 - }; 2232 - 2233 1931 vspd1: vsp@fea28000 { 2234 1932 compatible = "renesas,vsp2"; 2235 1933 reg = <0 0xfea28000 0 0x8000>; ··· 2230 1946 resets = <&cpg 622>; 2231 1947 2232 1948 renesas,fcp = <&fcpvd1>; 2233 - }; 2234 - 2235 - fcpvd1: fcp@fea2f000 { 2236 - compatible = "renesas,fcpv"; 2237 - reg = <0 0xfea2f000 0 0x200>; 2238 - clocks = <&cpg CPG_MOD 602>; 2239 - power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2240 - resets = <&cpg 602>; 2241 - iommus = <&ipmmu_vi0 9>; 2242 1949 }; 2243 1950 2244 1951 vspd2: vsp@fea30000 { ··· 2243 1968 renesas,fcp = <&fcpvd2>; 2244 1969 }; 2245 1970 2246 - fcpvd2: fcp@fea37000 { 2247 - compatible = "renesas,fcpv"; 2248 - reg = <0 0xfea37000 0 0x200>; 2249 - clocks = <&cpg CPG_MOD 601>; 1971 + vspi0: vsp@fe9a0000 { 1972 + compatible = "renesas,vsp2"; 1973 + reg = <0 0xfe9a0000 0 0x8000>; 1974 + interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; 1975 + clocks = <&cpg CPG_MOD 631>; 1976 + power-domains = <&sysc R8A7796_PD_A3VC>; 1977 + resets = <&cpg 631>; 1978 + 1979 + renesas,fcp = <&fcpvi0>; 1980 + }; 1981 + 1982 + csi20: csi2@fea80000 { 1983 + compatible = "renesas,r8a7796-csi2"; 1984 + reg = <0 0xfea80000 0 0x10000>; 1985 + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1986 + clocks = <&cpg CPG_MOD 714>; 2250 1987 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2251 - resets = <&cpg 601>; 2252 - iommus = <&ipmmu_vi0 10>; 1988 + resets = <&cpg 714>; 1989 + status = "disabled"; 1990 + 1991 + ports { 1992 + #address-cells = <1>; 1993 + #size-cells = <0>; 1994 + 1995 + port@1 { 1996 + #address-cells = <1>; 1997 + #size-cells = <0>; 1998 + 1999 + reg = <1>; 2000 + 2001 + csi20vin0: endpoint@0 { 2002 + reg = <0>; 2003 + remote-endpoint = <&vin0csi20>; 2004 + }; 2005 + csi20vin1: endpoint@1 { 2006 + reg = <1>; 2007 + remote-endpoint = <&vin1csi20>; 2008 + }; 2009 + csi20vin2: endpoint@2 { 2010 + reg = <2>; 2011 + remote-endpoint = <&vin2csi20>; 2012 + }; 2013 + csi20vin3: endpoint@3 { 2014 + reg = <3>; 2015 + remote-endpoint = <&vin3csi20>; 2016 + }; 2017 + csi20vin4: endpoint@4 { 2018 + reg = <4>; 2019 + remote-endpoint = <&vin4csi20>; 2020 + }; 2021 + csi20vin5: endpoint@5 { 2022 + reg = <5>; 2023 + remote-endpoint = <&vin5csi20>; 2024 + }; 2025 + csi20vin6: endpoint@6 { 2026 + reg = <6>; 2027 + remote-endpoint = <&vin6csi20>; 2028 + }; 2029 + csi20vin7: endpoint@7 { 2030 + reg = <7>; 2031 + remote-endpoint = <&vin7csi20>; 2032 + }; 2033 + }; 2034 + }; 2035 + }; 2036 + 2037 + csi40: csi2@feaa0000 { 2038 + compatible = "renesas,r8a7796-csi2"; 2039 + reg = <0 0xfeaa0000 0 0x10000>; 2040 + interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 2041 + clocks = <&cpg CPG_MOD 716>; 2042 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2043 + resets = <&cpg 716>; 2044 + status = "disabled"; 2045 + 2046 + ports { 2047 + #address-cells = <1>; 2048 + #size-cells = <0>; 2049 + 2050 + port@1 { 2051 + #address-cells = <1>; 2052 + #size-cells = <0>; 2053 + 2054 + reg = <1>; 2055 + 2056 + csi40vin0: endpoint@0 { 2057 + reg = <0>; 2058 + remote-endpoint = <&vin0csi40>; 2059 + }; 2060 + csi40vin1: endpoint@1 { 2061 + reg = <1>; 2062 + remote-endpoint = <&vin1csi40>; 2063 + }; 2064 + csi40vin2: endpoint@2 { 2065 + reg = <2>; 2066 + remote-endpoint = <&vin2csi40>; 2067 + }; 2068 + csi40vin3: endpoint@3 { 2069 + reg = <3>; 2070 + remote-endpoint = <&vin3csi40>; 2071 + }; 2072 + csi40vin4: endpoint@4 { 2073 + reg = <4>; 2074 + remote-endpoint = <&vin4csi40>; 2075 + }; 2076 + csi40vin5: endpoint@5 { 2077 + reg = <5>; 2078 + remote-endpoint = <&vin5csi40>; 2079 + }; 2080 + csi40vin6: endpoint@6 { 2081 + reg = <6>; 2082 + remote-endpoint = <&vin6csi40>; 2083 + }; 2084 + csi40vin7: endpoint@7 { 2085 + reg = <7>; 2086 + remote-endpoint = <&vin7csi40>; 2087 + }; 2088 + }; 2089 + 2090 + }; 2253 2091 }; 2254 2092 2255 2093 hdmi0: hdmi@fead0000 { ··· 2386 1998 }; 2387 1999 port@1 { 2388 2000 reg = <1>; 2001 + }; 2002 + port@2 { 2003 + /* HDMI sound */ 2004 + reg = <2>; 2389 2005 }; 2390 2006 }; 2391 2007 }; ··· 2434 2042 }; 2435 2043 }; 2436 2044 2437 - imr-lx4@fe860000 { 2438 - compatible = "renesas,r8a7796-imr-lx4", 2439 - "renesas,imr-lx4"; 2440 - reg = <0 0xfe860000 0 0x2000>; 2441 - interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; 2442 - clocks = <&cpg CPG_MOD 823>; 2443 - power-domains = <&sysc R8A7796_PD_A3VC>; 2444 - resets = <&cpg 823>; 2045 + prr: chipid@fff00044 { 2046 + compatible = "renesas,prr"; 2047 + reg = <0 0xfff00044 0 4>; 2445 2048 }; 2446 - 2447 - imr-lx4@fe870000 { 2448 - compatible = "renesas,r8a7796-imr-lx4", 2449 - "renesas,imr-lx4"; 2450 - reg = <0 0xfe870000 0 0x2000>; 2451 - interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 2452 - clocks = <&cpg CPG_MOD 822>; 2453 - power-domains = <&sysc R8A7796_PD_A3VC>; 2454 - resets = <&cpg 822>; 2455 - }; 2456 - }; 2457 - 2458 - timer { 2459 - compatible = "arm,armv8-timer"; 2460 - interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2461 - <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2462 - <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2463 - <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; 2464 2049 }; 2465 2050 2466 2051 thermal-zones { ··· 2449 2080 trips { 2450 2081 sensor1_passive: sensor1-passive { 2451 2082 temperature = <95000>; 2452 - hysteresis = <2000>; 2083 + hysteresis = <1000>; 2453 2084 type = "passive"; 2454 2085 }; 2455 2086 sensor1_crit: sensor1-crit { 2456 2087 temperature = <120000>; 2457 - hysteresis = <2000>; 2088 + hysteresis = <1000>; 2458 2089 type = "critical"; 2459 2090 }; 2460 2091 }; ··· 2475 2106 trips { 2476 2107 sensor2_passive: sensor2-passive { 2477 2108 temperature = <95000>; 2478 - hysteresis = <2000>; 2109 + hysteresis = <1000>; 2479 2110 type = "passive"; 2480 2111 }; 2481 2112 sensor2_crit: sensor2-crit { 2482 2113 temperature = <120000>; 2483 - hysteresis = <2000>; 2114 + hysteresis = <1000>; 2484 2115 type = "critical"; 2485 2116 }; 2486 2117 }; ··· 2501 2132 trips { 2502 2133 sensor3_passive: sensor3-passive { 2503 2134 temperature = <95000>; 2504 - hysteresis = <2000>; 2135 + hysteresis = <1000>; 2505 2136 type = "passive"; 2506 2137 }; 2507 2138 sensor3_crit: sensor3-crit { 2508 2139 temperature = <120000>; 2509 - hysteresis = <2000>; 2140 + hysteresis = <1000>; 2510 2141 type = "critical"; 2511 2142 }; 2512 2143 }; ··· 2518 2149 }; 2519 2150 }; 2520 2151 }; 2152 + }; 2153 + 2154 + timer { 2155 + compatible = "arm,armv8-timer"; 2156 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2157 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2158 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, 2159 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; 2521 2160 }; 2522 2161 2523 2162 /* External USB clocks - can be overridden by the board */
+28
arch/arm64/boot/dts/renesas/r8a77965-salvator-x.dts
··· 19 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 + };
+28
arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts
··· 19 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 + };
+1325 -522
arch/arm64/boot/dts/renesas/r8a77965.dtsi
··· 8 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 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 + #include <dt-bindings/power/r8a77965-sysc.h> 13 14 14 15 #define CPG_AUDIO_CLK_I 10 15 16 ··· 20 19 #size-cells = <2>; 21 20 22 21 aliases { 22 + i2c0 = &i2c0; 23 + i2c1 = &i2c1; 24 + i2c2 = &i2c2; 25 + i2c3 = &i2c3; 26 + i2c4 = &i2c4; 27 + i2c5 = &i2c5; 28 + i2c6 = &i2c6; 23 29 i2c7 = &i2c_dvfs; 24 - }; 25 - 26 - psci { 27 - compatible = "arm,psci-1.0", "arm,psci-0.2"; 28 - method = "smc"; 29 - }; 30 - 31 - cpus { 32 - #address-cells = <1>; 33 - #size-cells = <0>; 34 - 35 - a57_0: cpu@0 { 36 - compatible = "arm,cortex-a57", "arm,armv8"; 37 - reg = <0x0>; 38 - device_type = "cpu"; 39 - power-domains = <&sysc 0>; 40 - next-level-cache = <&L2_CA57>; 41 - enable-method = "psci"; 42 - }; 43 - 44 - a57_1: cpu@1 { 45 - compatible = "arm,cortex-a57","arm,armv8"; 46 - reg = <0x1>; 47 - device_type = "cpu"; 48 - power-domains = <&sysc 1>; 49 - next-level-cache = <&L2_CA57>; 50 - enable-method = "psci"; 51 - }; 52 - 53 - L2_CA57: cache-controller-0 { 54 - compatible = "cache"; 55 - power-domains = <&sysc 12>; 56 - cache-unified; 57 - cache-level = <2>; 58 - }; 59 - }; 60 - 61 - extal_clk: extal { 62 - compatible = "fixed-clock"; 63 - #clock-cells = <0>; 64 - /* This value must be overridden by the board */ 65 - clock-frequency = <0>; 66 - }; 67 - 68 - extalr_clk: extalr { 69 - compatible = "fixed-clock"; 70 - #clock-cells = <0>; 71 - /* This value must be overridden by the board */ 72 - clock-frequency = <0>; 73 30 }; 74 31 75 32 /* ··· 60 101 clock-frequency = <0>; 61 102 }; 62 103 63 - /* External SCIF clock - to be overridden by boards that provide it */ 64 - scif_clk: scif { 104 + cpus { 105 + #address-cells = <1>; 106 + #size-cells = <0>; 107 + 108 + a57_0: cpu@0 { 109 + compatible = "arm,cortex-a57", "arm,armv8"; 110 + reg = <0x0>; 111 + device_type = "cpu"; 112 + power-domains = <&sysc R8A77965_PD_CA57_CPU0>; 113 + next-level-cache = <&L2_CA57>; 114 + enable-method = "psci"; 115 + }; 116 + 117 + a57_1: cpu@1 { 118 + compatible = "arm,cortex-a57", "arm,armv8"; 119 + reg = <0x1>; 120 + device_type = "cpu"; 121 + power-domains = <&sysc R8A77965_PD_CA57_CPU1>; 122 + next-level-cache = <&L2_CA57>; 123 + enable-method = "psci"; 124 + }; 125 + 126 + L2_CA57: cache-controller-0 { 127 + compatible = "cache"; 128 + power-domains = <&sysc R8A77965_PD_CA57_SCU>; 129 + cache-unified; 130 + cache-level = <2>; 131 + }; 132 + }; 133 + 134 + extal_clk: extal { 65 135 compatible = "fixed-clock"; 66 136 #clock-cells = <0>; 137 + /* This value must be overridden by the board */ 138 + clock-frequency = <0>; 139 + }; 140 + 141 + extalr_clk: extalr { 142 + compatible = "fixed-clock"; 143 + #clock-cells = <0>; 144 + /* This value must be overridden by the board */ 67 145 clock-frequency = <0>; 68 146 }; 69 147 ··· 111 115 clock-frequency = <0>; 112 116 }; 113 117 114 - /* External USB clocks - can be overridden by the board */ 115 - usb3s0_clk: usb3s0 { 116 - compatible = "fixed-clock"; 117 - #clock-cells = <0>; 118 - clock-frequency = <0>; 119 - }; 120 - 121 - usb_extal_clk: usb_extal { 122 - compatible = "fixed-clock"; 123 - #clock-cells = <0>; 124 - clock-frequency = <0>; 125 - }; 126 - 127 - timer { 128 - compatible = "arm,armv8-timer"; 129 - interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 130 - <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 131 - <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 132 - <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 133 - }; 134 - 135 118 pmu_a57 { 136 119 compatible = "arm,cortex-a57-pmu"; 137 120 interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 138 121 <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 139 122 interrupt-affinity = <&a57_0>, 140 123 <&a57_1>; 124 + }; 125 + 126 + psci { 127 + compatible = "arm,psci-1.0", "arm,psci-0.2"; 128 + method = "smc"; 129 + }; 130 + 131 + /* External SCIF clock - to be overridden by boards that provide it */ 132 + scif_clk: scif { 133 + compatible = "fixed-clock"; 134 + #clock-cells = <0>; 135 + clock-frequency = <0>; 141 136 }; 142 137 143 138 soc { ··· 138 151 #size-cells = <2>; 139 152 ranges; 140 153 141 - gic: interrupt-controller@f1010000 { 142 - compatible = "arm,gic-400"; 143 - #interrupt-cells = <3>; 144 - #address-cells = <0>; 154 + wdt0: watchdog@e6020000 { 155 + reg = <0 0xe6020000 0 0x0c>; 156 + /* placeholder */ 157 + }; 158 + 159 + gpio0: gpio@e6050000 { 160 + compatible = "renesas,gpio-r8a77965", 161 + "renesas,rcar-gen3-gpio"; 162 + reg = <0 0xe6050000 0 0x50>; 163 + interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 164 + #gpio-cells = <2>; 165 + gpio-controller; 166 + gpio-ranges = <&pfc 0 0 16>; 167 + #interrupt-cells = <2>; 145 168 interrupt-controller; 146 - reg = <0x0 0xf1010000 0 0x1000>, 147 - <0x0 0xf1020000 0 0x20000>, 148 - <0x0 0xf1040000 0 0x20000>, 149 - <0x0 0xf1060000 0 0x20000>; 150 - interrupts = <GIC_PPI 9 151 - (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 152 - clocks = <&cpg CPG_MOD 408>; 153 - clock-names = "clk"; 154 - power-domains = <&sysc 32>; 155 - resets = <&cpg 408>; 169 + clocks = <&cpg CPG_MOD 912>; 170 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 171 + resets = <&cpg 912>; 172 + }; 173 + 174 + gpio1: gpio@e6051000 { 175 + compatible = "renesas,gpio-r8a77965", 176 + "renesas,rcar-gen3-gpio"; 177 + reg = <0 0xe6051000 0 0x50>; 178 + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 179 + #gpio-cells = <2>; 180 + gpio-controller; 181 + gpio-ranges = <&pfc 0 32 29>; 182 + #interrupt-cells = <2>; 183 + interrupt-controller; 184 + clocks = <&cpg CPG_MOD 911>; 185 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 186 + resets = <&cpg 911>; 187 + }; 188 + 189 + gpio2: gpio@e6052000 { 190 + compatible = "renesas,gpio-r8a77965", 191 + "renesas,rcar-gen3-gpio"; 192 + reg = <0 0xe6052000 0 0x50>; 193 + interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 194 + #gpio-cells = <2>; 195 + gpio-controller; 196 + gpio-ranges = <&pfc 0 64 15>; 197 + #interrupt-cells = <2>; 198 + interrupt-controller; 199 + clocks = <&cpg CPG_MOD 910>; 200 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 201 + resets = <&cpg 910>; 202 + }; 203 + 204 + gpio3: gpio@e6053000 { 205 + compatible = "renesas,gpio-r8a77965", 206 + "renesas,rcar-gen3-gpio"; 207 + reg = <0 0xe6053000 0 0x50>; 208 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 209 + #gpio-cells = <2>; 210 + gpio-controller; 211 + gpio-ranges = <&pfc 0 96 16>; 212 + #interrupt-cells = <2>; 213 + interrupt-controller; 214 + clocks = <&cpg CPG_MOD 909>; 215 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 216 + resets = <&cpg 909>; 217 + }; 218 + 219 + gpio4: gpio@e6054000 { 220 + compatible = "renesas,gpio-r8a77965", 221 + "renesas,rcar-gen3-gpio"; 222 + reg = <0 0xe6054000 0 0x50>; 223 + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 224 + #gpio-cells = <2>; 225 + gpio-controller; 226 + gpio-ranges = <&pfc 0 128 18>; 227 + #interrupt-cells = <2>; 228 + interrupt-controller; 229 + clocks = <&cpg CPG_MOD 908>; 230 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 231 + resets = <&cpg 908>; 232 + }; 233 + 234 + gpio5: gpio@e6055000 { 235 + compatible = "renesas,gpio-r8a77965", 236 + "renesas,rcar-gen3-gpio"; 237 + reg = <0 0xe6055000 0 0x50>; 238 + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 239 + #gpio-cells = <2>; 240 + gpio-controller; 241 + gpio-ranges = <&pfc 0 160 26>; 242 + #interrupt-cells = <2>; 243 + interrupt-controller; 244 + clocks = <&cpg CPG_MOD 907>; 245 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 246 + resets = <&cpg 907>; 247 + }; 248 + 249 + gpio6: gpio@e6055400 { 250 + compatible = "renesas,gpio-r8a77965", 251 + "renesas,rcar-gen3-gpio"; 252 + reg = <0 0xe6055400 0 0x50>; 253 + interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 254 + #gpio-cells = <2>; 255 + gpio-controller; 256 + gpio-ranges = <&pfc 0 192 32>; 257 + #interrupt-cells = <2>; 258 + interrupt-controller; 259 + clocks = <&cpg CPG_MOD 906>; 260 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 261 + resets = <&cpg 906>; 262 + }; 263 + 264 + gpio7: gpio@e6055800 { 265 + compatible = "renesas,gpio-r8a77965", 266 + "renesas,rcar-gen3-gpio"; 267 + reg = <0 0xe6055800 0 0x50>; 268 + interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 269 + #gpio-cells = <2>; 270 + gpio-controller; 271 + gpio-ranges = <&pfc 0 224 4>; 272 + #interrupt-cells = <2>; 273 + interrupt-controller; 274 + clocks = <&cpg CPG_MOD 905>; 275 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 276 + resets = <&cpg 905>; 156 277 }; 157 278 158 279 pfc: pin-controller@e6060000 { ··· 283 188 reg = <0 0xe6160000 0 0x0200>; 284 189 }; 285 190 286 - prr: chipid@fff00044 { 287 - compatible = "renesas,prr"; 288 - reg = <0 0xfff00044 0 4>; 289 - }; 290 - 291 191 sysc: system-controller@e6180000 { 292 192 compatible = "renesas,r8a77965-sysc"; 293 193 reg = <0 0xe6180000 0 0x0400>; 294 194 #power-domain-cells = <1>; 295 195 }; 296 196 297 - gpio0: gpio@e6050000 { 298 - compatible = "renesas,gpio-r8a77965", 299 - "renesas,rcar-gen3-gpio"; 300 - reg = <0 0xe6050000 0 0x50>; 301 - interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 302 - #gpio-cells = <2>; 303 - gpio-controller; 304 - gpio-ranges = <&pfc 0 0 16>; 305 - #interrupt-cells = <2>; 306 - interrupt-controller; 307 - clocks = <&cpg CPG_MOD 912>; 308 - power-domains = <&sysc 32>; 309 - resets = <&cpg 912>; 310 - }; 311 - 312 - gpio1: gpio@e6051000 { 313 - compatible = "renesas,gpio-r8a77965", 314 - "renesas,rcar-gen3-gpio"; 315 - reg = <0 0xe6051000 0 0x50>; 316 - interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 317 - #gpio-cells = <2>; 318 - gpio-controller; 319 - gpio-ranges = <&pfc 0 32 29>; 320 - #interrupt-cells = <2>; 321 - interrupt-controller; 322 - clocks = <&cpg CPG_MOD 911>; 323 - power-domains = <&sysc 32>; 324 - resets = <&cpg 911>; 325 - }; 326 - 327 - gpio2: gpio@e6052000 { 328 - compatible = "renesas,gpio-r8a77965", 329 - "renesas,rcar-gen3-gpio"; 330 - reg = <0 0xe6052000 0 0x50>; 331 - interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 332 - #gpio-cells = <2>; 333 - gpio-controller; 334 - gpio-ranges = <&pfc 0 64 15>; 335 - #interrupt-cells = <2>; 336 - interrupt-controller; 337 - clocks = <&cpg CPG_MOD 910>; 338 - power-domains = <&sysc 32>; 339 - resets = <&cpg 910>; 340 - }; 341 - 342 - gpio3: gpio@e6053000 { 343 - compatible = "renesas,gpio-r8a77965", 344 - "renesas,rcar-gen3-gpio"; 345 - reg = <0 0xe6053000 0 0x50>; 346 - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 347 - #gpio-cells = <2>; 348 - gpio-controller; 349 - gpio-ranges = <&pfc 0 96 16>; 350 - #interrupt-cells = <2>; 351 - interrupt-controller; 352 - clocks = <&cpg CPG_MOD 909>; 353 - power-domains = <&sysc 32>; 354 - resets = <&cpg 909>; 355 - }; 356 - 357 - gpio4: gpio@e6054000 { 358 - compatible = "renesas,gpio-r8a77965", 359 - "renesas,rcar-gen3-gpio"; 360 - reg = <0 0xe6054000 0 0x50>; 361 - interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 362 - #gpio-cells = <2>; 363 - gpio-controller; 364 - gpio-ranges = <&pfc 0 128 18>; 365 - #interrupt-cells = <2>; 366 - interrupt-controller; 367 - clocks = <&cpg CPG_MOD 908>; 368 - power-domains = <&sysc 32>; 369 - resets = <&cpg 908>; 370 - }; 371 - 372 - gpio5: gpio@e6055000 { 373 - compatible = "renesas,gpio-r8a77965", 374 - "renesas,rcar-gen3-gpio"; 375 - reg = <0 0xe6055000 0 0x50>; 376 - interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 377 - #gpio-cells = <2>; 378 - gpio-controller; 379 - gpio-ranges = <&pfc 0 160 26>; 380 - #interrupt-cells = <2>; 381 - interrupt-controller; 382 - clocks = <&cpg CPG_MOD 907>; 383 - power-domains = <&sysc 32>; 384 - resets = <&cpg 907>; 385 - }; 386 - 387 - gpio6: gpio@e6055400 { 388 - compatible = "renesas,gpio-r8a77965", 389 - "renesas,rcar-gen3-gpio"; 390 - reg = <0 0xe6055400 0 0x50>; 391 - interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 392 - #gpio-cells = <2>; 393 - gpio-controller; 394 - gpio-ranges = <&pfc 0 192 32>; 395 - #interrupt-cells = <2>; 396 - interrupt-controller; 397 - clocks = <&cpg CPG_MOD 906>; 398 - power-domains = <&sysc 32>; 399 - resets = <&cpg 906>; 400 - }; 401 - 402 - gpio7: gpio@e6055800 { 403 - compatible = "renesas,gpio-r8a77965", 404 - "renesas,rcar-gen3-gpio"; 405 - reg = <0 0xe6055800 0 0x50>; 406 - interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 407 - #gpio-cells = <2>; 408 - gpio-controller; 409 - gpio-ranges = <&pfc 0 224 4>; 410 - #interrupt-cells = <2>; 411 - interrupt-controller; 412 - clocks = <&cpg CPG_MOD 905>; 413 - power-domains = <&sysc 32>; 414 - resets = <&cpg 905>; 197 + tsc: thermal@e6198000 { 198 + compatible = "renesas,r8a77965-thermal"; 199 + reg = <0 0xe6198000 0 0x100>, 200 + <0 0xe61a0000 0 0x100>, 201 + <0 0xe61a8000 0 0x100>; 202 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 203 + <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 204 + <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 205 + clocks = <&cpg CPG_MOD 522>; 206 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 207 + resets = <&cpg 522>; 208 + #thermal-sensor-cells = <1>; 209 + status = "okay"; 415 210 }; 416 211 417 212 intc_ex: interrupt-controller@e61c0000 { ··· 316 331 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 317 332 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; 318 333 clocks = <&cpg CPG_MOD 407>; 319 - power-domains = <&sysc 32>; 334 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 320 335 resets = <&cpg 407>; 336 + }; 337 + 338 + i2c0: i2c@e6500000 { 339 + #address-cells = <1>; 340 + #size-cells = <0>; 341 + compatible = "renesas,i2c-r8a77965", 342 + "renesas,rcar-gen3-i2c"; 343 + reg = <0 0xe6500000 0 0x40>; 344 + interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 345 + clocks = <&cpg CPG_MOD 931>; 346 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 347 + resets = <&cpg 931>; 348 + dmas = <&dmac1 0x91>, <&dmac1 0x90>, 349 + <&dmac2 0x91>, <&dmac2 0x90>; 350 + dma-names = "tx", "rx", "tx", "rx"; 351 + i2c-scl-internal-delay-ns = <110>; 352 + status = "disabled"; 353 + }; 354 + 355 + i2c1: i2c@e6508000 { 356 + #address-cells = <1>; 357 + #size-cells = <0>; 358 + compatible = "renesas,i2c-r8a77965", 359 + "renesas,rcar-gen3-i2c"; 360 + reg = <0 0xe6508000 0 0x40>; 361 + interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 362 + clocks = <&cpg CPG_MOD 930>; 363 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 364 + resets = <&cpg 930>; 365 + dmas = <&dmac1 0x93>, <&dmac1 0x92>, 366 + <&dmac2 0x93>, <&dmac2 0x92>; 367 + dma-names = "tx", "rx", "tx", "rx"; 368 + i2c-scl-internal-delay-ns = <6>; 369 + status = "disabled"; 370 + }; 371 + 372 + i2c2: i2c@e6510000 { 373 + #address-cells = <1>; 374 + #size-cells = <0>; 375 + compatible = "renesas,i2c-r8a77965", 376 + "renesas,rcar-gen3-i2c"; 377 + reg = <0 0xe6510000 0 0x40>; 378 + interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 379 + clocks = <&cpg CPG_MOD 929>; 380 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 381 + resets = <&cpg 929>; 382 + dmas = <&dmac1 0x95>, <&dmac1 0x94>, 383 + <&dmac2 0x95>, <&dmac2 0x94>; 384 + dma-names = "tx", "rx", "tx", "rx"; 385 + i2c-scl-internal-delay-ns = <6>; 386 + status = "disabled"; 387 + }; 388 + 389 + i2c3: i2c@e66d0000 { 390 + #address-cells = <1>; 391 + #size-cells = <0>; 392 + compatible = "renesas,i2c-r8a77965", 393 + "renesas,rcar-gen3-i2c"; 394 + reg = <0 0xe66d0000 0 0x40>; 395 + interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 396 + clocks = <&cpg CPG_MOD 928>; 397 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 398 + resets = <&cpg 928>; 399 + dmas = <&dmac0 0x97>, <&dmac0 0x96>; 400 + dma-names = "tx", "rx"; 401 + i2c-scl-internal-delay-ns = <110>; 402 + status = "disabled"; 403 + }; 404 + 405 + i2c4: i2c@e66d8000 { 406 + #address-cells = <1>; 407 + #size-cells = <0>; 408 + compatible = "renesas,i2c-r8a77965", 409 + "renesas,rcar-gen3-i2c"; 410 + reg = <0 0xe66d8000 0 0x40>; 411 + interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 412 + clocks = <&cpg CPG_MOD 927>; 413 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 414 + resets = <&cpg 927>; 415 + dmas = <&dmac0 0x99>, <&dmac0 0x98>; 416 + dma-names = "tx", "rx"; 417 + i2c-scl-internal-delay-ns = <110>; 418 + status = "disabled"; 419 + }; 420 + 421 + i2c5: i2c@e66e0000 { 422 + #address-cells = <1>; 423 + #size-cells = <0>; 424 + compatible = "renesas,i2c-r8a77965", 425 + "renesas,rcar-gen3-i2c"; 426 + reg = <0 0xe66e0000 0 0x40>; 427 + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 428 + clocks = <&cpg CPG_MOD 919>; 429 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 430 + resets = <&cpg 919>; 431 + dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; 432 + dma-names = "tx", "rx"; 433 + i2c-scl-internal-delay-ns = <110>; 434 + status = "disabled"; 435 + }; 436 + 437 + i2c6: i2c@e66e8000 { 438 + #address-cells = <1>; 439 + #size-cells = <0>; 440 + compatible = "renesas,i2c-r8a77965", 441 + "renesas,rcar-gen3-i2c"; 442 + reg = <0 0xe66e8000 0 0x40>; 443 + interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 444 + clocks = <&cpg CPG_MOD 918>; 445 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 446 + resets = <&cpg 918>; 447 + dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; 448 + dma-names = "tx", "rx"; 449 + i2c-scl-internal-delay-ns = <6>; 450 + status = "disabled"; 451 + }; 452 + 453 + i2c_dvfs: i2c@e60b0000 { 454 + #address-cells = <1>; 455 + #size-cells = <0>; 456 + compatible = "renesas,iic-r8a77965", 457 + "renesas,rcar-gen3-iic", 458 + "renesas,rmobile-iic"; 459 + reg = <0 0xe60b0000 0 0x425>; 460 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 461 + clocks = <&cpg CPG_MOD 926>; 462 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 463 + resets = <&cpg 926>; 464 + dmas = <&dmac0 0x11>, <&dmac0 0x10>; 465 + dma-names = "tx", "rx"; 466 + status = "disabled"; 467 + }; 468 + 469 + hsusb: usb@e6590000 { 470 + compatible = "renesas,usbhs-r8a7796", 471 + "renesas,rcar-gen3-usbhs"; 472 + reg = <0 0xe6590000 0 0x100>; 473 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 474 + clocks = <&cpg CPG_MOD 704>; 475 + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 476 + <&usb_dmac1 0>, <&usb_dmac1 1>; 477 + dma-names = "ch0", "ch1", "ch2", "ch3"; 478 + renesas,buswait = <11>; 479 + phys = <&usb2_phy0>; 480 + phy-names = "usb"; 481 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 482 + resets = <&cpg 704>; 483 + status = "disabled"; 484 + }; 485 + 486 + usb_dmac0: dma-controller@e65a0000 { 487 + compatible = "renesas,r8a77965-usb-dmac", 488 + "renesas,usb-dmac"; 489 + reg = <0 0xe65a0000 0 0x100>; 490 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 491 + GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 492 + interrupt-names = "ch0", "ch1"; 493 + clocks = <&cpg CPG_MOD 330>; 494 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 495 + resets = <&cpg 330>; 496 + #dma-cells = <1>; 497 + dma-channels = <2>; 498 + }; 499 + 500 + usb_dmac1: dma-controller@e65b0000 { 501 + compatible = "renesas,r8a77965-usb-dmac", 502 + "renesas,usb-dmac"; 503 + reg = <0 0xe65b0000 0 0x100>; 504 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 505 + GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 506 + interrupt-names = "ch0", "ch1"; 507 + clocks = <&cpg CPG_MOD 331>; 508 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 509 + resets = <&cpg 331>; 510 + #dma-cells = <1>; 511 + dma-channels = <2>; 512 + }; 513 + 514 + usb3_phy0: usb-phy@e65ee000 { 515 + compatible = "renesas,r8a77965-usb3-phy", 516 + "renesas,rcar-gen3-usb3-phy"; 517 + reg = <0 0xe65ee000 0 0x90>; 518 + clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>, 519 + <&usb_extal_clk>; 520 + clock-names = "usb3-if", "usb3s_clk", "usb_extal"; 521 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 522 + resets = <&cpg 328>; 523 + #phy-cells = <0>; 524 + status = "disabled"; 321 525 }; 322 526 323 527 dmac0: dma-controller@e6700000 { ··· 537 363 "ch12", "ch13", "ch14", "ch15"; 538 364 clocks = <&cpg CPG_MOD 219>; 539 365 clock-names = "fck"; 540 - power-domains = <&sysc 32>; 366 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 541 367 resets = <&cpg 219>; 542 368 #dma-cells = <1>; 543 369 dma-channels = <16>; ··· 571 397 "ch12", "ch13", "ch14", "ch15"; 572 398 clocks = <&cpg CPG_MOD 218>; 573 399 clock-names = "fck"; 574 - power-domains = <&sysc 32>; 400 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 575 401 resets = <&cpg 218>; 576 402 #dma-cells = <1>; 577 403 dma-channels = <16>; ··· 605 431 "ch12", "ch13", "ch14", "ch15"; 606 432 clocks = <&cpg CPG_MOD 217>; 607 433 clock-names = "fck"; 608 - power-domains = <&sysc 32>; 434 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 609 435 resets = <&cpg 217>; 610 436 #dma-cells = <1>; 611 437 dma-channels = <16>; 612 - }; 613 - 614 - scif0: serial@e6e60000 { 615 - compatible = "renesas,scif-r8a77965", 616 - "renesas,rcar-gen3-scif", "renesas,scif"; 617 - reg = <0 0xe6e60000 0 64>; 618 - interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 619 - clocks = <&cpg CPG_MOD 207>, 620 - <&cpg CPG_CORE 20>, 621 - <&scif_clk>; 622 - clock-names = "fck", "brg_int", "scif_clk"; 623 - dmas = <&dmac1 0x51>, <&dmac1 0x50>, 624 - <&dmac2 0x51>, <&dmac2 0x50>; 625 - dma-names = "tx", "rx", "tx", "rx"; 626 - power-domains = <&sysc 32>; 627 - resets = <&cpg 207>; 628 - status = "disabled"; 629 - }; 630 - 631 - scif1: serial@e6e68000 { 632 - compatible = "renesas,scif-r8a77965", 633 - "renesas,rcar-gen3-scif", "renesas,scif"; 634 - reg = <0 0xe6e68000 0 64>; 635 - interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 636 - clocks = <&cpg CPG_MOD 206>, 637 - <&cpg CPG_CORE 20>, 638 - <&scif_clk>; 639 - clock-names = "fck", "brg_int", "scif_clk"; 640 - dmas = <&dmac1 0x53>, <&dmac1 0x52>, 641 - <&dmac2 0x53>, <&dmac2 0x52>; 642 - dma-names = "tx", "rx", "tx", "rx"; 643 - power-domains = <&sysc 32>; 644 - resets = <&cpg 206>; 645 - status = "disabled"; 646 - }; 647 - 648 - scif2: serial@e6e88000 { 649 - compatible = "renesas,scif-r8a77965", 650 - "renesas,rcar-gen3-scif", "renesas,scif"; 651 - reg = <0 0xe6e88000 0 64>; 652 - interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 653 - clocks = <&cpg CPG_MOD 310>, 654 - <&cpg CPG_CORE 20>, 655 - <&scif_clk>; 656 - clock-names = "fck", "brg_int", "scif_clk"; 657 - power-domains = <&sysc 32>; 658 - resets = <&cpg 310>; 659 - status = "disabled"; 660 - }; 661 - 662 - scif3: serial@e6c50000 { 663 - compatible = "renesas,scif-r8a77965", 664 - "renesas,rcar-gen3-scif", "renesas,scif"; 665 - reg = <0 0xe6c50000 0 64>; 666 - interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 667 - clocks = <&cpg CPG_MOD 204>, 668 - <&cpg CPG_CORE 20>, 669 - <&scif_clk>; 670 - clock-names = "fck", "brg_int", "scif_clk"; 671 - dmas = <&dmac0 0x57>, <&dmac0 0x56>; 672 - dma-names = "tx", "rx"; 673 - power-domains = <&sysc 32>; 674 - resets = <&cpg 204>; 675 - status = "disabled"; 676 - }; 677 - 678 - scif4: serial@e6c40000 { 679 - compatible = "renesas,scif-r8a77965", 680 - "renesas,rcar-gen3-scif", "renesas,scif"; 681 - reg = <0 0xe6c40000 0 64>; 682 - interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 683 - clocks = <&cpg CPG_MOD 203>, 684 - <&cpg CPG_CORE 20>, 685 - <&scif_clk>; 686 - clock-names = "fck", "brg_int", "scif_clk"; 687 - dmas = <&dmac0 0x59>, <&dmac0 0x58>; 688 - dma-names = "tx", "rx"; 689 - power-domains = <&sysc 32>; 690 - resets = <&cpg 203>; 691 - status = "disabled"; 692 - }; 693 - 694 - scif5: serial@e6f30000 { 695 - compatible = "renesas,scif-r8a77965", 696 - "renesas,rcar-gen3-scif", "renesas,scif"; 697 - reg = <0 0xe6f30000 0 64>; 698 - interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 699 - clocks = <&cpg CPG_MOD 202>, 700 - <&cpg CPG_CORE 20>, 701 - <&scif_clk>; 702 - clock-names = "fck", "brg_int", "scif_clk"; 703 - dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, 704 - <&dmac2 0x5b>, <&dmac2 0x5a>; 705 - dma-names = "tx", "rx", "tx", "rx"; 706 - power-domains = <&sysc 32>; 707 - resets = <&cpg 202>; 708 - status = "disabled"; 709 438 }; 710 439 711 440 avb: ethernet@e6800000 { ··· 648 571 "ch20", "ch21", "ch22", "ch23", 649 572 "ch24"; 650 573 clocks = <&cpg CPG_MOD 812>; 651 - power-domains = <&sysc 32>; 574 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 652 575 resets = <&cpg 812>; 653 576 phy-mode = "rgmii"; 654 577 #address-cells = <1>; ··· 656 579 status = "disabled"; 657 580 }; 658 581 659 - csi20: csi2@fea80000 { 660 - reg = <0 0xfea80000 0 0x10000>; 661 - /* placeholder */ 662 - 663 - ports { 664 - #address-cells = <1>; 665 - #size-cells = <0>; 666 - }; 667 - }; 668 - 669 - csi40: csi2@feaa0000 { 670 - reg = <0 0xfeaa0000 0 0x10000>; 671 - /* placeholder */ 672 - 673 - ports { 674 - #address-cells = <1>; 675 - #size-cells = <0>; 676 - }; 677 - }; 678 - 679 - vin0: video@e6ef0000 { 680 - reg = <0 0xe6ef0000 0 0x1000>; 681 - /* placeholder */ 682 - }; 683 - 684 - vin1: video@e6ef1000 { 685 - reg = <0 0xe6ef1000 0 0x1000>; 686 - /* placeholder */ 687 - }; 688 - 689 - vin2: video@e6ef2000 { 690 - reg = <0 0xe6ef2000 0 0x1000>; 691 - /* placeholder */ 692 - }; 693 - 694 - vin3: video@e6ef3000 { 695 - reg = <0 0xe6ef3000 0 0x1000>; 696 - /* placeholder */ 697 - }; 698 - 699 - vin4: video@e6ef4000 { 700 - reg = <0 0xe6ef4000 0 0x1000>; 701 - /* placeholder */ 702 - }; 703 - 704 - vin5: video@e6ef5000 { 705 - reg = <0 0xe6ef5000 0 0x1000>; 706 - /* placeholder */ 707 - }; 708 - 709 - vin6: video@e6ef6000 { 710 - reg = <0 0xe6ef6000 0 0x1000>; 711 - /* placeholder */ 712 - }; 713 - 714 - vin7: video@e6ef7000 { 715 - reg = <0 0xe6ef7000 0 0x1000>; 716 - /* placeholder */ 717 - }; 718 - 719 - ohci0: usb@ee080000 { 720 - reg = <0 0xee080000 0 0x100>; 721 - /* placeholder */ 722 - }; 723 - 724 - ehci0: usb@ee080100 { 725 - reg = <0 0xee080100 0 0x100>; 726 - /* placeholder */ 727 - }; 728 - 729 - usb2_phy0: usb-phy@ee080200 { 730 - reg = <0 0xee080200 0 0x700>; 731 - /* placeholder */ 732 - }; 733 - 734 - usb2_phy1: usb-phy@ee0a0200 { 735 - reg = <0 0xee0a0200 0 0x700>; 736 - /* placeholder */ 737 - }; 738 - 739 - ohci1: usb@ee0a0000 { 740 - reg = <0 0xee0a0000 0 0x100>; 741 - /* placeholder */ 742 - }; 743 - 744 - ehci1: usb@ee0a0100 { 745 - reg = <0 0xee0a0100 0 0x100>; 746 - /* placeholder */ 747 - }; 748 - 749 - i2c0: i2c@e6500000 { 750 - reg = <0 0xe6500000 0 0x40>; 751 - /* placeholder */ 752 - }; 753 - 754 - i2c1: i2c@e6508000 { 755 - reg = <0 0xe6508000 0 0x40>; 756 - /* placeholder */ 757 - }; 758 - 759 - i2c2: i2c@e6510000 { 760 - #address-cells = <1>; 761 - #size-cells = <0>; 762 - 763 - reg = <0 0xe6510000 0 0x40>; 764 - /* placeholder */ 765 - }; 766 - 767 - i2c3: i2c@e66d0000 { 768 - reg = <0 0xe66d0000 0 0x40>; 769 - /* placeholder */ 770 - }; 771 - 772 - i2c4: i2c@e66d8000 { 773 - #address-cells = <1>; 774 - #size-cells = <0>; 775 - 776 - reg = <0 0xe66d8000 0 0x40>; 777 - /* placeholder */ 778 - }; 779 - 780 - i2c5: i2c@e66e0000 { 781 - reg = <0 0xe66e0000 0 0x40>; 782 - /* placeholder */ 783 - }; 784 - 785 - i2c6: i2c@e66e8000 { 786 - reg = <0 0xe66e8000 0 0x40>; 787 - /* placeholder */ 788 - }; 789 - 790 - i2c_dvfs: i2c@e60b0000 { 791 - #address-cells = <1>; 792 - #size-cells = <0>; 793 - compatible = "renesas,iic-r8a77965", 794 - "renesas,rcar-gen3-iic", 795 - "renesas,rmobile-iic"; 796 - reg = <0 0xe60b0000 0 0x425>; 797 - interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 798 - clocks = <&cpg CPG_MOD 926>; 799 - power-domains = <&sysc 32>; 800 - resets = <&cpg 926>; 801 - dmas = <&dmac0 0x11>, <&dmac0 0x10>; 802 - dma-names = "tx", "rx"; 582 + pwm0: pwm@e6e30000 { 583 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 584 + reg = <0 0xe6e30000 0 8>; 585 + #pwm-cells = <2>; 586 + clocks = <&cpg CPG_MOD 523>; 587 + resets = <&cpg 523>; 588 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 803 589 status = "disabled"; 804 590 }; 805 591 806 - pwm0: pwm@e6e30000 { 807 - reg = <0 0xe6e30000 0 8>; 808 - /* placeholder */ 809 - }; 810 - 811 592 pwm1: pwm@e6e31000 { 593 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 812 594 reg = <0 0xe6e31000 0 8>; 813 595 #pwm-cells = <2>; 814 - /* placeholder */ 596 + clocks = <&cpg CPG_MOD 523>; 597 + resets = <&cpg 523>; 598 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 599 + status = "disabled"; 815 600 }; 816 601 817 602 pwm2: pwm@e6e32000 { 603 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 818 604 reg = <0 0xe6e32000 0 8>; 819 - /* placeholder */ 605 + #pwm-cells = <2>; 606 + clocks = <&cpg CPG_MOD 523>; 607 + resets = <&cpg 523>; 608 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 609 + status = "disabled"; 820 610 }; 821 611 822 612 pwm3: pwm@e6e33000 { 613 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 823 614 reg = <0 0xe6e33000 0 8>; 824 - /* placeholder */ 615 + #pwm-cells = <2>; 616 + clocks = <&cpg CPG_MOD 523>; 617 + resets = <&cpg 523>; 618 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 619 + status = "disabled"; 825 620 }; 826 621 827 622 pwm4: pwm@e6e34000 { 623 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 828 624 reg = <0 0xe6e34000 0 8>; 829 - /* placeholder */ 625 + #pwm-cells = <2>; 626 + clocks = <&cpg CPG_MOD 523>; 627 + resets = <&cpg 523>; 628 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 629 + status = "disabled"; 830 630 }; 831 631 832 632 pwm5: pwm@e6e35000 { 633 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 833 634 reg = <0 0xe6e35000 0 8>; 834 - /* placeholder */ 635 + #pwm-cells = <2>; 636 + clocks = <&cpg CPG_MOD 523>; 637 + resets = <&cpg 523>; 638 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 639 + status = "disabled"; 835 640 }; 836 641 837 642 pwm6: pwm@e6e36000 { 643 + compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 838 644 reg = <0 0xe6e36000 0 8>; 839 - /* placeholder */ 645 + #pwm-cells = <2>; 646 + clocks = <&cpg CPG_MOD 523>; 647 + resets = <&cpg 523>; 648 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 649 + status = "disabled"; 840 650 }; 841 651 842 - du: display@feb00000 { 843 - reg = <0 0xfeb00000 0 0x80000>, 844 - <0 0xfeb90000 0 0x14>; 845 - /* placeholder */ 652 + scif0: serial@e6e60000 { 653 + compatible = "renesas,scif-r8a77965", 654 + "renesas,rcar-gen3-scif", "renesas,scif"; 655 + reg = <0 0xe6e60000 0 64>; 656 + interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 657 + clocks = <&cpg CPG_MOD 207>, 658 + <&cpg CPG_CORE 20>, 659 + <&scif_clk>; 660 + clock-names = "fck", "brg_int", "scif_clk"; 661 + dmas = <&dmac1 0x51>, <&dmac1 0x50>, 662 + <&dmac2 0x51>, <&dmac2 0x50>; 663 + dma-names = "tx", "rx", "tx", "rx"; 664 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 665 + resets = <&cpg 207>; 666 + status = "disabled"; 667 + }; 668 + 669 + scif1: serial@e6e68000 { 670 + compatible = "renesas,scif-r8a77965", 671 + "renesas,rcar-gen3-scif", "renesas,scif"; 672 + reg = <0 0xe6e68000 0 64>; 673 + interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 674 + clocks = <&cpg CPG_MOD 206>, 675 + <&cpg CPG_CORE 20>, 676 + <&scif_clk>; 677 + clock-names = "fck", "brg_int", "scif_clk"; 678 + dmas = <&dmac1 0x53>, <&dmac1 0x52>, 679 + <&dmac2 0x53>, <&dmac2 0x52>; 680 + dma-names = "tx", "rx", "tx", "rx"; 681 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 682 + resets = <&cpg 206>; 683 + status = "disabled"; 684 + }; 685 + 686 + scif2: serial@e6e88000 { 687 + compatible = "renesas,scif-r8a77965", 688 + "renesas,rcar-gen3-scif", "renesas,scif"; 689 + reg = <0 0xe6e88000 0 64>; 690 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 691 + clocks = <&cpg CPG_MOD 310>, 692 + <&cpg CPG_CORE 20>, 693 + <&scif_clk>; 694 + clock-names = "fck", "brg_int", "scif_clk"; 695 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 696 + resets = <&cpg 310>; 697 + status = "disabled"; 698 + }; 699 + 700 + scif3: serial@e6c50000 { 701 + compatible = "renesas,scif-r8a77965", 702 + "renesas,rcar-gen3-scif", "renesas,scif"; 703 + reg = <0 0xe6c50000 0 64>; 704 + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 705 + clocks = <&cpg CPG_MOD 204>, 706 + <&cpg CPG_CORE 20>, 707 + <&scif_clk>; 708 + clock-names = "fck", "brg_int", "scif_clk"; 709 + dmas = <&dmac0 0x57>, <&dmac0 0x56>; 710 + dma-names = "tx", "rx"; 711 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 712 + resets = <&cpg 204>; 713 + status = "disabled"; 714 + }; 715 + 716 + scif4: serial@e6c40000 { 717 + compatible = "renesas,scif-r8a77965", 718 + "renesas,rcar-gen3-scif", "renesas,scif"; 719 + reg = <0 0xe6c40000 0 64>; 720 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 721 + clocks = <&cpg CPG_MOD 203>, 722 + <&cpg CPG_CORE 20>, 723 + <&scif_clk>; 724 + clock-names = "fck", "brg_int", "scif_clk"; 725 + dmas = <&dmac0 0x59>, <&dmac0 0x58>; 726 + dma-names = "tx", "rx"; 727 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 728 + resets = <&cpg 203>; 729 + status = "disabled"; 730 + }; 731 + 732 + scif5: serial@e6f30000 { 733 + compatible = "renesas,scif-r8a77965", 734 + "renesas,rcar-gen3-scif", "renesas,scif"; 735 + reg = <0 0xe6f30000 0 64>; 736 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 737 + clocks = <&cpg CPG_MOD 202>, 738 + <&cpg CPG_CORE 20>, 739 + <&scif_clk>; 740 + clock-names = "fck", "brg_int", "scif_clk"; 741 + dmas = <&dmac1 0x5b>, <&dmac1 0x5a>, 742 + <&dmac2 0x5b>, <&dmac2 0x5a>; 743 + dma-names = "tx", "rx", "tx", "rx"; 744 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 745 + resets = <&cpg 202>; 746 + status = "disabled"; 747 + }; 748 + 749 + msiof0: spi@e6e90000 { 750 + compatible = "renesas,msiof-r8a77965", 751 + "renesas,rcar-gen3-msiof"; 752 + reg = <0 0xe6e90000 0 0x0064>; 753 + interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 754 + clocks = <&cpg CPG_MOD 211>; 755 + dmas = <&dmac1 0x41>, <&dmac1 0x40>, 756 + <&dmac2 0x41>, <&dmac2 0x40>; 757 + dma-names = "tx", "rx", "tx", "rx"; 758 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 759 + resets = <&cpg 211>; 760 + #address-cells = <1>; 761 + #size-cells = <0>; 762 + status = "disabled"; 763 + }; 764 + 765 + msiof1: spi@e6ea0000 { 766 + compatible = "renesas,msiof-r8a77965", 767 + "renesas,rcar-gen3-msiof"; 768 + reg = <0 0xe6ea0000 0 0x0064>; 769 + interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 770 + clocks = <&cpg CPG_MOD 210>; 771 + dmas = <&dmac1 0x43>, <&dmac1 0x42>, 772 + <&dmac2 0x43>, <&dmac2 0x42>; 773 + dma-names = "tx", "rx", "tx", "rx"; 774 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 775 + resets = <&cpg 210>; 776 + #address-cells = <1>; 777 + #size-cells = <0>; 778 + status = "disabled"; 779 + }; 780 + 781 + msiof2: spi@e6c00000 { 782 + compatible = "renesas,msiof-r8a77965", 783 + "renesas,rcar-gen3-msiof"; 784 + reg = <0 0xe6c00000 0 0x0064>; 785 + interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 786 + clocks = <&cpg CPG_MOD 209>; 787 + dmas = <&dmac0 0x45>, <&dmac0 0x44>; 788 + dma-names = "tx", "rx"; 789 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 790 + resets = <&cpg 209>; 791 + #address-cells = <1>; 792 + #size-cells = <0>; 793 + status = "disabled"; 794 + }; 795 + 796 + msiof3: spi@e6c10000 { 797 + compatible = "renesas,msiof-r8a77965", 798 + "renesas,rcar-gen3-msiof"; 799 + reg = <0 0xe6c10000 0 0x0064>; 800 + interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 801 + clocks = <&cpg CPG_MOD 208>; 802 + dmas = <&dmac0 0x47>, <&dmac0 0x46>; 803 + dma-names = "tx", "rx"; 804 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 805 + resets = <&cpg 208>; 806 + #address-cells = <1>; 807 + #size-cells = <0>; 808 + status = "disabled"; 809 + }; 810 + 811 + vin0: video@e6ef0000 { 812 + compatible = "renesas,vin-r8a77965"; 813 + reg = <0 0xe6ef0000 0 0x1000>; 814 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 815 + clocks = <&cpg CPG_MOD 811>; 816 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 817 + resets = <&cpg 811>; 818 + renesas,id = <0>; 819 + status = "disabled"; 846 820 847 821 ports { 848 822 #address-cells = <1>; 849 823 #size-cells = <0>; 850 824 851 - port@0 { 852 - reg = <0>; 853 - du_out_rgb: endpoint { 854 - }; 855 - }; 856 825 port@1 { 826 + #address-cells = <1>; 827 + #size-cells = <0>; 828 + 857 829 reg = <1>; 858 - du_out_hdmi0: endpoint { 830 + 831 + vin0csi20: endpoint@0 { 832 + reg = <0>; 833 + remote-endpoint= <&csi20vin0>; 859 834 }; 860 - }; 861 - port@2 { 862 - reg = <2>; 863 - du_out_lvds0: endpoint { 835 + vin0csi40: endpoint@2 { 836 + reg = <2>; 837 + remote-endpoint= <&csi40vin0>; 864 838 }; 865 839 }; 866 840 }; 867 841 }; 868 842 869 - hsusb: usb@e6590000 { 870 - reg = <0 0xe6590000 0 0x100>; 871 - /* placeholder */ 843 + vin1: video@e6ef1000 { 844 + compatible = "renesas,vin-r8a77965"; 845 + reg = <0 0xe6ef1000 0 0x1000>; 846 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 847 + clocks = <&cpg CPG_MOD 810>; 848 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 849 + resets = <&cpg 810>; 850 + renesas,id = <1>; 851 + status = "disabled"; 852 + 853 + ports { 854 + #address-cells = <1>; 855 + #size-cells = <0>; 856 + 857 + port@1 { 858 + #address-cells = <1>; 859 + #size-cells = <0>; 860 + 861 + reg = <1>; 862 + 863 + vin1csi20: endpoint@0 { 864 + reg = <0>; 865 + remote-endpoint= <&csi20vin1>; 866 + }; 867 + vin1csi40: endpoint@2 { 868 + reg = <2>; 869 + remote-endpoint= <&csi40vin1>; 870 + }; 871 + }; 872 + }; 872 873 }; 873 874 874 - pciec0: pcie@fe000000 { 875 - reg = <0 0xfe000000 0 0x80000>; 876 - /* placeholder */ 875 + vin2: video@e6ef2000 { 876 + compatible = "renesas,vin-r8a77965"; 877 + reg = <0 0xe6ef2000 0 0x1000>; 878 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 879 + clocks = <&cpg CPG_MOD 809>; 880 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 881 + resets = <&cpg 809>; 882 + renesas,id = <2>; 883 + status = "disabled"; 884 + 885 + ports { 886 + #address-cells = <1>; 887 + #size-cells = <0>; 888 + 889 + port@1 { 890 + #address-cells = <1>; 891 + #size-cells = <0>; 892 + 893 + reg = <1>; 894 + 895 + vin2csi20: endpoint@0 { 896 + reg = <0>; 897 + remote-endpoint= <&csi20vin2>; 898 + }; 899 + vin2csi40: endpoint@2 { 900 + reg = <2>; 901 + remote-endpoint= <&csi40vin2>; 902 + }; 903 + }; 904 + }; 877 905 }; 878 906 879 - pciec1: pcie@ee800000 { 880 - reg = <0 0xee800000 0 0x80000>; 881 - /* placeholder */ 907 + vin3: video@e6ef3000 { 908 + compatible = "renesas,vin-r8a77965"; 909 + reg = <0 0xe6ef3000 0 0x1000>; 910 + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 911 + clocks = <&cpg CPG_MOD 808>; 912 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 913 + resets = <&cpg 808>; 914 + renesas,id = <3>; 915 + status = "disabled"; 916 + 917 + ports { 918 + #address-cells = <1>; 919 + #size-cells = <0>; 920 + 921 + port@1 { 922 + #address-cells = <1>; 923 + #size-cells = <0>; 924 + 925 + reg = <1>; 926 + 927 + vin3csi20: endpoint@0 { 928 + reg = <0>; 929 + remote-endpoint= <&csi20vin3>; 930 + }; 931 + vin3csi40: endpoint@2 { 932 + reg = <2>; 933 + remote-endpoint= <&csi40vin3>; 934 + }; 935 + }; 936 + }; 937 + }; 938 + 939 + vin4: video@e6ef4000 { 940 + compatible = "renesas,vin-r8a77965"; 941 + reg = <0 0xe6ef4000 0 0x1000>; 942 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 943 + clocks = <&cpg CPG_MOD 807>; 944 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 945 + resets = <&cpg 807>; 946 + renesas,id = <4>; 947 + status = "disabled"; 948 + 949 + ports { 950 + #address-cells = <1>; 951 + #size-cells = <0>; 952 + 953 + port@1 { 954 + #address-cells = <1>; 955 + #size-cells = <0>; 956 + 957 + reg = <1>; 958 + 959 + vin4csi20: endpoint@0 { 960 + reg = <0>; 961 + remote-endpoint= <&csi20vin4>; 962 + }; 963 + vin4csi40: endpoint@2 { 964 + reg = <2>; 965 + remote-endpoint= <&csi40vin4>; 966 + }; 967 + }; 968 + }; 969 + }; 970 + 971 + vin5: video@e6ef5000 { 972 + compatible = "renesas,vin-r8a77965"; 973 + reg = <0 0xe6ef5000 0 0x1000>; 974 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 975 + clocks = <&cpg CPG_MOD 806>; 976 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 977 + resets = <&cpg 806>; 978 + renesas,id = <5>; 979 + status = "disabled"; 980 + 981 + ports { 982 + #address-cells = <1>; 983 + #size-cells = <0>; 984 + 985 + port@1 { 986 + #address-cells = <1>; 987 + #size-cells = <0>; 988 + 989 + reg = <1>; 990 + 991 + vin5csi20: endpoint@0 { 992 + reg = <0>; 993 + remote-endpoint= <&csi20vin5>; 994 + }; 995 + vin5csi40: endpoint@2 { 996 + reg = <2>; 997 + remote-endpoint= <&csi40vin5>; 998 + }; 999 + }; 1000 + }; 1001 + }; 1002 + 1003 + vin6: video@e6ef6000 { 1004 + compatible = "renesas,vin-r8a77965"; 1005 + reg = <0 0xe6ef6000 0 0x1000>; 1006 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 1007 + clocks = <&cpg CPG_MOD 805>; 1008 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1009 + resets = <&cpg 805>; 1010 + renesas,id = <6>; 1011 + status = "disabled"; 1012 + 1013 + ports { 1014 + #address-cells = <1>; 1015 + #size-cells = <0>; 1016 + 1017 + port@1 { 1018 + #address-cells = <1>; 1019 + #size-cells = <0>; 1020 + 1021 + reg = <1>; 1022 + 1023 + vin6csi20: endpoint@0 { 1024 + reg = <0>; 1025 + remote-endpoint= <&csi20vin6>; 1026 + }; 1027 + vin6csi40: endpoint@2 { 1028 + reg = <2>; 1029 + remote-endpoint= <&csi40vin6>; 1030 + }; 1031 + }; 1032 + }; 1033 + }; 1034 + 1035 + vin7: video@e6ef7000 { 1036 + compatible = "renesas,vin-r8a77965"; 1037 + reg = <0 0xe6ef7000 0 0x1000>; 1038 + interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; 1039 + clocks = <&cpg CPG_MOD 804>; 1040 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1041 + resets = <&cpg 804>; 1042 + renesas,id = <7>; 1043 + status = "disabled"; 1044 + 1045 + ports { 1046 + #address-cells = <1>; 1047 + #size-cells = <0>; 1048 + 1049 + port@1 { 1050 + #address-cells = <1>; 1051 + #size-cells = <0>; 1052 + 1053 + reg = <1>; 1054 + 1055 + vin7csi20: endpoint@0 { 1056 + reg = <0>; 1057 + remote-endpoint= <&csi20vin7>; 1058 + }; 1059 + vin7csi40: endpoint@2 { 1060 + reg = <2>; 1061 + remote-endpoint= <&csi40vin7>; 1062 + }; 1063 + }; 1064 + }; 882 1065 }; 883 1066 884 1067 rcar_sound: sound@ec500000 { ··· 1169 832 ssi1: ssi-1 { 1170 833 }; 1171 834 }; 1172 - }; 1173 835 1174 - sdhi0: sd@ee100000 { 1175 - reg = <0 0xee100000 0 0x2000>; 1176 - /* placeholder */ 1177 - }; 1178 - 1179 - sdhi1: sd@ee120000 { 1180 - reg = <0 0xee120000 0 0x2000>; 1181 - /* placeholder */ 1182 - }; 1183 - 1184 - sdhi2: sd@ee140000 { 1185 - reg = <0 0xee140000 0 0x2000>; 1186 - /* placeholder */ 1187 - }; 1188 - 1189 - sdhi3: sd@ee160000 { 1190 - reg = <0 0xee160000 0 0x2000>; 1191 - /* placeholder */ 1192 - }; 1193 - 1194 - usb3_phy0: usb-phy@e65ee000 { 1195 - reg = <0 0xe65ee000 0 0x90>; 1196 - #phy-cells = <0>; 1197 - /* placeholder */ 1198 - }; 1199 - 1200 - usb3_peri0: usb@ee020000 { 1201 - reg = <0 0xee020000 0 0x400>; 1202 - /* placeholder */ 836 + ports { 837 + #address-cells = <1>; 838 + #size-cells = <0>; 839 + port@0 { 840 + reg = <0>; 841 + }; 842 + }; 1203 843 }; 1204 844 1205 845 xhci0: usb@ee000000 { 846 + compatible = "renesas,xhci-r8a77965", 847 + "renesas,rcar-gen3-xhci"; 1206 848 reg = <0 0xee000000 0 0xc00>; 849 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 850 + clocks = <&cpg CPG_MOD 328>; 851 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 852 + resets = <&cpg 328>; 853 + status = "disabled"; 854 + }; 855 + 856 + usb3_peri0: usb@ee020000 { 857 + compatible = "renesas,r8a77965-usb3-peri", 858 + "renesas,rcar-gen3-usb3-peri"; 859 + reg = <0 0xee020000 0 0x400>; 860 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 861 + clocks = <&cpg CPG_MOD 328>; 862 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 863 + resets = <&cpg 328>; 864 + status = "disabled"; 865 + }; 866 + 867 + ohci0: usb@ee080000 { 868 + compatible = "generic-ohci"; 869 + reg = <0 0xee080000 0 0x100>; 870 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 871 + clocks = <&cpg CPG_MOD 703>; 872 + phys = <&usb2_phy0>; 873 + phy-names = "usb"; 874 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 875 + resets = <&cpg 703>; 876 + status = "disabled"; 877 + }; 878 + 879 + ohci1: usb@ee0a0000 { 880 + compatible = "generic-ohci"; 881 + reg = <0 0xee0a0000 0 0x100>; 882 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 883 + clocks = <&cpg CPG_MOD 702>; 884 + phys = <&usb2_phy1>; 885 + phy-names = "usb"; 886 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 887 + resets = <&cpg 702>; 888 + status = "disabled"; 889 + }; 890 + 891 + ehci0: usb@ee080100 { 892 + compatible = "generic-ehci"; 893 + reg = <0 0xee080100 0 0x100>; 894 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 895 + clocks = <&cpg CPG_MOD 703>; 896 + phys = <&usb2_phy0>; 897 + phy-names = "usb"; 898 + companion = <&ohci0>; 899 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 900 + resets = <&cpg 703>; 901 + status = "disabled"; 902 + }; 903 + 904 + ehci1: usb@ee0a0100 { 905 + compatible = "generic-ehci"; 906 + reg = <0 0xee0a0100 0 0x100>; 907 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 908 + clocks = <&cpg CPG_MOD 702>; 909 + phys = <&usb2_phy1>; 910 + phy-names = "usb"; 911 + companion = <&ohci1>; 912 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 913 + resets = <&cpg 702>; 914 + status = "disabled"; 915 + }; 916 + 917 + usb2_phy0: usb-phy@ee080200 { 918 + compatible = "renesas,usb2-phy-r8a77965", 919 + "renesas,rcar-gen3-usb2-phy"; 920 + reg = <0 0xee080200 0 0x700>; 921 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 922 + clocks = <&cpg CPG_MOD 703>; 923 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 924 + resets = <&cpg 703>; 925 + #phy-cells = <0>; 926 + status = "disabled"; 927 + }; 928 + 929 + usb2_phy1: usb-phy@ee0a0200 { 930 + compatible = "renesas,usb2-phy-r8a77965", 931 + "renesas,rcar-gen3-usb2-phy"; 932 + reg = <0 0xee0a0200 0 0x700>; 933 + clocks = <&cpg CPG_MOD 703>; 934 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 935 + resets = <&cpg 703>; 936 + #phy-cells = <0>; 937 + status = "disabled"; 938 + }; 939 + 940 + sdhi0: sd@ee100000 { 941 + compatible = "renesas,sdhi-r8a77965", 942 + "renesas,rcar-gen3-sdhi"; 943 + reg = <0 0xee100000 0 0x2000>; 944 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 945 + clocks = <&cpg CPG_MOD 314>; 946 + max-frequency = <200000000>; 947 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 948 + resets = <&cpg 314>; 949 + status = "disabled"; 950 + }; 951 + 952 + sdhi1: sd@ee120000 { 953 + compatible = "renesas,sdhi-r8a77965", 954 + "renesas,rcar-gen3-sdhi"; 955 + reg = <0 0xee120000 0 0x2000>; 956 + interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 957 + clocks = <&cpg CPG_MOD 313>; 958 + max-frequency = <200000000>; 959 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 960 + resets = <&cpg 313>; 961 + status = "disabled"; 962 + }; 963 + 964 + sdhi2: sd@ee140000 { 965 + compatible = "renesas,sdhi-r8a77965", 966 + "renesas,rcar-gen3-sdhi"; 967 + reg = <0 0xee140000 0 0x2000>; 968 + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 969 + clocks = <&cpg CPG_MOD 312>; 970 + max-frequency = <200000000>; 971 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 972 + resets = <&cpg 312>; 973 + status = "disabled"; 974 + }; 975 + 976 + sdhi3: sd@ee160000 { 977 + compatible = "renesas,sdhi-r8a77965", 978 + "renesas,rcar-gen3-sdhi"; 979 + reg = <0 0xee160000 0 0x2000>; 980 + interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 981 + clocks = <&cpg CPG_MOD 311>; 982 + max-frequency = <200000000>; 983 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 984 + resets = <&cpg 311>; 985 + status = "disabled"; 986 + }; 987 + 988 + gic: interrupt-controller@f1010000 { 989 + compatible = "arm,gic-400"; 990 + #interrupt-cells = <3>; 991 + #address-cells = <0>; 992 + interrupt-controller; 993 + reg = <0x0 0xf1010000 0 0x1000>, 994 + <0x0 0xf1020000 0 0x20000>, 995 + <0x0 0xf1040000 0 0x20000>, 996 + <0x0 0xf1060000 0 0x20000>; 997 + interrupts = <GIC_PPI 9 998 + (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 999 + clocks = <&cpg CPG_MOD 408>; 1000 + clock-names = "clk"; 1001 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1002 + resets = <&cpg 408>; 1003 + }; 1004 + 1005 + pciec0: pcie@fe000000 { 1006 + reg = <0 0xfe000000 0 0x80000>; 1207 1007 /* placeholder */ 1208 1008 }; 1209 1009 1210 - wdt0: watchdog@e6020000 { 1211 - reg = <0 0xe6020000 0 0x0c>; 1010 + pciec1: pcie@ee800000 { 1011 + reg = <0 0xee800000 0 0x80000>; 1212 1012 /* placeholder */ 1213 1013 }; 1014 + 1015 + fcpf0: fcp@fe950000 { 1016 + compatible = "renesas,fcpf"; 1017 + reg = <0 0xfe950000 0 0x200>; 1018 + clocks = <&cpg CPG_MOD 615>; 1019 + power-domains = <&sysc R8A77965_PD_A3VP>; 1020 + resets = <&cpg 615>; 1021 + }; 1022 + 1023 + vspb: vsp@fe960000 { 1024 + compatible = "renesas,vsp2"; 1025 + reg = <0 0xfe960000 0 0x8000>; 1026 + interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 1027 + clocks = <&cpg CPG_MOD 626>; 1028 + power-domains = <&sysc R8A77965_PD_A3VP>; 1029 + resets = <&cpg 626>; 1030 + 1031 + renesas,fcp = <&fcpvb0>; 1032 + }; 1033 + 1034 + fcpvb0: fcp@fe96f000 { 1035 + compatible = "renesas,fcpv"; 1036 + reg = <0 0xfe96f000 0 0x200>; 1037 + clocks = <&cpg CPG_MOD 607>; 1038 + power-domains = <&sysc R8A77965_PD_A3VP>; 1039 + resets = <&cpg 607>; 1040 + }; 1041 + 1042 + vspi0: vsp@fe9a0000 { 1043 + compatible = "renesas,vsp2"; 1044 + reg = <0 0xfe9a0000 0 0x8000>; 1045 + interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; 1046 + clocks = <&cpg CPG_MOD 631>; 1047 + power-domains = <&sysc R8A77965_PD_A3VP>; 1048 + resets = <&cpg 631>; 1049 + 1050 + renesas,fcp = <&fcpvi0>; 1051 + }; 1052 + 1053 + fcpvi0: fcp@fe9af000 { 1054 + compatible = "renesas,fcpv"; 1055 + reg = <0 0xfe9af000 0 0x200>; 1056 + clocks = <&cpg CPG_MOD 611>; 1057 + power-domains = <&sysc R8A77965_PD_A3VP>; 1058 + resets = <&cpg 611>; 1059 + }; 1060 + 1061 + vspd0: vsp@fea20000 { 1062 + compatible = "renesas,vsp2"; 1063 + reg = <0 0xfea20000 0 0x8000>; 1064 + interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>; 1065 + clocks = <&cpg CPG_MOD 623>; 1066 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1067 + resets = <&cpg 623>; 1068 + 1069 + renesas,fcp = <&fcpvd0>; 1070 + }; 1071 + 1072 + fcpvd0: fcp@fea27000 { 1073 + compatible = "renesas,fcpv"; 1074 + reg = <0 0xfea27000 0 0x200>; 1075 + clocks = <&cpg CPG_MOD 603>; 1076 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1077 + resets = <&cpg 603>; 1078 + }; 1079 + 1080 + vspd1: vsp@fea28000 { 1081 + compatible = "renesas,vsp2"; 1082 + reg = <0 0xfea28000 0 0x8000>; 1083 + interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>; 1084 + clocks = <&cpg CPG_MOD 622>; 1085 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1086 + resets = <&cpg 622>; 1087 + 1088 + renesas,fcp = <&fcpvd1>; 1089 + }; 1090 + 1091 + fcpvd1: fcp@fea2f000 { 1092 + compatible = "renesas,fcpv"; 1093 + reg = <0 0xfea2f000 0 0x200>; 1094 + clocks = <&cpg CPG_MOD 602>; 1095 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1096 + resets = <&cpg 602>; 1097 + }; 1098 + 1099 + csi20: csi2@fea80000 { 1100 + compatible = "renesas,r8a77965-csi2"; 1101 + reg = <0 0xfea80000 0 0x10000>; 1102 + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1103 + clocks = <&cpg CPG_MOD 714>; 1104 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1105 + resets = <&cpg 714>; 1106 + status = "disabled"; 1107 + 1108 + ports { 1109 + #address-cells = <1>; 1110 + #size-cells = <0>; 1111 + 1112 + port@1 { 1113 + #address-cells = <1>; 1114 + #size-cells = <0>; 1115 + 1116 + reg = <1>; 1117 + 1118 + csi20vin0: endpoint@0 { 1119 + reg = <0>; 1120 + remote-endpoint = <&vin0csi20>; 1121 + }; 1122 + csi20vin1: endpoint@1 { 1123 + reg = <1>; 1124 + remote-endpoint = <&vin1csi20>; 1125 + }; 1126 + csi20vin2: endpoint@2 { 1127 + reg = <2>; 1128 + remote-endpoint = <&vin2csi20>; 1129 + }; 1130 + csi20vin3: endpoint@3 { 1131 + reg = <3>; 1132 + remote-endpoint = <&vin3csi20>; 1133 + }; 1134 + csi20vin4: endpoint@4 { 1135 + reg = <4>; 1136 + remote-endpoint = <&vin4csi20>; 1137 + }; 1138 + csi20vin5: endpoint@5 { 1139 + reg = <5>; 1140 + remote-endpoint = <&vin5csi20>; 1141 + }; 1142 + csi20vin6: endpoint@6 { 1143 + reg = <6>; 1144 + remote-endpoint = <&vin6csi20>; 1145 + }; 1146 + csi20vin7: endpoint@7 { 1147 + reg = <7>; 1148 + remote-endpoint = <&vin7csi20>; 1149 + }; 1150 + }; 1151 + }; 1152 + }; 1153 + 1154 + csi40: csi2@feaa0000 { 1155 + compatible = "renesas,r8a77965-csi2"; 1156 + reg = <0 0xfeaa0000 0 0x10000>; 1157 + interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 1158 + clocks = <&cpg CPG_MOD 716>; 1159 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1160 + resets = <&cpg 716>; 1161 + status = "disabled"; 1162 + 1163 + ports { 1164 + #address-cells = <1>; 1165 + #size-cells = <0>; 1166 + 1167 + port@1 { 1168 + #address-cells = <1>; 1169 + #size-cells = <0>; 1170 + 1171 + reg = <1>; 1172 + 1173 + csi40vin0: endpoint@0 { 1174 + reg = <0>; 1175 + remote-endpoint = <&vin0csi40>; 1176 + }; 1177 + csi40vin1: endpoint@1 { 1178 + reg = <1>; 1179 + remote-endpoint = <&vin1csi40>; 1180 + }; 1181 + csi40vin2: endpoint@2 { 1182 + reg = <2>; 1183 + remote-endpoint = <&vin2csi40>; 1184 + }; 1185 + csi40vin3: endpoint@3 { 1186 + reg = <3>; 1187 + remote-endpoint = <&vin3csi40>; 1188 + }; 1189 + csi40vin4: endpoint@4 { 1190 + reg = <4>; 1191 + remote-endpoint = <&vin4csi40>; 1192 + }; 1193 + csi40vin5: endpoint@5 { 1194 + reg = <5>; 1195 + remote-endpoint = <&vin5csi40>; 1196 + }; 1197 + csi40vin6: endpoint@6 { 1198 + reg = <6>; 1199 + remote-endpoint = <&vin6csi40>; 1200 + }; 1201 + csi40vin7: endpoint@7 { 1202 + reg = <7>; 1203 + remote-endpoint = <&vin7csi40>; 1204 + }; 1205 + }; 1206 + }; 1207 + }; 1208 + 1209 + hdmi0: hdmi@fead0000 { 1210 + compatible = "renesas,r8a77965-hdmi", 1211 + "renesas,rcar-gen3-hdmi"; 1212 + reg = <0 0xfead0000 0 0x10000>; 1213 + interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; 1214 + clocks = <&cpg CPG_MOD 729>, 1215 + <&cpg CPG_CORE R8A77965_CLK_HDMI>; 1216 + clock-names = "iahb", "isfr"; 1217 + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1218 + resets = <&cpg 729>; 1219 + status = "disabled"; 1220 + 1221 + ports { 1222 + #address-cells = <1>; 1223 + #size-cells = <0>; 1224 + port@0 { 1225 + reg = <0>; 1226 + dw_hdmi0_in: endpoint { 1227 + remote-endpoint = <&du_out_hdmi0>; 1228 + }; 1229 + }; 1230 + port@1 { 1231 + reg = <1>; 1232 + }; 1233 + }; 1234 + }; 1235 + 1236 + du: display@feb00000 { 1237 + compatible = "renesas,du-r8a77965"; 1238 + reg = <0 0xfeb00000 0 0x80000>; 1239 + reg-names = "du"; 1240 + interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1241 + <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 1242 + <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>; 1243 + clocks = <&cpg CPG_MOD 724>, 1244 + <&cpg CPG_MOD 723>, 1245 + <&cpg CPG_MOD 721>; 1246 + clock-names = "du.0", "du.1", "du.3"; 1247 + status = "disabled"; 1248 + 1249 + vsps = <&vspd0 0 &vspd1 0 &vspd0 1>; 1250 + 1251 + ports { 1252 + #address-cells = <1>; 1253 + #size-cells = <0>; 1254 + 1255 + port@0 { 1256 + reg = <0>; 1257 + du_out_rgb: endpoint { 1258 + }; 1259 + }; 1260 + port@1 { 1261 + reg = <1>; 1262 + du_out_hdmi0: endpoint { 1263 + remote-endpoint = <&dw_hdmi0_in>; 1264 + }; 1265 + }; 1266 + port@2 { 1267 + reg = <2>; 1268 + du_out_lvds0: endpoint { 1269 + }; 1270 + }; 1271 + }; 1272 + }; 1273 + 1274 + prr: chipid@fff00044 { 1275 + compatible = "renesas,prr"; 1276 + reg = <0 0xfff00044 0 4>; 1277 + }; 1278 + }; 1279 + 1280 + timer { 1281 + compatible = "arm,armv8-timer"; 1282 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 1283 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 1284 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 1285 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 1286 + }; 1287 + 1288 + thermal-zones { 1289 + sensor_thermal1: sensor-thermal1 { 1290 + polling-delay-passive = <250>; 1291 + polling-delay = <1000>; 1292 + thermal-sensors = <&tsc 0>; 1293 + 1294 + trips { 1295 + sensor1_crit: sensor1-crit { 1296 + temperature = <120000>; 1297 + hysteresis = <1000>; 1298 + type = "critical"; 1299 + }; 1300 + }; 1301 + }; 1302 + 1303 + sensor_thermal2: sensor-thermal2 { 1304 + polling-delay-passive = <250>; 1305 + polling-delay = <1000>; 1306 + thermal-sensors = <&tsc 1>; 1307 + 1308 + trips { 1309 + sensor2_crit: sensor2-crit { 1310 + temperature = <120000>; 1311 + hysteresis = <1000>; 1312 + type = "critical"; 1313 + }; 1314 + }; 1315 + }; 1316 + 1317 + sensor_thermal3: sensor-thermal3 { 1318 + polling-delay-passive = <250>; 1319 + polling-delay = <1000>; 1320 + thermal-sensors = <&tsc 2>; 1321 + 1322 + trips { 1323 + sensor3_crit: sensor3-crit { 1324 + temperature = <120000>; 1325 + hysteresis = <1000>; 1326 + type = "critical"; 1327 + }; 1328 + }; 1329 + }; 1330 + }; 1331 + 1332 + /* External USB clocks - can be overridden by the board */ 1333 + usb3s0_clk: usb3s0 { 1334 + compatible = "fixed-clock"; 1335 + #clock-cells = <0>; 1336 + clock-frequency = <0>; 1337 + }; 1338 + 1339 + usb_extal_clk: usb_extal { 1340 + compatible = "fixed-clock"; 1341 + #clock-cells = <0>; 1342 + clock-frequency = <0>; 1214 1343 }; 1215 1344 };
+116
arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
··· 31 31 /* first 128MB is reserved for secure area. */ 32 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 81 &avb { 82 + pinctrl-0 = <&avb_pins>; 83 + pinctrl-names = "default"; 84 + 37 85 renesas,no-ether-link; 38 86 phy-handle = <&phy0>; 39 87 phy-mode = "rgmii-id"; ··· 92 44 reg = <0>; 93 45 interrupt-parent = <&gpio1>; 94 46 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 47 + }; 48 + }; 49 + 50 + &canfd { 51 + pinctrl-0 = <&canfd0_pins>; 52 + pinctrl-names = "default"; 53 + status = "okay"; 54 + 55 + channel0 { 56 + status = "okay"; 95 57 }; 96 58 }; 97 59 ··· 126 68 gpio-controller; 127 69 #gpio-cells = <2>; 128 70 }; 71 + 72 + hdmi@39 { 73 + compatible = "adi,adv7511w"; 74 + reg = <0x39>; 75 + interrupt-parent = <&gpio1>; 76 + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; 77 + 78 + adi,input-depth = <8>; 79 + adi,input-colorspace = "rgb"; 80 + adi,input-clock = "1x"; 81 + adi,input-style = <1>; 82 + adi,input-justification = "evenly"; 83 + 84 + ports { 85 + #address-cells = <1>; 86 + #size-cells = <0>; 87 + 88 + port@0 { 89 + reg = <0>; 90 + adv7511_in: endpoint { 91 + remote-endpoint = <&thc63lvd1024_out>; 92 + }; 93 + }; 94 + 95 + port@1 { 96 + reg = <1>; 97 + adv7511_out: endpoint { 98 + remote-endpoint = <&hdmi_con_out>; 99 + }; 100 + }; 101 + }; 102 + }; 129 103 }; 130 104 131 105 &pfc { 106 + avb_pins: avb0 { 107 + groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk"; 108 + function = "avb0"; 109 + }; 110 + 111 + canfd0_pins: canfd0 { 112 + groups = "canfd0_data_a"; 113 + function = "canfd0"; 114 + }; 115 + 132 116 i2c0_pins: i2c0 { 133 117 groups = "i2c0"; 134 118 function = "i2c0"; ··· 192 92 pinctrl-names = "default"; 193 93 194 94 status = "okay"; 95 + }; 96 + 97 + &du { 98 + status = "okay"; 99 + }; 100 + 101 + &lvds0 { 102 + status = "okay"; 103 + 104 + ports { 105 + port@1 { 106 + lvds0_out: endpoint { 107 + remote-endpoint = <&thc63lvd1024_in>; 108 + }; 109 + }; 110 + }; 195 111 };
+137
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
··· 29 29 /* first 128MB is reserved for secure area. */ 30 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 93 &avb { 94 + pinctrl-0 = <&avb_pins>; 95 + pinctrl-names = "default"; 96 + 35 97 renesas,no-ether-link; 36 98 phy-handle = <&phy0>; 37 99 phy-mode = "rgmii-id"; ··· 105 43 }; 106 44 }; 107 45 46 + &du { 47 + clocks = <&cpg CPG_MOD 724>, 48 + <&osc5_clk>; 49 + clock-names = "du.0", "dclkin.0"; 50 + status = "okay"; 51 + }; 52 + 108 53 &extal_clk { 109 54 clock-frequency = <16666666>; 110 55 }; ··· 121 52 }; 122 53 123 54 &pfc { 55 + avb_pins: avb0 { 56 + groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk"; 57 + function = "avb0"; 58 + }; 59 + 60 + i2c0_pins: i2c0 { 61 + groups = "i2c0"; 62 + function = "i2c0"; 63 + }; 64 + 124 65 scif0_pins: scif0 { 125 66 groups = "scif0_data"; 126 67 function = "scif0"; 68 + }; 69 + }; 70 + 71 + &i2c0 { 72 + pinctrl-0 = <&i2c0_pins>; 73 + pinctrl-names = "default"; 74 + 75 + status = "okay"; 76 + clock-frequency = <400000>; 77 + 78 + hdmi@39{ 79 + compatible = "adi,adv7511w"; 80 + #sound-dai-cells = <0>; 81 + reg = <0x39>; 82 + interrupt-parent = <&gpio1>; 83 + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; 84 + avdd-supply = <&vcc_d1_8v>; 85 + dvdd-supply = <&vcc_d1_8v>; 86 + pvdd-supply = <&vcc_d1_8v>; 87 + bgvdd-supply = <&vcc_d1_8v>; 88 + dvdd-3v-supply = <&vcc_d3_3v>; 89 + 90 + adi,input-depth = <8>; 91 + adi,input-colorspace = "rgb"; 92 + adi,input-clock = "1x"; 93 + adi,input-style = <1>; 94 + adi,input-justification = "evenly"; 95 + 96 + ports { 97 + #address-cells = <1>; 98 + #size-cells = <0>; 99 + 100 + port@0 { 101 + reg = <0>; 102 + adv7511_in: endpoint { 103 + remote-endpoint = <&thc63lvd1024_out>; 104 + }; 105 + }; 106 + 107 + port@1 { 108 + reg = <1>; 109 + adv7511_out: endpoint { 110 + remote-endpoint = <&hdmi_con>; 111 + }; 112 + }; 113 + }; 114 + }; 115 + }; 116 + 117 + &lvds0 { 118 + status = "okay"; 119 + 120 + ports { 121 + port@1 { 122 + lvds0_out: endpoint { 123 + remote-endpoint = <&thc63lvd1024_in>; 124 + }; 125 + }; 127 126 }; 128 127 }; 129 128
+468 -193
arch/arm64/boot/dts/renesas/r8a77970.dtsi
··· 41 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 54 L2_CA53: cache-controller { 45 55 compatible = "cache"; 46 56 power-domains = <&sysc R8A77970_PD_CA53_SCU>; ··· 73 63 clock-frequency = <0>; 74 64 }; 75 65 66 + pmu_a53 { 67 + compatible = "arm,cortex-a53-pmu"; 68 + interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, 69 + <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 70 + interrupt-affinity = <&a53_0>, <&a53_1>; 71 + }; 72 + 76 73 psci { 77 74 compatible = "arm,psci-1.0", "arm,psci-0.2"; 78 75 method = "smc"; 76 + }; 77 + 78 + /* External CAN clock - to be overridden by boards that provide it */ 79 + can_clk: can { 80 + compatible = "fixed-clock"; 81 + #clock-cells = <0>; 82 + clock-frequency = <0>; 79 83 }; 80 84 81 85 /* External SCIF clock - to be overridden by boards that provide it */ ··· 107 83 #size-cells = <2>; 108 84 ranges; 109 85 110 - gic: interrupt-controller@f1010000 { 111 - compatible = "arm,gic-400"; 112 - #interrupt-cells = <3>; 113 - #address-cells = <0>; 114 - interrupt-controller; 115 - reg = <0 0xf1010000 0 0x1000>, 116 - <0 0xf1020000 0 0x20000>, 117 - <0 0xf1040000 0 0x20000>, 118 - <0 0xf1060000 0 0x20000>; 119 - interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | 120 - IRQ_TYPE_LEVEL_HIGH)>; 121 - clocks = <&cpg CPG_MOD 408>; 122 - clock-names = "clk"; 123 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 124 - resets = <&cpg 408>; 125 - }; 126 - 127 86 rwdt: watchdog@e6020000 { 128 87 compatible = "renesas,r8a77970-wdt", 129 88 "renesas,rcar-gen3-wdt"; ··· 115 108 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 116 109 resets = <&cpg 402>; 117 110 status = "disabled"; 118 - }; 119 - 120 - cpg: clock-controller@e6150000 { 121 - compatible = "renesas,r8a77970-cpg-mssr"; 122 - reg = <0 0xe6150000 0 0x1000>; 123 - clocks = <&extal_clk>, <&extalr_clk>; 124 - clock-names = "extal", "extalr"; 125 - #clock-cells = <2>; 126 - #power-domain-cells = <0>; 127 - #reset-cells = <1>; 128 - }; 129 - 130 - rst: reset-controller@e6160000 { 131 - compatible = "renesas,r8a77970-rst"; 132 - reg = <0 0xe6160000 0 0x200>; 133 - }; 134 - 135 - sysc: system-controller@e6180000 { 136 - compatible = "renesas,r8a77970-sysc"; 137 - reg = <0 0xe6180000 0 0x440>; 138 - #power-domain-cells = <1>; 139 - }; 140 - 141 - ipmmu_vi0: mmu@febd0000 { 142 - compatible = "renesas,ipmmu-r8a77970"; 143 - reg = <0 0xfebd0000 0 0x1000>; 144 - renesas,ipmmu-main = <&ipmmu_mm 9>; 145 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 146 - #iommu-cells = <1>; 147 - status = "disabled"; 148 - }; 149 - 150 - ipmmu_ir: mmu@ff8b0000 { 151 - compatible = "renesas,ipmmu-r8a77970"; 152 - reg = <0 0xff8b0000 0 0x1000>; 153 - renesas,ipmmu-main = <&ipmmu_mm 3>; 154 - power-domains = <&sysc R8A77970_PD_A3IR>; 155 - #iommu-cells = <1>; 156 - status = "disabled"; 157 - }; 158 - 159 - ipmmu_rt: mmu@ffc80000 { 160 - compatible = "renesas,ipmmu-r8a77970"; 161 - reg = <0 0xffc80000 0 0x1000>; 162 - renesas,ipmmu-main = <&ipmmu_mm 7>; 163 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 164 - #iommu-cells = <1>; 165 - }; 166 - 167 - ipmmu_ds1: mmu@e7740000 { 168 - compatible = "renesas,ipmmu-r8a77970"; 169 - reg = <0 0xe7740000 0 0x1000>; 170 - renesas,ipmmu-main = <&ipmmu_mm 1>; 171 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 172 - #iommu-cells = <1>; 173 - }; 174 - 175 - ipmmu_mm: mmu@e67b0000 { 176 - compatible = "renesas,ipmmu-r8a77970"; 177 - reg = <0 0xe67b0000 0 0x1000>; 178 - interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 179 - <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 180 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 181 - #iommu-cells = <1>; 182 - }; 183 - 184 - pfc: pin-controller@e6060000 { 185 - compatible = "renesas,pfc-r8a77970"; 186 - reg = <0 0xe6060000 0 0x504>; 187 111 }; 188 112 189 113 gpio0: gpio@e6050000 { ··· 207 269 resets = <&cpg 907>; 208 270 }; 209 271 272 + pfc: pin-controller@e6060000 { 273 + compatible = "renesas,pfc-r8a77970"; 274 + reg = <0 0xe6060000 0 0x504>; 275 + }; 276 + 277 + cpg: clock-controller@e6150000 { 278 + compatible = "renesas,r8a77970-cpg-mssr"; 279 + reg = <0 0xe6150000 0 0x1000>; 280 + clocks = <&extal_clk>, <&extalr_clk>; 281 + clock-names = "extal", "extalr"; 282 + #clock-cells = <2>; 283 + #power-domain-cells = <0>; 284 + #reset-cells = <1>; 285 + }; 286 + 287 + rst: reset-controller@e6160000 { 288 + compatible = "renesas,r8a77970-rst"; 289 + reg = <0 0xe6160000 0 0x200>; 290 + }; 291 + 292 + sysc: system-controller@e6180000 { 293 + compatible = "renesas,r8a77970-sysc"; 294 + reg = <0 0xe6180000 0 0x440>; 295 + #power-domain-cells = <1>; 296 + }; 297 + 210 298 intc_ex: interrupt-controller@e61c0000 { 211 299 compatible = "renesas,intc-ex-r8a77970", "renesas,irqc"; 212 300 #interrupt-cells = <2>; ··· 247 283 clocks = <&cpg CPG_MOD 407>; 248 284 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 249 285 resets = <&cpg 407>; 250 - }; 251 - 252 - prr: chipid@fff00044 { 253 - compatible = "renesas,prr"; 254 - reg = <0 0xfff00044 0 4>; 255 - }; 256 - 257 - dmac1: dma-controller@e7300000 { 258 - compatible = "renesas,dmac-r8a77970", 259 - "renesas,rcar-dmac"; 260 - reg = <0 0xe7300000 0 0x10000>; 261 - interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 262 - GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 263 - GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 264 - GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 265 - GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 266 - GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 267 - GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 268 - GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 269 - GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 270 - interrupt-names = "error", 271 - "ch0", "ch1", "ch2", "ch3", 272 - "ch4", "ch5", "ch6", "ch7"; 273 - clocks = <&cpg CPG_MOD 218>; 274 - clock-names = "fck"; 275 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 276 - resets = <&cpg 218>; 277 - #dma-cells = <1>; 278 - dma-channels = <8>; 279 - iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, 280 - <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, 281 - <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, 282 - <&ipmmu_ds1 6>, <&ipmmu_ds1 7>; 283 - }; 284 - 285 - dmac2: dma-controller@e7310000 { 286 - compatible = "renesas,dmac-r8a77970", 287 - "renesas,rcar-dmac"; 288 - reg = <0 0xe7310000 0 0x10000>; 289 - interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH 290 - GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 291 - GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 292 - GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 293 - GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 294 - GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 295 - GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 296 - GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 297 - GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; 298 - interrupt-names = "error", 299 - "ch0", "ch1", "ch2", "ch3", 300 - "ch4", "ch5", "ch6", "ch7"; 301 - clocks = <&cpg CPG_MOD 217>; 302 - clock-names = "fck"; 303 - power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 304 - resets = <&cpg 217>; 305 - #dma-cells = <1>; 306 - dma-channels = <8>; 307 - iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, 308 - <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, 309 - <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, 310 - <&ipmmu_ds1 22>, <&ipmmu_ds1 23>; 311 286 }; 312 287 313 288 i2c0: i2c@e6500000 { ··· 405 502 status = "disabled"; 406 503 }; 407 504 505 + canfd: can@e66c0000 { 506 + compatible = "renesas,r8a77970-canfd", 507 + "renesas,rcar-gen3-canfd"; 508 + reg = <0 0xe66c0000 0 0x8000>; 509 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 510 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 511 + clocks = <&cpg CPG_MOD 914>, 512 + <&cpg CPG_CORE R8A77970_CLK_CANFD>, 513 + <&can_clk>; 514 + clock-names = "fck", "canfd", "can_clk"; 515 + assigned-clocks = <&cpg CPG_CORE R8A77970_CLK_CANFD>; 516 + assigned-clock-rates = <40000000>; 517 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 518 + resets = <&cpg 914>; 519 + status = "disabled"; 520 + 521 + channel0 { 522 + status = "disabled"; 523 + }; 524 + 525 + channel1 { 526 + status = "disabled"; 527 + }; 528 + }; 529 + 530 + avb: ethernet@e6800000 { 531 + compatible = "renesas,etheravb-r8a77970", 532 + "renesas,etheravb-rcar-gen3"; 533 + reg = <0 0xe6800000 0 0x800>; 534 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 535 + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 536 + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 537 + <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 538 + <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 539 + <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 540 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 541 + <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 542 + <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 543 + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 544 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 545 + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 546 + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 547 + <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 548 + <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 549 + <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 550 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 551 + <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 552 + <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 553 + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 554 + <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 555 + <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 556 + <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 557 + <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 558 + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 559 + interrupt-names = "ch0", "ch1", "ch2", "ch3", 560 + "ch4", "ch5", "ch6", "ch7", 561 + "ch8", "ch9", "ch10", "ch11", 562 + "ch12", "ch13", "ch14", "ch15", 563 + "ch16", "ch17", "ch18", "ch19", 564 + "ch20", "ch21", "ch22", "ch23", 565 + "ch24"; 566 + clocks = <&cpg CPG_MOD 812>; 567 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 568 + resets = <&cpg 812>; 569 + phy-mode = "rgmii"; 570 + iommus = <&ipmmu_rt 3>; 571 + #address-cells = <1>; 572 + #size-cells = <0>; 573 + status = "disabled"; 574 + }; 575 + 408 576 scif0: serial@e6e60000 { 409 577 compatible = "renesas,scif-r8a77970", 410 578 "renesas,rcar-gen3-scif", ··· 547 573 status = "disabled"; 548 574 }; 549 575 550 - avb: ethernet@e6800000 { 551 - compatible = "renesas,etheravb-r8a77970", 552 - "renesas,etheravb-rcar-gen3"; 553 - reg = <0 0xe6800000 0 0x800>; 554 - interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 555 - <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 556 - <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 557 - <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 558 - <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 559 - <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 560 - <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 561 - <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 562 - <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 563 - <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 564 - <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 565 - <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 566 - <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 567 - <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 568 - <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 569 - <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 570 - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 571 - <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 572 - <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 573 - <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 574 - <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 575 - <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 576 - <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 577 - <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 578 - <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 579 - interrupt-names = "ch0", "ch1", "ch2", "ch3", 580 - "ch4", "ch5", "ch6", "ch7", 581 - "ch8", "ch9", "ch10", "ch11", 582 - "ch12", "ch13", "ch14", "ch15", 583 - "ch16", "ch17", "ch18", "ch19", 584 - "ch20", "ch21", "ch22", "ch23", 585 - "ch24"; 586 - clocks = <&cpg CPG_MOD 812>; 576 + 577 + vin0: video@e6ef0000 { 578 + compatible = "renesas,vin-r8a77970"; 579 + reg = <0 0xe6ef0000 0 0x1000>; 580 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 581 + clocks = <&cpg CPG_MOD 811>; 587 582 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 588 - resets = <&cpg 812>; 589 - phy-mode = "rgmii"; 590 - iommus = <&ipmmu_rt 3>; 591 - #address-cells = <1>; 592 - #size-cells = <0>; 583 + resets = <&cpg 811>; 584 + renesas,id = <0>; 585 + status = "disabled"; 586 + 587 + ports { 588 + #address-cells = <1>; 589 + #size-cells = <0>; 590 + 591 + port@1 { 592 + #address-cells = <1>; 593 + #size-cells = <0>; 594 + 595 + reg = <1>; 596 + 597 + vin0csi40: endpoint@2 { 598 + reg = <2>; 599 + remote-endpoint= <&csi40vin0>; 600 + }; 601 + }; 602 + }; 603 + }; 604 + 605 + vin1: video@e6ef1000 { 606 + compatible = "renesas,vin-r8a77970"; 607 + reg = <0 0xe6ef1000 0 0x1000>; 608 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 609 + clocks = <&cpg CPG_MOD 810>; 610 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 611 + resets = <&cpg 810>; 612 + renesas,id = <1>; 613 + status = "disabled"; 614 + 615 + ports { 616 + #address-cells = <1>; 617 + #size-cells = <0>; 618 + 619 + port@1 { 620 + #address-cells = <1>; 621 + #size-cells = <0>; 622 + 623 + reg = <1>; 624 + 625 + vin1csi40: endpoint@2 { 626 + reg = <2>; 627 + remote-endpoint= <&csi40vin1>; 628 + }; 629 + }; 630 + }; 631 + }; 632 + 633 + vin2: video@e6ef2000 { 634 + compatible = "renesas,vin-r8a77970"; 635 + reg = <0 0xe6ef2000 0 0x1000>; 636 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 637 + clocks = <&cpg CPG_MOD 809>; 638 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 639 + resets = <&cpg 809>; 640 + renesas,id = <2>; 641 + status = "disabled"; 642 + 643 + ports { 644 + #address-cells = <1>; 645 + #size-cells = <0>; 646 + 647 + port@1 { 648 + #address-cells = <1>; 649 + #size-cells = <0>; 650 + 651 + reg = <1>; 652 + 653 + vin2csi40: endpoint@2 { 654 + reg = <2>; 655 + remote-endpoint= <&csi40vin2>; 656 + }; 657 + }; 658 + }; 659 + }; 660 + 661 + vin3: video@e6ef3000 { 662 + compatible = "renesas,vin-r8a77970"; 663 + reg = <0 0xe6ef3000 0 0x1000>; 664 + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 665 + clocks = <&cpg CPG_MOD 808>; 666 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 667 + resets = <&cpg 808>; 668 + renesas,id = <3>; 669 + status = "disabled"; 670 + 671 + ports { 672 + #address-cells = <1>; 673 + #size-cells = <0>; 674 + 675 + port@1 { 676 + #address-cells = <1>; 677 + #size-cells = <0>; 678 + 679 + reg = <1>; 680 + 681 + vin3csi40: endpoint@2 { 682 + reg = <2>; 683 + remote-endpoint= <&csi40vin3>; 684 + }; 685 + }; 686 + }; 687 + }; 688 + 689 + dmac1: dma-controller@e7300000 { 690 + compatible = "renesas,dmac-r8a77970", 691 + "renesas,rcar-dmac"; 692 + reg = <0 0xe7300000 0 0x10000>; 693 + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 694 + GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 695 + GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 696 + GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 697 + GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 698 + GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 699 + GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 700 + GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 701 + GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 702 + interrupt-names = "error", 703 + "ch0", "ch1", "ch2", "ch3", 704 + "ch4", "ch5", "ch6", "ch7"; 705 + clocks = <&cpg CPG_MOD 218>; 706 + clock-names = "fck"; 707 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 708 + resets = <&cpg 218>; 709 + #dma-cells = <1>; 710 + dma-channels = <8>; 711 + iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, 712 + <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, 713 + <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, 714 + <&ipmmu_ds1 6>, <&ipmmu_ds1 7>; 715 + }; 716 + 717 + dmac2: dma-controller@e7310000 { 718 + compatible = "renesas,dmac-r8a77970", 719 + "renesas,rcar-dmac"; 720 + reg = <0 0xe7310000 0 0x10000>; 721 + interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH 722 + GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 723 + GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 724 + GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 725 + GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 726 + GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 727 + GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 728 + GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 729 + GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; 730 + interrupt-names = "error", 731 + "ch0", "ch1", "ch2", "ch3", 732 + "ch4", "ch5", "ch6", "ch7"; 733 + clocks = <&cpg CPG_MOD 217>; 734 + clock-names = "fck"; 735 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 736 + resets = <&cpg 217>; 737 + #dma-cells = <1>; 738 + dma-channels = <8>; 739 + iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, 740 + <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, 741 + <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, 742 + <&ipmmu_ds1 22>, <&ipmmu_ds1 23>; 743 + }; 744 + 745 + ipmmu_ds1: mmu@e7740000 { 746 + compatible = "renesas,ipmmu-r8a77970"; 747 + reg = <0 0xe7740000 0 0x1000>; 748 + renesas,ipmmu-main = <&ipmmu_mm 0>; 749 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 750 + #iommu-cells = <1>; 751 + }; 752 + 753 + ipmmu_ir: mmu@ff8b0000 { 754 + compatible = "renesas,ipmmu-r8a77970"; 755 + reg = <0 0xff8b0000 0 0x1000>; 756 + renesas,ipmmu-main = <&ipmmu_mm 3>; 757 + power-domains = <&sysc R8A77970_PD_A3IR>; 758 + #iommu-cells = <1>; 759 + }; 760 + 761 + ipmmu_mm: mmu@e67b0000 { 762 + compatible = "renesas,ipmmu-r8a77970"; 763 + reg = <0 0xe67b0000 0 0x1000>; 764 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 765 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 766 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 767 + #iommu-cells = <1>; 768 + }; 769 + 770 + ipmmu_rt: mmu@ffc80000 { 771 + compatible = "renesas,ipmmu-r8a77970"; 772 + reg = <0 0xffc80000 0 0x1000>; 773 + renesas,ipmmu-main = <&ipmmu_mm 7>; 774 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 775 + #iommu-cells = <1>; 776 + }; 777 + 778 + ipmmu_vi0: mmu@febd0000 { 779 + compatible = "renesas,ipmmu-r8a77970"; 780 + reg = <0 0xfebd0000 0 0x1000>; 781 + renesas,ipmmu-main = <&ipmmu_mm 9>; 782 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 783 + #iommu-cells = <1>; 784 + }; 785 + 786 + gic: interrupt-controller@f1010000 { 787 + compatible = "arm,gic-400"; 788 + #interrupt-cells = <3>; 789 + #address-cells = <0>; 790 + interrupt-controller; 791 + reg = <0 0xf1010000 0 0x1000>, 792 + <0 0xf1020000 0 0x20000>, 793 + <0 0xf1040000 0 0x20000>, 794 + <0 0xf1060000 0 0x20000>; 795 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 796 + IRQ_TYPE_LEVEL_HIGH)>; 797 + clocks = <&cpg CPG_MOD 408>; 798 + clock-names = "clk"; 799 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 800 + resets = <&cpg 408>; 801 + }; 802 + 803 + vspd0: vsp@fea20000 { 804 + compatible = "renesas,vsp2"; 805 + reg = <0 0xfea20000 0 0x8000>; 806 + interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 807 + clocks = <&cpg CPG_MOD 623>; 808 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 809 + resets = <&cpg 623>; 810 + renesas,fcp = <&fcpvd0>; 811 + }; 812 + 813 + fcpvd0: fcp@fea27000 { 814 + compatible = "renesas,fcpv"; 815 + reg = <0 0xfea27000 0 0x200>; 816 + clocks = <&cpg CPG_MOD 603>; 817 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 818 + resets = <&cpg 603>; 819 + }; 820 + 821 + csi40: csi2@feaa0000 { 822 + compatible = "renesas,r8a77970-csi2"; 823 + reg = <0 0xfeaa0000 0 0x10000>; 824 + interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 825 + clocks = <&cpg CPG_MOD 716>; 826 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 827 + resets = <&cpg 716>; 828 + status = "disabled"; 829 + 830 + ports { 831 + #address-cells = <1>; 832 + #size-cells = <0>; 833 + 834 + port@1 { 835 + #address-cells = <1>; 836 + #size-cells = <0>; 837 + 838 + reg = <1>; 839 + 840 + csi40vin0: endpoint@0 { 841 + reg = <0>; 842 + remote-endpoint = <&vin0csi40>; 843 + }; 844 + csi40vin1: endpoint@1 { 845 + reg = <1>; 846 + remote-endpoint = <&vin1csi40>; 847 + }; 848 + csi40vin2: endpoint@2 { 849 + reg = <2>; 850 + remote-endpoint = <&vin2csi40>; 851 + }; 852 + csi40vin3: endpoint@3 { 853 + reg = <3>; 854 + remote-endpoint = <&vin3csi40>; 855 + }; 856 + }; 857 + }; 858 + }; 859 + 860 + du: display@feb00000 { 861 + compatible = "renesas,du-r8a77970"; 862 + reg = <0 0xfeb00000 0 0x80000>; 863 + interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; 864 + clocks = <&cpg CPG_MOD 724>; 865 + clock-names = "du.0"; 866 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 867 + resets = <&cpg 724>; 868 + vsps = <&vspd0>; 869 + status = "disabled"; 870 + 871 + ports { 872 + #address-cells = <1>; 873 + #size-cells = <0>; 874 + 875 + port@0 { 876 + reg = <0>; 877 + du_out_rgb: endpoint { 878 + }; 879 + }; 880 + 881 + port@1 { 882 + reg = <1>; 883 + du_out_lvds0: endpoint { 884 + remote-endpoint = <&lvds0_in>; 885 + }; 886 + }; 887 + }; 888 + }; 889 + 890 + lvds0: lvds-encoder@feb90000 { 891 + compatible = "renesas,r8a77970-lvds"; 892 + reg = <0 0xfeb90000 0 0x14>; 893 + clocks = <&cpg CPG_MOD 727>; 894 + power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; 895 + resets = <&cpg 727>; 896 + status = "disabled"; 897 + 898 + ports { 899 + #address-cells = <1>; 900 + #size-cells = <0>; 901 + 902 + port@0 { 903 + reg = <0>; 904 + lvds0_in: endpoint { 905 + remote-endpoint = 906 + <&du_out_lvds0>; 907 + }; 908 + }; 909 + port@1 { 910 + reg = <1>; 911 + lvds0_out: endpoint { 912 + }; 913 + }; 914 + }; 915 + }; 916 + 917 + prr: chipid@fff00044 { 918 + compatible = "renesas,prr"; 919 + reg = <0 0xfff00044 0 4>; 593 920 }; 594 921 }; 595 922 596 923 timer { 597 924 compatible = "arm,armv8-timer"; 598 - interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 599 - <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 600 - <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, 601 - <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; 925 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 926 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 927 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 928 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 602 929 }; 603 930 };
+81
arch/arm64/boot/dts/renesas/r8a77980-condor.dts
··· 27 27 /* first 128MB is reserved for secure area. */ 28 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 50 &avb { 51 + pinctrl-0 = <&avb_pins>; 52 + pinctrl-names = "default"; 53 + 33 54 phy-mode = "rgmii-id"; 34 55 phy-handle = <&phy0>; 35 56 renesas,no-ether-link; ··· 62 41 }; 63 42 }; 64 43 44 + &canfd { 45 + pinctrl-0 = <&canfd0_pins>; 46 + pinctrl-names = "default"; 47 + status = "okay"; 48 + 49 + channel0 { 50 + status = "okay"; 51 + }; 52 + }; 53 + 65 54 &extal_clk { 66 55 clock-frequency = <16666666>; 67 56 }; ··· 80 49 clock-frequency = <32768>; 81 50 }; 82 51 52 + &mmc0 { 53 + pinctrl-0 = <&mmc_pins>; 54 + pinctrl-1 = <&mmc_pins_uhs>; 55 + pinctrl-names = "default", "state_uhs"; 56 + 57 + vmmc-supply = <&d3_3v>; 58 + vqmmc-supply = <&vddq_vin01>; 59 + mmc-hs200-1_8v; 60 + bus-width = <8>; 61 + non-removable; 62 + status = "okay"; 63 + }; 64 + 65 + &pfc { 66 + avb_pins: avb { 67 + groups = "avb_mdio", "avb_rgmii"; 68 + function = "avb"; 69 + }; 70 + 71 + canfd0_pins: canfd0 { 72 + groups = "canfd0_data_a"; 73 + function = "canfd0"; 74 + }; 75 + 76 + mmc_pins: mmc { 77 + groups = "mmc_data8", "mmc_ctrl", "mmc_ds"; 78 + function = "mmc"; 79 + power-source = <3300>; 80 + }; 81 + 82 + mmc_pins_uhs: mmc_uhs { 83 + groups = "mmc_data8", "mmc_ctrl", "mmc_ds"; 84 + function = "mmc"; 85 + power-source = <1800>; 86 + }; 87 + 88 + scif0_pins: scif0 { 89 + groups = "scif0_data"; 90 + function = "scif0"; 91 + }; 92 + 93 + scif_clk_pins: scif_clk { 94 + groups = "scif_clk_b"; 95 + function = "scif_clk"; 96 + }; 97 + }; 98 + 83 99 &scif0 { 100 + pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>; 101 + pinctrl-names = "default"; 102 + 84 103 status = "okay"; 85 104 }; 86 105
+60
arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts
··· 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 + };
+75 -24
arch/arm64/boot/dts/renesas/r8a77980.dtsi
··· 6 6 * Copyright (C) 2018 Cogent Embedded, Inc. 7 7 */ 8 8 9 + #include <dt-bindings/clock/r8a77980-cpg-mssr.h> 9 10 #include <dt-bindings/interrupt-controller/irq.h> 10 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 15 compatible = "renesas,r8a77980"; ··· 24 23 device_type = "cpu"; 25 24 compatible = "arm,cortex-a53", "arm,armv8"; 26 25 reg = <0>; 27 - clocks = <&cpg CPG_CORE 0>; 28 - power-domains = <&sysc 5>; 26 + clocks = <&cpg CPG_CORE R8A77980_CLK_Z2>; 27 + power-domains = <&sysc R8A77980_PD_CA53_CPU0>; 29 28 next-level-cache = <&L2_CA53>; 30 29 enable-method = "psci"; 31 30 }; 32 31 33 32 L2_CA53: cache-controller { 34 33 compatible = "cache"; 35 - power-domains = <&sysc 21>; 34 + power-domains = <&sysc R8A77980_PD_CA53_SCU>; 36 35 cache-unified; 37 36 cache-level = <2>; 38 37 }; 38 + }; 39 + 40 + /* External CAN clock - to be overridden by boards that provide it */ 41 + can_clk: can { 42 + compatible = "fixed-clock"; 43 + #clock-cells = <0>; 44 + clock-frequency = <0>; 39 45 }; 40 46 41 47 extal_clk: extal { ··· 79 71 #size-cells = <2>; 80 72 ranges; 81 73 74 + pfc: pin-controller@e6060000 { 75 + compatible = "renesas,pfc-r8a77980"; 76 + reg = <0 0xe6060000 0 0x50c>; 77 + }; 78 + 82 79 cpg: clock-controller@e6150000 { 83 80 compatible = "renesas,r8a77980-cpg-mssr"; 84 81 reg = <0 0xe6150000 0 0x1000>; ··· 112 99 reg = <0 0xe6540000 0 0x60>; 113 100 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 114 101 clocks = <&cpg CPG_MOD 520>, 115 - <&cpg CPG_CORE 19>, 102 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 116 103 <&scif_clk>; 117 104 clock-names = "fck", "brg_int", "scif_clk"; 118 105 dmas = <&dmac1 0x31>, <&dmac1 0x30>, 119 106 <&dmac2 0x31>, <&dmac2 0x30>; 120 107 dma-names = "tx", "rx", "tx", "rx"; 121 - power-domains = <&sysc 32>; 108 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 122 109 resets = <&cpg 520>; 123 110 status = "disabled"; 124 111 }; ··· 130 117 reg = <0 0xe6550000 0 0x60>; 131 118 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 132 119 clocks = <&cpg CPG_MOD 519>, 133 - <&cpg CPG_CORE 19>, 120 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 134 121 <&scif_clk>; 135 122 clock-names = "fck", "brg_int", "scif_clk"; 136 123 dmas = <&dmac1 0x33>, <&dmac1 0x32>, 137 124 <&dmac2 0x33>, <&dmac2 0x32>; 138 125 dma-names = "tx", "rx", "tx", "rx"; 139 - power-domains = <&sysc 32>; 126 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 140 127 resets = <&cpg 519>; 141 128 status = "disabled"; 142 129 }; ··· 148 135 reg = <0 0xe6560000 0 0x60>; 149 136 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 150 137 clocks = <&cpg CPG_MOD 518>, 151 - <&cpg CPG_CORE 19>, 138 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 152 139 <&scif_clk>; 153 140 clock-names = "fck", "brg_int", "scif_clk"; 154 141 dmas = <&dmac1 0x35>, <&dmac1 0x34>, 155 142 <&dmac2 0x35>, <&dmac2 0x34>; 156 143 dma-names = "tx", "rx", "tx", "rx"; 157 - power-domains = <&sysc 32>; 144 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 158 145 resets = <&cpg 518>; 159 146 status = "disabled"; 160 147 }; ··· 166 153 reg = <0 0xe66a0000 0 0x60>; 167 154 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 168 155 clocks = <&cpg CPG_MOD 517>, 169 - <&cpg CPG_CORE 19>, 156 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 170 157 <&scif_clk>; 171 158 clock-names = "fck", "brg_int", "scif_clk"; 172 159 dmas = <&dmac1 0x37>, <&dmac1 0x36>, 173 160 <&dmac2 0x37>, <&dmac2 0x36>; 174 161 dma-names = "tx", "rx", "tx", "rx"; 175 - power-domains = <&sysc 32>; 162 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 176 163 resets = <&cpg 517>; 177 164 status = "disabled"; 165 + }; 166 + 167 + canfd: can@e66c0000 { 168 + compatible = "renesas,r8a77980-canfd", 169 + "renesas,rcar-gen3-canfd"; 170 + reg = <0 0xe66c0000 0 0x8000>; 171 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 172 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 173 + clocks = <&cpg CPG_MOD 914>, 174 + <&cpg CPG_CORE R8A77980_CLK_CANFD>, 175 + <&can_clk>; 176 + clock-names = "fck", "canfd", "can_clk"; 177 + assigned-clocks = <&cpg CPG_CORE R8A77980_CLK_CANFD>; 178 + assigned-clock-rates = <40000000>; 179 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 180 + resets = <&cpg 914>; 181 + status = "disabled"; 182 + 183 + channel0 { 184 + status = "disabled"; 185 + }; 186 + 187 + channel1 { 188 + status = "disabled"; 189 + }; 178 190 }; 179 191 180 192 avb: ethernet@e6800000 { ··· 239 201 "ch20", "ch21", "ch22", "ch23", 240 202 "ch24"; 241 203 clocks = <&cpg CPG_MOD 812>; 242 - power-domains = <&sysc 32>; 204 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 243 205 resets = <&cpg 812>; 244 206 phy-mode = "rgmii"; 245 207 #address-cells = <1>; 246 208 #size-cells = <0>; 209 + status = "disabled"; 247 210 }; 248 211 249 212 scif0: serial@e6e60000 { ··· 254 215 reg = <0 0xe6e60000 0 0x40>; 255 216 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 256 217 clocks = <&cpg CPG_MOD 207>, 257 - <&cpg CPG_CORE 19>, 218 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 258 219 <&scif_clk>; 259 220 clock-names = "fck", "brg_int", "scif_clk"; 260 221 dmas = <&dmac1 0x51>, <&dmac1 0x50>, 261 222 <&dmac2 0x51>, <&dmac2 0x50>; 262 223 dma-names = "tx", "rx", "tx", "rx"; 263 - power-domains = <&sysc 32>; 224 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 264 225 resets = <&cpg 207>; 265 226 status = "disabled"; 266 227 }; ··· 272 233 reg = <0 0xe6e68000 0 0x40>; 273 234 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 274 235 clocks = <&cpg CPG_MOD 206>, 275 - <&cpg CPG_CORE 19>, 236 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 276 237 <&scif_clk>; 277 238 clock-names = "fck", "brg_int", "scif_clk"; 278 239 dmas = <&dmac1 0x53>, <&dmac1 0x52>, 279 240 <&dmac2 0x53>, <&dmac2 0x52>; 280 241 dma-names = "tx", "rx", "tx", "rx"; 281 - power-domains = <&sysc 32>; 242 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 282 243 resets = <&cpg 206>; 283 244 status = "disabled"; 284 245 }; ··· 290 251 reg = <0 0xe6c50000 0 0x40>; 291 252 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 292 253 clocks = <&cpg CPG_MOD 204>, 293 - <&cpg CPG_CORE 19>, 254 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 294 255 <&scif_clk>; 295 256 clock-names = "fck", "brg_int", "scif_clk"; 296 257 dmas = <&dmac1 0x57>, <&dmac1 0x56>, 297 258 <&dmac2 0x57>, <&dmac2 0x56>; 298 259 dma-names = "tx", "rx", "tx", "rx"; 299 - power-domains = <&sysc 32>; 260 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 300 261 resets = <&cpg 204>; 301 262 status = "disabled"; 302 263 }; ··· 308 269 reg = <0 0xe6c40000 0 0x40>; 309 270 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 310 271 clocks = <&cpg CPG_MOD 203>, 311 - <&cpg CPG_CORE 19>, 272 + <&cpg CPG_CORE R8A77980_CLK_S3D1>, 312 273 <&scif_clk>; 313 274 clock-names = "fck", "brg_int", "scif_clk"; 314 275 dmas = <&dmac1 0x59>, <&dmac1 0x58>, 315 276 <&dmac2 0x59>, <&dmac2 0x58>; 316 277 dma-names = "tx", "rx", "tx", "rx"; 317 - power-domains = <&sysc 32>; 278 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 318 279 resets = <&cpg 203>; 319 280 status = "disabled"; 320 281 }; ··· 347 308 "ch12", "ch13", "ch14", "ch15"; 348 309 clocks = <&cpg CPG_MOD 218>; 349 310 clock-names = "fck"; 350 - power-domains = <&sysc 32>; 311 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 351 312 resets = <&cpg 218>; 352 313 #dma-cells = <1>; 353 314 dma-channels = <16>; ··· 381 342 "ch12", "ch13", "ch14", "ch15"; 382 343 clocks = <&cpg CPG_MOD 217>; 383 344 clock-names = "fck"; 384 - power-domains = <&sysc 32>; 345 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 385 346 resets = <&cpg 217>; 386 347 #dma-cells = <1>; 387 348 dma-channels = <16>; 349 + }; 350 + 351 + mmc0: mmc@ee140000 { 352 + compatible = "renesas,sdhi-r8a77980", 353 + "renesas,rcar-gen3-sdhi"; 354 + reg = <0 0xee140000 0 0x2000>; 355 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 356 + clocks = <&cpg CPG_MOD 314>; 357 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 358 + resets = <&cpg 314>; 359 + max-frequency = <200000000>; 360 + status = "disabled"; 388 361 }; 389 362 390 363 gic: interrupt-controller@f1010000 { ··· 412 361 IRQ_TYPE_LEVEL_HIGH)>; 413 362 clocks = <&cpg CPG_MOD 408>; 414 363 clock-names = "clk"; 415 - power-domains = <&sysc 32>; 364 + power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; 416 365 resets = <&cpg 408>; 417 366 }; 418 367
+65
arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
··· 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 + };
+281
arch/arm64/boot/dts/renesas/r8a77990.dtsi
··· 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 + };
+1 -1
arch/arm64/boot/dts/renesas/r8a77995-draak.dts
··· 91 91 &pfc { 92 92 avb0_pins: avb { 93 93 mux { 94 - groups = "avb0_link", "avb0_mdc", "avb0_mii"; 94 + groups = "avb0_link", "avb0_mdio", "avb0_mii"; 95 95 function = "avb0"; 96 96 }; 97 97 };
+375 -375
arch/arm64/boot/dts/renesas/r8a77995.dtsi
··· 18 18 #address-cells = <2>; 19 19 #size-cells = <2>; 20 20 21 - psci { 22 - compatible = "arm,psci-1.0", "arm,psci-0.2"; 23 - method = "smc"; 21 + /* External CAN clock - to be overridden by boards that provide it */ 22 + can_clk: can { 23 + compatible = "fixed-clock"; 24 + #clock-cells = <0>; 25 + clock-frequency = <0>; 24 26 }; 25 27 26 28 cpus { ··· 53 51 clock-frequency = <0>; 54 52 }; 55 53 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 54 pmu_a53 { 64 55 compatible = "arm,cortex-a53-pmu"; 65 56 interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 57 + }; 58 + 59 + psci { 60 + compatible = "arm,psci-1.0", "arm,psci-0.2"; 61 + method = "smc"; 66 62 }; 67 63 68 64 scif_clk: scif { ··· 76 76 #size-cells = <2>; 77 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 79 rwdt: watchdog@e6020000 { 97 80 compatible = "renesas,r8a77995-wdt", 98 81 "renesas,rcar-gen3-wdt"; ··· 84 101 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 85 102 resets = <&cpg 402>; 86 103 status = "disabled"; 87 - }; 88 - 89 - ipmmu_vi0: mmu@febd0000 { 90 - compatible = "renesas,ipmmu-r8a77995"; 91 - reg = <0 0xfebd0000 0 0x1000>; 92 - renesas,ipmmu-main = <&ipmmu_mm 14>; 93 - #iommu-cells = <1>; 94 - status = "disabled"; 95 - }; 96 - 97 - ipmmu_vp0: mmu@fe990000 { 98 - compatible = "renesas,ipmmu-r8a77995"; 99 - reg = <0 0xfe990000 0 0x1000>; 100 - renesas,ipmmu-main = <&ipmmu_mm 16>; 101 - #iommu-cells = <1>; 102 - status = "disabled"; 103 - }; 104 - 105 - ipmmu_vc0: mmu@fe6b0000 { 106 - compatible = "renesas,ipmmu-r8a77995"; 107 - reg = <0 0xfe6b0000 0 0x1000>; 108 - renesas,ipmmu-main = <&ipmmu_mm 12>; 109 - #iommu-cells = <1>; 110 - status = "disabled"; 111 - }; 112 - 113 - ipmmu_pv0: mmu@fd800000 { 114 - compatible = "renesas,ipmmu-r8a77995"; 115 - reg = <0 0xfd800000 0 0x1000>; 116 - renesas,ipmmu-main = <&ipmmu_mm 6>; 117 - #iommu-cells = <1>; 118 - status = "disabled"; 119 - }; 120 - 121 - ipmmu_hc: mmu@e6570000 { 122 - compatible = "renesas,ipmmu-r8a77995"; 123 - reg = <0 0xe6570000 0 0x1000>; 124 - renesas,ipmmu-main = <&ipmmu_mm 2>; 125 - #iommu-cells = <1>; 126 - status = "disabled"; 127 - }; 128 - 129 - ipmmu_rt: mmu@ffc80000 { 130 - compatible = "renesas,ipmmu-r8a77995"; 131 - reg = <0 0xffc80000 0 0x1000>; 132 - renesas,ipmmu-main = <&ipmmu_mm 10>; 133 - #iommu-cells = <1>; 134 - status = "disabled"; 135 - }; 136 - 137 - ipmmu_mp: mmu@ec670000 { 138 - compatible = "renesas,ipmmu-r8a77995"; 139 - reg = <0 0xec670000 0 0x1000>; 140 - renesas,ipmmu-main = <&ipmmu_mm 4>; 141 - #iommu-cells = <1>; 142 - status = "disabled"; 143 - }; 144 - 145 - ipmmu_ds0: mmu@e6740000 { 146 - compatible = "renesas,ipmmu-r8a77995"; 147 - reg = <0 0xe6740000 0 0x1000>; 148 - renesas,ipmmu-main = <&ipmmu_mm 0>; 149 - #iommu-cells = <1>; 150 - status = "disabled"; 151 - }; 152 - 153 - ipmmu_ds1: mmu@e7740000 { 154 - compatible = "renesas,ipmmu-r8a77995"; 155 - reg = <0 0xe7740000 0 0x1000>; 156 - renesas,ipmmu-main = <&ipmmu_mm 1>; 157 - #iommu-cells = <1>; 158 - status = "disabled"; 159 - }; 160 - 161 - ipmmu_mm: mmu@e67b0000 { 162 - compatible = "renesas,ipmmu-r8a77995"; 163 - reg = <0 0xe67b0000 0 0x1000>; 164 - interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 165 - <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 166 - #iommu-cells = <1>; 167 - status = "disabled"; 168 - }; 169 - 170 - 171 - cpg: clock-controller@e6150000 { 172 - compatible = "renesas,r8a77995-cpg-mssr"; 173 - reg = <0 0xe6150000 0 0x1000>; 174 - clocks = <&extal_clk>; 175 - clock-names = "extal"; 176 - #clock-cells = <2>; 177 - #power-domain-cells = <0>; 178 - #reset-cells = <1>; 179 - }; 180 - 181 - rst: reset-controller@e6160000 { 182 - compatible = "renesas,r8a77995-rst"; 183 - reg = <0 0xe6160000 0 0x0200>; 184 - }; 185 - 186 - pfc: pin-controller@e6060000 { 187 - compatible = "renesas,pfc-r8a77995"; 188 - reg = <0 0xe6060000 0 0x508>; 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,r8a77995-sysc"; 198 - reg = <0 0xe6180000 0 0x0400>; 199 - #power-domain-cells = <1>; 200 - }; 201 - 202 - intc_ex: interrupt-controller@e61c0000 { 203 - compatible = "renesas,intc-ex-r8a77995", "renesas,irqc"; 204 - #interrupt-cells = <2>; 205 - interrupt-controller; 206 - reg = <0 0xe61c0000 0 0x200>; 207 - interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 208 - GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 209 - GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH 210 - GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH 211 - GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 212 - GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; 213 - clocks = <&cpg CPG_MOD 407>; 214 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 215 - resets = <&cpg 407>; 216 - }; 217 - 218 - dmac0: dma-controller@e6700000 { 219 - compatible = "renesas,dmac-r8a77995", 220 - "renesas,rcar-dmac"; 221 - reg = <0 0xe6700000 0 0x10000>; 222 - interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH 223 - GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 224 - GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH 225 - GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 226 - GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 227 - GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 228 - GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 229 - GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 230 - GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; 231 - interrupt-names = "error", 232 - "ch0", "ch1", "ch2", "ch3", 233 - "ch4", "ch5", "ch6", "ch7"; 234 - clocks = <&cpg CPG_MOD 219>; 235 - clock-names = "fck"; 236 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 237 - resets = <&cpg 219>; 238 - #dma-cells = <1>; 239 - dma-channels = <8>; 240 - }; 241 - 242 - dmac1: dma-controller@e7300000 { 243 - compatible = "renesas,dmac-r8a77995", 244 - "renesas,rcar-dmac"; 245 - reg = <0 0xe7300000 0 0x10000>; 246 - interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 247 - GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 248 - GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 249 - GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 250 - GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 251 - GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 252 - GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 253 - GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 254 - GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 255 - interrupt-names = "error", 256 - "ch0", "ch1", "ch2", "ch3", 257 - "ch4", "ch5", "ch6", "ch7"; 258 - clocks = <&cpg CPG_MOD 218>; 259 - clock-names = "fck"; 260 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 261 - resets = <&cpg 218>; 262 - #dma-cells = <1>; 263 - dma-channels = <8>; 264 - }; 265 - 266 - dmac2: dma-controller@e7310000 { 267 - compatible = "renesas,dmac-r8a77995", 268 - "renesas,rcar-dmac"; 269 - reg = <0 0xe7310000 0 0x10000>; 270 - interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH 271 - GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH 272 - GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH 273 - GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH 274 - GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH 275 - GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH 276 - GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH 277 - GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH 278 - GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>; 279 - interrupt-names = "error", 280 - "ch0", "ch1", "ch2", "ch3", 281 - "ch4", "ch5", "ch6", "ch7"; 282 - clocks = <&cpg CPG_MOD 217>; 283 - clock-names = "fck"; 284 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 285 - resets = <&cpg 217>; 286 - #dma-cells = <1>; 287 - dma-channels = <8>; 288 104 }; 289 105 290 106 gpio0: gpio@e6050000 { ··· 198 416 resets = <&cpg 906>; 199 417 }; 200 418 201 - can0: can@e6c30000 { 202 - compatible = "renesas,can-r8a77995", 203 - "renesas,rcar-gen3-can"; 204 - reg = <0 0xe6c30000 0 0x1000>; 205 - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 206 - clocks = <&cpg CPG_MOD 916>, 207 - <&cpg CPG_CORE R8A77995_CLK_CANFD>, 208 - <&can_clk>; 209 - clock-names = "clkp1", "clkp2", "can_clk"; 210 - assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 211 - assigned-clock-rates = <40000000>; 212 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 213 - resets = <&cpg 916>; 214 - status = "disabled"; 419 + pfc: pin-controller@e6060000 { 420 + compatible = "renesas,pfc-r8a77995"; 421 + reg = <0 0xe6060000 0 0x508>; 215 422 }; 216 423 217 - can1: can@e6c38000 { 218 - compatible = "renesas,can-r8a77995", 219 - "renesas,rcar-gen3-can"; 220 - reg = <0 0xe6c38000 0 0x1000>; 221 - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 222 - clocks = <&cpg CPG_MOD 915>, 223 - <&cpg CPG_CORE R8A77995_CLK_CANFD>, 224 - <&can_clk>; 225 - clock-names = "clkp1", "clkp2", "can_clk"; 226 - assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 227 - assigned-clock-rates = <40000000>; 228 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 229 - resets = <&cpg 915>; 230 - status = "disabled"; 424 + cpg: clock-controller@e6150000 { 425 + compatible = "renesas,r8a77995-cpg-mssr"; 426 + reg = <0 0xe6150000 0 0x1000>; 427 + clocks = <&extal_clk>; 428 + clock-names = "extal"; 429 + #clock-cells = <2>; 430 + #power-domain-cells = <0>; 431 + #reset-cells = <1>; 231 432 }; 232 433 233 - canfd: can@e66c0000 { 234 - compatible = "renesas,r8a77995-canfd", 235 - "renesas,rcar-gen3-canfd"; 236 - reg = <0 0xe66c0000 0 0x8000>; 237 - interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 238 - <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 239 - clocks = <&cpg CPG_MOD 914>, 240 - <&cpg CPG_CORE R8A77995_CLK_CANFD>, 241 - <&can_clk>; 242 - clock-names = "fck", "canfd", "can_clk"; 243 - assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 244 - assigned-clock-rates = <40000000>; 245 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 246 - resets = <&cpg 914>; 247 - status = "disabled"; 248 - 249 - channel0 { 250 - status = "disabled"; 251 - }; 252 - 253 - channel1 { 254 - status = "disabled"; 255 - }; 434 + rst: reset-controller@e6160000 { 435 + compatible = "renesas,r8a77995-rst"; 436 + reg = <0 0xe6160000 0 0x0200>; 256 437 }; 257 438 258 - avb: ethernet@e6800000 { 259 - compatible = "renesas,etheravb-r8a77995", 260 - "renesas,etheravb-rcar-gen3"; 261 - reg = <0 0xe6800000 0 0x800>; 262 - interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 263 - <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 264 - <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 265 - <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 266 - <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 267 - <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 268 - <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 269 - <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 270 - <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 271 - <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 272 - <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 273 - <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 274 - <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 275 - <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 276 - <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 277 - <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 278 - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 279 - <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 280 - <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 281 - <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 282 - <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 283 - <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 284 - <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 285 - <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 286 - <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 287 - interrupt-names = "ch0", "ch1", "ch2", "ch3", 288 - "ch4", "ch5", "ch6", "ch7", 289 - "ch8", "ch9", "ch10", "ch11", 290 - "ch12", "ch13", "ch14", "ch15", 291 - "ch16", "ch17", "ch18", "ch19", 292 - "ch20", "ch21", "ch22", "ch23", 293 - "ch24"; 294 - clocks = <&cpg CPG_MOD 812>; 295 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 296 - resets = <&cpg 812>; 297 - phy-mode = "rgmii"; 298 - iommus = <&ipmmu_ds0 16>; 299 - #address-cells = <1>; 300 - #size-cells = <0>; 301 - status = "disabled"; 439 + sysc: system-controller@e6180000 { 440 + compatible = "renesas,r8a77995-sysc"; 441 + reg = <0 0xe6180000 0 0x0400>; 442 + #power-domain-cells = <1>; 302 443 }; 303 444 304 - scif2: serial@e6e88000 { 305 - compatible = "renesas,scif-r8a77995", 306 - "renesas,rcar-gen3-scif", "renesas,scif"; 307 - reg = <0 0xe6e88000 0 64>; 308 - interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 309 - clocks = <&cpg CPG_MOD 310>, 310 - <&cpg CPG_CORE R8A77995_CLK_S3D1C>, 311 - <&scif_clk>; 312 - clock-names = "fck", "brg_int", "scif_clk"; 313 - dmas = <&dmac1 0x13>, <&dmac1 0x12>, 314 - <&dmac2 0x13>, <&dmac2 0x12>; 315 - dma-names = "tx", "rx", "tx", "rx"; 445 + intc_ex: interrupt-controller@e61c0000 { 446 + compatible = "renesas,intc-ex-r8a77995", "renesas,irqc"; 447 + #interrupt-cells = <2>; 448 + interrupt-controller; 449 + reg = <0 0xe61c0000 0 0x200>; 450 + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 451 + GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 452 + GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH 453 + GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH 454 + GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 455 + GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; 456 + clocks = <&cpg CPG_MOD 407>; 316 457 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 317 - resets = <&cpg 310>; 318 - status = "disabled"; 458 + resets = <&cpg 407>; 319 459 }; 320 460 321 461 i2c0: i2c@e6500000 { ··· 307 603 status = "disabled"; 308 604 }; 309 605 606 + canfd: can@e66c0000 { 607 + compatible = "renesas,r8a77995-canfd", 608 + "renesas,rcar-gen3-canfd"; 609 + reg = <0 0xe66c0000 0 0x8000>; 610 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 611 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 612 + clocks = <&cpg CPG_MOD 914>, 613 + <&cpg CPG_CORE R8A77995_CLK_CANFD>, 614 + <&can_clk>; 615 + clock-names = "fck", "canfd", "can_clk"; 616 + assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 617 + assigned-clock-rates = <40000000>; 618 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 619 + resets = <&cpg 914>; 620 + status = "disabled"; 621 + 622 + channel0 { 623 + status = "disabled"; 624 + }; 625 + 626 + channel1 { 627 + status = "disabled"; 628 + }; 629 + }; 630 + 631 + dmac0: dma-controller@e6700000 { 632 + compatible = "renesas,dmac-r8a77995", 633 + "renesas,rcar-dmac"; 634 + reg = <0 0xe6700000 0 0x10000>; 635 + interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH 636 + GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 637 + GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH 638 + GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 639 + GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 640 + GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 641 + GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 642 + GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 643 + GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; 644 + interrupt-names = "error", 645 + "ch0", "ch1", "ch2", "ch3", 646 + "ch4", "ch5", "ch6", "ch7"; 647 + clocks = <&cpg CPG_MOD 219>; 648 + clock-names = "fck"; 649 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 650 + resets = <&cpg 219>; 651 + #dma-cells = <1>; 652 + dma-channels = <8>; 653 + }; 654 + 655 + dmac1: dma-controller@e7300000 { 656 + compatible = "renesas,dmac-r8a77995", 657 + "renesas,rcar-dmac"; 658 + reg = <0 0xe7300000 0 0x10000>; 659 + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 660 + GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 661 + GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 662 + GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 663 + GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 664 + GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 665 + GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 666 + GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 667 + GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 668 + interrupt-names = "error", 669 + "ch0", "ch1", "ch2", "ch3", 670 + "ch4", "ch5", "ch6", "ch7"; 671 + clocks = <&cpg CPG_MOD 218>; 672 + clock-names = "fck"; 673 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 674 + resets = <&cpg 218>; 675 + #dma-cells = <1>; 676 + dma-channels = <8>; 677 + }; 678 + 679 + dmac2: dma-controller@e7310000 { 680 + compatible = "renesas,dmac-r8a77995", 681 + "renesas,rcar-dmac"; 682 + reg = <0 0xe7310000 0 0x10000>; 683 + interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH 684 + GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH 685 + GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH 686 + GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH 687 + GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH 688 + GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH 689 + GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH 690 + GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH 691 + GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>; 692 + interrupt-names = "error", 693 + "ch0", "ch1", "ch2", "ch3", 694 + "ch4", "ch5", "ch6", "ch7"; 695 + clocks = <&cpg CPG_MOD 217>; 696 + clock-names = "fck"; 697 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 698 + resets = <&cpg 217>; 699 + #dma-cells = <1>; 700 + dma-channels = <8>; 701 + }; 702 + 703 + ipmmu_ds0: mmu@e6740000 { 704 + compatible = "renesas,ipmmu-r8a77995"; 705 + reg = <0 0xe6740000 0 0x1000>; 706 + renesas,ipmmu-main = <&ipmmu_mm 0>; 707 + #iommu-cells = <1>; 708 + }; 709 + 710 + ipmmu_ds1: mmu@e7740000 { 711 + compatible = "renesas,ipmmu-r8a77995"; 712 + reg = <0 0xe7740000 0 0x1000>; 713 + renesas,ipmmu-main = <&ipmmu_mm 1>; 714 + #iommu-cells = <1>; 715 + }; 716 + 717 + ipmmu_hc: mmu@e6570000 { 718 + compatible = "renesas,ipmmu-r8a77995"; 719 + reg = <0 0xe6570000 0 0x1000>; 720 + renesas,ipmmu-main = <&ipmmu_mm 2>; 721 + #iommu-cells = <1>; 722 + }; 723 + 724 + ipmmu_mm: mmu@e67b0000 { 725 + compatible = "renesas,ipmmu-r8a77995"; 726 + reg = <0 0xe67b0000 0 0x1000>; 727 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 728 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 729 + #iommu-cells = <1>; 730 + }; 731 + 732 + ipmmu_mp: mmu@ec670000 { 733 + compatible = "renesas,ipmmu-r8a77995"; 734 + reg = <0 0xec670000 0 0x1000>; 735 + renesas,ipmmu-main = <&ipmmu_mm 4>; 736 + #iommu-cells = <1>; 737 + }; 738 + 739 + ipmmu_pv0: mmu@fd800000 { 740 + compatible = "renesas,ipmmu-r8a77995"; 741 + reg = <0 0xfd800000 0 0x1000>; 742 + renesas,ipmmu-main = <&ipmmu_mm 6>; 743 + #iommu-cells = <1>; 744 + }; 745 + 746 + ipmmu_rt: mmu@ffc80000 { 747 + compatible = "renesas,ipmmu-r8a77995"; 748 + reg = <0 0xffc80000 0 0x1000>; 749 + renesas,ipmmu-main = <&ipmmu_mm 10>; 750 + #iommu-cells = <1>; 751 + }; 752 + 753 + ipmmu_vc0: mmu@fe6b0000 { 754 + compatible = "renesas,ipmmu-r8a77995"; 755 + reg = <0 0xfe6b0000 0 0x1000>; 756 + renesas,ipmmu-main = <&ipmmu_mm 12>; 757 + #iommu-cells = <1>; 758 + }; 759 + 760 + ipmmu_vi0: mmu@febd0000 { 761 + compatible = "renesas,ipmmu-r8a77995"; 762 + reg = <0 0xfebd0000 0 0x1000>; 763 + renesas,ipmmu-main = <&ipmmu_mm 14>; 764 + #iommu-cells = <1>; 765 + }; 766 + 767 + ipmmu_vp0: mmu@fe990000 { 768 + compatible = "renesas,ipmmu-r8a77995"; 769 + reg = <0 0xfe990000 0 0x1000>; 770 + renesas,ipmmu-main = <&ipmmu_mm 16>; 771 + #iommu-cells = <1>; 772 + }; 773 + 774 + avb: ethernet@e6800000 { 775 + compatible = "renesas,etheravb-r8a77995", 776 + "renesas,etheravb-rcar-gen3"; 777 + reg = <0 0xe6800000 0 0x800>; 778 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 779 + <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 780 + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 781 + <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 782 + <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 783 + <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 784 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 785 + <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 786 + <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 787 + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 788 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 789 + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 790 + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 791 + <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 792 + <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 793 + <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 794 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 795 + <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 796 + <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 797 + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 798 + <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 799 + <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 800 + <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 801 + <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 802 + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 803 + interrupt-names = "ch0", "ch1", "ch2", "ch3", 804 + "ch4", "ch5", "ch6", "ch7", 805 + "ch8", "ch9", "ch10", "ch11", 806 + "ch12", "ch13", "ch14", "ch15", 807 + "ch16", "ch17", "ch18", "ch19", 808 + "ch20", "ch21", "ch22", "ch23", 809 + "ch24"; 810 + clocks = <&cpg CPG_MOD 812>; 811 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 812 + resets = <&cpg 812>; 813 + phy-mode = "rgmii"; 814 + iommus = <&ipmmu_ds0 16>; 815 + #address-cells = <1>; 816 + #size-cells = <0>; 817 + status = "disabled"; 818 + }; 819 + 820 + can0: can@e6c30000 { 821 + compatible = "renesas,can-r8a77995", 822 + "renesas,rcar-gen3-can"; 823 + reg = <0 0xe6c30000 0 0x1000>; 824 + interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 825 + clocks = <&cpg CPG_MOD 916>, 826 + <&cpg CPG_CORE R8A77995_CLK_CANFD>, 827 + <&can_clk>; 828 + clock-names = "clkp1", "clkp2", "can_clk"; 829 + assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 830 + assigned-clock-rates = <40000000>; 831 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 832 + resets = <&cpg 916>; 833 + status = "disabled"; 834 + }; 835 + 836 + can1: can@e6c38000 { 837 + compatible = "renesas,can-r8a77995", 838 + "renesas,rcar-gen3-can"; 839 + reg = <0 0xe6c38000 0 0x1000>; 840 + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 841 + clocks = <&cpg CPG_MOD 915>, 842 + <&cpg CPG_CORE R8A77995_CLK_CANFD>, 843 + <&can_clk>; 844 + clock-names = "clkp1", "clkp2", "can_clk"; 845 + assigned-clocks = <&cpg CPG_CORE R8A77995_CLK_CANFD>; 846 + assigned-clock-rates = <40000000>; 847 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 848 + resets = <&cpg 915>; 849 + status = "disabled"; 850 + }; 851 + 310 852 pwm0: pwm@e6e30000 { 311 853 compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar"; 312 854 reg = <0 0xe6e30000 0 0x8>; ··· 593 643 status = "disabled"; 594 644 }; 595 645 596 - sdhi2: sd@ee140000 { 597 - compatible = "renesas,sdhi-r8a77995", 598 - "renesas,rcar-gen3-sdhi"; 599 - reg = <0 0xee140000 0 0x2000>; 600 - interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 601 - clocks = <&cpg CPG_MOD 312>; 602 - max-frequency = <200000000>; 646 + scif2: serial@e6e88000 { 647 + compatible = "renesas,scif-r8a77995", 648 + "renesas,rcar-gen3-scif", "renesas,scif"; 649 + reg = <0 0xe6e88000 0 64>; 650 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 651 + clocks = <&cpg CPG_MOD 310>, 652 + <&cpg CPG_CORE R8A77995_CLK_S3D1C>, 653 + <&scif_clk>; 654 + clock-names = "fck", "brg_int", "scif_clk"; 655 + dmas = <&dmac1 0x13>, <&dmac1 0x12>, 656 + <&dmac2 0x13>, <&dmac2 0x12>; 657 + dma-names = "tx", "rx", "tx", "rx"; 603 658 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 604 - resets = <&cpg 312>; 659 + resets = <&cpg 310>; 660 + status = "disabled"; 661 + }; 662 + 663 + vin4: video@e6ef4000 { 664 + compatible = "renesas,vin-r8a77995"; 665 + reg = <0 0xe6ef4000 0 0x1000>; 666 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 667 + clocks = <&cpg CPG_MOD 807>; 668 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 669 + resets = <&cpg 807>; 670 + renesas,id = <4>; 671 + status = "disabled"; 672 + }; 673 + 674 + ohci0: usb@ee080000 { 675 + compatible = "generic-ohci"; 676 + reg = <0 0xee080000 0 0x100>; 677 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 678 + clocks = <&cpg CPG_MOD 703>; 679 + phys = <&usb2_phy0>; 680 + phy-names = "usb"; 681 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 682 + resets = <&cpg 703>; 605 683 status = "disabled"; 606 684 }; 607 685 ··· 641 663 phys = <&usb2_phy0>; 642 664 phy-names = "usb"; 643 665 companion = <&ohci0>; 644 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 645 - resets = <&cpg 703>; 646 - status = "disabled"; 647 - }; 648 - 649 - ohci0: usb@ee080000 { 650 - compatible = "generic-ohci"; 651 - reg = <0 0xee080000 0 0x100>; 652 - interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 653 - clocks = <&cpg CPG_MOD 703>; 654 - phys = <&usb2_phy0>; 655 - phy-names = "usb"; 656 666 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 657 667 resets = <&cpg 703>; 658 668 status = "disabled"; ··· 658 692 status = "disabled"; 659 693 }; 660 694 695 + sdhi2: sd@ee140000 { 696 + compatible = "renesas,sdhi-r8a77995", 697 + "renesas,rcar-gen3-sdhi"; 698 + reg = <0 0xee140000 0 0x2000>; 699 + interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 700 + clocks = <&cpg CPG_MOD 312>; 701 + max-frequency = <200000000>; 702 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 703 + resets = <&cpg 312>; 704 + status = "disabled"; 705 + }; 706 + 707 + gic: interrupt-controller@f1010000 { 708 + compatible = "arm,gic-400"; 709 + #interrupt-cells = <3>; 710 + #address-cells = <0>; 711 + interrupt-controller; 712 + reg = <0x0 0xf1010000 0 0x1000>, 713 + <0x0 0xf1020000 0 0x20000>, 714 + <0x0 0xf1040000 0 0x20000>, 715 + <0x0 0xf1060000 0 0x20000>; 716 + interrupts = <GIC_PPI 9 717 + (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; 718 + clocks = <&cpg CPG_MOD 408>; 719 + clock-names = "clk"; 720 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 721 + resets = <&cpg 408>; 722 + }; 723 + 661 724 vspbs: vsp@fe960000 { 662 725 compatible = "renesas,vsp2"; 663 726 reg = <0 0xfe960000 0 0x8000>; ··· 695 700 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 696 701 resets = <&cpg 627>; 697 702 renesas,fcp = <&fcpvb0>; 698 - }; 699 - 700 - fcpvb0: fcp@fe96f000 { 701 - compatible = "renesas,fcpv"; 702 - reg = <0 0xfe96f000 0 0x200>; 703 - clocks = <&cpg CPG_MOD 607>; 704 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 705 - resets = <&cpg 607>; 706 - iommus = <&ipmmu_vp0 5>; 707 703 }; 708 704 709 705 vspd0: vsp@fea20000 { ··· 707 721 renesas,fcp = <&fcpvd0>; 708 722 }; 709 723 710 - fcpvd0: fcp@fea27000 { 711 - compatible = "renesas,fcpv"; 712 - reg = <0 0xfea27000 0 0x200>; 713 - clocks = <&cpg CPG_MOD 603>; 714 - power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 715 - resets = <&cpg 603>; 716 - iommus = <&ipmmu_vi0 8>; 717 - }; 718 - 719 724 vspd1: vsp@fea28000 { 720 725 compatible = "renesas,vsp2"; 721 726 reg = <0 0xfea28000 0 0x8000>; ··· 715 738 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 716 739 resets = <&cpg 622>; 717 740 renesas,fcp = <&fcpvd1>; 741 + }; 742 + 743 + fcpvb0: fcp@fe96f000 { 744 + compatible = "renesas,fcpv"; 745 + reg = <0 0xfe96f000 0 0x200>; 746 + clocks = <&cpg CPG_MOD 607>; 747 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 748 + resets = <&cpg 607>; 749 + iommus = <&ipmmu_vp0 5>; 750 + }; 751 + 752 + fcpvd0: fcp@fea27000 { 753 + compatible = "renesas,fcpv"; 754 + reg = <0 0xfea27000 0 0x200>; 755 + clocks = <&cpg CPG_MOD 603>; 756 + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 757 + resets = <&cpg 603>; 758 + iommus = <&ipmmu_vi0 8>; 718 759 }; 719 760 720 761 fcpvd1: fcp@fea2f000 { ··· 777 782 }; 778 783 }; 779 784 }; 785 + }; 786 + 787 + prr: chipid@fff00044 { 788 + compatible = "renesas,prr"; 789 + reg = <0 0xfff00044 0 4>; 780 790 }; 781 791 }; 782 792
+168 -19
arch/arm64/boot/dts/renesas/salvator-common.dtsi
··· 66 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 92 reg_1p8v: regulator0 { 70 93 compatible = "regulator-fixed"; 71 94 regulator-name = "fixed-1.8V"; ··· 116 93 regulator-always-on; 117 94 }; 118 95 119 - rsnd_ak4613: sound { 120 - compatible = "simple-audio-card"; 96 + sound_card: sound { 97 + compatible = "audio-graph-card"; 121 98 122 - simple-audio-card,format = "left_j"; 123 - simple-audio-card,bitclock-master = <&sndcpu>; 124 - simple-audio-card,frame-master = <&sndcpu>; 99 + label = "rcar-sound"; 125 100 126 - sndcpu: simple-audio-card,cpu { 127 - sound-dai = <&rcar_sound>; 128 - }; 129 - 130 - sndcodec: simple-audio-card,codec { 131 - sound-dai = <&ak4613>; 132 - }; 101 + dais = <&rsnd_port0>; 133 102 }; 134 103 135 104 vbus0_usb2: regulator-vbus0-usb2 { ··· 283 268 }; 284 269 }; 285 270 271 + &csi20 { 272 + status = "okay"; 273 + 274 + ports { 275 + port@0 { 276 + reg = <0>; 277 + csi20_in: endpoint { 278 + clock-lanes = <0>; 279 + data-lanes = <1>; 280 + remote-endpoint = <&adv7482_txb>; 281 + }; 282 + }; 283 + }; 284 + }; 285 + 286 + &csi40 { 287 + status = "okay"; 288 + 289 + ports { 290 + port@0 { 291 + reg = <0>; 292 + 293 + csi40_in: endpoint { 294 + clock-lanes = <0>; 295 + data-lanes = <1 2 3 4>; 296 + remote-endpoint = <&adv7482_txa>; 297 + }; 298 + }; 299 + }; 300 + }; 301 + 286 302 &du { 287 303 pinctrl-0 = <&du_pins>; 288 304 pinctrl-names = "default"; ··· 368 322 asahi-kasei,out4-single-end; 369 323 asahi-kasei,out5-single-end; 370 324 asahi-kasei,out6-single-end; 325 + 326 + port { 327 + ak4613_endpoint: endpoint { 328 + remote-endpoint = <&rsnd_endpoint0>; 329 + }; 330 + }; 371 331 }; 372 332 373 333 cs2000: clk_multiplier@4f { ··· 411 359 412 360 shunt-resistor-micro-ohms = <5000>; 413 361 }; 362 + 363 + video-receiver@70 { 364 + compatible = "adi,adv7482"; 365 + reg = <0x70>; 366 + 367 + #address-cells = <1>; 368 + #size-cells = <0>; 369 + 370 + interrupt-parent = <&gpio6>; 371 + interrupt-names = "intrq1", "intrq2"; 372 + interrupts = <30 IRQ_TYPE_LEVEL_LOW>, 373 + <31 IRQ_TYPE_LEVEL_LOW>; 374 + 375 + port@7 { 376 + reg = <7>; 377 + 378 + adv7482_ain7: endpoint { 379 + remote-endpoint = <&cvbs_con>; 380 + }; 381 + }; 382 + 383 + port@8 { 384 + reg = <8>; 385 + 386 + adv7482_hdmi: endpoint { 387 + remote-endpoint = <&hdmi_in_con>; 388 + }; 389 + }; 390 + 391 + port@10 { 392 + reg = <10>; 393 + 394 + adv7482_txa: endpoint { 395 + clock-lanes = <0>; 396 + data-lanes = <1 2 3 4>; 397 + remote-endpoint = <&csi40_in>; 398 + }; 399 + }; 400 + 401 + port@11 { 402 + reg = <11>; 403 + 404 + adv7482_txb: endpoint { 405 + clock-lanes = <0>; 406 + data-lanes = <1>; 407 + remote-endpoint = <&csi20_in>; 408 + }; 409 + }; 410 + }; 414 411 }; 415 412 416 413 &i2c_dvfs { ··· 477 376 #interrupt-cells = <2>; 478 377 gpio-controller; 479 378 #gpio-cells = <2>; 379 + rohm,ddr-backup-power = <0xf>; 380 + rohm,rstbmode-level; 480 381 481 382 regulators { 482 383 dvfs: dvfs { ··· 489 386 regulator-always-on; 490 387 }; 491 388 }; 389 + }; 390 + 391 + eeprom@50 { 392 + compatible = "rohm,br24t01", "atmel,24c01"; 393 + reg = <0x50>; 394 + pagesize = <8>; 492 395 }; 493 396 }; 494 397 ··· 525 416 526 417 avb_pins: avb { 527 418 mux { 528 - groups = "avb_link", "avb_mdc", "avb_mii"; 419 + groups = "avb_link", "avb_mdio", "avb_mii"; 529 420 function = "avb"; 530 421 }; 531 422 532 - pins_mdc { 533 - groups = "avb_mdc"; 423 + pins_mdio { 424 + groups = "avb_mdio"; 534 425 drive-strength = <24>; 535 426 }; 536 427 ··· 690 581 <&audio_clk_c>, 691 582 <&cpg CPG_CORE CPG_AUDIO_CLK_I>; 692 583 693 - rcar_sound,dai { 694 - dai0 { 695 - playback = <&ssi0 &src0 &dvc0>; 696 - capture = <&ssi1 &src1 &dvc1>; 584 + ports { 585 + rsnd_port0: port@0 { 586 + rsnd_endpoint0: endpoint { 587 + remote-endpoint = <&ak4613_endpoint>; 588 + 589 + dai-format = "left_j"; 590 + bitclock-master = <&rsnd_endpoint0>; 591 + frame-master = <&rsnd_endpoint0>; 592 + 593 + playback = <&ssi0 &src0 &dvc0>; 594 + capture = <&ssi1 &src1 &dvc1>; 595 + }; 697 596 }; 698 597 }; 699 598 }; ··· 804 687 805 688 &usb3s0_clk { 806 689 clock-frequency = <100000000>; 690 + }; 691 + 692 + &vin0 { 693 + status = "okay"; 694 + }; 695 + 696 + &vin1 { 697 + status = "okay"; 698 + }; 699 + 700 + &vin2 { 701 + status = "okay"; 702 + }; 703 + 704 + &vin3 { 705 + status = "okay"; 706 + }; 707 + 708 + &vin4 { 709 + status = "okay"; 710 + }; 711 + 712 + &vin5 { 713 + status = "okay"; 714 + }; 715 + 716 + &vin6 { 717 + status = "okay"; 718 + }; 719 + 720 + &vin7 { 721 + status = "okay"; 807 722 }; 808 723 809 724 &wdt0 {
+34 -3
arch/arm64/boot/dts/renesas/ulcb.dtsi
··· 243 243 244 244 &i2c_dvfs { 245 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 274 &ohci1 { ··· 281 255 282 256 avb_pins: avb { 283 257 mux { 284 - groups = "avb_link", "avb_mdc", "avb_mii"; 258 + groups = "avb_link", "avb_mdio", "avb_mii"; 285 259 function = "avb"; 286 260 }; 287 261 288 - pins_mdc { 289 - groups = "avb_mdc"; 262 + pins_mdio { 263 + groups = "avb_mdio"; 290 264 drive-strength = <24>; 291 265 }; 292 266 ··· 300 274 i2c2_pins: i2c2 { 301 275 groups = "i2c2_a"; 302 276 function = "i2c2"; 277 + }; 278 + 279 + irq0_pins: irq0 { 280 + groups = "intc_ex_irq0"; 281 + function = "intc_ex"; 303 282 }; 304 283 305 284 scif2_pins: scif2 {
+3
drivers/firmware/qcom_scm.c
··· 603 603 { .compatible = "qcom,scm-msm8996", 604 604 .data = NULL, /* no clocks */ 605 605 }, 606 + { .compatible = "qcom,scm-ipq4019", 607 + .data = NULL, /* no clocks */ 608 + }, 606 609 { .compatible = "qcom,scm", 607 610 .data = (void *)(SCM_HAS_CORE_CLK 608 611 | SCM_HAS_IFACE_CLK
+1
drivers/of/platform.c
··· 505 505 #ifndef CONFIG_PPC 506 506 static const struct of_device_id reserved_mem_matches[] = { 507 507 { .compatible = "qcom,rmtfs-mem" }, 508 + { .compatible = "qcom,cmd-db" }, 508 509 { .compatible = "ramoops" }, 509 510 {} 510 511 };
+1 -1
drivers/soc/Makefile
··· 14 14 obj-$(CONFIG_SOC_XWAY) += lantiq/ 15 15 obj-y += mediatek/ 16 16 obj-$(CONFIG_ARCH_MESON) += amlogic/ 17 - obj-$(CONFIG_ARCH_QCOM) += qcom/ 17 + obj-y += qcom/ 18 18 obj-y += renesas/ 19 19 obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ 20 20 obj-$(CONFIG_SOC_SAMSUNG) += samsung/
+18
drivers/soc/qcom/Kconfig
··· 3 3 # 4 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 24 config QCOM_GLINK_SSR 7 25 tristate "Qualcomm Glink SSR driver" 8 26 depends on RPMSG
+2
drivers/soc/qcom/Makefile
··· 1 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 4 obj-$(CONFIG_QCOM_GLINK_SSR) += glink_ssr.o 3 5 obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o 4 6 obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o
+317
drivers/soc/qcom/cmd-db.c
··· 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);
+748
drivers/soc/qcom/qcom-geni-se.c
··· 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");
+3 -2
drivers/soc/qcom/qmi_interface.c
··· 639 639 if (ops) 640 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 645 if (recv_buf_size < sizeof(struct qrtr_ctrl_pkt)) 643 646 recv_buf_size = sizeof(struct qrtr_ctrl_pkt); 644 - else 645 - recv_buf_size += sizeof(struct qmi_header); 646 647 647 648 qmi->recv_buf_size = recv_buf_size; 648 649 qmi->recv_buf = kzalloc(recv_buf_size, GFP_KERNEL);
+1
drivers/soc/qcom/smd-rpm.c
··· 226 226 { .compatible = "qcom,rpm-msm8916" }, 227 227 { .compatible = "qcom,rpm-msm8974" }, 228 228 { .compatible = "qcom,rpm-msm8996" }, 229 + { .compatible = "qcom,rpm-msm8998" }, 229 230 {} 230 231 }; 231 232 MODULE_DEVICE_TABLE(of, qcom_smd_rpm_of_match);
+55 -22
drivers/soc/qcom/smem.c
··· 280 280 struct smem_region regions[0]; 281 281 }; 282 282 283 - static struct smem_private_entry * 283 + static void * 284 284 phdr_to_last_uncached_entry(struct smem_partition_header *phdr) 285 285 { 286 286 void *p = phdr; ··· 288 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 293 size_t cacheline) 293 294 { 294 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 304 void *p = phdr; 302 305 ··· 364 361 end = phdr_to_last_uncached_entry(phdr); 365 362 cached = phdr_to_last_cached_entry(phdr); 366 363 367 - while (hdr < end) { 368 - if (hdr->canary != SMEM_PRIVATE_CANARY) { 369 - dev_err(smem->dev, 370 - "Found invalid canary in hosts %d:%d partition\n", 371 - phdr->host0, phdr->host1); 372 - return -EINVAL; 373 - } 364 + if (smem->global_partition) { 365 + dev_err(smem->dev, "Already found the global partition\n"); 366 + return -EINVAL; 367 + } 374 368 369 + while (hdr < end) { 370 + if (hdr->canary != SMEM_PRIVATE_CANARY) 371 + goto bad_canary; 375 372 if (le16_to_cpu(hdr->item) == item) 376 373 return -EEXIST; 377 374 ··· 380 377 381 378 /* Check that we don't grow into the cached region */ 382 379 alloc_size = sizeof(*hdr) + ALIGN(size, 8); 383 - if ((void *)hdr + alloc_size >= cached) { 380 + if ((void *)hdr + alloc_size > cached) { 384 381 dev_err(smem->dev, "Out of memory\n"); 385 382 return -ENOSPC; 386 383 } ··· 400 397 le32_add_cpu(&phdr->offset_free_uncached, alloc_size); 401 398 402 399 return 0; 400 + bad_canary: 401 + dev_err(smem->dev, "Found invalid canary in hosts %hu:%hu partition\n", 402 + le16_to_cpu(phdr->host0), le16_to_cpu(phdr->host1)); 403 + 404 + return -EINVAL; 403 405 } 404 406 405 407 static int qcom_smem_alloc_global(struct qcom_smem *smem, ··· 568 560 return ERR_PTR(-ENOENT); 569 561 570 562 invalid_canary: 571 - dev_err(smem->dev, "Found invalid canary in hosts %d:%d partition\n", 572 - phdr->host0, phdr->host1); 563 + dev_err(smem->dev, "Found invalid canary in hosts %hu:%hu partition\n", 564 + le16_to_cpu(phdr->host0), le16_to_cpu(phdr->host1)); 573 565 574 566 return ERR_PTR(-EINVAL); 575 567 } ··· 655 647 } 656 648 EXPORT_SYMBOL(qcom_smem_get_free_space); 657 649 650 + /** 651 + * qcom_smem_virt_to_phys() - return the physical address associated 652 + * with an smem item pointer (previously returned by qcom_smem_get() 653 + * @p: the virtual address to convert 654 + * 655 + * Returns 0 if the pointer provided is not within any smem region. 656 + */ 657 + phys_addr_t qcom_smem_virt_to_phys(void *p) 658 + { 659 + unsigned i; 660 + 661 + for (i = 0; i < __smem->num_regions; i++) { 662 + struct smem_region *region = &__smem->regions[i]; 663 + 664 + if (p < region->virt_base) 665 + continue; 666 + if (p < region->virt_base + region->size) { 667 + u64 offset = p - region->virt_base; 668 + 669 + return (phys_addr_t)region->aux_base + offset; 670 + } 671 + } 672 + 673 + return 0; 674 + } 675 + EXPORT_SYMBOL(qcom_smem_virt_to_phys); 676 + 658 677 static int qcom_smem_get_sbl_version(struct qcom_smem *smem) 659 678 { 660 679 struct smem_header *header; ··· 730 695 static int qcom_smem_set_global_partition(struct qcom_smem *smem) 731 696 { 732 697 struct smem_partition_header *header; 733 - struct smem_ptable_entry *entry = NULL; 698 + struct smem_ptable_entry *entry; 734 699 struct smem_ptable *ptable; 735 700 u32 host0, host1, size; 701 + bool found = false; 736 702 int i; 737 703 738 704 ptable = qcom_smem_get_ptable(smem); ··· 745 709 host0 = le16_to_cpu(entry->host0); 746 710 host1 = le16_to_cpu(entry->host1); 747 711 748 - if (host0 == SMEM_GLOBAL_HOST && host0 == host1) 712 + if (host0 == SMEM_GLOBAL_HOST && host0 == host1) { 713 + found = true; 749 714 break; 715 + } 750 716 } 751 717 752 - if (!entry) { 718 + if (!found) { 753 719 dev_err(smem->dev, "Missing entry for global partition\n"); 754 720 return -EINVAL; 755 721 } 756 722 757 723 if (!le32_to_cpu(entry->offset) || !le32_to_cpu(entry->size)) { 758 724 dev_err(smem->dev, "Invalid entry for global partition\n"); 759 - return -EINVAL; 760 - } 761 - 762 - if (smem->global_partition) { 763 - dev_err(smem->dev, "Already found the global partition\n"); 764 725 return -EINVAL; 765 726 } 766 727
+425
include/linux/qcom-geni-se.h
··· 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
+2
include/linux/soc/qcom/smem.h
··· 9 9 10 10 int qcom_smem_get_free_space(unsigned host); 11 11 12 + phys_addr_t qcom_smem_virt_to_phys(void *p); 13 + 12 14 #endif
+45
include/soc/qcom/cmd-db.h
··· 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__ */