| // 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. |
| */ |
| |
| / { |
| aliases { |
| serial1 = &hscif0; |
| serial2 = &scif1; |
| serial3 = &hscif1; |
| mmc2 = &sdhi3; |
| }; |
| |
| 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>; |
| }; |
| |
| hdmi1-out { |
| compatible = "hdmi-connector"; |
| type = "a"; |
| |
| port { |
| hdmi1_con: endpoint { |
| remote-endpoint = <&adv7513_out>; |
| }; |
| }; |
| }; |
| |
| accel_3v3: regulator-acc-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "accel-3v3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| hdmi_1v8: regulator-hdmi-1v8 { |
| compatible = "regulator-fixed"; |
| regulator-name = "hdmi-1v8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| hdmi_3v3: regulator-hdmi-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "hdmi-3v3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| 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"; |
| }; |
| |
| &du { |
| ports { |
| port@0 { |
| du_out_rgb: endpoint { |
| remote-endpoint = <&adv7513_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &ehci0 { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &hscif0 { |
| pinctrl-0 = <&hscif0_pins>; |
| pinctrl-names = "default"; |
| uart-has-rtscts; |
| |
| status = "okay"; |
| }; |
| |
| &hscif1 { |
| pinctrl-0 = <&hscif1_pins>; |
| pinctrl-names = "default"; |
| uart-has-rtscts; |
| |
| status = "okay"; |
| }; |
| |
| &hsusb { |
| dr_mode = "otg"; |
| status = "okay"; |
| }; |
| |
| &i2c2 { |
| i2cmux2: i2c-mux@71 { |
| compatible = "nxp,pca9548"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x71>; |
| reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; |
| |
| /* HDMIoSDA, HDMIoSCL */ |
| i2c@4 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <4>; |
| |
| hdmi@3d { |
| compatible = "adi,adv7513"; |
| reg = <0x3d>; |
| |
| pinctrl-0 = <&hdmi1_pins>; |
| pinctrl-names = "default"; |
| |
| interrupt-parent = <&gpio2>; |
| interrupts = <14 IRQ_TYPE_LEVEL_LOW>; |
| |
| clocks = <&cs2000>; |
| clock-names = "cec"; |
| |
| pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>; |
| |
| avdd-supply = <&hdmi_1v8>; |
| dvdd-supply = <&hdmi_1v8>; |
| pvdd-supply = <&hdmi_1v8>; |
| dvdd-3v-supply = <&hdmi_3v3>; |
| bgvdd-supply = <&hdmi_1v8>; |
| |
| adi,input-depth = <8>; |
| adi,input-colorspace = "rgb"; |
| adi,input-clock = "1x"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| adv7513_in: endpoint { |
| remote-endpoint = <&du_out_rgb>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| adv7513_out: endpoint { |
| remote-endpoint = <&hdmi1_con>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| /* Audio_SDA, Audio_SCL */ |
| i2c@7 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <7>; |
| |
| accelerometer@1d { |
| compatible = "st,lsm9ds0-imu"; |
| reg = <0x1d>; |
| |
| vdd-supply = <&accel_3v3>; |
| vddio-supply = <&accel_3v3>; |
| }; |
| |
| 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>; |
| }; |
| |
| gyroscope@6b { |
| compatible = "st,lsm9ds0-gyro"; |
| reg = <0x6b>; |
| |
| vdd-supply = <&accel_3v3>; |
| vddio-supply = <&accel_3v3>; |
| }; |
| }; |
| }; |
| |
| /* 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-hog { |
| gpio-hog; |
| gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */ |
| output-high; |
| line-name = "Audio_Out_OFF"; |
| }; |
| |
| hub-pwen-hog { |
| gpio-hog; |
| gpios = <6 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "HUB pwen"; |
| }; |
| |
| hub-rst-hog { |
| gpio-hog; |
| gpios = <7 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "HUB rst"; |
| }; |
| |
| otg-extlpn-hog { |
| gpio-hog; |
| gpios = <9 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "OTG EXTLPn"; |
| }; |
| |
| otg-offvbusn-hog { |
| gpio-hog; |
| gpios = <8 GPIO_ACTIVE_HIGH>; |
| output-low; |
| line-name = "OTG OFFVBUSn"; |
| }; |
| |
| sd-wifi-mux-hog { |
| gpio-hog; |
| gpios = <5 GPIO_ACTIVE_HIGH>; |
| output-low; /* Connect WL1837 */ |
| line-name = "SD WiFi mux"; |
| }; |
| |
| snd-rst-hog { |
| 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>; |
| }; |
| }; |
| |
| &i2c4 { |
| i2cmux4: i2c-mux@71 { |
| compatible = "nxp,pca9548"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x71>; |
| reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; |
| }; |
| |
| 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>; |
| }; |
| }; |
| |
| &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"; |
| }; |
| |
| hdmi1_pins: hdmi1 { |
| adv7513-interrupt { |
| pins = "GP_2_14"; |
| bias-pull-up; |
| }; |
| |
| du { |
| groups = "du_rgb888", "du_sync", "du_clk_out_0", |
| "du_disp"; |
| function = "du"; |
| }; |
| }; |
| |
| hscif0_pins: hscif0 { |
| groups = "hscif0_data", "hscif0_ctrl"; |
| function = "hscif0"; |
| }; |
| |
| hscif1_pins: hscif1 { |
| groups = "hscif1_data_a", "hscif1_ctrl_a"; |
| function = "hscif1"; |
| }; |
| |
| scif1_pins: scif1 { |
| groups = "scif1_data_b"; |
| function = "scif1"; |
| }; |
| |
| sdhi3_pins: sdhi3 { |
| groups = "sdhi3_data4", "sdhi3_ctrl"; |
| function = "sdhi3"; |
| power-source = <3300>; |
| }; |
| |
| sound_pcm_pins: sound-pcm { |
| groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; |
| function = "ssi"; |
| }; |
| |
| usb0_pins: usb0 { |
| groups = "usb0"; |
| function = "usb0"; |
| }; |
| }; |
| |
| &rcar_sound { |
| pinctrl-0 = <&sound_pins |
| &sound_clk_pins |
| &sound_pcm_pins>; |
| }; |
| |
| &scif1 { |
| pinctrl-0 = <&scif1_pins>; |
| pinctrl-names = "default"; |
| |
| 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>; |
| }; |
| }; |
| |
| &ssi4 { |
| shared-pin; |
| }; |
| |
| &usb2_phy0 { |
| pinctrl-0 = <&usb0_pins>; |
| pinctrl-names = "default"; |
| |
| status = "okay"; |
| }; |
| |
| &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" |