Commit 5fd70b1b authored by Olof Johansson's avatar Olof Johansson

Merge tag 'renesas-dt2-for-v4.8' of...

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: default avatarOlof Johansson <olof@lixom.net>
parents 46e6b3aa 8fd763c7
......@@ -206,6 +206,7 @@ nodes to be present and contain the properties described below.
"qcom,gcc-msm8660"
"qcom,kpss-acc-v1"
"qcom,kpss-acc-v2"
"renesas,apmu"
"rockchip,rk3036-smp"
"rockchip,rk3066-smp"
"ste,dbx500-smp"
......
......@@ -39,6 +39,8 @@ Boards:
compatible = "renesas,ape6evm", "renesas,r8a73a4"
- Atmark Techno Armadillo-800 EVA
compatible = "renesas,armadillo800eva"
- Blanche (RTP0RC7792SEB00010S)
compatible = "renesas,blanche", "renesas,r8a7792"
- BOCK-W
compatible = "renesas,bockw", "renesas,r8a7778"
- Genmai (RTK772100BC00000BR)
......
DT bindings for the Renesas Advanced Power Management Unit
Renesas R-Car line of SoCs utilize one or more APMU hardware units
for CPU core power domain control including SMP boot and CPU Hotplug.
Required properties:
- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
Examples with soctypes are:
- "renesas,r8a7790-apmu" (R-Car H2)
- "renesas,r8a7791-apmu" (R-Car M2-W)
- "renesas,r8a7792-apmu" (R-Car V2H)
- "renesas,r8a7793-apmu" (R-Car M2-N)
- "renesas,r8a7794-apmu" (R-Car E2)
- reg: Base address and length of the I/O registers used by the APMU.
- cpus: This node contains a list of CPU cores, which should match the order
of CPU cores used by the WUPCR and PSTR registers in the Advanced Power
Management Unit section of the device's datasheet.
Example:
This shows the r8a7791 APMU that can control CPU0 and CPU1.
apmu@e6152000 {
compatible = "renesas,r8a7791-apmu", "renesas,apmu";
reg = <0 0xe6152000 0 0x188>;
cpus = <&cpu0 &cpu1>;
};
......@@ -653,6 +653,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
r8a7790-lager.dtb \
r8a7791-koelsch.dtb \
r8a7791-porter.dtb \
r8a7792-blanche.dtb \
r8a7793-gose.dtb \
r8a7794-alt.dtb \
r8a7794-silk.dtb \
......
......@@ -23,9 +23,13 @@ memory@40000000 {
reg = <0x40000000 0x8000000>;
};
aliases {
serial1 = &uart1;
};
chosen {
bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp";
stdout-path = &uart1;
bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp";
stdout-path = "serial1:115200n8";
};
gpio_keys {
......
......@@ -17,12 +17,12 @@ / {
compatible = "renesas,genmai", "renesas,r7s72100";
aliases {
serial2 = &scif2;
serial0 = &scif2;
};
chosen {
bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
stdout-path = &scif2;
stdout-path = "serial0:115200n8";
};
memory@8000000 {
......
......@@ -188,12 +188,12 @@ &cmt1 {
};
&pfc {
scifa0_pins: serial0 {
scifa0_pins: scifa0 {
groups = "scifa0_data";
function = "scifa0";
};
mmc0_pins: mmc {
mmc0_pins: mmc0 {
groups = "mmc0_data8", "mmc0_ctrl";
function = "mmc0";
};
......
......@@ -20,12 +20,12 @@ / {
compatible = "renesas,armadillo800eva", "renesas,r8a7740";
aliases {
serial1 = &scifa1;
serial0 = &scifa1;
};
chosen {
bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
stdout-path = &scifa1;
bootargs = "earlyprintk ignore_loglevel root=/dev/nfs ip=dhcp rw";
stdout-path = "serial0:115200n8";
};
memory@40000000 {
......@@ -232,7 +232,7 @@ ether_pins: ether {
function = "gether";
};
scifa1_pins: serial1 {
scifa1_pins: scifa1 {
groups = "scifa1_data";
function = "scifa1";
};
......
......@@ -129,7 +129,7 @@ &pfc {
pinctrl-0 = <&scif_clk_pins>;
pinctrl-names = "default";
scif0_pins: serial0 {
scif0_pins: scif0 {
groups = "scif0_data_a", "scif0_ctrl";
function = "scif0";
};
......
......@@ -25,7 +25,7 @@ aliases {
chosen {
bootargs = "ignore_loglevel root=/dev/nfs ip=on";
stdout-path = &scif2;
stdout-path = "serial0:115200n8";
};
memory@60000000 {
......@@ -195,12 +195,12 @@ lbsc {
};
};
scif2_pins: serial2 {
scif2_pins: scif2 {
groups = "scif2_data_c";
function = "scif2";
};
scif4_pins: serial4 {
scif4_pins: scif4 {
groups = "scif4_data";
function = "scif4";
};
......
......@@ -317,7 +317,7 @@ du_pins: du {
function = "du";
};
scif0_pins: serial0 {
scif0_pins: scif0 {
groups = "scif0_data";
function = "scif0";
};
......@@ -337,7 +337,7 @@ phy1_pins: phy1 {
function = "intc";
};
scifa1_pins: serial1 {
scifa1_pins: scifa1 {
groups = "scifa1_data";
function = "scifa1";
};
......@@ -371,12 +371,12 @@ mmc1_pins: mmc1 {
function = "mmc1";
};
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
msiof1_pins: spi2 {
msiof1_pins: msiof1 {
groups = "msiof1_clk", "msiof1_sync", "msiof1_rx",
"msiof1_tx";
function = "msiof1";
......@@ -427,7 +427,7 @@ usb2_pins: usb2 {
function = "usb2";
};
vin1_pins: vin {
vin1_pins: vin1 {
groups = "vin1_data8", "vin1_clk";
function = "vin1";
};
......
......@@ -44,6 +44,7 @@ aliases {
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "renesas,apmu";
cpu0: cpu@0 {
device_type = "cpu";
......@@ -164,6 +165,18 @@ cooling-maps {
};
};
apmu@e6151000 {
compatible = "renesas,r8a7790-apmu", "renesas,apmu";
reg = <0 0xe6151000 0 0x188>;
cpus = <&cpu4 &cpu5 &cpu6 &cpu7>;
};
apmu@e6152000 {
compatible = "renesas,r8a7790-apmu", "renesas,apmu";
reg = <0 0xe6152000 0 0x188>;
cpus = <&cpu0 &cpu1 &cpu2 &cpu3>;
};
gic: interrupt-controller@f1001000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
......
......@@ -332,12 +332,12 @@ du_pins: du {
function = "du";
};
scif0_pins: serial0 {
scif0_pins: scif0 {
groups = "scif0_data_d";
function = "scif0";
};
scif1_pins: serial1 {
scif1_pins: scif1 {
groups = "scif1_data_d";
function = "scif1";
};
......@@ -372,12 +372,12 @@ sdhi2_pins: sd2 {
function = "sdhi2";
};
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
msiof0_pins: spi1 {
msiof0_pins: msiof0 {
groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
"msiof0_tx";
function = "msiof0";
......
......@@ -142,7 +142,7 @@ &extal_clk {
};
&pfc {
scif0_pins: serial0 {
scif0_pins: scif0 {
groups = "scif0_data_d";
function = "scif0";
};
......@@ -167,7 +167,7 @@ sdhi2_pins: sd2 {
function = "sdhi2";
};
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
......
......@@ -43,6 +43,7 @@ aliases {
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "renesas,apmu";
cpu0: cpu@0 {
device_type = "cpu";
......@@ -101,6 +102,12 @@ cooling-maps {
};
};
apmu@e6152000 {
compatible = "renesas,r8a7791-apmu", "renesas,apmu";
reg = <0 0xe6152000 0 0x188>;
cpus = <&cpu0 &cpu1>;
};
gic: interrupt-controller@f1001000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
......
/*
* Device Tree Source for the Blanche board
*
* Copyright (C) 2014 Renesas Electronics Corporation
* Copyright (C) 2016 Cogent Embedded, Inc.
*
* This file is licensed under the terms of the GNU General Public License
* version 2. This program is licensed "as is" without any warranty of any
* kind, whether express or implied.
*/
/dts-v1/;
#include "r8a7792.dtsi"
/ {
model = "Blanche";
compatible = "renesas,blanche", "renesas,r8a7792";
aliases {
serial0 = &scif0;
serial1 = &scif3;
};
chosen {
bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
stdout-path = "serial0:115200n8";
};
memory@40000000 {
device_type = "memory";
reg = <0 0x40000000 0 0x40000000>;
};
d3_3v: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "D3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ethernet@18000000 {
compatible = "smsc,lan89218", "smsc,lan9115";
reg = <0 0x18000000 0 0x100>;
phy-mode = "mii";
interrupt-parent = <&irqc>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
smsc,irq-push-pull;
reg-io-width = <4>;
vddvario-supply = <&d3_3v>;
vdd33a-supply = <&d3_3v>;
};
};
&extal_clk {
clock-frequency = <20000000>;
};
&scif0 {
status = "okay";
};
&scif3 {
status = "okay";
};
This diff is collapsed.
......@@ -320,12 +320,12 @@ du_pins: du {
function = "du";
};
scif0_pins: serial0 {
scif0_pins: scif0 {
groups = "scif0_data_d";
function = "scif0";
};
scif1_pins: serial1 {
scif1_pins: scif1 {
groups = "scif1_data_d";
function = "scif1";
};
......@@ -360,7 +360,7 @@ sdhi2_pins: sd2 {
renesas,function = "sdhi2";
};
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
......
......@@ -35,6 +35,7 @@ aliases {
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "renesas,apmu";
cpu0: cpu@0 {
device_type = "cpu";
......@@ -56,6 +57,14 @@ cpu0: cpu@0 {
next-level-cache = <&L2_CA15>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <1>;
clock-frequency = <1500000000>;
power-domains = <&sysc R8A7793_PD_CA15_CPU1>;
};
L2_CA15: cache-controller@0 {
compatible = "cache";
reg = <0>;
......@@ -65,6 +74,12 @@ L2_CA15: cache-controller@0 {
};
};
apmu@e6152000 {
compatible = "renesas,r8a7793-apmu", "renesas,apmu";
reg = <0 0xe6152000 0 0x188>;
cpus = <&cpu0 &cpu1>;
};
thermal-zones {
cpu_thermal: cpu-thermal {
polling-delay-passive = <0>;
......
......@@ -111,7 +111,7 @@ du_pins: du {
function = "du";
};
scif2_pins: serial2 {
scif2_pins: scif2 {
groups = "scif2_data";
function = "scif2";
};
......@@ -147,7 +147,7 @@ &cmt0 {
};
&pfc {
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
......
......@@ -129,7 +129,7 @@ &pfc {
pinctrl-0 = <&scif_clk_pins>;
pinctrl-names = "default";
scif2_pins: serial2 {
scif2_pins: scif2 {
groups = "scif2_data";
function = "scif2";
};
......@@ -164,7 +164,7 @@ sdhi1_pins: sd1 {
function = "sdhi1";
};
qspi_pins: spi0 {
qspi_pins: qspi {
groups = "qspi_ctrl", "qspi_data4";
function = "qspi";
};
......@@ -183,6 +183,16 @@ usb1_pins: usb1 {
groups = "usb1";
function = "usb1";
};
du0_pins: du0 {
groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
function = "du0";
};
du1_pins: du1 {
groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
function = "du1";
};
};
&scif2 {
......@@ -360,6 +370,8 @@ &usbphy {
};
&du {
pinctrl-0 = <&du0_pins &du1_pins>;
pinctrl-names = "default";
status = "okay";
clocks = <&mstp7_clks R8A7794_CLK_DU0>,
......
......@@ -22,7 +22,7 @@ / {
compatible = "renesas,kzm9g", "renesas,sh73a0";
aliases {
serial4 = &scifa4;
serial0 = &scifa4;
};
cpus {
......@@ -39,8 +39,8 @@ cpu@0 {
};
chosen {
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel rw";
stdout-path = &scifa4;
bootargs = "root=/dev/nfs ip=dhcp ignore_loglevel rw";
stdout-path = "serial0:115200n8";
};
memory@40000000 {
......@@ -352,7 +352,7 @@ cfg {
};
};
scifa4_pins: serial4 {
scifa4_pins: scifa4 {
groups = "scifa4_data", "scifa4_ctrl";
function = "scifa4";
};
......
/*
* Copyright (C) 2016 Cogent Embedded, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef __DT_BINDINGS_CLOCK_R8A7792_H__
#define __DT_BINDINGS_CLOCK_R8A7792_H__
/* CPG */
#define R8A7792_CLK_MAIN 0
#define R8A7792_CLK_PLL0 1
#define R8A7792_CLK_PLL1 2
#define R8A7792_CLK_PLL3 3
#define R8A7792_CLK_LB 4
#define R8A7792_CLK_QSPI 5
#define R8A7792_CLK_Z 6
#define R8A7792_CLK_ADSP 7
/* MSTP0 */
#define R8A7792_CLK_MSIOF0 0
/* MSTP1 */
#define R8A7792_CLK_JPU 6
#define R8A7792_CLK_TMU1 11
#define R8A7792_CLK_TMU3 21
#define R8A7792_CLK_TMU2 22
#define R8A7792_CLK_CMT0 24
#define R8A7792_CLK_TMU0 25
#define R8A7792_CLK_VSP1DU1 27
#define R8A7792_CLK_VSP1DU0 28
#define R8A7792_CLK_VSP1_SY 31
/* MSTP2 */
#define R8A7792_CLK_MSIOF1 8
#define R8A7792_CLK_SYS_DMAC1 18
#define R8A7792_CLK_SYS_DMAC0 19
/* MSTP3 */
#define R8A7792_CLK_TPU0 4
#define R8A7792_CLK_SDHI0 14
#define R8A7792_CLK_CMT1 29
/* MSTP4 */
#define R8A7792_CLK_IRQC 7
/* MSTP5 */
#define R8A7792_CLK_AUDIO_DMAC0 2
#define R8A7792_CLK_THERMAL 22
#define R8A7792_CLK_PWM 23
/* MSTP7 */
#define R8A7792_CLK_HSCIF1 16
#define R8A7792_CLK_HSCIF0 17
#define R8A7792_CLK_SCIF3 18
#define R8A7792_CLK_SCIF2 19
#define R8A7792_CLK_SCIF1 20
#define R8A7792_CLK_SCIF0 21
#define R8A7792_CLK_DU1 23
#define R8A7792_CLK_DU0 24
/* MSTP8 */
#define R8A7792_CLK_VIN5 4
#define R8A7792_CLK_VIN4 5
#define R8A7792_CLK_VIN3 8
#define R8A7792_CLK_VIN2 9
#define R8A7792_CLK_VIN1 10
#define R8A7792_CLK_VIN0 11
#define R8A7792_CLK_ETHERAVB 12
/* MSTP9 */
#define R8A7792_CLK_GPIO7 4
#define R8A7792_CLK_GPIO6 5
#define R8A7792_CLK_GPIO5 7
#define R8A7792_CLK_GPIO4 8
#define R8A7792_CLK_GPIO3 9
#define R8A7792_CLK_GPIO2 10
#define R8A7792_CLK_GPIO1 11
#define R8A7792_CLK_GPIO0 12
#define R8A7792_CLK_GPIO11 13
#define R8A7792_CLK_GPIO10 14
#define R8A7792_CLK_CAN1 15
#define R8A7792_CLK_CAN0 16
#define R8A7792_CLK_QSPI_MOD 17
#define R8A7792_CLK_GPIO9 19
#define R8A7792_CLK_GPIO8 21
#define R8A7792_CLK_I2C5 25
#define R8A7792_CLK_IICDVFS 26
#define R8A7792_CLK_I2C4 27
#define R8A7792_CLK_I2C3 28
#define R8A7792_CLK_I2C2 29
#define R8A7792_CLK_I2C1 30
#define R8A7792_CLK_I2C0 31
/* MSTP10 */
#define R8A7792_CLK_SSI_ALL 5
#define R8A7792_CLK_SSI4 11
#define R8A7792_CLK_SSI3 12
#endif /* __DT_BINDINGS_CLOCK_R8A7792_H__ */
/*
* Copyright (C) 2016 Cogent Embedded Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*/
#ifndef __DT_BINDINGS_POWER_R8A7792_SYSC_H__
#define __DT_BINDINGS_POWER_R8A7792_SYSC_H__
/*
* These power domain indices match the numbers of the interrupt bits
* representing the power areas in the various Interrupt Registers
* (e.g. SYSCISR, Interrupt Status Register)
*/
#define R8A7792_PD_CA15_CPU0 0
#define R8A7792_PD_CA15_CPU1 1
#define R8A7792_PD_CA15_SCU 12
#define R8A7792_PD_SGX 20
#define R8A7792_PD_IMP 24
/* Always-on power area */
#define R8A7792_PD_ALWAYS_ON 32
#endif /* __DT_BINDINGS_POWER_R8A7792_SYSC_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment