// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree Source for the iWave-RZ/G1H Qseven board
*
* Copyright (C) 2020 Renesas Electronics Corp.
*/
/*
* 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 "r8a7742-iwg21m.dtsi"
#include <dt-bindings/pwm/pwm.h>
/ {
model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
compatible = "iwave,g21d", "iwave,g21m", "renesas,r8a7742";
aliases {
serial2 = &scifa2;
serial4 = &scifb2;
ethernet0 = &avb;
};
chosen {
bootargs = "ignore_loglevel root=/dev/mmcblk0p1 rw rootwait";
stdout-path = "serial2:115200n8";
};
audio_clock: audio_clock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <26000000>;
};
lcd_backlight: backlight {
compatible = "pwm-backlight";
pwms = <&tpu 2 5000000 0>;
brightness-levels = <0 4 8 16 32 64 128 255>;
pinctrl-0 = <&backlight_pins>;
pinctrl-names = "default";
default-brightness-level = <7>;
enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
};
leds {
compatible = "gpio-leds";
sdhi2_led {
label = "sdio-led";
gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
};
};
lvds-receiver {
compatible = "ti,ds90cf384a", "lvds-decoder";
power-supply = <&vcc_3v3_tft1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lvds_receiver_in: endpoint {
remote-endpoint = <&lvds0_out>;
};
};
port@1 {
reg = <1>;
lvds_receiver_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
panel {
compatible = "edt,etm0700g0dh6";
backlight = <&lcd_backlight>;
power-supply = <&vcc_3v3_tft1>;
port {
panel_in: endpoint {
remote-endpoint = <&lvds_receiver_out>;
};
};
};
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_3v3_tft1: regulator-panel {
compatible = "regulator-fixed";
regulator-name = "vcc-3v3-tft1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
startup-delay-us = <500>;
gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
};
vcc_sdhi2: regulator-vcc-sdhi2 {
compatible = "regulator-fixed";
regulator-name = "SDHI2 Vcc";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
};
vccq_sdhi2: regulator-vccq-sdhi2 {
compatible = "regulator-gpio";
regulator-name = "SDHI2 VccQ";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
gpios-states = <1>;
states = <3300000 1>, <1800000 0>;
};
};
&avb {
pinctrl-0 = <&avb_pins>;
pinctrl-names = "default";
phy-handle = <&phy3>;
phy-mode = "gmii";
renesas,no-ether-link;
status = "okay";
phy3: ethernet-phy@3 {
compatible = "ethernet-phy-id0022.1622",
"ethernet-phy-ieee802.3-c22";
reg = <3>;
micrel,led-mode = <1>;
};
};
&i2c2 {
pinctrl-0 = <&i2c2_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 = <®_3p3v>;
VDDIO-supply = <®_3p3v>;
VDDD-supply = <®_1p5v>;
};
touch: touchpanel@38 {
compatible = "edt,edt-ft5406";
reg = <0x38>;
interrupt-parent = <&gpio0>;
interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
/* GP1_29 is also shared with audio codec reset pin */
reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
vcc-supply = <&vcc_3v3_tft1>;
};
};
&can1 {
pinctrl-0 = <&can1_pins>;
pinctrl-names = "default";
status = "okay";
};
&cmt0 {
status = "okay";
};
&du {
status = "okay";
};
&gpio0 {
touch-interrupt-hog {
gpio-hog;
gpios = <24 GPIO_ACTIVE_LOW>;
input;
};
};
&gpio1 {
can-trx-en-hog {
gpio-hog;
gpios = <28 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "can-trx-en-gpio";
};
};
&hsusb {
pinctrl-0 = <&usb0_pins>;
pinctrl-names = "default";
status = "okay";
};
&lvds0 {
status = "okay";
ports {
port@1 {
lvds0_out: endpoint {
remote-endpoint = <&lvds_receiver_in>;
};
};
};
};
&msiof0 {
pinctrl-0 = <&msiof0_pins>;
pinctrl-names = "default";
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
status = "okay";
flash1: flash@0 {
compatible = "sst,sst25vf016b", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "user";
reg = <0x00000000 0x00200000>;
};
};
};
};
&pci0 {
pinctrl-0 = <&usb0_pins>;
pinctrl-names = "default";
/* Disable hsusb to enable USB2.0 host mode support on J2 */
/* status = "okay"; */
};
&pci1 {
pinctrl-0 = <&usb1_pins>;
pinctrl-names = "default";
status = "okay";
};
&pci2 {
/* Disable xhci to enable USB2.0 host mode support on J23 bottom port */
/* status = "okay"; */
};
&pcie_bus_clk {
clock-frequency = <100000000>;
};
&pciec {
/* SW2[6] determines which connector is activated
* ON = PCIe X4 (connector-J7)
* OFF = mini-PCIe (connector-J26)
*/
status = "okay";
};
&pfc {
avb_pins: avb {
groups = "avb_mdio", "avb_gmii";
function = "avb";
};
backlight_pins: backlight {
groups = "tpu0_to2";
function = "tpu0";
};
can1_pins: can1 {
groups = "can1_data_b";
function = "can1";
};
i2c2_pins: i2c2 {
groups = "i2c2_b";
function = "i2c2";
};
msiof0_pins: msiof0 {
groups = "msiof0_clk", "msiof0_sync", "msiof0_tx", "msiof0_rx";
function = "msiof0";
};
scifa2_pins: scifa2 {
groups = "scifa2_data_c";
function = "scifa2";
};
scifb2_pins: scifb2 {
groups = "scifb2_data", "scifb2_ctrl";
function = "scifb2";
};
sdhi2_pins: sd2 {
groups = "sdhi2_data4", "sdhi2_ctrl";
function = "sdhi2";
power-source = <3300>;
};
sdhi2_pins_uhs: sd2_uhs {
groups = "sdhi2_data4", "sdhi2_ctrl";
function = "sdhi2";
power-source = <1800>;
};
sound_pins: sound {
groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
function = "ssi";
};
usb0_pins: usb0 {
groups = "usb0";
function = "usb0";
};
usb1_pins: usb1 {
groups = "usb1_pwen";
function = "usb1";
};
};
&rcar_sound {
pinctrl-0 = <&sound_pins>;
pinctrl-names = "default";
status = "okay";
/* Single DAI */
#sound-dai-cells = <0>;
rcar_sound,dai {
dai0 {
playback = <&ssi4>, <&src4>, <&dvc1>;
capture = <&ssi3>, <&src3>, <&dvc0>;
};
};
};
&rwdt {
timeout-sec = <60>;
status = "okay";
};
&scifa2 {
pinctrl-0 = <&scifa2_pins>;
pinctrl-names = "default";
status = "okay";
};
&scifb2 {
pinctrl-0 = <&scifb2_pins>;
pinctrl-names = "default";
uart-has-rtscts;
status = "okay";
};
&sdhi2 {
pinctrl-0 = <&sdhi2_pins>;
pinctrl-1 = <&sdhi2_pins_uhs>;
pinctrl-names = "default", "state_uhs";
vmmc-supply = <&vcc_sdhi2>;
vqmmc-supply = <&vccq_sdhi2>;
cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
sd-uhs-sdr50;
status = "okay";
};
&ssi4 {
shared-pin;
};
&tpu {
status = "okay";
};
&usbphy {
status = "okay";
};
&xhci {
status = "okay";
};