| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Device Tree Source for the Kingfisher (ULCB extension) board |
| * |
| * Copyright (C) 2017 Renesas Electronics Corp. |
| * 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; |
| serial2 = &scif1; |
| }; |
| |
| clksndsel: clksndsel { |
| #clock-cells = <0>; |
| compatible = "gpio-mux-clock"; |
| clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */ |
| select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| snd_3p3v: regulator-snd_3p3v { |
| compatible = "regulator-fixed"; |
| regulator-name = "snd-3.3v"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| snd_vcc5v: regulator-snd_vcc5v { |
| compatible = "regulator-fixed"; |
| regulator-name = "snd-vcc5v"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| }; |
| |
| wlan_en: regulator-wlan_en { |
| compatible = "regulator-fixed"; |
| regulator-name = "wlan-en-regulator"; |
| |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| |
| gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>; |
| startup-delay-us = <70000>; |
| enable-active-high; |
| }; |
| }; |
| |
| &can0 { |
| pinctrl-0 = <&can0_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &can1 { |
| pinctrl-0 = <&can1_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &ehci0 { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &hscif0 { |
| pinctrl-0 = <&hscif0_pins>; |
| pinctrl-names = "default"; |
| uart-has-rtscts; |
| |
| status = "okay"; |
| }; |
| |
| &hsusb { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &i2c2 { |
| /* U11 */ |
| gpio_exp_74: gpio@74 { |
| compatible = "ti,tca9539"; |
| reg = <0x74>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| interrupt-parent = <&gpio6>; |
| interrupts = <8 IRQ_TYPE_EDGE_FALLING>; |
| |
| audio_out_off { |
| gpio-hog; |
| gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */ |
| output-high; |
| line-name = "Audio_Out_OFF"; |
| }; |
| |
| sd-wifi-mux { |
| gpio-hog; |
| gpios = <5 GPIO_ACTIVE_HIGH>; |
| output-low; /* Connect WL1837 */ |
| line-name = "SD WiFi mux"; |
| }; |
| |
| hub_pwen { |
| gpio-hog; |
| gpios = <6 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "HUB pwen"; |
| }; |
| |
| hub_rst { |
| gpio-hog; |
| gpios = <7 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "HUB rst"; |
| }; |
| |
| otg_offvbusn { |
| gpio-hog; |
| gpios = <8 GPIO_ACTIVE_HIGH>; |
| output-low; |
| line-name = "OTG OFFVBUSn"; |
| }; |
| |
| otg_extlpn { |
| gpio-hog; |
| gpios = <9 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "OTG EXTLPn"; |
| }; |
| |
| snd_rst { |
| gpio-hog; |
| gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */ |
| output-high; |
| line-name = "SND_RST"; |
| }; |
| }; |
| |
| /* U5 */ |
| gpio_exp_75: gpio@75 { |
| compatible = "ti,tca9539"; |
| reg = <0x75>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| interrupt-parent = <&gpio6>; |
| interrupts = <4 IRQ_TYPE_EDGE_FALLING>; |
| }; |
| |
| i2cswitch2: i2c-switch@71 { |
| compatible = "nxp,pca9548"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x71>; |
| reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; |
| |
| /* Audio_SDA, Audio_SCL */ |
| i2c@7 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <7>; |
| |
| pcm3168a: audio-codec@44 { |
| #sound-dai-cells = <0>; |
| compatible = "ti,pcm3168a"; |
| reg = <0x44>; |
| clocks = <&clksndsel>; |
| clock-names = "scki"; |
| |
| VDD1-supply = <&snd_3p3v>; |
| VDD2-supply = <&snd_3p3v>; |
| VCCAD1-supply = <&snd_vcc5v>; |
| 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>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &i2c4 { |
| gpio_exp_76: gpio@76 { |
| compatible = "ti,tca9539"; |
| reg = <0x76>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| interrupt-parent = <&gpio7>; |
| interrupts = <3 IRQ_TYPE_EDGE_FALLING>; |
| }; |
| |
| gpio_exp_77: gpio@77 { |
| compatible = "ti,tca9539"; |
| reg = <0x77>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| interrupt-parent = <&gpio5>; |
| interrupts = <9 IRQ_TYPE_EDGE_FALLING>; |
| }; |
| |
| i2cswitch4: i2c-switch@71 { |
| compatible = "nxp,pca9548"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x71>; |
| reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| &ohci0 { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &pcie_bus_clk { |
| clock-frequency = <100000000>; |
| }; |
| |
| &pciec0 { |
| status = "okay"; |
| }; |
| |
| &pciec1 { |
| status = "okay"; |
| }; |
| |
| &pfc { |
| can0_pins: can0 { |
| groups = "can0_data_a"; |
| function = "can0"; |
| }; |
| |
| can1_pins: can1 { |
| groups = "can1_data"; |
| function = "can1"; |
| }; |
| |
| hscif0_pins: hscif0 { |
| groups = "hscif0_data", "hscif0_ctrl"; |
| function = "hscif0"; |
| }; |
| |
| scif1_pins: scif1 { |
| groups = "scif1_data_b", "scif1_ctrl"; |
| function = "scif1"; |
| }; |
| |
| sdhi3_pins: sdhi3 { |
| groups = "sdhi3_data4", "sdhi3_ctrl"; |
| function = "sdhi3"; |
| power-source = <3300>; |
| }; |
| |
| usb0_pins: usb0 { |
| groups = "usb0"; |
| function = "usb0"; |
| }; |
| |
| sound_pcm_pins: sound-pcm { |
| groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; |
| function = "ssi"; |
| }; |
| }; |
| |
| &scif1 { |
| pinctrl-0 = <&scif1_pins>; |
| pinctrl-names = "default"; |
| uart-has-rtscts; |
| |
| status = "okay"; |
| }; |
| |
| &sdhi3 { |
| pinctrl-0 = <&sdhi3_pins>; |
| pinctrl-names = "default"; |
| |
| vmmc-supply = <&wlan_en>; |
| vqmmc-supply = <&wlan_en>; |
| bus-width = <4>; |
| no-1-8-v; |
| non-removable; |
| cap-power-off-card; |
| keep-power-in-suspend; |
| max-frequency = <26000000>; |
| status = "okay"; |
| |
| #address-cells = <1>; |
| #size-cells = <0>; |
| wlcore: wlcore@2 { |
| compatible = "ti,wl1837"; |
| reg = <2>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <25 IRQ_TYPE_EDGE_FALLING>; |
| }; |
| }; |
| |
| &usb2_phy0 { |
| pinctrl-0 = <&usb0_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |
| |
| &xhci0 { |
| status = "okay"; |
| }; |
| |
| &sound_card { |
| dais = <&rsnd_port0 /* ak4613 */ |
| &rsnd_port1 /* HDMI0 */ |
| &rsnd_port2 /* pcm3168a playback */ |
| &rsnd_port3 /* pcm3168a capture */ |
| >; |
| }; |
| |
| &rcar_sound { |
| pinctrl-0 = <&sound_pins |
| &sound_clk_pins |
| &sound_pcm_pins>; |
| |
| ports { |
| /* rsnd_port0/1 are on salvator-common */ |
| rsnd_port2: port@2 { |
| reg = <2>; |
| rsnd_for_pcm3168a_play: endpoint { |
| remote-endpoint = <&pcm3168a_endpoint_p>; |
| |
| dai-format = "i2s"; |
| bitclock-master = <&rsnd_for_pcm3168a_play>; |
| frame-master = <&rsnd_for_pcm3168a_play>; |
| dai-tdm-slot-num = <8>; |
| |
| playback = <&ssi3>; |
| }; |
| }; |
| rsnd_port3: port@3 { |
| reg = <3>; |
| rsnd_for_pcm3168a_capture: endpoint { |
| remote-endpoint = <&pcm3168a_endpoint_c>; |
| |
| dai-format = "i2s"; |
| bitclock-master = <&rsnd_for_pcm3168a_capture>; |
| frame-master = <&rsnd_for_pcm3168a_capture>; |
| dai-tdm-slot-num = <6>; |
| |
| capture = <&ssi4>; |
| }; |
| }; |
| }; |
| }; |
| |
| &ssi4 { |
| shared-pin; |
| }; |