Commit 150daec9 authored by Olof Johansson's avatar Olof Johansson

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

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

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

* r8a7745 (RZ/G1E) SoC
  - Enable SMP

    Fabrizio Castro says "Add DT node for the Advanced Power Management
    Unit (APMU), add the second CPU core, and use "renesas,apmu" as
    "enable-method"."

* r8a7743 (RZ/G1M) SoC
  - Add node for thermal sensor module with thermal-zone support

* r8a7743 (RZ/G1M) and r8a7745 (RZ/G1E) SoCs
  - Add:
    + Renesas Core Match Timer (CMT) support
    + Renesas Timer Pulse Unit PWM Controller (TPU) support
    + Renesas PWM Timer Controller (PWM) support

* r8a7743 (RZ/G1M) iW-RainboW-G20D-Qseven and
  r8a7745 (RZ/G1E) iW-RainboW-G22D development platforms
  - Add sound support

* r8a7743 (RZ/G1M), r8a7745 (RZ/G1E) and r8a7792 (R-Car V2H) SoCs
  - Allow DTBs of boards of these SoCs to build without any warnings when
    compiled with W=1 using gcc-linaro-5.4.1-2017.05
    + Move nodes which have no reg property out of bus, they don't belong there
    + Also sort sub-nodes of root node to allow for easier maintenance

* r8a7790 (R-Car H2), r8a7791 (R-Car M2-W) and r8a7793 (R-Car M2-N) SoCs
  - Correct critical CPU temperature

    Chris Paterson says "The current R-Car Gen2 device trees define the CPU
    critical temperature as 115°C.

    The R-Car hardware manuals state that Tc = –40°C to +105°C. The thermal
    sensor has an accuracy of ±5°C and there can be a temperature
    difference of 1 or 2 degrees between Tjmax and the thermal sensor due
    to the location of the latter.

    This means that 95°C is a safer value to use.

    This value should also apply to r8a7792 but thermal sensor support has
    not been added yet."

* r8a7740 (R-Mobile A1) SoC
  - Correct TPU register block size

    Geert Uytterhoven says "The Timer Pulse Unit has registers that lie
    outside the declared register block.  Enlarge the register block size to
    fix this.

    This was probably based on the old platform code, which also assumed a
    register block size of 0x100."

