| // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| /* |
| * Device Tree Source for the RZ/G2L SMARC EVK common parts |
| * |
| * Copyright (C) 2021 Renesas Electronics Corp. |
| */ |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> |
| |
| /* |
| * SSI-WM8978 |
| * |
| * This command is required when Playback/Capture |
| * |
| * amixer cset name='Left Input Mixer L2 Switch' on |
| * amixer cset name='Right Input Mixer R2 Switch' on |
| * amixer cset name='Headphone Playback Volume' 100 |
| * amixer cset name='PCM Volume' 100% |
| * amixer cset name='Input PGA Volume' 25 |
| * |
| */ |
| |
| / { |
| aliases { |
| serial0 = &scif0; |
| i2c0 = &i2c0; |
| i2c1 = &i2c1; |
| i2c3 = &i2c3; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| audio_mclock: audio_mclock { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <11289600>; |
| }; |
| |
| snd_rzg2l: sound { |
| compatible = "simple-audio-card"; |
| simple-audio-card,format = "i2s"; |
| simple-audio-card,bitclock-master = <&cpu_dai>; |
| simple-audio-card,frame-master = <&cpu_dai>; |
| simple-audio-card,mclk-fs = <256>; |
| |
| simple-audio-card,widgets = "Microphone", "Microphone Jack"; |
| simple-audio-card,routing = |
| "L2", "Mic Bias", |
| "R2", "Mic Bias", |
| "Mic Bias", "Microphone Jack"; |
| |
| cpu_dai: simple-audio-card,cpu { |
| sound-dai = <&ssi0>; |
| }; |
| |
| codec_dai: simple-audio-card,codec { |
| clocks = <&audio_mclock>; |
| sound-dai = <&wm8978>; |
| }; |
| }; |
| |
| usb0_vbus_otg: regulator-usb0-vbus-otg { |
| compatible = "regulator-fixed"; |
| |
| regulator-name = "USB0_VBUS_OTG"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| }; |
| |
| vccq_sdhi1: regulator-vccq-sdhi1 { |
| compatible = "regulator-gpio"; |
| regulator-name = "SDHI1 VccQ"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>; |
| gpios-states = <1>; |
| states = <3300000 1>, <1800000 0>; |
| }; |
| }; |
| |
| &audio_clk1{ |
| clock-frequency = <11289600>; |
| }; |
| |
| &audio_clk2{ |
| clock-frequency = <12288000>; |
| }; |
| |
| &canfd { |
| pinctrl-0 = <&can0_pins &can1_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| |
| channel0 { |
| status = "okay"; |
| }; |
| |
| channel1 { |
| status = "okay"; |
| }; |
| }; |
| |
| &ehci0 { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &ehci1 { |
| status = "okay"; |
| }; |
| |
| &hsusb { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| pinctrl-0 = <&i2c0_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |
| |
| &i2c1 { |
| pinctrl-0 = <&i2c1_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |
| |
| &i2c3 { |
| pinctrl-0 = <&i2c3_pins>; |
| pinctrl-names = "default"; |
| clock-frequency = <400000>; |
| |
| status = "okay"; |
| |
| wm8978: codec@1a { |
| compatible = "wlf,wm8978"; |
| #sound-dai-cells = <0>; |
| reg = <0x1a>; |
| }; |
| }; |
| |
| &ohci0 { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &ohci1 { |
| status = "okay"; |
| }; |
| |
| &phyrst { |
| status = "okay"; |
| }; |
| |
| &pinctrl { |
| pinctrl-0 = <&sound_clk_pins>; |
| pinctrl-names = "default"; |
| |
| can0_pins: can0 { |
| pinmux = <RZG2L_PORT_PINMUX(10, 1, 2)>, /* TX */ |
| <RZG2L_PORT_PINMUX(11, 0, 2)>; /* RX */ |
| }; |
| |
| /* SW7 should be at position 2->3 so that GPIO8_CAN0_STB line is activated */ |
| can0-stb { |
| gpio-hog; |
| gpios = <RZG2L_GPIO(42, 2) GPIO_ACTIVE_HIGH>; |
| output-low; |
| line-name = "can0_stb"; |
| }; |
| |
| can1_pins: can1 { |
| pinmux = <RZG2L_PORT_PINMUX(12, 1, 2)>, /* TX */ |
| <RZG2L_PORT_PINMUX(13, 0, 2)>; /* RX */ |
| }; |
| |
| /* SW8 should be at position 2->3 so that GPIO9_CAN1_STB line is activated */ |
| can1-stb { |
| gpio-hog; |
| gpios = <RZG2L_GPIO(42, 3) GPIO_ACTIVE_HIGH>; |
| output-low; |
| line-name = "can1_stb"; |
| }; |
| |
| i2c0_pins: i2c0 { |
| pins = "RIIC0_SDA", "RIIC0_SCL"; |
| input-enable; |
| }; |
| |
| i2c1_pins: i2c1 { |
| pins = "RIIC1_SDA", "RIIC1_SCL"; |
| input-enable; |
| }; |
| |
| i2c3_pins: i2c3 { |
| pinmux = <RZG2L_PORT_PINMUX(18, 0, 3)>, /* SDA */ |
| <RZG2L_PORT_PINMUX(18, 1, 3)>; /* SCL */ |
| }; |
| |
| scif0_pins: scif0 { |
| pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* TxD */ |
| <RZG2L_PORT_PINMUX(38, 1, 1)>; /* RxD */ |
| }; |
| |
| sd1-pwr-en-hog { |
| gpio-hog; |
| gpios = <RZG2L_GPIO(39, 2) GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "sd1_pwr_en"; |
| }; |
| |
| sdhi1_pins: sd1 { |
| sd1_data { |
| pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3"; |
| power-source = <3300>; |
| }; |
| |
| sd1_ctrl { |
| pins = "SD1_CLK", "SD1_CMD"; |
| power-source = <3300>; |
| }; |
| |
| sd1_mux { |
| pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>; /* SD1_CD */ |
| }; |
| }; |
| |
| sdhi1_pins_uhs: sd1_uhs { |
| sd1_data_uhs { |
| pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3"; |
| power-source = <1800>; |
| }; |
| |
| sd1_ctrl_uhs { |
| pins = "SD1_CLK", "SD1_CMD"; |
| power-source = <1800>; |
| }; |
| |
| sd1_mux_uhs { |
| pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>; /* SD1_CD */ |
| }; |
| }; |
| |
| sound_clk_pins: sound_clk { |
| pins = "AUDIO_CLK1", "AUDIO_CLK2"; |
| input-enable; |
| }; |
| |
| ssi0_pins: ssi0 { |
| pinmux = <RZG2L_PORT_PINMUX(45, 0, 1)>, /* BCK */ |
| <RZG2L_PORT_PINMUX(45, 1, 1)>, /* RCK */ |
| <RZG2L_PORT_PINMUX(45, 2, 1)>, /* TXD */ |
| <RZG2L_PORT_PINMUX(45, 3, 1)>; /* RXD */ |
| }; |
| |
| usb0_pins: usb0 { |
| pinmux = <RZG2L_PORT_PINMUX(4, 0, 1)>, /* VBUS */ |
| <RZG2L_PORT_PINMUX(5, 0, 1)>, /* OVC */ |
| <RZG2L_PORT_PINMUX(5, 1, 1)>; /* OTG_ID */ |
| }; |
| |
| usb1_pins: usb1 { |
| pinmux = <RZG2L_PORT_PINMUX(42, 0, 1)>, /* VBUS */ |
| <RZG2L_PORT_PINMUX(42, 1, 1)>; /* OVC */ |
| }; |
| }; |
| |
| &scif0 { |
| pinctrl-0 = <&scif0_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &sdhi1 { |
| pinctrl-0 = <&sdhi1_pins>; |
| pinctrl-1 = <&sdhi1_pins_uhs>; |
| pinctrl-names = "default", "state_uhs"; |
| |
| vmmc-supply = <®_3p3v>; |
| vqmmc-supply = <&vccq_sdhi1>; |
| bus-width = <4>; |
| sd-uhs-sdr50; |
| sd-uhs-sdr104; |
| status = "okay"; |
| }; |
| |
| &ssi0 { |
| pinctrl-0 = <&ssi0_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |
| |
| &usb2_phy0 { |
| pinctrl-0 = <&usb0_pins>; |
| pinctrl-names = "default"; |
| |
| vbus-supply = <&usb0_vbus_otg>; |
| status = "okay"; |
| }; |
| |
| &usb2_phy1 { |
| pinctrl-0 = <&usb1_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |