0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Device Tree Source for the Kingfisher (ULCB extension) board
0004 *
0005 * Copyright (C) 2017 Renesas Electronics Corp.
0006 * Copyright (C) 2017 Cogent Embedded, Inc.
0007 */
0008
0009 /*
0010 * SSI-PCM3168A
0011 * aplay -D plughw:0,2 xxx.wav
0012 * arecord -D plughw:0,3 xxx.wav
0013 */
0014
0015 / {
0016 aliases {
0017 serial1 = &hscif0;
0018 serial2 = &scif1;
0019 mmc2 = &sdhi3;
0020 };
0021
0022 clksndsel: clksndsel {
0023 #clock-cells = <0>;
0024 compatible = "gpio-mux-clock";
0025 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
0026 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
0027 };
0028
0029 hdmi1-out {
0030 compatible = "hdmi-connector";
0031 type = "a";
0032
0033 port {
0034 hdmi1_con: endpoint {
0035 remote-endpoint = <&adv7513_out>;
0036 };
0037 };
0038 };
0039
0040 accel_3v3: regulator-acc-3v3 {
0041 compatible = "regulator-fixed";
0042 regulator-name = "accel-3v3";
0043 regulator-min-microvolt = <3300000>;
0044 regulator-max-microvolt = <3300000>;
0045 };
0046
0047 hdmi_1v8: regulator-hdmi-1v8 {
0048 compatible = "regulator-fixed";
0049 regulator-name = "hdmi-1v8";
0050 regulator-min-microvolt = <1800000>;
0051 regulator-max-microvolt = <1800000>;
0052 };
0053
0054 hdmi_3v3: regulator-hdmi-3v3 {
0055 compatible = "regulator-fixed";
0056 regulator-name = "hdmi-3v3";
0057 regulator-min-microvolt = <3300000>;
0058 regulator-max-microvolt = <3300000>;
0059 };
0060
0061 snd_3p3v: regulator-snd_3p3v {
0062 compatible = "regulator-fixed";
0063 regulator-name = "snd-3.3v";
0064 regulator-min-microvolt = <3300000>;
0065 regulator-max-microvolt = <3300000>;
0066 };
0067
0068 snd_vcc5v: regulator-snd_vcc5v {
0069 compatible = "regulator-fixed";
0070 regulator-name = "snd-vcc5v";
0071 regulator-min-microvolt = <5000000>;
0072 regulator-max-microvolt = <5000000>;
0073 };
0074
0075 wlan_en: regulator-wlan_en {
0076 compatible = "regulator-fixed";
0077 regulator-name = "wlan-en-regulator";
0078
0079 regulator-min-microvolt = <3300000>;
0080 regulator-max-microvolt = <3300000>;
0081
0082 gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
0083 startup-delay-us = <70000>;
0084 enable-active-high;
0085 };
0086 };
0087
0088 &can0 {
0089 pinctrl-0 = <&can0_pins>;
0090 pinctrl-names = "default";
0091 status = "okay";
0092 };
0093
0094 &can1 {
0095 pinctrl-0 = <&can1_pins>;
0096 pinctrl-names = "default";
0097 status = "okay";
0098 };
0099
0100 &du {
0101 ports {
0102 port@0 {
0103 du_out_rgb: endpoint {
0104 remote-endpoint = <&adv7513_in>;
0105 };
0106 };
0107 };
0108 };
0109
0110 &ehci0 {
0111 dr_mode = "otg";
0112 status = "okay";
0113 };
0114
0115 &hscif0 {
0116 pinctrl-0 = <&hscif0_pins>;
0117 pinctrl-names = "default";
0118 uart-has-rtscts;
0119
0120 status = "okay";
0121 };
0122
0123 &hsusb {
0124 dr_mode = "otg";
0125 status = "okay";
0126 };
0127
0128 &i2c2 {
0129 i2cswitch2: i2c-switch@71 {
0130 compatible = "nxp,pca9548";
0131 #address-cells = <1>;
0132 #size-cells = <0>;
0133 reg = <0x71>;
0134 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
0135
0136 /* HDMIoSDA, HDMIoSCL */
0137 i2c@4 {
0138 #address-cells = <1>;
0139 #size-cells = <0>;
0140 reg = <4>;
0141
0142 hdmi@3d {
0143 compatible = "adi,adv7513";
0144 reg = <0x3d>;
0145
0146 pinctrl-0 = <&hdmi1_pins>;
0147 pinctrl-names = "default";
0148
0149 interrupt-parent = <&gpio2>;
0150 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
0151
0152 clocks = <&cs2000>;
0153 clock-names = "cec";
0154
0155 pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>;
0156
0157 avdd-supply = <&hdmi_1v8>;
0158 dvdd-supply = <&hdmi_1v8>;
0159 pvdd-supply = <&hdmi_1v8>;
0160 dvdd-3v-supply = <&hdmi_3v3>;
0161 bgvdd-supply = <&hdmi_1v8>;
0162
0163 adi,input-depth = <8>;
0164 adi,input-colorspace = "rgb";
0165 adi,input-clock = "1x";
0166
0167 ports {
0168 #address-cells = <1>;
0169 #size-cells = <0>;
0170
0171 port@0 {
0172 reg = <0>;
0173 adv7513_in: endpoint {
0174 remote-endpoint = <&du_out_rgb>;
0175 };
0176 };
0177
0178 port@1 {
0179 reg = <1>;
0180 adv7513_out: endpoint {
0181 remote-endpoint = <&hdmi1_con>;
0182 };
0183 };
0184 };
0185 };
0186 };
0187
0188 /* Audio_SDA, Audio_SCL */
0189 i2c@7 {
0190 #address-cells = <1>;
0191 #size-cells = <0>;
0192 reg = <7>;
0193
0194 accelerometer@1d {
0195 compatible = "st,lsm9ds0-imu";
0196 reg = <0x1d>;
0197
0198 vdd-supply = <&accel_3v3>;
0199 vddio-supply = <&accel_3v3>;
0200 };
0201
0202 pcm3168a: audio-codec@44 {
0203 #sound-dai-cells = <0>;
0204 compatible = "ti,pcm3168a";
0205 reg = <0x44>;
0206 clocks = <&clksndsel>;
0207 clock-names = "scki";
0208
0209 VDD1-supply = <&snd_3p3v>;
0210 VDD2-supply = <&snd_3p3v>;
0211 VCCAD1-supply = <&snd_vcc5v>;
0212 VCCAD2-supply = <&snd_vcc5v>;
0213 VCCDA1-supply = <&snd_vcc5v>;
0214 VCCDA2-supply = <&snd_vcc5v>;
0215
0216 ports {
0217 #address-cells = <1>;
0218 #size-cells = <0>;
0219 mclk-fs = <512>;
0220 port@0 {
0221 reg = <0>;
0222 pcm3168a_endpoint_p: endpoint {
0223 remote-endpoint = <&rsnd_for_pcm3168a_play>;
0224 clocks = <&clksndsel>;
0225 };
0226 };
0227 port@1 {
0228 reg = <1>;
0229 pcm3168a_endpoint_c: endpoint {
0230 remote-endpoint = <&rsnd_for_pcm3168a_capture>;
0231 clocks = <&clksndsel>;
0232 };
0233 };
0234 };
0235 };
0236
0237 gyroscope@6b {
0238 compatible = "st,lsm9ds0-gyro";
0239 reg = <0x6b>;
0240
0241 vdd-supply = <&accel_3v3>;
0242 vddio-supply = <&accel_3v3>;
0243 };
0244 };
0245 };
0246
0247 /* U11 */
0248 gpio_exp_74: gpio@74 {
0249 compatible = "ti,tca9539";
0250 reg = <0x74>;
0251 gpio-controller;
0252 #gpio-cells = <2>;
0253 interrupt-controller;
0254 interrupt-parent = <&gpio6>;
0255 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
0256
0257 audio-out-off-hog {
0258 gpio-hog;
0259 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
0260 output-high;
0261 line-name = "Audio_Out_OFF";
0262 };
0263
0264 hub-pwen-hog {
0265 gpio-hog;
0266 gpios = <6 GPIO_ACTIVE_HIGH>;
0267 output-high;
0268 line-name = "HUB pwen";
0269 };
0270
0271 hub-rst-hog {
0272 gpio-hog;
0273 gpios = <7 GPIO_ACTIVE_HIGH>;
0274 output-high;
0275 line-name = "HUB rst";
0276 };
0277
0278 otg-extlpn-hog {
0279 gpio-hog;
0280 gpios = <9 GPIO_ACTIVE_HIGH>;
0281 output-high;
0282 line-name = "OTG EXTLPn";
0283 };
0284
0285 otg-offvbusn-hog {
0286 gpio-hog;
0287 gpios = <8 GPIO_ACTIVE_HIGH>;
0288 output-low;
0289 line-name = "OTG OFFVBUSn";
0290 };
0291
0292 sd-wifi-mux-hog {
0293 gpio-hog;
0294 gpios = <5 GPIO_ACTIVE_HIGH>;
0295 output-low; /* Connect WL1837 */
0296 line-name = "SD WiFi mux";
0297 };
0298
0299 snd-rst-hog {
0300 gpio-hog;
0301 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
0302 output-high;
0303 line-name = "SND_RST";
0304 };
0305 };
0306
0307 /* U5 */
0308 gpio_exp_75: gpio@75 {
0309 compatible = "ti,tca9539";
0310 reg = <0x75>;
0311 gpio-controller;
0312 #gpio-cells = <2>;
0313 interrupt-controller;
0314 interrupt-parent = <&gpio6>;
0315 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
0316 };
0317 };
0318
0319 &i2c4 {
0320 i2cswitch4: i2c-switch@71 {
0321 compatible = "nxp,pca9548";
0322 #address-cells = <1>;
0323 #size-cells = <0>;
0324 reg = <0x71>;
0325 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
0326 };
0327
0328 gpio_exp_76: gpio@76 {
0329 compatible = "ti,tca9539";
0330 reg = <0x76>;
0331 gpio-controller;
0332 #gpio-cells = <2>;
0333 interrupt-controller;
0334 interrupt-parent = <&gpio7>;
0335 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
0336 };
0337
0338 gpio_exp_77: gpio@77 {
0339 compatible = "ti,tca9539";
0340 reg = <0x77>;
0341 gpio-controller;
0342 #gpio-cells = <2>;
0343 interrupt-controller;
0344 interrupt-parent = <&gpio5>;
0345 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
0346 };
0347 };
0348
0349 &ohci0 {
0350 dr_mode = "otg";
0351 status = "okay";
0352 };
0353
0354 &pcie_bus_clk {
0355 clock-frequency = <100000000>;
0356 };
0357
0358 &pciec0 {
0359 status = "okay";
0360 };
0361
0362 &pciec1 {
0363 status = "okay";
0364 };
0365
0366 &pfc {
0367 can0_pins: can0 {
0368 groups = "can0_data_a";
0369 function = "can0";
0370 };
0371
0372 can1_pins: can1 {
0373 groups = "can1_data";
0374 function = "can1";
0375 };
0376
0377 hdmi1_pins: hdmi1 {
0378 adv7513-interrupt {
0379 pins = "GP_2_14";
0380 bias-pull-up;
0381 };
0382
0383 du {
0384 groups = "du_rgb888", "du_sync", "du_clk_out_0",
0385 "du_disp";
0386 function = "du";
0387 };
0388 };
0389
0390 hscif0_pins: hscif0 {
0391 groups = "hscif0_data", "hscif0_ctrl";
0392 function = "hscif0";
0393 };
0394
0395 scif1_pins: scif1 {
0396 groups = "scif1_data_b", "scif1_ctrl";
0397 function = "scif1";
0398 };
0399
0400 sdhi3_pins: sdhi3 {
0401 groups = "sdhi3_data4", "sdhi3_ctrl";
0402 function = "sdhi3";
0403 power-source = <3300>;
0404 };
0405
0406 sound_pcm_pins: sound-pcm {
0407 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
0408 function = "ssi";
0409 };
0410
0411 usb0_pins: usb0 {
0412 groups = "usb0";
0413 function = "usb0";
0414 };
0415 };
0416
0417 &rcar_sound {
0418 pinctrl-0 = <&sound_pins
0419 &sound_clk_pins
0420 &sound_pcm_pins>;
0421
0422 ports {
0423 /* rsnd_port0/1 are defined in ulcb.dtsi */
0424 rsnd_port2: port@2 {
0425 reg = <2>;
0426 rsnd_for_pcm3168a_play: endpoint {
0427 remote-endpoint = <&pcm3168a_endpoint_p>;
0428 bitclock-master;
0429 frame-master;
0430 dai-tdm-slot-num = <8>;
0431 playback = <&ssi3>;
0432 };
0433 };
0434 rsnd_port3: port@3 {
0435 reg = <3>;
0436 rsnd_for_pcm3168a_capture: endpoint {
0437 remote-endpoint = <&pcm3168a_endpoint_c>;
0438 bitclock-master;
0439 frame-master;
0440 dai-tdm-slot-num = <6>;
0441 capture = <&ssi4>;
0442 };
0443 };
0444 };
0445 };
0446
0447 &scif1 {
0448 pinctrl-0 = <&scif1_pins>;
0449 pinctrl-names = "default";
0450 uart-has-rtscts;
0451
0452 status = "okay";
0453 };
0454
0455 &sdhi3 {
0456 pinctrl-0 = <&sdhi3_pins>;
0457 pinctrl-names = "default";
0458
0459 vmmc-supply = <&wlan_en>;
0460 vqmmc-supply = <&wlan_en>;
0461 bus-width = <4>;
0462 no-1-8-v;
0463 non-removable;
0464 cap-power-off-card;
0465 keep-power-in-suspend;
0466 max-frequency = <26000000>;
0467 status = "okay";
0468
0469 #address-cells = <1>;
0470 #size-cells = <0>;
0471 wlcore: wlcore@2 {
0472 compatible = "ti,wl1837";
0473 reg = <2>;
0474 interrupt-parent = <&gpio1>;
0475 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
0476 };
0477 };
0478
0479 &sound_card {
0480 links = <&rsnd_port0 /* ak4613 */
0481 &rsnd_port1 /* HDMI0 */
0482 &rsnd_port2 /* pcm3168a playback */
0483 &rsnd_port3 /* pcm3168a capture */
0484 >;
0485 };
0486
0487 &ssi4 {
0488 shared-pin;
0489 };
0490
0491 &usb2_phy0 {
0492 pinctrl-0 = <&usb0_pins>;
0493 pinctrl-names = "default";
0494
0495 status = "okay";
0496 };
0497
0498 &xhci0 {
0499 status = "okay";
0500 };