| // 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" | 
|   | 
| / { | 
|     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>; | 
|     }; | 
|   | 
|     leds { | 
|         compatible = "gpio-leds"; | 
|   | 
|         sdhi2_led { | 
|             label = "sdio-led"; | 
|             gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; | 
|             linux,default-trigger = "mmc1"; | 
|         }; | 
|     }; | 
|   | 
|     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_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 { | 
|         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>; | 
|     }; | 
| }; | 
|   | 
| &can1 { | 
|     pinctrl-0 = <&can1_pins>; | 
|     pinctrl-names = "default"; | 
|   | 
|     status = "okay"; | 
| }; | 
|   | 
| &cmt0 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &gpio1 { | 
|     can-trx-en-gpio{ | 
|         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"; | 
| }; | 
|   | 
| &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"; | 
|     }; | 
|   | 
|     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; | 
| }; | 
|   | 
| &usbphy { | 
|     status = "okay"; | 
| }; | 
|   | 
| &xhci { | 
|     status = "okay"; | 
| }; |