1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Google Gru-Chromebook shared properties 4 * 5 * Copyright 2018 Google, Inc 6 */ 7 8#include "rk3399-gru.dtsi" 9 10/ { 11 pp900_ap: pp900-ap { 12 compatible = "regulator-fixed"; 13 regulator-name = "pp900_ap"; 14 15 /* EC turns on w/ pp900_ap_en; always on for AP */ 16 regulator-always-on; 17 regulator-boot-on; 18 regulator-min-microvolt = <900000>; 19 regulator-max-microvolt = <900000>; 20 21 vin-supply = <&ppvar_sys>; 22 }; 23 24 /* EC turns on w/ pp900_usb_en */ 25 pp900_usb: pp900-ap { 26 }; 27 28 /* EC turns on w/ pp900_pcie_en */ 29 pp900_pcie: pp900-ap { 30 }; 31 32 pp3000: pp3000 { 33 compatible = "regulator-fixed"; 34 regulator-name = "pp3000"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pp3000_en>; 37 38 enable-active-high; 39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 40 41 regulator-always-on; 42 regulator-boot-on; 43 regulator-min-microvolt = <3000000>; 44 regulator-max-microvolt = <3000000>; 45 46 vin-supply = <&ppvar_sys>; 47 }; 48 49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm { 50 compatible = "pwm-regulator"; 51 regulator-name = "ppvar_centerlogic_pwm"; 52 53 pwms = <&pwm3 0 3337 0>; 54 pwm-supply = <&ppvar_sys>; 55 pwm-dutycycle-range = <100 0>; 56 pwm-dutycycle-unit = <100>; 57 58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 59 regulator-always-on; 60 regulator-boot-on; 61 regulator-min-microvolt = <799434>; 62 regulator-max-microvolt = <1049925>; 63 }; 64 65 ppvar_centerlogic: ppvar-centerlogic { 66 compatible = "vctrl-regulator"; 67 regulator-name = "ppvar_centerlogic"; 68 69 regulator-min-microvolt = <799434>; 70 regulator-max-microvolt = <1049925>; 71 72 ctrl-supply = <&ppvar_centerlogic_pwm>; 73 ctrl-voltage-range = <799434 1049925>; 74 75 regulator-settling-time-up-us = <378>; 76 min-slew-down-rate = <225>; 77 ovp-threshold-percent = <16>; 78 }; 79 80 /* Schematics call this PPVAR even though it's fixed */ 81 ppvar_logic: ppvar-logic { 82 compatible = "regulator-fixed"; 83 regulator-name = "ppvar_logic"; 84 85 /* EC turns on w/ ppvar_logic_en; always on for AP */ 86 regulator-always-on; 87 regulator-boot-on; 88 regulator-min-microvolt = <900000>; 89 regulator-max-microvolt = <900000>; 90 91 vin-supply = <&ppvar_sys>; 92 }; 93 94 pp1800_audio: pp1800-audio { 95 compatible = "regulator-fixed"; 96 regulator-name = "pp1800_audio"; 97 pinctrl-names = "default"; 98 pinctrl-0 = <&pp1800_audio_en>; 99 100 enable-active-high; 101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 102 103 regulator-always-on; 104 regulator-boot-on; 105 106 vin-supply = <&pp1800>; 107 }; 108 109 /* gpio is shared with pp3300_wifi_bt */ 110 pp1800_pcie: pp1800-pcie { 111 compatible = "regulator-fixed"; 112 regulator-name = "pp1800_pcie"; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&wlan_module_pd_l>; 115 116 enable-active-high; 117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 118 119 /* 120 * Need to wait 1ms + ramp-up time before we can power on WiFi. 121 * This has been approximated as 8ms total. 122 */ 123 regulator-enable-ramp-delay = <8000>; 124 125 vin-supply = <&pp1800>; 126 }; 127 128 /* Always on; plain and simple */ 129 pp3000_ap: pp3000_emmc: pp3000 { 130 }; 131 132 pp1500_ap_io: pp1500-ap-io { 133 compatible = "regulator-fixed"; 134 regulator-name = "pp1500_ap_io"; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pp1500_en>; 137 138 enable-active-high; 139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 140 141 regulator-always-on; 142 regulator-boot-on; 143 regulator-min-microvolt = <1500000>; 144 regulator-max-microvolt = <1500000>; 145 146 vin-supply = <&pp1800>; 147 }; 148 149 pp3300_disp: pp3300-disp { 150 compatible = "regulator-fixed"; 151 regulator-name = "pp3300_disp"; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pp3300_disp_en>; 154 155 enable-active-high; 156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 157 158 startup-delay-us = <2000>; 159 vin-supply = <&pp3300>; 160 }; 161 162 /* EC turns on w/ pp3300_usb_en_l */ 163 pp3300_usb: pp3300 { 164 }; 165 166 /* gpio is shared with pp1800_pcie and pinctrl is set there */ 167 pp3300_wifi_bt: pp3300-wifi-bt { 168 compatible = "regulator-fixed"; 169 regulator-name = "pp3300_wifi_bt"; 170 171 enable-active-high; 172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 173 174 vin-supply = <&pp3300>; 175 }; 176 177 /* 178 * This is a bit of a hack. The WiFi module should be reset at least 179 * 1ms after its regulators have ramped up (max rampup time is ~7ms). 180 * With some stretching of the imagination, we can call the 1.8V 181 * regulator a supply. 182 */ 183 wlan_pd_n: wlan-pd-n { 184 compatible = "regulator-fixed"; 185 regulator-name = "wlan_pd_n"; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&wlan_module_reset_l>; 188 189 enable-active-high; 190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 191 192 vin-supply = <&pp1800_pcie>; 193 }; 194 195 backlight: backlight { 196 compatible = "pwm-backlight"; 197 brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 198 17 18 19 20 21 22 23 24 25 26 27 28 29 30 199 31 32 33 34 35 36 37 38 39 40 41 42 43 44 200 45 46 47 48 49 50 51 52 53 54 55 56 57 58 201 59 60 61 62 63 64 65 66 67 68 69 70 71 72 202 73 74 75 76 77 78 79 80 81 82 83 84 85 86 203 87 88 89 90 91 92 93 94 95 96 97 98 99 100>; 204 default-brightness-level = <51>; 205 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 206 power-supply = <&pp3300_disp>; 207 pinctrl-names = "default"; 208 pinctrl-0 = <&bl_en>; 209 pwm-delay-us = <10000>; 210 }; 211}; 212 213&ppvar_bigcpu { 214 min-slew-down-rate = <225>; 215 ovp-threshold-percent = <16>; 216}; 217 218&ppvar_litcpu { 219 min-slew-down-rate = <225>; 220 ovp-threshold-percent = <16>; 221}; 222 223&ppvar_gpu { 224 min-slew-down-rate = <225>; 225 ovp-threshold-percent = <16>; 226}; 227 228&cdn_dp { 229 extcon = <&usbc_extcon0>, <&usbc_extcon1>; 230}; 231 232&edp { 233 status = "okay"; 234 235 rockchip,panel = <&edp_panel>; 236 ports { 237 edp_out: port@1 { 238 reg = <1>; 239 #address-cells = <1>; 240 #size-cells = <0>; 241 242 edp_out_panel: endpoint@0 { 243 reg = <0>; 244 remote-endpoint = <&panel_in_edp>; 245 }; 246 }; 247 }; 248}; 249 250ap_i2c_mic: &i2c1 { 251 status = "okay"; 252 253 clock-frequency = <400000>; 254 255 /* These are relatively safe rise/fall times */ 256 i2c-scl-falling-time-ns = <50>; 257 i2c-scl-rising-time-ns = <300>; 258 259 headsetcodec: rt5514@57 { 260 compatible = "realtek,rt5514"; 261 reg = <0x57>; 262 realtek,dmic-init-delay-ms = <20>; 263 }; 264}; 265 266ap_i2c_tp: &i2c5 { 267 status = "okay"; 268 269 clock-frequency = <400000>; 270 271 /* These are relatively safe rise/fall times */ 272 i2c-scl-falling-time-ns = <50>; 273 i2c-scl-rising-time-ns = <300>; 274 275 /* 276 * Note strange pullup enable. Apparently this avoids leakage but 277 * still allows us to get nice 4.7K pullups for high speed i2c 278 * transfers. Basically we want the pullup on whenever the ap is 279 * alive, so the "en" pin just gets set to output high. 280 */ 281 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 282}; 283 284&cros_ec { 285 cros_ec_pwm: ec-pwm { 286 compatible = "google,cros-ec-pwm"; 287 #pwm-cells = <1>; 288 }; 289 290 usbc_extcon1: extcon@1 { 291 compatible = "google,extcon-usbc-cros-ec"; 292 google,usb-port-id = <1>; 293 294 #extcon-cells = <0>; 295 }; 296}; 297 298&sound { 299 rockchip,codec = <&max98357a &headsetcodec 300 &codec &wacky_spi_audio &cdn_dp>; 301}; 302 303&spi2 { 304 wacky_spi_audio: spi2@0 { 305 compatible = "realtek,rt5514"; 306 reg = <0>; 307 interrupt-parent = <&gpio1>; 308 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 309 pinctrl-names = "default"; 310 pinctrl-0 = <&mic_int>; 311 /* May run faster once verified. */ 312 spi-max-frequency = <10000000>; 313 wakeup-source; 314 }; 315}; 316 317&pci_rootport { 318 mvl_wifi: wifi@0,0 { 319 compatible = "pci1b4b,2b42"; 320 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000 321 0x83010000 0x0 0x00100000 0x0 0x00100000>; 322 interrupt-parent = <&gpio0>; 323 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 324 pinctrl-names = "default"; 325 pinctrl-0 = <&wlan_host_wake_l>; 326 wakeup-source; 327 }; 328}; 329 330&tcphy1 { 331 status = "okay"; 332 extcon = <&usbc_extcon1>; 333}; 334 335&u2phy1 { 336 status = "okay"; 337}; 338 339&usb_host0_ehci { 340 status = "okay"; 341}; 342 343&usb_host1_ehci { 344 status = "okay"; 345}; 346 347&usb_host1_ohci { 348 status = "okay"; 349}; 350 351&usbdrd3_1 { 352 status = "okay"; 353 extcon = <&usbc_extcon1>; 354}; 355 356&usbdrd_dwc3_1 { 357 status = "okay"; 358 dr_mode = "host"; 359}; 360 361&pinctrl { 362 discrete-regulators { 363 pp1500_en: pp1500-en { 364 rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO 365 &pcfg_pull_none>; 366 }; 367 368 pp1800_audio_en: pp1800-audio-en { 369 rockchip,pins = <RK_GPIO0 2 RK_FUNC_GPIO 370 &pcfg_pull_down>; 371 }; 372 373 pp3000_en: pp3000-en { 374 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO 375 &pcfg_pull_none>; 376 }; 377 378 pp3300_disp_en: pp3300-disp-en { 379 rockchip,pins = <RK_GPIO4 27 RK_FUNC_GPIO 380 &pcfg_pull_none>; 381 }; 382 383 wlan_module_pd_l: wlan-module-pd-l { 384 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO 385 &pcfg_pull_down>; 386 }; 387 }; 388}; 389 390&wifi { 391 wifi_perst_l: wifi-perst-l { 392 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>; 393 }; 394 395 wlan_host_wake_l: wlan-host-wake-l { 396 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>; 397 }; 398}; 399