Renesas DT updates for v6.3 (take two)

- High Performance mode (1.8 GHz) support for the Cortex-A76 CPU cores
     on R-Car V4H,
   - GPIO interrupt support for the RZ/G2UL SoC and the RZ/G2UL SMARC EVK
     development board,
   - USB Function support for the RZ/N1D SoC,
   - Generic Sound Card driver examples for the Renesas R-Car Starter Kit
     Premier/Pro and Shimafugi Kingfisher development board stack,
   - Universal Flash Storage support for the Renesas Spider development
     board,
   - External Power Sequence Controller (PWC) support for the RZ/V2M SoC
     and the RZ/V2M Evaluation Kit 2.0,
   - IOMMU support for MMC on the R-Car S4-8 SoC,
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY9Oc1QAKCRCKwlD9ZEnx
 cMRKAP0S0VgkOJU9n+qrDdFNYeCAwLkJbcpWMsc4xy/dxt1gIQEAxbnJpGcmdAis
 qiY67N7RU8mST1R7QACUEcvygxvqLwI=
 =dAM5
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPX+vEACgkQmmx57+YA
 GNk6hA//Xbr/6Ey1bGx6jweljSEvLpOZkMCKiprOlJ7aaKM3SXfO2BK447zADtar
 D9ooowc/IHBt4DNltVsAol5dm6QgQjcrs4+S04qFsdPtEtEmy59JS7e4m3BWKlTe
 AJucF5A8g9HACAYs3zq6iEK8gGnJU2qW1ysiU03ypf9ctfDsir8eWgzCV0P3lgmr
 1Rb29ZG0m661ucDNFM5tGOMpJ3yFGgAx1YnNtdn2XMOs3txFZ9hS0lPAOaBd7Wmj
 hBDxJPWye7BG3zAo8vCYPDZcvDgl4iGKpmqHJ+p5fA5tD/od/tpyM/ih94pzv9iW
 8yqpaIUNpwZ7VD1wITVxWXUOqubNyXo5f5dqWwjcOkp2toc+xn2gJFPD3ffsjghT
 YmvRlglaOUHt09Koinb0SYrNBhGnN2qtYYfZzvRWJZmAhT/gzH16/ezuoI9DMy26
 cwO8DsXMLA9QKxKVyzq9Y+9gKRXj6dtJhEjUheax/AfeW2q4Bs9fVG4bSw9LLYb4
 vSVRIgBhojWvCA/t0vt1tmK+Nw5abm+m3Mfiq8E6rmR5yWqRmoN3mHaUNs4XOllI
 sGd4NtO1uqM/SbovLMkccw4NaU0wUdcnYtKsem7dl1Jo5yWUbg8EGh6jRXdtILEt
 SLRrc5NkG4kEbGRqSQ9ieINdw3bWUn2kOLbKcWFDwtqzkq6Ucqk=
 =YAr2
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dts-for-v6.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dt

Renesas DT updates for v6.3 (take two)

  - High Performance mode (1.8 GHz) support for the Cortex-A76 CPU cores
    on R-Car V4H,
  - GPIO interrupt support for the RZ/G2UL SoC and the RZ/G2UL SMARC EVK
    development board,
  - USB Function support for the RZ/N1D SoC,
  - Generic Sound Card driver examples for the Renesas R-Car Starter Kit
    Premier/Pro and Shimafugi Kingfisher development board stack,
  - Universal Flash Storage support for the Renesas Spider development
    board,
  - External Power Sequence Controller (PWC) support for the RZ/V2M SoC
    and the RZ/V2M Evaluation Kit 2.0,
  - IOMMU support for MMC on the R-Car S4-8 SoC,
  - Miscellaneous fixes and improvements.

* tag 'renesas-dts-for-v6.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (25 commits)
  arm64: dts: renesas: r8a779f0: Add iommus to MMC node
  arm64: dts: renesas: v2mevk2: Add PWC support
  arm64: dts: renesas: r9a09g011: Add PWC support
  arm64: dts: renesas: r9a09g011: Reword ethernet status
  arm64: dts: renesas: r8a774[be]1-beacon: Sync aliases with RZ/G2M
  arm64: dts: renesas: beacon-renesom: Fix audio clock rate
  arm64: dts: renesas: beacon-renesom: Update Ethernet PHY ID
  arm64: dts: renesas: beacon-renesom: Fix gpio expander reference
  arm64: dts: renesas: spider-cpu: Enable UFS device
  arm64: dts: renesas: Add ulcb{-kf} Simple Audio Card MIX + TDM Split dtsi
  arm64: dts: renesas: Add ulcb{-kf} Audio Graph Card MIX + TDM Split dtsi
  arm64: dts: renesas: Add ulcb{-kf} Audio Graph Card2 MIX + TDM Split dtsi
  arm64: dts: renesas: Add ulcb{-kf} Simple Audio Card dtsi
  arm64: dts: renesas: Add ulcb{-kf} Audio Graph Card2 dtsi
  arm64: dts: renesas: Add ulcb{-kf} Audio Graph Card dtsi
  arm64: dts: renesas: #sound-dai-cells is used when simple-card
  ARM: dts: renesas: #sound-dai-cells is used when simple-card
  arm64: dts: renesas: eagle: Add SCIF_CLK support
  ARM: dts: r9a06g032: Add the USBF controller node
  arm64: dts: renesas: rzg2ul-smarc-som: Add PHY interrupt support for ETH{0/1}
  ...

Link: https://lore.kernel.org/r/cover.1674815099.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2023-01-30 18:14:15 +01:00
commit ad3c046a26
52 changed files with 1463 additions and 159 deletions

View file

@ -7,6 +7,9 @@
*/
/dts-v1/;
#include <dt-bindings/media/video-interfaces.h>
#include "r8a7742-iwg21d-q7.dts"
/ {
@ -242,7 +245,7 @@ port {
vin0ep: endpoint {
remote-endpoint = <&cam0ep>;
bus-width = <8>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
};
};
};
@ -273,7 +276,7 @@ port {
vin1ep: endpoint {
remote-endpoint = <&cam1ep>;
bus-width = <8>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
};
};
};
@ -305,7 +308,7 @@ vin2ep: endpoint {
remote-endpoint = <&cam2ep>;
bus-width = <8>;
data-shift = <8>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
};
};
};
@ -335,7 +338,7 @@ port {
vin3ep: endpoint {
remote-endpoint = <&cam3ep>;
bus-width = <8>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
};
};
};

View file

