// 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-cells = <2>; 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-cells = <2>; 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-cells = <2>; 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-cells = <2>; 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"