* tag 'renesas-dt2-for-v4.16' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (37 commits)
  ARM: dts: r8a7745: Add missing clock for secondary CA7 CPU core
  ARM: dts: iwg22d-sodimm: Sound DMA support via DVC on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support via SRC on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support via BUSIF on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support on DTS
  ARM: dts: iwg22d-sodimm: Sound PIO support
  ARM: dts: iwg22d-sodimm: Enable SGTL5000 audio codec
  ARM: dts: r8a7745: Add sound support
  ARM: dts: r8a7745: Add audio DMAC support
  ARM: dts: r8a7745: Add audio clocks
  ARM: dts: r8a7740: Correct TPU register block size
  ARM: dts: r8a7743: move timer and thermal-zones nodes out of bus
  ARM: dts: r8a7743: sort root sub-nodes alphabetically
  ARM: dts: iwg20d-q7-common: Sound DMA support via DVC on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support via SRC on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support via BUSIF on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support on DTS
  ARM: dts: iwg20d-q7-common: Sound PIO support
  ARM: dts: iwg20d-q7-common: Enable SGTL5000 audio codec
  ARM: dts: r8a7792: move timer node out of bus
  ...
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 052f6026 5b062010
......@@ -8,6 +8,29 @@
* kind, whether express or implied.
*/
/*
* SSI-SGTL5000
*
* This command is required when Playback/Capture
*
* amixer set "DVC Out" 100%
* amixer set "DVC In" 100%
*
* You can use Mute
*
* amixer set "DVC Out Mute" on
* amixer set "DVC In Mute" on
*
* You can use Volume Ramp
*
* amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps"
* amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
* amixer set "DVC Out Ramp" on
* aplay xxx.wav &
* amixer set "DVC Out" 80% // Volume Down
* amixer set "DVC Out" 100% // Volume Up
*/
/ {
aliases {
serial0 = &scif0;
......@@ -20,6 +43,36 @@ chosen {
stdout-path = "serial0:115200n8";
};
audio_clock: audio_clock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <26000000>;
};
reg_1p5v: 1p5v {
compatible = "regulator-fixed";
regulator-name = "1P5V";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
};
rsnd_sgtl5000: sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sndcodec>;
simple-audio-card,frame-master = <&sndcodec>;
sndcpu: simple-audio-card,cpu {
sound-dai = <&rcar_sound>;
};
sndcodec: simple-audio-card,codec {
sound-dai = <&sgtl5000>;
};
};
vcc_sdhi1: regulator-vcc-sdhi1 {
compatible = "regulator-fixed";
......@@ -83,6 +136,16 @@ rtc@68 {
compatible = "ti,bq32000";
reg = <0x68>;
};
sgtl5000: codec@a {
compatible = "fsl,sgtl5000";
#sound-dai-cells = <0>;
reg = <0x0a>;
clocks = <&audio_clock>;
VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>;
VDDD-supply = <&reg_1p5v>;
};
};
&pci0 {
......@@ -142,6 +205,11 @@ sdhi1_pins_uhs: sd1_uhs {
power-source = <1800>;
};
sound_pins: sound {
groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
function = "ssi";
};
usb0_pins: usb0 {
groups = "usb0";
function = "usb0";
......@@ -153,6 +221,22 @@ usb1_pins: usb1 {
};
};
&rcar_sound {
pinctrl-0 = <&sound_pins>;
pinctrl-names = "default";
status = "okay";
/* Single DAI */
#sound-dai-cells = <0>;
rcar_sound,dai {
dai0 {
playback = <&ssi1 &src3 &dvc1>;
capture = <&ssi0 &src2 &dvc0>;
};
};
};
&scif0 {
pinctrl-0 = <&scif0_pins>;
pinctrl-names = "default";
......@@ -181,6 +265,10 @@ &sdhi1 {
status = "okay";
};
&ssi1 {
shared-pin;
};
&usbphy {
status = "okay";
};
......@@ -317,7 +317,7 @@ pfc: pin-controller@e6050000 {
tpu: pwm@e6600000 {
compatible = "renesas,tpu-r8a7740", "renesas,tpu";
reg = <0xe6600000 0x100>;
reg = <0xe6600000 0x148>;
clocks = <&mstp3_clks R8A7740_CLK_TPU0>;
power-domains = <&pd_a3sp>;
status = "disabled";
......
This diff is collapsed.
......@@ -8,6 +8,29 @@
* kind, whether express or implied.
*/
/*
* SSI-SGTL5000
*
* This command is required when Playback/Capture
*
* amixer set "DVC Out" 100%
* amixer set "DVC In" 100%
*
* You can use Mute
*
* amixer set "DVC Out Mute" on
* amixer set "DVC In Mute" on
*
* You can use Volume Ramp
*
* amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps"
* amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
* amixer set "DVC Out Ramp" on
* aplay xxx.wav &
* amixer set "DVC Out" 80% // Volume Down
* amixer set "DVC Out" 100% // Volume Up
*/
/dts-v1/;
#include "r8a7745-iwg22m.dtsi"
......@@ -26,6 +49,27 @@ chosen {
stdout-path = "serial3:115200n8";
};
audio_clock: audio_clock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <26000000>;
};
rsnd_sgtl5000: sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sndcodec>;
simple-audio-card,frame-master = <&sndcodec>;
sndcpu: simple-audio-card,cpu {
sound-dai = <&rcar_sound>;
};
sndcodec: simple-audio-card,codec {
sound-dai = <&sgtl5000>;
};
};
vccq_sdhi0: regulator-vccq-sdhi0 {
compatible = "regulator-gpio";
......@@ -80,6 +124,23 @@ &hsusb {
pinctrl-names = "default";
};
&i2c5 {
pinctrl-0 = <&i2c5_pins>;
pinctrl-names = "default";
status = "okay";
clock-frequency = <400000>;
sgtl5000: codec@a {
compatible = "fsl,sgtl5000";
#sound-dai-cells = <0>;
reg = <0x0a>;
clocks = <&audio_clock>;
VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>;
};
};
&pci1 {
status = "okay";
pinctrl-0 = <&usb1_pins>;
......@@ -102,6 +163,11 @@ hscif1_pins: hscif1 {
function = "hscif1";
};
i2c5_pins: i2c5 {
groups = "i2c5_b";
function = "i2c5";
};
scif4_pins: scif4 {
groups = "scif4_data_b";
function = "scif4";
......@@ -113,6 +179,11 @@ sdhi0_pins: sd0 {
power-source = <3300>;
};
sound_pins: sound {
groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
function = "ssi";
};
usb0_pins: usb0 {
groups = "usb0";
function = "usb0";
......@@ -124,6 +195,23 @@ usb1_pins: usb1 {
};
};
&rcar_sound {
pinctrl-0 = <&sound_pins>;
pinctrl-names = "default";
status = "okay";
/* Single DAI */
#sound-dai-cells = <0>;
rcar_sound,dai {
dai0 {
playback = <&ssi3 &src3 &dvc0>;
capture = <&ssi4 &src4 &dvc1>;
};
};
};
&scif4 {
pinctrl-0 = <&scif4_pins>;
pinctrl-names = "default";
......@@ -141,6 +229,10 @@ &sdhi0 {
status = "okay";
};
&ssi4 {
shared-pin;
};
&usbphy {
status = "okay";
};
This diff is collapsed.
......@@ -168,7 +168,7 @@ cpu_thermal: cpu-thermal {
trips {
cpu-crit {
temperature = <115000>;
temperature = <95000>;
hysteresis = <0>;
type = "critical";
};
......
......@@ -92,7 +92,7 @@ cpu_thermal: cpu-thermal {
trips {
cpu-crit {
temperature = <115000>;
temperature = <95000>;
hysteresis = <0>;
type = "critical";
};
......
......@@ -36,6 +36,14 @@ aliases {
vin5 = &vin5;
};
/* External CAN clock */
can_clk: can {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
......@@ -69,6 +77,22 @@ L2_CA15: cache-controller-0 {
};
};
/* External root clock */
extal_clk: extal {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
};
/* External SCIF clock */
scif_clk: scif {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
};
soc {
compatible = "simple-bus";
interrupt-parent = <&gic>;
......@@ -113,18 +137,6 @@ irqc: interrupt-controller@e61c0000 {
resets = <&cpg 407>;
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_LOW)>;
};
rst: reset-controller@e6160000 {
compatible = "renesas,r8a7792-rst";
reg = <0 0xe6160000 0 0x0100>;
......@@ -834,27 +846,11 @@ cpg: clock-controller@e6150000 {
};
};
/* External root clock */
extal_clk: extal {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
};
/* External SCIF clock */
scif_clk: scif {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
};
/* External CAN clock */
can_clk: can {
compatible = "fixed-clock";
#clock-cells = <0>;
/* This value must be overridden by the board. */
clock-frequency = <0>;
timer {
compatible = "arm,armv7-timer";
interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
};
......@@ -89,7 +89,7 @@ cpu_thermal: cpu-thermal {
trips {
cpu-crit {
temperature = <115000>;
temperature = <95000>;
hysteresis = <0>;
type = "critical";
};
......
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