@ -7,6 +7,8 @@
* Copyright (C) 2020 Renesas Electronics Corp.
*/
#include <dt-bindings/media/video-interfaces.h>
#define CAM_ENABLED 1
&CAM_PARENT_I2C {
@ -26,7 +28,7 @@ port {
CAM_EP: endpoint {
bus-width = <8>;
data-shift = <2>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
pclk-sample = <1>;
remote-endpoint = <&VIN_EP>;
};

View file

@ -7,6 +7,8 @@
* Copyright (C) 2020 Renesas Electronics Corp.
*/
#include <dt-bindings/media/video-interfaces.h>
#define CAM_ENABLED 1
&CAM_PARENT_I2C {
@ -21,7 +23,7 @@ ov7725@21 {
port {
CAM_EP: endpoint {
bus-width = <8>;
bus-type = <6>;
bus-type = <MEDIA_BUS_TYPE_BT656>;
remote-endpoint = <&VIN_EP>;
};
};

View file

@ -1155,7 +1155,7 @@ vin3: video@e6ef3000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1190,7 +1190,7 @@ vin2: video@e6ef2000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1190,7 +1190,7 @@ vin2: video@e6ef2000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1120,7 +1120,7 @@ vin1: video@e6ef1000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -241,7 +241,7 @@ tmu2: timer@ffd82000 {
rcar_sound: sound@ffd90000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1109,7 +1109,7 @@ vin3: video@e6ef3000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1223,7 +1223,7 @@ vin2: video@e6ef2000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -988,7 +988,7 @@ vin2: video@e6ef2000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -955,7 +955,7 @@ vin1: video@e6ef1000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -117,6 +117,18 @@ dmamux: dma-router@a0 {
};
};
udc: usb@4001e000 {
compatible = "renesas,r9a06g032-usbf", "renesas,rzn1-usbf";
reg = <0x4001e000 0x2000>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sysctrl R9A06G032_HCLK_USBF>,
<&sysctrl R9A06G032_HCLK_USBPM>;
clock-names = "hclkf", "hclkpm";
power-domains = <&sysctrl>;
status = "disabled";
};
pci_usb: pci@40030000 {
compatible = "renesas,pci-r9a06g032", "renesas,pci-rzn1";
device_type = "pci";

View file

@ -367,7 +367,7 @@ versaclock6_bb: clock-controller@6a {
assigned-clocks = <&versaclock6_bb 1>, <&versaclock6_bb 2>,
<&versaclock6_bb 3>, <&versaclock6_bb 4>;
assigned-clock-rates = <24000000>, <24000000>, <24000000>,
assigned-clock-rates = <24000000>, <24000000>, <24576000>,
<24576000>;
OUT1 {
@ -437,20 +437,6 @@ wm8962_endpoint: endpoint {
};
};
/* 0 - lcd_reset */
/* 1 - lcd_pwr */
/* 2 - lcd_select */
/* 3 - backlight-enable */
/* 4 - Touch_shdwn */
/* 5 - LCD_H_pol */
/* 6 - lcd_V_pol */
gpio_exp1: gpio@20 {
compatible = "onnn,pca9654";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
touchscreen@26 {
compatible = "ilitek,ili2117";
reg = <0x26>;
@ -482,6 +468,16 @@ hd3ss3220_out_ep: endpoint {
};
};
};
gpio_exp1: gpio@70 {
compatible = "nxp,pca9538";
reg = <0x70>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "lcd_reset", "lcd_pwr", "lcd_select",
"backlight-enable", "Touch_shdwn",
"LCD_H_pol", "lcd_V_pol";
};
};
&lvds0 {

View file

@ -59,7 +59,7 @@ &avb {
status = "okay";
phy0: ethernet-phy@0 {
compatible = "ethernet-phy-id004d.d074",
compatible = "ethernet-phy-id0022.1640",
"ethernet-phy-ieee802.3-c22";
reg = <0>;
interrupt-parent = <&gpio2>;

View file

@ -1678,7 +1678,7 @@ vin7csi40: endpoint@2 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -14,6 +14,14 @@ / {
compatible = "beacon,beacon-rzg2n", "renesas,r8a774b1";
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &iic_pmic;
serial0 = &scif2;
serial1 = &hscif0;
serial2 = &hscif1;

View file

@ -1562,7 +1562,7 @@ vin7csi40: endpoint@2 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1317,7 +1317,7 @@ vin5csi40: endpoint@2 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -14,6 +14,14 @@ / {
compatible = "beacon,beacon-rzg2h", "renesas,r8a774e1";
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &iic_pmic;
serial0 = &scif2;
serial1 = &hscif0;
serial2 = &hscif1;

View file

@ -1774,7 +1774,7 @@ vin7csi20: endpoint@0 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1998,7 +1998,7 @@ drif31: rif@e6fb0000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1870,7 +1870,7 @@ drif31: rif@e6fb0000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1750,7 +1750,7 @@ vin7csi40: endpoint@2 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1733,7 +1733,7 @@ drif31: rif@e6fb0000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -287,6 +287,9 @@ lvds0_out: endpoint {
};
&pfc {
pinctrl-0 = <&scif_clk_pins>;
pinctrl-names = "default";
avb_pins: avb0 {
groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk";
function = "avb0";
@ -316,6 +319,11 @@ scif0_pins: scif0 {
groups = "scif0_data";
function = "scif0";
};
scif_clk_pins: scif_clk {
groups = "scif_clk_b";
function = "scif_clk";
};
};
&rpc {
@ -391,3 +399,7 @@ &scif0 {
status = "okay";
};
&scif_clk {
clock-frequency = <14745600>;
};

View file

@ -1469,7 +1469,7 @@ drif31: rif@e6fb0000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -1037,7 +1037,7 @@ vin4: video@e6ef4000 {
rcar_sound: sound@ec500000 {
/*
* #sound-dai-cells is required
* #sound-dai-cells is required if simple-card
*
* Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
* Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;

View file

@ -5,6 +5,7 @@
* Copyright (C) 2021 Renesas Electronics Corp.
*/
#include <dt-bindings/gpio/gpio.h>
#include "r8a779f0.dtsi"
/ {
@ -32,6 +33,12 @@ memory@480000000 {
reg = <0x4 0x80000000 0x0 0x80000000>;
};
rc21012_ufs: clk-rc21012-ufs {
compatible = "fixed-clock";
clock-frequency = <38400000>;
#clock-cells = <0>;
};
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.8V";
@ -67,6 +74,21 @@ &hscif0 {
status = "okay";
};
&i2c0 {
pinctrl-0 = <&i2c0_pins>;
pinctrl-names = "default";
status = "okay";
clock-frequency = <400000>;
gpio_exp_20: gpio@20 {
compatible = "ti,tca9554";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
};
&i2c4 {
pinctrl-0 = <&i2c4_pins>;
pinctrl-names = "default";
@ -112,6 +134,11 @@ hscif0_pins: hscif0 {
function = "hscif0";
};
i2c0_pins: i2c0 {
groups = "i2c0";
function = "i2c0";
};
i2c4_pins: i2c4 {
groups = "i2c4";
function = "i2c4";
@ -150,3 +177,14 @@ &scif0 {
&scif_clk {
clock-frequency = <24000000>;
};
&ufs {
status = "okay";
};
&ufs30_clk {
compatible = "gpio-gate-clock";
clocks = <&rc21012_ufs>;
enable-gpios = <&gpio_exp_20 4 GPIO_ACTIVE_LOW>;
/delete-property/ clock-frequency;
};

View file

@ -1051,6 +1051,7 @@ mmc0: mmc@ee140000 {
power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
resets = <&cpg 706>;
max-frequency = <200000000>;
iommus = <&ipmmu_ds0 32>;
status = "disabled";
};

View file

@ -39,6 +39,12 @@ opp-1700000000 {
clock-latency-ns = <500000>;
opp-suspend;
};
opp-1800000000 {
opp-hz = /bits/ 64 <1800000000>;
opp-microvolt = <880000>;
clock-latency-ns = <500000>;
turbo-mode;
};
};
cpus {

View file

@ -531,6 +531,8 @@ pinctrl: pinctrl@11030000 {
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pinctrl 0 0 152>;
#interrupt-cells = <2>;
interrupt-controller;
clocks = <&cpg CPG_MOD R9A07G043_GPIO_HCLK>;
power-domains = <&cpg>;
resets = <&cpg R9A07G043_GPIO_RSTN>,

View file

@ -49,9 +49,81 @@ timer {
};
};
&pinctrl {
interrupt-parent = <&irqc>;
};
&soc {
interrupt-parent = <&gic>;
irqc: interrupt-controller@110a0000 {
compatible = "renesas,r9a07g043u-irqc",
"renesas,rzg2l-irqc";
reg = <0 0x110a0000 0 0x10000>;
#interrupt-cells = <2>;
#address-cells = <0>;
interrupt-controller;
interrupts = <SOC_PERIPHERAL_IRQ(0) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(1) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(2) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(3) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(4) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(5) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(6) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(7) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(8) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(444) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(445) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(446) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(447) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(448) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(449) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(450) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(451) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(452) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(453) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(454) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(455) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(456) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(457) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(458) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(459) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(460) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(461) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(462) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(463) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(464) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(465) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(466) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(467) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(468) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(469) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(470) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(471) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(472) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(473) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(474) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(475) IRQ_TYPE_LEVEL_HIGH>,
<SOC_PERIPHERAL_IRQ(25) IRQ_TYPE_EDGE_RISING>;
interrupt-names = "nmi",
"irq0", "irq1", "irq2", "irq3",
"irq4", "irq5", "irq6", "irq7",
"tint0", "tint1", "tint2", "tint3",
"tint4", "tint5", "tint6", "tint7",
"tint8", "tint9", "tint10", "tint11",
"tint12", "tint13", "tint14", "tint15",
"tint16", "tint17", "tint18", "tint19",
"tint20", "tint21", "tint22", "tint23",
"tint24", "tint25", "tint26", "tint27",
"tint28", "tint29", "tint30", "tint31",
"bus-err";
clocks = <&cpg CPG_MOD R9A07G043_IA55_CLK>,
<&cpg CPG_MOD R9A07G043_IA55_PCLK>;
clock-names = "clk", "pclk";
power-domains = <&cpg>;
resets = <&cpg R9A07G043_IA55_RESETN>;
};
gic: interrupt-controller@11900000 {
compatible = "arm,gic-v3";
#interrupt-cells = <3>;

View file

@ -80,6 +80,11 @@ i2c2_pins: i2c2 {
};
};
&pwc {
renesas,rzv2m-pwc-power;
status = "okay";
};
&uart0 {
status = "okay";
};

View file

@ -165,7 +165,7 @@ avb: ethernet@a3300000 {
power-domains = <&cpg>;
#address-cells = <1>;
#size-cells = <0>;
status = "disable";
status = "disabled";
};
cpg: clock-controller@a3500000 {
@ -178,6 +178,14 @@ cpg: clock-controller@a3500000 {
#power-domain-cells = <0>;
};
pwc: pwc@a3700000 {
compatible = "renesas,r9a09g011-pwc", "renesas,rzv2m-pwc";
reg = <0 0xa3700000 0 0x800>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
sys: system-controller@a3f03000 {
compatible = "renesas,r9a09g011-sys";
reg = <0 0xa3f03000 0 0x400>;

View file

@ -6,6 +6,7 @@
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irqc-rzg2l.h>
#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
/ {
@ -77,6 +78,8 @@ phy0: ethernet-phy@7 {
compatible = "ethernet-phy-id0022.1640",
"ethernet-phy-ieee802.3-c22";
reg = <7>;
interrupt-parent = <&irqc>;
interrupts = <RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>;
rxc-skew-psec = <2400>;
txc-skew-psec = <2400>;
rxdv-skew-psec = <0>;
@ -104,6 +107,8 @@ phy1: ethernet-phy@7 {
compatible = "ethernet-phy-id0022.1640",
"ethernet-phy-ieee802.3-c22";
reg = <7>;
interrupt-parent = <&irqc>;
interrupts = <RZG2L_IRQ7 IRQ_TYPE_LEVEL_LOW>;
rxc-skew-psec = <2400>;
txc-skew-psec = <2400>;
rxdv-skew-psec = <0>;
@ -151,7 +156,8 @@ eth0_pins: eth0 {
<RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */
<RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */
<RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */
<RZG2L_PORT_PINMUX(4, 1, 1)>; /* ET0_RXD3 */
<RZG2L_PORT_PINMUX(4, 1, 1)>, /* ET0_RXD3 */
<RZG2L_PORT_PINMUX(5, 1, 7)>; /* IRQ2 */
};
eth1_pins: eth1 {
@ -169,7 +175,8 @@ eth1_pins: eth1 {
<RZG2L_PORT_PINMUX(9, 1, 1)>, /* ET1_RXD0 */
<RZG2L_PORT_PINMUX(9, 2, 1)>, /* ET1_RXD1 */
<RZG2L_PORT_PINMUX(9, 3, 1)>, /* ET1_RXD2 */
<RZG2L_PORT_PINMUX(10, 0, 1)>; /* ET1_RXD3 */
<RZG2L_PORT_PINMUX(10, 0, 1)>, /* ET1_RXD3 */
<RZG2L_PORT_PINMUX(18, 5, 1)>; /* IRQ7 */
};
sdhi0_emmc_pins: sd0emmc {

View file

@ -799,9 +799,6 @@ &rcar_sound {
pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
pinctrl-names = "default";
/* Single DAI */
#sound-dai-cells = <0>;
/* audio_clkout0/1/2/3 */
#clock-cells = <1>;
clock-frequency = <12288000 11289600>;

View file

@ -0,0 +1,91 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Audio Graph Card (MIX)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <-----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
/ {
sound_card: sound {
compatible = "audio-graph-scu-card";
label = "rcar-sound";
routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture";
dais = <&rsnd_port0 /* (A) CPU0 */
&rsnd_port1 /* (B) CPU1 */
>;
};
};
&ak4613 {
port {
#address-cells = <1>;
#size-cells = <0>;
/*
* (X) ak4613
*/
prefix = "ak4613";
convert-rate = <48000>;
/* (A) CPU0 <-> (X) ak4613 */
ak4613_ep1: endpoint@0 {
reg = <0>;
remote-endpoint = <&rsnd_for_ak4613_1>;
};
/* (B) CPU1 -> (X) ak4613 */
ak4613_ep2: endpoint@1 {
reg = <1>;
remote-endpoint = <&rsnd_for_ak4613_2>;
};
};
};
&rcar_sound {
ports {
#address-cells = <1>;
#size-cells = <0>;
/*
* (A) CPU0
*/
rsnd_port0: port@0 {
reg = <0>;
rsnd_for_ak4613_1: endpoint {
remote-endpoint = <&ak4613_ep1>;
bitclock-master;
frame-master;
playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
capture = <&ssi1 &src0 &dvc1>;
};
};
/*
* (B) CPU1
*/
rsnd_port1: port@1 {
reg = <1>;
rsnd_for_ak4613_2: endpoint {
remote-endpoint = <&ak4613_ep2>;
bitclock-master;
frame-master;
playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
};
};
};
};

View file

@ -0,0 +1,85 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Audio Graph Card
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <-----> ak4613
* (B) CPU1 -----> HDMI
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
/ {
sound_card: sound {
compatible = "audio-graph-card";
label = "rcar-sound";
dais = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */
&rsnd_port1 /* (B) CPU1 -> HDMI */
>;
};
};
&ak4613 {
#sound-dai-cells = <0>;
port {
/*
* (A) CPU0 <-> ak4613
*/
ak4613_endpoint: endpoint {
remote-endpoint = <&rsnd_for_ak4613>;
};
};
};
&hdmi0 {
ports {
port@2 {
/*
* (B) CPU1 -> HDMI
*/
dw_hdmi0_snd_in: endpoint {
remote-endpoint = <&rsnd_for_hdmi>;
};
};
};
};
&rcar_sound {
ports {
#address-cells = <1>;
#size-cells = <0>;
rsnd_port0: port@0 {
/*
* (A) CPU0 <-> ak4613
*/
reg = <0>;
rsnd_for_ak4613: endpoint {
remote-endpoint = <&ak4613_endpoint>;
bitclock-master;
frame-master;
playback = <&ssi0>, <&src0>, <&dvc0>;
capture = <&ssi1>, <&src1>, <&dvc1>;
};
};
rsnd_port1: port@1 {
/*
* (B) CPU1 -> HDMI
*/
reg = <1>;
rsnd_for_hdmi: endpoint {
remote-endpoint = <&dw_hdmi0_snd_in>;
bitclock-master;
frame-master;
playback = <&ssi2>;
};
};
};
};

View file

@ -0,0 +1,111 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Audio Graph Card2 (MIX + TDM Split)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
/ {
sound_card: sound {
compatible = "audio-graph-card2";
label = "rcar-sound";
routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture";
/delete-property/ dais;
links = <&fe_a /* (A) CPU0 */
&fe_b /* (B) CPU1 */
&be_x /* (X) ak4613 */
>;
dpcm {
#address-cells = <1>;
#size-cells = <0>;
ports@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
/*
* FE
* (A) CPU0 (MIX-0)
* (B) CPU1 (MIX-1)
*/
fe_a: port@0 { reg = <0>; fe_a_ep: endpoint { remote-endpoint = <&rsnd_a_ep>; }; };
fe_b: port@1 { reg = <1>; fe_b_ep: endpoint { remote-endpoint = <&rsnd_b_ep>; }; };
};
ports@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
/*
* BE
* (X) ak4613
*/
be_x: port@0 { reg = <0>; be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; };
};
};
};
};
&ak4613 {
port {
/*
* (X) ak4613
*/
prefix = "ak4613";
convert-rate = <48000>;
ak4613_x_ep: endpoint {
remote-endpoint = <&be_x_ep>;
};
};
};
&rcar_sound {
ports {
#address-cells = <1>;
#size-cells = <0>;
/*
* (A) CPU0
*/
port@0 {
reg = <0>;
rsnd_a_ep: endpoint {
remote-endpoint = <&fe_a_ep>;
bitclock-master;
frame-master;
playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
capture = <&ssi1 &src0 &dvc1>;
};
};
/*
* (B) CPU1
*/
port@1 {
reg = <1>;
rsnd_b_ep: endpoint {
remote-endpoint = <&fe_b_ep>;
bitclock-master;
frame-master;
playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
};
};
};
};

View file

@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Audio Graph Card2
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <----> ak4613
* (B) CPU1 ----> HDMI
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
#include "ulcb-audio-graph-card.dtsi"
&sound_card {
compatible = "audio-graph-card2";
/delete-property/ dais;
links = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */
&rsnd_port1 /* (B) CPU1 -> HDMI */
>;
};

View file

@ -0,0 +1,171 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Audio Graph Card (MIX + TDM Split)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
* (C) CPU2 (2ch) ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch)
* (D) CPU3 (2ch) --/ (TDM-1 : 2,3ch)
* (E) CPU4 (2ch) --/ (TDM-2 : 4,5ch)
* (F) CPU5 (2ch) --/ (TDM-3 : 6,7ch)
* (G) CPU6 (6ch) <---- (6ch) (Z) PCM3168A-c
*
* (A) aplay -D plughw:0,0 xxx.wav (MIX-0)
* (B) aplay -D plughw:0,1 xxx.wav (MIX-1)
* (C) aplay -D plughw:0,2 xxx.wav (TDM-0)
* (D) aplay -D plughw:0,3 xxx.wav (TDM-1)
* (E) aplay -D plughw:0,4 xxx.wav (TDM-2)
* (F) aplay -D plughw:0,5 xxx.wav (TDM-3)
*
* (A) arecord -D plughw:0,0 xxx.wav
* (G) arecord -D plughw:0,6 xxx.wav
*/
&sound_card {
routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture",
"pcm3168a Playback", "DAI2 Playback",
"pcm3168a Playback", "DAI3 Playback",
"pcm3168a Playback", "DAI4 Playback",
"pcm3168a Playback", "DAI5 Playback";
dais = <&rsnd_port0 /* (A) CPU0 */
&rsnd_port1 /* (B) CPU1 */
&rsnd_port2 /* (C) CPU2 */
&rsnd_port3 /* (D) CPU3 */
&rsnd_port4 /* (E) CPU4 */
&rsnd_port5 /* (F) CPU5 */
&rsnd_port6 /* (G) GPU6 */
>;
};
&pcm3168a {
ports {
#address-cells = <1>;
#size-cells = <0>;
mclk-fs = <512>;
/*
* (Y) PCM3168A-p
*/
port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
prefix = "pcm3168a";
convert-channels = <8>; /* to 8ch TDM */
/* (C) CPU2 -> (Y) PCM3168A-p */
pcm3168a_endpoint_p1: endpoint@0 {
reg = <0>;
remote-endpoint = <&rsnd_for_pcm3168a_play1>;
clocks = <&clksndsel>;
};
/* (D) CPU3 -> (Y) PCM3168A-p */
pcm3168a_endpoint_p2: endpoint@1 {
reg = <1>;
remote-endpoint = <&rsnd_for_pcm3168a_play2>;
clocks = <&clksndsel>;
};
/* (E) CPU4 -> (Y) PCM3168A-p */
pcm3168a_endpoint_p3: endpoint@2 {
reg = <2>;
remote-endpoint = <&rsnd_for_pcm3168a_play3>;
clocks = <&clksndsel>;
};
/* (F) CPU5 -> (Y) PCM3168A-p */
pcm3168a_endpoint_p4: endpoint@3 {
reg = <3>;
remote-endpoint = <&rsnd_for_pcm3168a_play4>;
clocks = <&clksndsel>;
};
};
/*
* (Z) PCM3168A-c
*/
port@1 {
reg = <1>;
/* (G) CPU6 <- PCM3168A-c */
pcm3168a_endpoint_c: endpoint {
remote-endpoint = <&rsnd_for_pcm3168a_capture>;
clocks = <&clksndsel>;
};
};
};
};
&rcar_sound {
ports {
/* rsnd_port0-1 are defined in ulcb.dtsi */
/*
* (C) CPU2
*/
rsnd_port2: port@2 {
reg = <2>;
rsnd_for_pcm3168a_play1: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p1>;
bitclock-master;
frame-master;
playback = <&ssiu30 &ssi3>;
};
};
/*
* (D) CPU3
*/
rsnd_port3: port@3 {
reg = <3>;
rsnd_for_pcm3168a_play2: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p2>;
bitclock-master;
frame-master;
playback = <&ssiu31 &ssi3>;
};
};
/*
* (E) CPU4
*/
rsnd_port4: port@4 {
reg = <4>;
rsnd_for_pcm3168a_play3: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p3>;
bitclock-master;
frame-master;
playback = <&ssiu32 &ssi3>;
};
};
/*
* (F) CPU5
*/
rsnd_port5: port@5 {
reg = <5>;
rsnd_for_pcm3168a_play4: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p4>;
bitclock-master;
frame-master;
playback = <&ssiu33 &ssi3>;
};
};
/*
* (G) CPU6
*/
rsnd_port6: port@6 {
reg = <6>;
rsnd_for_pcm3168a_capture: endpoint {
remote-endpoint = <&pcm3168a_endpoint_c>;
bitclock-master;
frame-master;
dai-tdm-slot-num = <6>;
capture = <&ssi4>;
};
};
};
};

View file

@ -0,0 +1,88 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Audio Graph Card
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <----> ak4613
* (B) CPU1 ----> HDMI
* (C) CPU2 ----> PCM3168A-p (8ch)
* (D) CPU3 <---- PCM3168A-c (6ch)
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
* (C) aplay -D plughw:0,2 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
* (D) arecord -D plughw:0,3 xxx.wav
*/
&sound_card {
dais = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */
&rsnd_port1 /* (B) CPU1 -> HDMI */
&rsnd_port2 /* (C) CPU2 -> PCM3168A-p */
&rsnd_port3 /* (D) CPU3 <- PCM3168A-c */
>;
};
&pcm3168a {
ports {
#address-cells = <1>;
#size-cells = <0>;
mclk-fs = <512>;
/*
* (C) CPU2 -> PCM3168A-p
*/
port@0 {
reg = <0>;
pcm3168a_endpoint_p: endpoint {
remote-endpoint = <&rsnd_for_pcm3168a_play>;
clocks = <&clksndsel>;
};
};
/*
* (D) CPU3 <- PCM3168A-c
*/
port@1 {
reg = <1>;
pcm3168a_endpoint_c: endpoint {
remote-endpoint = <&rsnd_for_pcm3168a_capture>;
clocks = <&clksndsel>;
};
};
};
};
&rcar_sound {
ports {
/* rsnd_port0/1 are defined in ulcb.dtsi */
/*
* (C) CPU2 -> PCM3168A-p
*/
rsnd_port2: port@2 {
reg = <2>;
rsnd_for_pcm3168a_play: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p>;
bitclock-master;
frame-master;
dai-tdm-slot-num = <8>;
playback = <&ssi3>;
};
};
/*
* (D) CPU3 <- PCM3168A-c
*/
rsnd_port3: port@3 {
reg = <3>;
rsnd_for_pcm3168a_capture: endpoint {
remote-endpoint = <&pcm3168a_endpoint_c>;
bitclock-master;
frame-master;
dai-tdm-slot-num = <6>;
capture = <&ssi4>;
};
};
};
};

View file

@ -0,0 +1,178 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Audio Graph Card2 (MIX + TDM Split)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
* (C) CPU3 (2ch) ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch)
* (D) CPU2 (2ch) --/ (TDM-1 : 2,3ch)
* (E) CPU4 (2ch) --/ (TDM-2 : 4,5ch)
* (F) CPU5 (2ch) --/ (TDM-3 : 6,7ch)
* (G) CPU6 (6ch) <---- (6ch) (Z) PCM3168A-c
*
* (A) aplay -D plughw:0,0 xxx.wav (MIX-0)
* (B) aplay -D plughw:0,1 xxx.wav (MIX-1)
* (C) aplay -D plughw:0,2 xxx.wav (TDM-0)
* (D) aplay -D plughw:0,3 xxx.wav (TDM-1)
* (E) aplay -D plughw:0,4 xxx.wav (TDM-2)
* (F) aplay -D plughw:0,5 xxx.wav (TDM-3)
*
* (A) arecord -D plughw:0,0 xxx.wav
* (G) arecord -D plughw:0,6 xxx.wav
*/
&sound_card {
routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture",
"pcm3168a Playback", "DAI2 Playback",
"pcm3168a Playback", "DAI3 Playback",
"pcm3168a Playback", "DAI4 Playback",
"pcm3168a Playback", "DAI5 Playback",
"DAI6 Capture", "pcm3168a Capture";
/delete-property/ dais;
links = <&fe_a /* (A) CPU0 */
&fe_b /* (B) CPU1 */
&fe_c /* (C) CPU2 */
&fe_d /* (D) CPU3 */
&fe_e /* (E) CPU4 */
&fe_f /* (F) CPU5 */
&rsnd_g /* (G) CPU6 */
&be_x /* (X) ak4613 */
&be_y /* (Y) PCM3168A-p */
>;
dpcm {
ports@0 {
/*
* FE
*
* (A)/(B) are defined on ulcb
* (C) CPU2
* (D) CPU3
* (E) CPU4
* (F) CPU5
*/
fe_c: port@2 { reg = <2>; fe_c_ep: endpoint { remote-endpoint = <&rsnd_c_ep>; }; };
fe_d: port@3 { reg = <3>; fe_d_ep: endpoint { remote-endpoint = <&rsnd_d_ep>; }; };
fe_e: port@4 { reg = <4>; fe_e_ep: endpoint { remote-endpoint = <&rsnd_e_ep>; }; };
fe_f: port@5 { reg = <5>; fe_f_ep: endpoint { remote-endpoint = <&rsnd_f_ep>; }; };
};
ports@1 {
/*
* BE
*
* (X) is defined on ulcb
* (Y) PCM3168A-p
*/
be_y: port@1 { reg = <1>; be_y_ep: endpoint { remote-endpoint = <&pcm3168a_y_ep>; }; };
};
};
};
&pcm3168a {
ports {
#address-cells = <1>;
#size-cells = <0>;
mclk-fs = <512>;
prefix = "pcm3168a";
/*
* (Y) PCM3168A-p
*/
port@0 {
reg = <0>;
convert-channels = <8>; /* to 8ch TDM */
pcm3168a_y_ep: endpoint {
remote-endpoint = <&be_y_ep>;
clocks = <&clksndsel>;
};
};
/*
* (Z) PCM3168A-c
*/
port@1 {
reg = <1>;
pcm3168a_z_ep: endpoint {
remote-endpoint = <&rsnd_g_ep>;
clocks = <&clksndsel>;
};
};
};
};
&rcar_sound {
ports {
/* (A)/(B) are defined in ulcb.dtsi */
/*
* (C) CPU2
*/
port@2 {
reg = <2>;
rsnd_c_ep: endpoint {
remote-endpoint = <&fe_c_ep>;
bitclock-master;
frame-master;
playback = <&ssiu30 &ssi3>;
};
};
/*
* (D) CPU3
*/
port@3 {
reg = <3>;
rsnd_d_ep: endpoint {
remote-endpoint = <&fe_d_ep>;
bitclock-master;
frame-master;
playback = <&ssiu31 &ssi3>;
};
};
/*
* (E) CPU4
*/
port@4 {
reg = <4>;
rsnd_e_ep: endpoint {
remote-endpoint = <&fe_e_ep>;
bitclock-master;
frame-master;
playback = <&ssiu32 &ssi3>;
};
};
/*
* (F) CPU5
*/
port@5 {
reg = <5>;
rsnd_f_ep: endpoint {
remote-endpoint = <&fe_f_ep>;
bitclock-master;
frame-master;
playback = <&ssiu33 &ssi3>;
};
};
/*
* (G) CPU6
*/
rsnd_g: port@6 {
reg = <6>;
rsnd_g_ep: endpoint {
remote-endpoint = <&pcm3168a_z_ep>;
bitclock-master;
frame-master;
capture = <&ssi4>;
};
};
};
};

View file

@ -0,0 +1,30 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Audio Graph Card2
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <----> ak4613
* (B) CPU1 ----> HDMI
* (C) CPU2 ----> PCM3168A-p (8ch)
* (D) CPU3 <---- PCM3168A-c (6ch)
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
* (C) aplay -D plughw:0,2 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
* (D) arecord -D plughw:0,3 xxx.wav
*/
#include "ulcb-kf-audio-graph-card.dtsi"
&sound_card {
/delete-property/ dais;
links = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */
&rsnd_port1 /* (B) CPU1 -> HDMI */
&rsnd_port2 /* (C) CPU2 -> PCM3168A-p */
&rsnd_port3 /* (D) CPU3 <- PCM3168A-c */
>;
};

View file

@ -0,0 +1,153 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Simple Audio Card (MIX + TDM Split)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
* (C) CPU3 (2ch) ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch)
* (D) CPU2 (2ch) --/ (TDM-1 : 2,3ch)
* (E) CPU4 (2ch) --/ (TDM-2 : 4,5ch)
* (F) CPU5 (2ch) --/ (TDM-3 : 6,7ch)
* (G) CPU6 (6ch) <---- (6ch) (Z) PCM3168A-c
*
* (A) aplay -D plughw:0,0 xxx.wav (MIX-0)
* (B) aplay -D plughw:0,1 xxx.wav (MIX-1)
* (C) aplay -D plughw:0,2 xxx.wav (TDM-0)
* (D) aplay -D plughw:0,3 xxx.wav (TDM-1)
* (E) aplay -D plughw:0,4 xxx.wav (TDM-2)
* (F) aplay -D plughw:0,5 xxx.wav (TDM-3)
*
* (A) arecord -D plughw:0,0 xxx.wav
* (G) arecord -D plughw:0,6 xxx.wav
*/
&sound_card {
simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture",
"pcm3168a Playback", "DAI2 Playback",
"pcm3168a Playback", "DAI3 Playback",
"pcm3168a Playback", "DAI4 Playback",
"pcm3168a Playback", "DAI5 Playback";
/* dai-link@0 is defined in ulcb.dtsi */
simple-audio-card,dai-link@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
convert-channels = <8>; /* to 8ch TDM */
/*
* (C) CPU2
*/
cpu@0 {
reg = <0>;
bitclock-master;
frame-master;
sound-dai = <&rcar_sound 2>;
};
/*
* (D) CPU3
*/
cpu@1 {
reg = <1>;
sound-dai = <&rcar_sound 3>;
};
/*
* (E) CPU4
*/
cpu@2 {
reg = <2>;
sound-dai = <&rcar_sound 4>;
};
/*
* (F) CPU5
*/
cpu@3 {
reg = <3>;
sound-dai = <&rcar_sound 5>;
};
/*
* (Y) PCM3168A-p
*/
codec {
prefix = "pcm3168a";
mclk-fs = <512>;
sound-dai = <&pcm3168a 0>;
};
};
simple-audio-card,dai-link@2 {
reg = <2>;
/*
* (G) CPU6
*/
cpu {
bitclock-master;
frame-master;
sound-dai = <&rcar_sound 6>;
};
/*
* (Z) PCM3168A-c
*/
codec {
prefix = "pcm3168a";
mclk-fs = <512>;
sound-dai = <&pcm3168a 1>;
};
};
};
&pcm3168a {
/*
* (Y) PCM3168A-p
* (Z) PCM3168A-c
*/
#sound-dai-cells = <1>;
};
&rcar_sound {
rcar_sound,dai {
/* dai0-1 are defined in ulcb.dtsi */
/*
* (C) CPU2
*/
dai2 {
playback = <&ssiu30 &ssi3>;
};
/*
* (D) CPU3
*/
dai3 {
playback = <&ssiu31 &ssi3>;
};
/*
* (E) CPU4
*/
dai4 {
playback = <&ssiu32 &ssi3>;
};
/*
* (F) CPU5
*/
dai5 {
playback = <&ssiu33 &ssi3>;
};
/*
* (G) CPU6
*/
dai6 {
capture = <&ssi4>;
};
};
};

View file

@ -0,0 +1,85 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Kingfisher + Simple Audio Card
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <----> ak4613
* (B) CPU1 ----> HDMI
* (C) CPU2 ----> PCM3168A-p
* (D) CPU3 <---- PCM3168A-c
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
* (C) aplay -D plughw:0,2 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
* (D) arecord -D plughw:0,3 xxx.wav
*/
&sound_card {
/* dai-link@0/1 are defined in ulcb.dtsi */
/*
* (C) CPU2 -> PCM3168A-p
*/
simple-audio-card,dai-link@2 {
reg = <2>;
cpu {
bitclock-master;
frame-master;
dai-tdm-slot-num = <8>;
sound-dai = <&rcar_sound 2>;
};
codec {
mclk-fs = <512>;
sound-dai = <&pcm3168a 0>;
};
};
/*
* (D) CPU3 <- PCM3168A-c
*/
simple-audio-card,dai-link@3 {
reg = <3>;
cpu {
bitclock-master;
frame-master;
dai-tdm-slot-num = <6>;
sound-dai = <&rcar_sound 3>;
};
codec {
mclk-fs = <512>;
sound-dai = <&pcm3168a 1>;
};
};
};
&pcm3168a {
/*
* (C) CPU2 -> PCM3168A-p
* (D) CPU3 <- PCM3168A-c
*/
#sound-dai-cells = <1>;
};
&rcar_sound {
rcar_sound,dai {
/* dai0-1 are defined in ulcb.dtsi */
/*
* (C) CPU2 -> PCM3168A-p
*/
dai2 {
playback = <&ssi3>;
};
/*
* (D) CPU3 <- PCM3168A-c
*/
dai3 {
capture = <&ssi4>;
};
};
};

View file

@ -6,12 +6,6 @@
* Copyright (C) 2017 Cogent Embedded, Inc.
*/
/*
* SSI-PCM3168A
* aplay -D plughw:0,2 xxx.wav
* arecord -D plughw:0,3 xxx.wav
*/
/ {
aliases {
serial1 = &hscif0;
@ -212,26 +206,6 @@ pcm3168a: audio-codec@44 {
VCCAD2-supply = <&snd_vcc5v>;
VCCDA1-supply = <&snd_vcc5v>;
VCCDA2-supply = <&snd_vcc5v>;
ports {
#address-cells = <1>;
#size-cells = <0>;
mclk-fs = <512>;
port@0 {
reg = <0>;
pcm3168a_endpoint_p: endpoint {
remote-endpoint = <&rsnd_for_pcm3168a_play>;
clocks = <&clksndsel>;
};
};
port@1 {
reg = <1>;
pcm3168a_endpoint_c: endpoint {
remote-endpoint = <&rsnd_for_pcm3168a_capture>;
clocks = <&clksndsel>;
};
};
};
};
gyroscope@6b {
@ -418,30 +392,6 @@ &rcar_sound {
pinctrl-0 = <&sound_pins
&sound_clk_pins
&sound_pcm_pins>;
ports {
/* rsnd_port0/1 are defined in ulcb.dtsi */
rsnd_port2: port@2 {
reg = <2>;
rsnd_for_pcm3168a_play: endpoint {
remote-endpoint = <&pcm3168a_endpoint_p>;
bitclock-master;
frame-master;
dai-tdm-slot-num = <8>;
playback = <&ssi3>;
};
};
rsnd_port3: port@3 {
reg = <3>;
rsnd_for_pcm3168a_capture: endpoint {
remote-endpoint = <&pcm3168a_endpoint_c>;
bitclock-master;
frame-master;
dai-tdm-slot-num = <6>;
capture = <&ssi4>;
};
};
};
};
&scif1 {
@ -476,14 +426,6 @@ wlcore: wlcore@2 {
};
};
&sound_card {
links = <&rsnd_port0 /* ak4613 */
&rsnd_port1 /* HDMI0 */
&rsnd_port2 /* pcm3168a playback */
&rsnd_port3 /* pcm3168a capture */
>;
};
&ssi4 {
shared-pin;
};
@ -498,3 +440,17 @@ &usb2_phy0 {
&xhci0 {
status = "okay";
};
/*
* For sound-test.
*
* We can switch Audio Card for testing
* see also ulcb.dtsi
*
* #include "ulcb-kf-simple-audio-card.dtsi"
* #include "ulcb-kf-simple-audio-card-mix+split.dtsi"
* #include "ulcb-kf-audio-graph-card.dtsi"
* #include "ulcb-kf-audio-graph-card-mix+split.dtsi"
* #include "ulcb-kf-audio-graph-card2-mix+split.dtsi"
*/
#include "ulcb-kf-audio-graph-card2.dtsi"

View file

@ -0,0 +1,92 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Simple Audio Card (MIXer)
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* Note:
* The HDMI output is ignored due to the limited number of subdevices
*
* (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
* (B) CPU1 (2ch) --/ (MIX-1)
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
/ {
sound_card: sound {
#address-cells = <1>;
#size-cells = <0>;
compatible = "simple-scu-audio-card";
label = "rcar-sound";
simple-audio-card,prefix = "ak4613";
simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback",
"ak4613 Playback", "DAI1 Playback",
"DAI0 Capture", "ak4613 Capture";
simple-audio-card,dai-link@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
convert-rate = <48000>;
/*
* (A) CPU0
*/
cpu@0 {
reg = <0>;
bitclock-master;
frame-master;
sound-dai = <&rcar_sound 0>;
};
/*
* (B) CPU1
*/
cpu@1 {
reg = <1>;
sound-dai = <&rcar_sound 1>;
};
/*
* (X) ak4613
*/
codec {
prefix = "ak4613";
sound-dai = <&ak4613>;
};
};
};
};
&ak4613 {
/*
* (X) ak4613
*/
#sound-dai-cells = <0>;
};
&rcar_sound {
#sound-dai-cells = <1>;
rcar_sound,dai {
/*
* (A) CPU0
*/
dai0 {
playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
capture = <&ssi1 &src0 &dvc1>;
};
/*
* (B) CPU1
*/
dai1 {
playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
};
};
};

View file

@ -0,0 +1,89 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree for ULCB + Simple Audio Card
*
* Copyright (C) 2022 Renesas Electronics Corp.
*/
/*
* (A) CPU0 <----> ak4613
* (B) CPU1 ----> HDMI
*
* (A) aplay -D plughw:0,0 xxx.wav
* (B) aplay -D plughw:0,1 xxx.wav
*
* (A) arecord -D plughw:0,0 xxx.wav
*/
/ {
sound_card: sound {
compatible = "simple-audio-card";
label = "rcar-sound";
#address-cells = <1>;
#size-cells = <0>;
/*
* (A) CPU0 <-> ak4613
*/
simple-audio-card,dai-link@0 {
reg = <0>;
cpu {
bitclock-master;
frame-master;
sound-dai = <&rcar_sound 0>;
};
codec {
sound-dai = <&ak4613>;
};
};
/*
* (B) CPU1 -> HDMI
*/
simple-audio-card,dai-link@1 {
reg = <1>;
cpu {
bitclock-master;
frame-master;
sound-dai = <&rcar_sound 1>;
};
codec {
sound-dai = <&hdmi0>;
};
};
};
};
&ak4613 {
/*
* (A) CPU0 <-> ak4613
*/
#sound-dai-cells = <0>;
};
&hdmi0 {
/*
* (B) CPU1 -> HDMI
*/
#sound-dai-cells = <0>;
};
&rcar_sound {
#sound-dai-cells = <1>;
rcar_sound,dai {
/*
* (A) CPU0 <-> ak4613
*/
dai0 {
playback = <&ssi0 &src0 &dvc0>;
capture = <&ssi1 &src1 &dvc1>;
};
/*
* (B) CPU1 -> HDMI
*/
dai1 {
playback = <&ssi2>;
};
};
};

View file

@ -6,14 +6,6 @@
* Copyright (C) 2016 Cogent Embedded, Inc.
*/
/*
* SSI-AK4613
* aplay -D plughw:0,0 xxx.wav
* arecord -D plughw:0,0 xxx.wav
* SSI-HDMI
* aplay -D plughw:0,1 xxx.wav
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -102,15 +94,6 @@ reg_3p3v: regulator-3p3v {
regulator-always-on;
};
sound_card: sound {
compatible = "audio-graph-card2";
label = "rcar-sound";
links = <&rsnd_port0 /* ak4613 */
&rsnd_port1 /* HDMI0 */
>;
};
vcc_sdhi0: regulator-vcc-sdhi0 {
compatible = "regulator-fixed";
@ -201,9 +184,6 @@ rcar_dw_hdmi0_out: endpoint {
};
port@2 {
reg = <2>;
dw_hdmi0_snd_in: endpoint {
remote-endpoint = <&rsnd_for_hdmi>;
};
};
};
};
@ -218,7 +198,6 @@ &i2c2 {
ak4613: codec@10 {
compatible = "asahi-kasei,ak4613";
#sound-dai-cells = <0>;
reg = <0x10>;
clocks = <&rcar_sound 3>;
@ -230,12 +209,6 @@ ak4613: codec@10 {
asahi-kasei,out4-single-end;
asahi-kasei,out5-single-end;
asahi-kasei,out6-single-end;
port {
ak4613_endpoint: endpoint {
remote-endpoint = <&rsnd_for_ak4613>;
};
};
};
cs2000: clk-multiplier@4f {
@ -381,9 +354,6 @@ &rcar_sound {
pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
pinctrl-names = "default";
/* Single DAI */
#sound-dai-cells = <0>;
/* audio_clkout0/1/2/3 */
#clock-cells = <1>;
clock-frequency = <12288000 11289600>;
@ -408,30 +378,6 @@ &rcar_sound {
<&audio_clk_a>, <&cs2000>,
<&audio_clk_c>,
<&cpg CPG_CORE CPG_AUDIO_CLK_I>;
ports {
#address-cells = <1>;
#size-cells = <0>;
rsnd_port0: port@0 {
reg = <0>;
rsnd_for_ak4613: endpoint {
remote-endpoint = <&ak4613_endpoint>;
bitclock-master;
frame-master;
playback = <&ssi0>, <&src0>, <&dvc0>;
capture = <&ssi1>, <&src1>, <&dvc1>;
};
};
rsnd_port1: port@1 {
reg = <1>;
rsnd_for_hdmi: endpoint {
remote-endpoint = <&dw_hdmi0_snd_in>;
bitclock-master;
frame-master;
playback = <&ssi2>;
};
};
};
};
&rpc {
@ -541,3 +487,17 @@ &usb2_phy1 {
status = "okay";
};
/*
* For sound-test.
*
* We can switch Audio Card for testing
*
* #include "ulcb-simple-audio-card.dtsi"
* #include "ulcb-simple-audio-card-mix+split.dtsi"
* #include "ulcb-audio-graph-card.dtsi"
* #include "ulcb-audio-graph-card-mix+split.dtsi"
* #include "ulcb-audio-graph-card2-mix+split.dtsi"
*/
#include "ulcb-audio-graph-card2.dtsi"

View file

@ -24,10 +24,20 @@ &dmac {
&eth0 {
status = "disabled";
phy0: ethernet-phy@7 {
/delete-property/ interrupt-parent;
/delete-property/ interrupts;
};
};
&eth1 {
status = "disabled";
phy1: ethernet-phy@7 {
/delete-property/ interrupt-parent;
/delete-property/ interrupts;
};
};
&sdhi0 {