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

Merge tag 'renesas-dt2-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Second Round of Renesas ARM Based SoC DT Updates for v4.8

* Use APMU on R-Car Gen2 and provide SMP for r8a7793 SoC
* Update console parameters to uniformly use chosen/stdout-path,
serial0, not provide kernel unnecessary command line parameters
* Add DU pins to silk board
* Add support for blanche/r8a7792
* Name pfc subnodes after device name

* tag 'renesas-dt2-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (41 commits)
ARM: dts: r8a7792: add SMP support
ARM: dts: r8a7793: Add APMU node and second CPU core
ARM: dts: r8a7791: Add APMU node
ARM: dts: r8a7790: Add APMU nodes
devicetree: bindings: Renesas APMU and SMP Enable method
ARM: dts: kzm9g: Update console parameters
ARM: dts: kzm9d: Update console parameters
ARM: dts: marzen: Add serial port config to chosen/stdout-path
ARM: dts: genmai: Update console parameters
ARM: dts: armadillo800eva: Update console parameters
ARM: dts: r8a7792: add JPU support
ARM: dts: r8a7792: add JPU clocks
ARM: dts: silk: add DU pins
ARM: dts: blanche: add Ethernet support
ARM: dts: blanche: initial device tree
ARM: dts: blanche: document Blanche board
ARM: dts: r8a7792: add IRQC support
ARM: dts: r8a7792: add [H]SCIF support
ARM: dts: r8a7792: add SYS-DMAC support
ARM: dts: r8a7792: initial SoC device tree
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+695 -36
+1
Documentation/devicetree/bindings/arm/cpus.txt
··· 206 206 "qcom,gcc-msm8660" 207 207 "qcom,kpss-acc-v1" 208 208 "qcom,kpss-acc-v2" 209 + "renesas,apmu" 209 210 "rockchip,rk3036-smp" 210 211 "rockchip,rk3066-smp" 211 212 "ste,dbx500-smp"
+2
Documentation/devicetree/bindings/arm/shmobile.txt
··· 39 39 compatible = "renesas,ape6evm", "renesas,r8a73a4" 40 40 - Atmark Techno Armadillo-800 EVA 41 41 compatible = "renesas,armadillo800eva" 42 + - Blanche (RTP0RC7792SEB00010S) 43 + compatible = "renesas,blanche", "renesas,r8a7792" 42 44 - BOCK-W 43 45 compatible = "renesas,bockw", "renesas,r8a7778" 44 46 - Genmai (RTK772100BC00000BR)
+31
Documentation/devicetree/bindings/power/renesas,apmu.txt
··· 1 + DT bindings for the Renesas Advanced Power Management Unit 2 + 3 + Renesas R-Car line of SoCs utilize one or more APMU hardware units 4 + for CPU core power domain control including SMP boot and CPU Hotplug. 5 + 6 + Required properties: 7 + 8 + - compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback. 9 + Examples with soctypes are: 10 + - "renesas,r8a7790-apmu" (R-Car H2) 11 + - "renesas,r8a7791-apmu" (R-Car M2-W) 12 + - "renesas,r8a7792-apmu" (R-Car V2H) 13 + - "renesas,r8a7793-apmu" (R-Car M2-N) 14 + - "renesas,r8a7794-apmu" (R-Car E2) 15 + 16 + - reg: Base address and length of the I/O registers used by the APMU. 17 + 18 + - cpus: This node contains a list of CPU cores, which should match the order 19 + of CPU cores used by the WUPCR and PSTR registers in the Advanced Power 20 + Management Unit section of the device's datasheet. 21 + 22 + 23 + Example: 24 + 25 + This shows the r8a7791 APMU that can control CPU0 and CPU1. 26 + 27 + apmu@e6152000 { 28 + compatible = "renesas,r8a7791-apmu", "renesas,apmu"; 29 + reg = <0 0xe6152000 0 0x188>; 30 + cpus = <&cpu0 &cpu1>; 31 + };
+1
arch/arm/boot/dts/Makefile
··· 653 653 r8a7790-lager.dtb \ 654 654 r8a7791-koelsch.dtb \ 655 655 r8a7791-porter.dtb \ 656 + r8a7792-blanche.dtb \ 656 657 r8a7793-gose.dtb \ 657 658 r8a7794-alt.dtb \ 658 659 r8a7794-silk.dtb \
+6 -2
arch/arm/boot/dts/emev2-kzm9d.dts
··· 23 23 reg = <0x40000000 0x8000000>; 24 24 }; 25 25 26 + aliases { 27 + serial1 = &uart1; 28 + }; 29 + 26 30 chosen { 27 - bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp"; 28 - stdout-path = &uart1; 31 + bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp"; 32 + stdout-path = "serial1:115200n8"; 29 33 }; 30 34 31 35 gpio_keys {
+2 -2
arch/arm/boot/dts/r7s72100-genmai.dts
··· 17 17 compatible = "renesas,genmai", "renesas,r7s72100"; 18 18 19 19 aliases { 20 - serial2 = &scif2; 20 + serial0 = &scif2; 21 21 }; 22 22 23 23 chosen { 24 24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 25 - stdout-path = &scif2; 25 + stdout-path = "serial0:115200n8"; 26 26 }; 27 27 28 28 memory@8000000 {
+2 -2
arch/arm/boot/dts/r8a73a4-ape6evm.dts
··· 188 188 }; 189 189 190 190 &pfc { 191 - scifa0_pins: serial0 { 191 + scifa0_pins: scifa0 { 192 192 groups = "scifa0_data"; 193 193 function = "scifa0"; 194 194 }; 195 195 196 - mmc0_pins: mmc { 196 + mmc0_pins: mmc0 { 197 197 groups = "mmc0_data8", "mmc0_ctrl"; 198 198 function = "mmc0"; 199 199 };
+4 -4
arch/arm/boot/dts/r8a7740-armadillo800eva.dts
··· 20 20 compatible = "renesas,armadillo800eva", "renesas,r8a7740"; 21 21 22 22 aliases { 23 - serial1 = &scifa1; 23 + serial0 = &scifa1; 24 24 }; 25 25 26 26 chosen { 27 - bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; 28 - stdout-path = &scifa1; 27 + bootargs = "earlyprintk ignore_loglevel root=/dev/nfs ip=dhcp rw"; 28 + stdout-path = "serial0:115200n8"; 29 29 }; 30 30 31 31 memory@40000000 { ··· 232 232 function = "gether"; 233 233 }; 234 234 235 - scifa1_pins: serial1 { 235 + scifa1_pins: scifa1 { 236 236 groups = "scifa1_data"; 237 237 function = "scifa1"; 238 238 };
+1 -1
arch/arm/boot/dts/r8a7778-bockw.dts
··· 129 129 pinctrl-0 = <&scif_clk_pins>; 130 130 pinctrl-names = "default"; 131 131 132 - scif0_pins: serial0 { 132 + scif0_pins: scif0 { 133 133 groups = "scif0_data_a", "scif0_ctrl"; 134 134 function = "scif0"; 135 135 };
+3 -3
arch/arm/boot/dts/r8a7779-marzen.dts
··· 25 25 26 26 chosen { 27 27 bootargs = "ignore_loglevel root=/dev/nfs ip=on"; 28 - stdout-path = &scif2; 28 + stdout-path = "serial0:115200n8"; 29 29 }; 30 30 31 31 memory@60000000 { ··· 195 195 }; 196 196 }; 197 197 198 - scif2_pins: serial2 { 198 + scif2_pins: scif2 { 199 199 groups = "scif2_data_c"; 200 200 function = "scif2"; 201 201 }; 202 202 203 - scif4_pins: serial4 { 203 + scif4_pins: scif4 { 204 204 groups = "scif4_data"; 205 205 function = "scif4"; 206 206 };
+5 -5
arch/arm/boot/dts/r8a7790-lager.dts
··· 317 317 function = "du"; 318 318 }; 319 319 320 - scif0_pins: serial0 { 320 + scif0_pins: scif0 { 321 321 groups = "scif0_data"; 322 322 function = "scif0"; 323 323 }; ··· 337 337 function = "intc"; 338 338 }; 339 339 340 - scifa1_pins: serial1 { 340 + scifa1_pins: scifa1 { 341 341 groups = "scifa1_data"; 342 342 function = "scifa1"; 343 343 }; ··· 371 371 function = "mmc1"; 372 372 }; 373 373 374 - qspi_pins: spi0 { 374 + qspi_pins: qspi { 375 375 groups = "qspi_ctrl", "qspi_data4"; 376 376 function = "qspi"; 377 377 }; 378 378 379 - msiof1_pins: spi2 { 379 + msiof1_pins: msiof1 { 380 380 groups = "msiof1_clk", "msiof1_sync", "msiof1_rx", 381 381 "msiof1_tx"; 382 382 function = "msiof1"; ··· 427 427 function = "usb2"; 428 428 }; 429 429 430 - vin1_pins: vin { 430 + vin1_pins: vin1 { 431 431 groups = "vin1_data8", "vin1_clk"; 432 432 function = "vin1"; 433 433 };
+13
arch/arm/boot/dts/r8a7790.dtsi
··· 44 44 cpus { 45 45 #address-cells = <1>; 46 46 #size-cells = <0>; 47 + enable-method = "renesas,apmu"; 47 48 48 49 cpu0: cpu@0 { 49 50 device_type = "cpu"; ··· 163 162 cooling-maps { 164 163 }; 165 164 }; 165 + }; 166 + 167 + apmu@e6151000 { 168 + compatible = "renesas,r8a7790-apmu", "renesas,apmu"; 169 + reg = <0 0xe6151000 0 0x188>; 170 + cpus = <&cpu4 &cpu5 &cpu6 &cpu7>; 171 + }; 172 + 173 + apmu@e6152000 { 174 + compatible = "renesas,r8a7790-apmu", "renesas,apmu"; 175 + reg = <0 0xe6152000 0 0x188>; 176 + cpus = <&cpu0 &cpu1 &cpu2 &cpu3>; 166 177 }; 167 178 168 179 gic: interrupt-controller@f1001000 {
+4 -4
arch/arm/boot/dts/r8a7791-koelsch.dts
··· 332 332 function = "du"; 333 333 }; 334 334 335 - scif0_pins: serial0 { 335 + scif0_pins: scif0 { 336 336 groups = "scif0_data_d"; 337 337 function = "scif0"; 338 338 }; 339 339 340 - scif1_pins: serial1 { 340 + scif1_pins: scif1 { 341 341 groups = "scif1_data_d"; 342 342 function = "scif1"; 343 343 }; ··· 372 372 function = "sdhi2"; 373 373 }; 374 374 375 - qspi_pins: spi0 { 375 + qspi_pins: qspi { 376 376 groups = "qspi_ctrl", "qspi_data4"; 377 377 function = "qspi"; 378 378 }; 379 379 380 - msiof0_pins: spi1 { 380 + msiof0_pins: msiof0 { 381 381 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx", 382 382 "msiof0_tx"; 383 383 function = "msiof0";
+2 -2
arch/arm/boot/dts/r8a7791-porter.dts
··· 142 142 }; 143 143 144 144 &pfc { 145 - scif0_pins: serial0 { 145 + scif0_pins: scif0 { 146 146 groups = "scif0_data_d"; 147 147 function = "scif0"; 148 148 }; ··· 167 167 function = "sdhi2"; 168 168 }; 169 169 170 - qspi_pins: spi0 { 170 + qspi_pins: qspi { 171 171 groups = "qspi_ctrl", "qspi_data4"; 172 172 function = "qspi"; 173 173 };
+7
arch/arm/boot/dts/r8a7791.dtsi
··· 43 43 cpus { 44 44 #address-cells = <1>; 45 45 #size-cells = <0>; 46 + enable-method = "renesas,apmu"; 46 47 47 48 cpu0: cpu@0 { 48 49 device_type = "cpu"; ··· 100 99 cooling-maps { 101 100 }; 102 101 }; 102 + }; 103 + 104 + apmu@e6152000 { 105 + compatible = "renesas,r8a7791-apmu", "renesas,apmu"; 106 + reg = <0 0xe6152000 0 0x188>; 107 + cpus = <&cpu0 &cpu1>; 103 108 }; 104 109 105 110 gic: interrupt-controller@f1001000 {
+66
arch/arm/boot/dts/r8a7792-blanche.dts
··· 1 + /* 2 + * Device Tree Source for the Blanche board 3 + * 4 + * Copyright (C) 2014 Renesas Electronics Corporation 5 + * Copyright (C) 2016 Cogent Embedded, Inc. 6 + * 7 + * This file is licensed under the terms of the GNU General Public License 8 + * version 2. This program is licensed "as is" without any warranty of any 9 + * kind, whether express or implied. 10 + */ 11 + 12 + /dts-v1/; 13 + #include "r8a7792.dtsi" 14 + 15 + / { 16 + model = "Blanche"; 17 + compatible = "renesas,blanche", "renesas,r8a7792"; 18 + 19 + aliases { 20 + serial0 = &scif0; 21 + serial1 = &scif3; 22 + }; 23 + 24 + chosen { 25 + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 26 + stdout-path = "serial0:115200n8"; 27 + }; 28 + 29 + memory@40000000 { 30 + device_type = "memory"; 31 + reg = <0 0x40000000 0 0x40000000>; 32 + }; 33 + 34 + d3_3v: regulator-3v3 { 35 + compatible = "regulator-fixed"; 36 + regulator-name = "D3.3V"; 37 + regulator-min-microvolt = <3300000>; 38 + regulator-max-microvolt = <3300000>; 39 + regulator-boot-on; 40 + regulator-always-on; 41 + }; 42 + 43 + ethernet@18000000 { 44 + compatible = "smsc,lan89218", "smsc,lan9115"; 45 + reg = <0 0x18000000 0 0x100>; 46 + phy-mode = "mii"; 47 + interrupt-parent = <&irqc>; 48 + interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 49 + smsc,irq-push-pull; 50 + reg-io-width = <4>; 51 + vddvario-supply = <&d3_3v>; 52 + vdd33a-supply = <&d3_3v>; 53 + }; 54 + }; 55 + 56 + &extal_clk { 57 + clock-frequency = <20000000>; 58 + }; 59 + 60 + &scif0 { 61 + status = "okay"; 62 + }; 63 + 64 + &scif3 { 65 + status = "okay"; 66 + };
+378
arch/arm/boot/dts/r8a7792.dtsi
··· 1 + /* 2 + * Device Tree Source for the r8a7792 SoC 3 + * 4 + * Copyright (C) 2016 Cogent Embedded Inc. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #include <dt-bindings/clock/r8a7792-clock.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/interrupt-controller/arm-gic.h> 14 + #include <dt-bindings/power/r8a7792-sysc.h> 15 + 16 + / { 17 + compatible = "renesas,r8a7792"; 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + 21 + cpus { 22 + #address-cells = <1>; 23 + #size-cells = <0>; 24 + enable-method = "renesas,apmu"; 25 + 26 + cpu0: cpu@0 { 27 + device_type = "cpu"; 28 + compatible = "arm,cortex-a15"; 29 + reg = <0>; 30 + clock-frequency = <1000000000>; 31 + clocks = <&cpg_clocks R8A7792_CLK_Z>; 32 + power-domains = <&sysc R8A7792_PD_CA15_CPU0>; 33 + next-level-cache = <&L2_CA15>; 34 + }; 35 + 36 + cpu1: cpu@1 { 37 + device_type = "cpu"; 38 + compatible = "arm,cortex-a15"; 39 + reg = <1>; 40 + clock-frequency = <1000000000>; 41 + power-domains = <&sysc R8A7792_PD_CA15_CPU1>; 42 + next-level-cache = <&L2_CA15>; 43 + }; 44 + 45 + L2_CA15: cache-controller@0 { 46 + compatible = "cache"; 47 + reg = <0>; 48 + cache-unified; 49 + cache-level = <2>; 50 + power-domains = <&sysc R8A7792_PD_CA15_SCU>; 51 + }; 52 + }; 53 + 54 + soc { 55 + compatible = "simple-bus"; 56 + interrupt-parent = <&gic>; 57 + 58 + #address-cells = <2>; 59 + #size-cells = <2>; 60 + ranges; 61 + 62 + apmu@e6152000 { 63 + compatible = "renesas,r8a7792-apmu", "renesas,apmu"; 64 + reg = <0 0xe6152000 0 0x188>; 65 + cpus = <&cpu0 &cpu1>; 66 + }; 67 + 68 + gic: interrupt-controller@f1001000 { 69 + compatible = "arm,gic-400"; 70 + #interrupt-cells = <3>; 71 + interrupt-controller; 72 + reg = <0 0xf1001000 0 0x1000>, 73 + <0 0xf1002000 0 0x1000>, 74 + <0 0xf1004000 0 0x2000>, 75 + <0 0xf1006000 0 0x2000>; 76 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 77 + IRQ_TYPE_LEVEL_HIGH)>; 78 + }; 79 + 80 + irqc: interrupt-controller@e61c0000 { 81 + compatible = "renesas,irqc-r8a7792", "renesas,irqc"; 82 + #interrupt-cells = <2>; 83 + interrupt-controller; 84 + reg = <0 0xe61c0000 0 0x200>; 85 + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 86 + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 87 + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 88 + <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 89 + clocks = <&mstp4_clks R8A7792_CLK_IRQC>; 90 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 91 + }; 92 + 93 + timer { 94 + compatible = "arm,armv7-timer"; 95 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | 96 + IRQ_TYPE_LEVEL_LOW)>, 97 + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 98 + IRQ_TYPE_LEVEL_LOW)>, 99 + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | 100 + IRQ_TYPE_LEVEL_LOW)>, 101 + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | 102 + IRQ_TYPE_LEVEL_LOW)>; 103 + }; 104 + 105 + sysc: system-controller@e6180000 { 106 + compatible = "renesas,r8a7792-sysc"; 107 + reg = <0 0xe6180000 0 0x0200>; 108 + #power-domain-cells = <1>; 109 + }; 110 + 111 + dmac0: dma-controller@e6700000 { 112 + compatible = "renesas,dmac-r8a7792", 113 + "renesas,rcar-dmac"; 114 + reg = <0 0xe6700000 0 0x20000>; 115 + interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH 116 + GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 117 + GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH 118 + GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 119 + GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 120 + GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 121 + GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 122 + GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 123 + GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH 124 + GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH 125 + GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH 126 + GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH 127 + GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH 128 + GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 129 + GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH 130 + GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>; 131 + interrupt-names = "error", 132 + "ch0", "ch1", "ch2", "ch3", 133 + "ch4", "ch5", "ch6", "ch7", 134 + "ch8", "ch9", "ch10", "ch11", 135 + "ch12", "ch13", "ch14"; 136 + clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC0>; 137 + clock-names = "fck"; 138 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 139 + #dma-cells = <1>; 140 + dma-channels = <15>; 141 + }; 142 + 143 + dmac1: dma-controller@e6720000 { 144 + compatible = "renesas,dmac-r8a7792", 145 + "renesas,rcar-dmac"; 146 + reg = <0 0xe6720000 0 0x20000>; 147 + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 148 + GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 149 + GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 150 + GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 151 + GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 152 + GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 153 + GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 154 + GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 155 + GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH 156 + GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 157 + GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 158 + GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 159 + GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 160 + GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 161 + GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 162 + GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>; 163 + interrupt-names = "error", 164 + "ch0", "ch1", "ch2", "ch3", 165 + "ch4", "ch5", "ch6", "ch7", 166 + "ch8", "ch9", "ch10", "ch11", 167 + "ch12", "ch13", "ch14"; 168 + clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC1>; 169 + clock-names = "fck"; 170 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 171 + #dma-cells = <1>; 172 + dma-channels = <15>; 173 + }; 174 + 175 + scif0: serial@e6e60000 { 176 + compatible = "renesas,scif-r8a7792", 177 + "renesas,rcar-gen2-scif", "renesas,scif"; 178 + reg = <0 0xe6e60000 0 64>; 179 + interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 180 + clocks = <&mstp7_clks R8A7792_CLK_SCIF0>, <&zs_clk>, 181 + <&scif_clk>; 182 + clock-names = "fck", "brg_int", "scif_clk"; 183 + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 184 + <&dmac1 0x29>, <&dmac1 0x2a>; 185 + dma-names = "tx", "rx", "tx", "rx"; 186 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 187 + status = "disabled"; 188 + }; 189 + 190 + scif1: serial@e6e68000 { 191 + compatible = "renesas,scif-r8a7792", 192 + "renesas,rcar-gen2-scif", "renesas,scif"; 193 + reg = <0 0xe6e68000 0 64>; 194 + interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 195 + clocks = <&mstp7_clks R8A7792_CLK_SCIF1>, <&zs_clk>, 196 + <&scif_clk>; 197 + clock-names = "fck", "brg_int", "scif_clk"; 198 + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 199 + <&dmac1 0x2d>, <&dmac1 0x2e>; 200 + dma-names = "tx", "rx", "tx", "rx"; 201 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 202 + status = "disabled"; 203 + }; 204 + 205 + scif2: serial@e6e58000 { 206 + compatible = "renesas,scif-r8a7792", 207 + "renesas,rcar-gen2-scif", "renesas,scif"; 208 + reg = <0 0xe6e58000 0 64>; 209 + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 210 + clocks = <&mstp7_clks R8A7792_CLK_SCIF2>, <&zs_clk>, 211 + <&scif_clk>; 212 + clock-names = "fck", "brg_int", "scif_clk"; 213 + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 214 + <&dmac1 0x2b>, <&dmac1 0x2c>; 215 + dma-names = "tx", "rx", "tx", "rx"; 216 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 217 + status = "disabled"; 218 + }; 219 + 220 + scif3: serial@e6ea8000 { 221 + compatible = "renesas,scif-r8a7792", 222 + "renesas,rcar-gen2-scif", "renesas,scif"; 223 + reg = <0 0xe6ea8000 0 64>; 224 + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 225 + clocks = <&mstp7_clks R8A7792_CLK_SCIF3>, <&zs_clk>, 226 + <&scif_clk>; 227 + clock-names = "fck", "brg_int", "scif_clk"; 228 + dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 229 + <&dmac1 0x2f>, <&dmac1 0x30>; 230 + dma-names = "tx", "rx", "tx", "rx"; 231 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 232 + status = "disabled"; 233 + }; 234 + 235 + hscif0: serial@e62c0000 { 236 + compatible = "renesas,hscif-r8a7792", 237 + "renesas,rcar-gen2-hscif", "renesas,hscif"; 238 + reg = <0 0xe62c0000 0 96>; 239 + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 240 + clocks = <&mstp7_clks R8A7792_CLK_HSCIF0>, <&zs_clk>, 241 + <&scif_clk>; 242 + clock-names = "fck", "brg_int", "scif_clk"; 243 + dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 244 + <&dmac1 0x39>, <&dmac1 0x3a>; 245 + dma-names = "tx", "rx", "tx", "rx"; 246 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 247 + status = "disabled"; 248 + }; 249 + 250 + hscif1: serial@e62c8000 { 251 + compatible = "renesas,hscif-r8a7792", 252 + "renesas,rcar-gen2-hscif", "renesas,hscif"; 253 + reg = <0 0xe62c8000 0 96>; 254 + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 255 + clocks = <&mstp7_clks R8A7792_CLK_HSCIF1>, <&zs_clk>, 256 + <&scif_clk>; 257 + clock-names = "fck", "brg_int", "scif_clk"; 258 + dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 259 + <&dmac1 0x4d>, <&dmac1 0x4e>; 260 + dma-names = "tx", "rx", "tx", "rx"; 261 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 262 + status = "disabled"; 263 + }; 264 + 265 + jpu: jpeg-codec@fe980000 { 266 + compatible = "renesas,jpu-r8a7792", 267 + "renesas,rcar-gen2-jpu"; 268 + reg = <0 0xfe980000 0 0x10300>; 269 + interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 270 + clocks = <&mstp1_clks R8A7792_CLK_JPU>; 271 + power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 272 + }; 273 + 274 + /* Special CPG clocks */ 275 + cpg_clocks: cpg_clocks@e6150000 { 276 + compatible = "renesas,r8a7792-cpg-clocks", 277 + "renesas,rcar-gen2-cpg-clocks"; 278 + reg = <0 0xe6150000 0 0x1000>; 279 + clocks = <&extal_clk>; 280 + #clock-cells = <1>; 281 + clock-output-names = "main", "pll0", "pll1", "pll3", 282 + "lb", "qspi", "z", "adsp"; 283 + #power-domain-cells = <0>; 284 + }; 285 + 286 + /* Fixed factor clocks */ 287 + zs_clk: zs { 288 + compatible = "fixed-factor-clock"; 289 + clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 290 + #clock-cells = <0>; 291 + clock-div = <6>; 292 + clock-mult = <1>; 293 + }; 294 + p_clk: p { 295 + compatible = "fixed-factor-clock"; 296 + clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 297 + #clock-cells = <0>; 298 + clock-div = <24>; 299 + clock-mult = <1>; 300 + }; 301 + cp_clk: cp { 302 + compatible = "fixed-factor-clock"; 303 + clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 304 + #clock-cells = <0>; 305 + clock-div = <48>; 306 + clock-mult = <1>; 307 + }; 308 + m2_clk: m2 { 309 + compatible = "fixed-factor-clock"; 310 + clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 311 + #clock-cells = <0>; 312 + clock-div = <8>; 313 + clock-mult = <1>; 314 + }; 315 + 316 + /* Gate clocks */ 317 + mstp1_clks: mstp1_clks@e6150134 { 318 + compatible = "renesas,r8a7792-mstp-clocks", 319 + "renesas,cpg-mstp-clocks"; 320 + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; 321 + clocks = <&m2_clk>; 322 + #clock-cells = <1>; 323 + clock-indices = <R8A7792_CLK_JPU>; 324 + clock-output-names = "jpu"; 325 + }; 326 + mstp2_clks: mstp2_clks@e6150138 { 327 + compatible = "renesas,r8a7792-mstp-clocks", 328 + "renesas,cpg-mstp-clocks"; 329 + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; 330 + clocks = <&zs_clk>, <&zs_clk>; 331 + #clock-cells = <1>; 332 + clock-indices = < 333 + R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0 334 + >; 335 + clock-output-names = "sys-dmac1", "sys-dmac0"; 336 + }; 337 + mstp4_clks: mstp4_clks@e6150140 { 338 + compatible = "renesas,r8a7792-mstp-clocks", 339 + "renesas,cpg-mstp-clocks"; 340 + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 341 + clocks = <&cp_clk>; 342 + #clock-cells = <1>; 343 + clock-indices = <R8A7792_CLK_IRQC>; 344 + clock-output-names = "irqc"; 345 + }; 346 + mstp7_clks: mstp7_clks@e615014c { 347 + compatible = "renesas,r8a7792-mstp-clocks", 348 + "renesas,cpg-mstp-clocks"; 349 + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; 350 + clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, 351 + <&p_clk>, <&p_clk>; 352 + #clock-cells = <1>; 353 + clock-indices = < 354 + R8A7792_CLK_HSCIF1 R8A7792_CLK_HSCIF0 355 + R8A7792_CLK_SCIF3 R8A7792_CLK_SCIF2 356 + R8A7792_CLK_SCIF1 R8A7792_CLK_SCIF0 357 + >; 358 + clock-output-names = "hscif1", "hscif0", "scif3", 359 + "scif2", "scif1", "scif0"; 360 + }; 361 + }; 362 + 363 + /* External root clock */ 364 + extal_clk: extal { 365 + compatible = "fixed-clock"; 366 + #clock-cells = <0>; 367 + /* This value must be overridden by the board. */ 368 + clock-frequency = <0>; 369 + }; 370 + 371 + /* External SCIF clock */ 372 + scif_clk: scif { 373 + compatible = "fixed-clock"; 374 + #clock-cells = <0>; 375 + /* This value must be overridden by the board. */ 376 + clock-frequency = <0>; 377 + }; 378 + };
+3 -3
arch/arm/boot/dts/r8a7793-gose.dts
··· 320 320 function = "du"; 321 321 }; 322 322 323 - scif0_pins: serial0 { 323 + scif0_pins: scif0 { 324 324 groups = "scif0_data_d"; 325 325 function = "scif0"; 326 326 }; 327 327 328 - scif1_pins: serial1 { 328 + scif1_pins: scif1 { 329 329 groups = "scif1_data_d"; 330 330 function = "scif1"; 331 331 }; ··· 360 360 renesas,function = "sdhi2"; 361 361 }; 362 362 363 - qspi_pins: spi0 { 363 + qspi_pins: qspi { 364 364 groups = "qspi_ctrl", "qspi_data4"; 365 365 function = "qspi"; 366 366 };
+15
arch/arm/boot/dts/r8a7793.dtsi
··· 35 35 cpus { 36 36 #address-cells = <1>; 37 37 #size-cells = <0>; 38 + enable-method = "renesas,apmu"; 38 39 39 40 cpu0: cpu@0 { 40 41 device_type = "cpu"; ··· 57 56 next-level-cache = <&L2_CA15>; 58 57 }; 59 58 59 + cpu1: cpu@1 { 60 + device_type = "cpu"; 61 + compatible = "arm,cortex-a15"; 62 + reg = <1>; 63 + clock-frequency = <1500000000>; 64 + power-domains = <&sysc R8A7793_PD_CA15_CPU1>; 65 + }; 66 + 60 67 L2_CA15: cache-controller@0 { 61 68 compatible = "cache"; 62 69 reg = <0>; ··· 72 63 cache-unified; 73 64 cache-level = <2>; 74 65 }; 66 + }; 67 + 68 + apmu@e6152000 { 69 + compatible = "renesas,r8a7793-apmu", "renesas,apmu"; 70 + reg = <0 0xe6152000 0 0x188>; 71 + cpus = <&cpu0 &cpu1>; 75 72 }; 76 73 77 74 thermal-zones {
+2 -2
arch/arm/boot/dts/r8a7794-alt.dts
··· 111 111 function = "du"; 112 112 }; 113 113 114 - scif2_pins: serial2 { 114 + scif2_pins: scif2 { 115 115 groups = "scif2_data"; 116 116 function = "scif2"; 117 117 }; ··· 147 147 }; 148 148 149 149 &pfc { 150 - qspi_pins: spi0 { 150 + qspi_pins: qspi { 151 151 groups = "qspi_ctrl", "qspi_data4"; 152 152 function = "qspi"; 153 153 };
+14 -2
arch/arm/boot/dts/r8a7794-silk.dts
··· 129 129 pinctrl-0 = <&scif_clk_pins>; 130 130 pinctrl-names = "default"; 131 131 132 - scif2_pins: serial2 { 132 + scif2_pins: scif2 { 133 133 groups = "scif2_data"; 134 134 function = "scif2"; 135 135 }; ··· 164 164 function = "sdhi1"; 165 165 }; 166 166 167 - qspi_pins: spi0 { 167 + qspi_pins: qspi { 168 168 groups = "qspi_ctrl", "qspi_data4"; 169 169 function = "qspi"; 170 170 }; ··· 182 182 usb1_pins: usb1 { 183 183 groups = "usb1"; 184 184 function = "usb1"; 185 + }; 186 + 187 + du0_pins: du0 { 188 + groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out"; 189 + function = "du0"; 190 + }; 191 + 192 + du1_pins: du1 { 193 + groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out"; 194 + function = "du1"; 185 195 }; 186 196 }; 187 197 ··· 370 360 }; 371 361 372 362 &du { 363 + pinctrl-0 = <&du0_pins &du1_pins>; 364 + pinctrl-names = "default"; 373 365 status = "okay"; 374 366 375 367 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
+4 -4
arch/arm/boot/dts/sh73a0-kzm9g.dts
··· 22 22 compatible = "renesas,kzm9g", "renesas,sh73a0"; 23 23 24 24 aliases { 25 - serial4 = &scifa4; 25 + serial0 = &scifa4; 26 26 }; 27 27 28 28 cpus { ··· 39 39 }; 40 40 41 41 chosen { 42 - bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel rw"; 43 - stdout-path = &scifa4; 42 + bootargs = "root=/dev/nfs ip=dhcp ignore_loglevel rw"; 43 + stdout-path = "serial0:115200n8"; 44 44 }; 45 45 46 46 memory@40000000 { ··· 352 352 }; 353 353 }; 354 354 355 - scifa4_pins: serial4 { 355 + scifa4_pins: scifa4 { 356 356 groups = "scifa4_data", "scifa4_ctrl"; 357 357 function = "scifa4"; 358 358 };
+103
include/dt-bindings/clock/r8a7792-clock.h
··· 1 + /* 2 + * Copyright (C) 2016 Cogent Embedded, Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License as published by 6 + * the Free Software Foundation; either version 2 of the License, or 7 + * (at your option) any later version. 8 + */ 9 + 10 + #ifndef __DT_BINDINGS_CLOCK_R8A7792_H__ 11 + #define __DT_BINDINGS_CLOCK_R8A7792_H__ 12 + 13 + /* CPG */ 14 + #define R8A7792_CLK_MAIN 0 15 + #define R8A7792_CLK_PLL0 1 16 + #define R8A7792_CLK_PLL1 2 17 + #define R8A7792_CLK_PLL3 3 18 + #define R8A7792_CLK_LB 4 19 + #define R8A7792_CLK_QSPI 5 20 + #define R8A7792_CLK_Z 6 21 + #define R8A7792_CLK_ADSP 7 22 + 23 + /* MSTP0 */ 24 + #define R8A7792_CLK_MSIOF0 0 25 + 26 + /* MSTP1 */ 27 + #define R8A7792_CLK_JPU 6 28 + #define R8A7792_CLK_TMU1 11 29 + #define R8A7792_CLK_TMU3 21 30 + #define R8A7792_CLK_TMU2 22 31 + #define R8A7792_CLK_CMT0 24 32 + #define R8A7792_CLK_TMU0 25 33 + #define R8A7792_CLK_VSP1DU1 27 34 + #define R8A7792_CLK_VSP1DU0 28 35 + #define R8A7792_CLK_VSP1_SY 31 36 + 37 + /* MSTP2 */ 38 + #define R8A7792_CLK_MSIOF1 8 39 + #define R8A7792_CLK_SYS_DMAC1 18 40 + #define R8A7792_CLK_SYS_DMAC0 19 41 + 42 + /* MSTP3 */ 43 + #define R8A7792_CLK_TPU0 4 44 + #define R8A7792_CLK_SDHI0 14 45 + #define R8A7792_CLK_CMT1 29 46 + 47 + /* MSTP4 */ 48 + #define R8A7792_CLK_IRQC 7 49 + 50 + /* MSTP5 */ 51 + #define R8A7792_CLK_AUDIO_DMAC0 2 52 + #define R8A7792_CLK_THERMAL 22 53 + #define R8A7792_CLK_PWM 23 54 + 55 + /* MSTP7 */ 56 + #define R8A7792_CLK_HSCIF1 16 57 + #define R8A7792_CLK_HSCIF0 17 58 + #define R8A7792_CLK_SCIF3 18 59 + #define R8A7792_CLK_SCIF2 19 60 + #define R8A7792_CLK_SCIF1 20 61 + #define R8A7792_CLK_SCIF0 21 62 + #define R8A7792_CLK_DU1 23 63 + #define R8A7792_CLK_DU0 24 64 + 65 + /* MSTP8 */ 66 + #define R8A7792_CLK_VIN5 4 67 + #define R8A7792_CLK_VIN4 5 68 + #define R8A7792_CLK_VIN3 8 69 + #define R8A7792_CLK_VIN2 9 70 + #define R8A7792_CLK_VIN1 10 71 + #define R8A7792_CLK_VIN0 11 72 + #define R8A7792_CLK_ETHERAVB 12 73 + 74 + /* MSTP9 */ 75 + #define R8A7792_CLK_GPIO7 4 76 + #define R8A7792_CLK_GPIO6 5 77 + #define R8A7792_CLK_GPIO5 7 78 + #define R8A7792_CLK_GPIO4 8 79 + #define R8A7792_CLK_GPIO3 9 80 + #define R8A7792_CLK_GPIO2 10 81 + #define R8A7792_CLK_GPIO1 11 82 + #define R8A7792_CLK_GPIO0 12 83 + #define R8A7792_CLK_GPIO11 13 84 + #define R8A7792_CLK_GPIO10 14 85 + #define R8A7792_CLK_CAN1 15 86 + #define R8A7792_CLK_CAN0 16 87 + #define R8A7792_CLK_QSPI_MOD 17 88 + #define R8A7792_CLK_GPIO9 19 89 + #define R8A7792_CLK_GPIO8 21 90 + #define R8A7792_CLK_I2C5 25 91 + #define R8A7792_CLK_IICDVFS 26 92 + #define R8A7792_CLK_I2C4 27 93 + #define R8A7792_CLK_I2C3 28 94 + #define R8A7792_CLK_I2C2 29 95 + #define R8A7792_CLK_I2C1 30 96 + #define R8A7792_CLK_I2C0 31 97 + 98 + /* MSTP10 */ 99 + #define R8A7792_CLK_SSI_ALL 5 100 + #define R8A7792_CLK_SSI4 11 101 + #define R8A7792_CLK_SSI3 12 102 + 103 + #endif /* __DT_BINDINGS_CLOCK_R8A7792_H__ */
+26
include/dt-bindings/power/r8a7792-sysc.h
··· 1 + /* 2 + * Copyright (C) 2016 Cogent Embedded Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License as published by 6 + * the Free Software Foundation; version 2 of the License. 7 + */ 8 + #ifndef __DT_BINDINGS_POWER_R8A7792_SYSC_H__ 9 + #define __DT_BINDINGS_POWER_R8A7792_SYSC_H__ 10 + 11 + /* 12 + * These power domain indices match the numbers of the interrupt bits 13 + * representing the power areas in the various Interrupt Registers 14 + * (e.g. SYSCISR, Interrupt Status Register) 15 + */ 16 + 17 + #define R8A7792_PD_CA15_CPU0 0 18 + #define R8A7792_PD_CA15_CPU1 1 19 + #define R8A7792_PD_CA15_SCU 12 20 + #define R8A7792_PD_SGX 20 21 + #define R8A7792_PD_IMP 24 22 + 23 + /* Always-on power area */ 24 + #define R8A7792_PD_ALWAYS_ON 32 25 + 26 + #endif /* __DT_BINDINGS_POWER_R8A7792_SYSC_H__ */