blob: 3885ef3454ff6e92d8f0d00509d0f935e7e40fa6 [file] [log] [blame]
// 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"