1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH 4 */ 5 6/dts-v1/; 7#include <dt-bindings/input/input.h> 8#include "rk3588-tiger.dtsi" 9 10/ { 11 model = "Theobroma Systems RK3588-Q7 SoM on Haikou devkit"; 12 compatible = "tsd,rk3588-tiger-haikou", "tsd,rk3588-tiger", "rockchip,rk3588"; 13 14 aliases { 15 ethernet0 = &gmac0; 16 mmc1 = &sdmmc; 17 }; 18 19 chosen { 20 stdout-path = "serial2:115200n8"; 21 }; 22 23 dc_12v: dc-12v-regulator { 24 compatible = "regulator-fixed"; 25 regulator-name = "dc_12v"; 26 regulator-always-on; 27 regulator-boot-on; 28 regulator-min-microvolt = <12000000>; 29 regulator-max-microvolt = <12000000>; 30 }; 31 32 gpio-keys { 33 compatible = "gpio-keys"; 34 pinctrl-names = "default"; 35 pinctrl-0 = <&haikou_keys_pin>; 36 37 button-batlow-n { 38 label = "BATLOW#"; 39 linux,code = <KEY_BATTERY>; 40 gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>; 41 }; 42 43 button-slp-btn-n { 44 label = "SLP_BTN#"; 45 linux,code = <KEY_SLEEP>; 46 gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>; 47 }; 48 49 button-wake-n { 50 label = "WAKE#"; 51 linux,code = <KEY_WAKEUP>; 52 gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>; 53 wakeup-source; 54 }; 55 56 switch-lid-btn-n { 57 label = "LID_BTN#"; 58 linux,code = <SW_LID>; 59 linux,input-type = <EV_SW>; 60 gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; 61 }; 62 }; 63 64 i2s3-sound { 65 compatible = "simple-audio-card"; 66 simple-audio-card,format = "i2s"; 67 simple-audio-card,name = "Haikou,I2S-codec"; 68 simple-audio-card,mclk-fs = <512>; 69 simple-audio-card,frame-master = <&sgtl5000_codec>; 70 simple-audio-card,bitclock-master = <&sgtl5000_codec>; 71 72 sgtl5000_codec: simple-audio-card,codec { 73 sound-dai = <&sgtl5000>; 74 }; 75 76 simple-audio-card,cpu { 77 sound-dai = <&i2s3_2ch>; 78 }; 79 }; 80 81 sgtl5000_clk: sgtl5000-oscillator { 82 compatible = "fixed-clock"; 83 #clock-cells = <0>; 84 clock-frequency = <24576000>; 85 }; 86 87 vcc3v3_baseboard: vcc3v3-baseboard-regulator { 88 compatible = "regulator-fixed"; 89 regulator-name = "vcc3v3_baseboard"; 90 regulator-always-on; 91 regulator-boot-on; 92 regulator-min-microvolt = <3300000>; 93 regulator-max-microvolt = <3300000>; 94 vin-supply = <&dc_12v>; 95 }; 96 97 vcc3v3_low_noise: vcc3v3-low-noise-regulator { 98 compatible = "regulator-fixed"; 99 regulator-name = "vcc3v3_low_noise"; 100 regulator-boot-on; 101 regulator-min-microvolt = <3300000>; 102 regulator-max-microvolt = <3300000>; 103 vin-supply = <&vcc5v0_usb>; 104 }; 105 106 vcc5v0_baseboard: vcc5v0-baseboard-regulator { 107 compatible = "regulator-fixed"; 108 regulator-name = "vcc5v0_baseboard"; 109 regulator-always-on; 110 regulator-boot-on; 111 regulator-min-microvolt = <5000000>; 112 regulator-max-microvolt = <5000000>; 113 vin-supply = <&dc_12v>; 114 }; 115 116 vcc5v0_usb: vcc5v0-usb-regulator { 117 compatible = "regulator-fixed"; 118 regulator-name = "vcc5v0_usb"; 119 regulator-always-on; 120 regulator-boot-on; 121 regulator-min-microvolt = <5000000>; 122 regulator-max-microvolt = <5000000>; 123 vin-supply = <&dc_12v>; 124 }; 125 126 vddd_audio_1v6: vddd-audio-1v6-regulator { 127 compatible = "regulator-fixed"; 128 regulator-name = "vddd_audio_1v6"; 129 regulator-boot-on; 130 regulator-min-microvolt = <1600000>; 131 regulator-max-microvolt = <1600000>; 132 vin-supply = <&vcc5v0_usb>; 133 }; 134}; 135 136&combphy2_psu { 137 status = "okay"; 138}; 139 140&gmac0 { 141 status = "okay"; 142}; 143 144&i2c1 { 145 status = "okay"; 146 147 eeprom@50 { 148 reg = <0x50>; 149 compatible = "atmel,24c01"; 150 pagesize = <8>; 151 size = <128>; 152 vcc-supply = <&vcc3v3_baseboard>; 153 }; 154}; 155 156&i2c5 { 157 clock-frequency = <400000>; 158 status = "okay"; 159 160 sgtl5000: codec@a { 161 compatible = "fsl,sgtl5000"; 162 reg = <0x0a>; 163 clocks = <&sgtl5000_clk>; 164 #sound-dai-cells = <0>; 165 VDDA-supply = <&vcc3v3_low_noise>; 166 VDDIO-supply = <&vcc3v3_baseboard>; 167 VDDD-supply = <&vddd_audio_1v6>; 168 }; 169}; 170 171&i2c8 { 172 status = "okay"; 173}; 174 175&i2s3_2ch { 176 status = "okay"; 177}; 178 179&pcie30phy { 180 status = "okay"; 181}; 182 183&pcie3x4 { 184 vpcie3v3-supply = <&vcc3v3_baseboard>; 185 status = "okay"; 186}; 187 188&pinctrl { 189 haikou { 190 haikou_keys_pin: haikou-keys-pin { 191 rockchip,pins = 192 /* BATLOW# */ 193 <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, 194 /* SLP_BTN# */ 195 <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, 196 /* WAKE# */ 197 <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>, 198 /* LID_BTN */ 199 <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; 200 }; 201 }; 202}; 203 204&sdmmc { 205 /* while the same pin, sdmmc_det does not detect card changes */ 206 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 207 disable-wp; 208 pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>; 209 sd-uhs-sdr12; 210 sd-uhs-sdr25; 211 sd-uhs-sdr50; 212 sd-uhs-sdr104; 213 vmmc-supply = <&vcc3v3_baseboard>; 214 status = "okay"; 215}; 216 217&u2phy2 { 218 status = "okay"; 219}; 220 221&u2phy2_host { 222 status = "okay"; 223}; 224 225&u2phy3 { 226 status = "okay"; 227}; 228 229&u2phy3_host { 230 status = "okay"; 231}; 232 233&uart2 { 234 pinctrl-0 = <&uart2m2_xfer>; 235 status = "okay"; 236}; 237 238&uart5 { 239 rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; 240 status = "okay"; 241}; 242 243/* host0 on Q7_USB_P2, lower usb3 port */ 244&usb_host0_ehci { 245 status = "okay"; 246}; 247 248/* host0 on Q7_USB_P2, lower usb3 port */ 249&usb_host0_ohci { 250 status = "okay"; 251}; 252 253/* host1 on Q7_USB_P3, usb2 port */ 254&usb_host1_ehci { 255 status = "okay"; 256}; 257 258/* host1 on Q7_USB_P3, usb2 port */ 259&usb_host1_ohci { 260 status = "okay"; 261}; 262 263/* host2 on Q7_USB_P2, lower usb3 port */ 264&usb_host2_xhci { 265 status = "okay"; 266}; 267