1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Google Gru-Chromebook shared properties
5 * Copyright 2018 Google, Inc
8 #include "rk3399-gru.dtsi"
12 compatible = "regulator-fixed";
13 regulator-name = "pp900_ap";
15 /* EC turns on w/ pp900_ap_en; always on for AP */
18 regulator-min-microvolt = <900000>;
19 regulator-max-microvolt = <900000>;
21 vin-supply = <&ppvar_sys>;
24 /* EC turns on w/ pp900_usb_en */
28 /* EC turns on w/ pp900_pcie_en */
29 pp900_pcie: pp900-ap {
33 compatible = "regulator-fixed";
34 regulator-name = "pp3000";
35 pinctrl-names = "default";
36 pinctrl-0 = <&pp3000_en>;
39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
43 regulator-min-microvolt = <3000000>;
44 regulator-max-microvolt = <3000000>;
46 vin-supply = <&ppvar_sys>;
49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
50 compatible = "pwm-regulator";
51 regulator-name = "ppvar_centerlogic_pwm";
53 pwms = <&pwm3 0 3337 0>;
54 pwm-supply = <&ppvar_sys>;
55 pwm-dutycycle-range = <100 0>;
56 pwm-dutycycle-unit = <100>;
58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */
61 regulator-min-microvolt = <799434>;
62 regulator-max-microvolt = <1049925>;
65 ppvar_centerlogic: ppvar-centerlogic {
66 compatible = "vctrl-regulator";
67 regulator-name = "ppvar_centerlogic";
69 regulator-min-microvolt = <799434>;
70 regulator-max-microvolt = <1049925>;
72 ctrl-supply = <&ppvar_centerlogic_pwm>;
73 ctrl-voltage-range = <799434 1049925>;
75 regulator-settling-time-up-us = <378>;
76 min-slew-down-rate = <225>;
77 ovp-threshold-percent = <16>;
80 /* Schematics call this PPVAR even though it's fixed */
81 ppvar_logic: ppvar-logic {
82 compatible = "regulator-fixed";
83 regulator-name = "ppvar_logic";
85 /* EC turns on w/ ppvar_logic_en; always on for AP */
88 regulator-min-microvolt = <900000>;
89 regulator-max-microvolt = <900000>;
91 vin-supply = <&ppvar_sys>;
94 pp1800_audio: pp1800-audio {
95 compatible = "regulator-fixed";
96 regulator-name = "pp1800_audio";
97 pinctrl-names = "default";
98 pinctrl-0 = <&pp1800_audio_en>;
101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
106 vin-supply = <&pp1800>;
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>;
117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
120 * Need to wait 1ms + ramp-up time before we can power on WiFi.
121 * This has been approximated as 8ms total.
123 regulator-enable-ramp-delay = <8000>;
125 vin-supply = <&pp1800>;
128 /* Always on; plain and simple */
129 pp3000_ap: pp3000_emmc: pp3000 {
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>;
139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
143 regulator-min-microvolt = <1500000>;
144 regulator-max-microvolt = <1500000>;
146 vin-supply = <&pp1800>;
149 pp3300_disp: pp3300-disp {
150 compatible = "regulator-fixed";
151 regulator-name = "pp3300_disp";
152 pinctrl-names = "default";
153 pinctrl-0 = <&pp3300_disp_en>;
156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
158 startup-delay-us = <2000>;
159 vin-supply = <&pp3300>;
162 /* EC turns on w/ pp3300_usb_en_l */
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";
172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
174 vin-supply = <&pp3300>;
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.
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>;
190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
192 vin-supply = <&pp1800_pcie>;
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>;
214 min-slew-down-rate = <225>;
215 ovp-threshold-percent = <16>;
219 min-slew-down-rate = <225>;
220 ovp-threshold-percent = <16>;
224 min-slew-down-rate = <225>;
225 ovp-threshold-percent = <16>;
229 extcon = <&usbc_extcon0>, <&usbc_extcon1>;
238 #address-cells = <1>;
241 edp_out_panel: endpoint@0 {
243 remote-endpoint = <&panel_in_edp>;
252 clock-frequency = <400000>;
254 /* These are relatively safe rise/fall times */
255 i2c-scl-falling-time-ns = <50>;
256 i2c-scl-rising-time-ns = <300>;
258 headsetcodec: rt5514@57 {
259 compatible = "realtek,rt5514";
261 realtek,dmic-init-delay-ms = <20>;
268 clock-frequency = <400000>;
270 /* These are relatively safe rise/fall times */
271 i2c-scl-falling-time-ns = <50>;
272 i2c-scl-rising-time-ns = <300>;
275 * Note strange pullup enable. Apparently this avoids leakage but
276 * still allows us to get nice 4.7K pullups for high speed i2c
277 * transfers. Basically we want the pullup on whenever the ap is
278 * alive, so the "en" pin just gets set to output high.
280 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
284 cros_ec_pwm: ec-pwm {
285 compatible = "google,cros-ec-pwm";
289 usbc_extcon1: extcon@1 {
290 compatible = "google,extcon-usbc-cros-ec";
291 google,usb-port-id = <1>;
298 rockchip,codec = <&max98357a &headsetcodec
299 &codec &wacky_spi_audio &cdn_dp>;
303 wacky_spi_audio: spi2@0 {
304 compatible = "realtek,rt5514";
306 interrupt-parent = <&gpio1>;
307 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&mic_int>;
310 /* May run faster once verified. */
311 spi-max-frequency = <10000000>;
318 compatible = "pci1b4b,2b42";
319 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
320 0x83010000 0x0 0x00100000 0x0 0x00100000>;
321 interrupt-parent = <&gpio0>;
322 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
323 pinctrl-names = "default";
324 pinctrl-0 = <&wlan_host_wake_l>;
331 extcon = <&usbc_extcon1>;
352 extcon = <&usbc_extcon1>;
361 discrete-regulators {
362 pp1500_en: pp1500-en {
363 rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO
367 pp1800_audio_en: pp1800-audio-en {
368 rockchip,pins = <RK_GPIO0 2 RK_FUNC_GPIO
372 pp3000_en: pp3000-en {
373 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO
377 pp3300_disp_en: pp3300-disp-en {
378 rockchip,pins = <RK_GPIO4 27 RK_FUNC_GPIO
382 wlan_module_pd_l: wlan-module-pd-l {
383 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO
390 wifi_perst_l: wifi-perst-l {
391 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
394 wlan_host_wake_l: wlan-host-wake-l {
395 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>;