1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Google Gru-Chromebook shared properties 3 * Google Gru-Chromebook shared properties 4 * 4 * 5 * Copyright 2018 Google, Inc 5 * Copyright 2018 Google, Inc 6 */ 6 */ 7 7 8 #include "rk3399-gru.dtsi" 8 #include "rk3399-gru.dtsi" 9 9 10 / { 10 / { 11 pp900_ap: pp900-ap { 11 pp900_ap: pp900-ap { 12 compatible = "regulator-fixed" 12 compatible = "regulator-fixed"; 13 regulator-name = "pp900_ap"; 13 regulator-name = "pp900_ap"; 14 14 15 /* EC turns on w/ pp900_ap_en; 15 /* EC turns on w/ pp900_ap_en; always on for AP */ 16 regulator-always-on; 16 regulator-always-on; 17 regulator-boot-on; 17 regulator-boot-on; 18 regulator-min-microvolt = <900 18 regulator-min-microvolt = <900000>; 19 regulator-max-microvolt = <900 19 regulator-max-microvolt = <900000>; 20 20 21 vin-supply = <&ppvar_sys>; 21 vin-supply = <&ppvar_sys>; 22 }; 22 }; 23 23 24 /* EC turns on w/ pp900_usb_en */ 24 /* EC turns on w/ pp900_usb_en */ 25 pp900_usb: pp900-ap { 25 pp900_usb: pp900-ap { 26 }; 26 }; 27 27 28 /* EC turns on w/ pp900_pcie_en */ 28 /* EC turns on w/ pp900_pcie_en */ 29 pp900_pcie: pp900-ap { 29 pp900_pcie: pp900-ap { 30 }; 30 }; 31 31 32 pp3000: pp3000 { 32 pp3000: pp3000 { 33 compatible = "regulator-fixed" 33 compatible = "regulator-fixed"; 34 regulator-name = "pp3000"; 34 regulator-name = "pp3000"; 35 pinctrl-names = "default"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pp3000_en>; 36 pinctrl-0 = <&pp3000_en>; 37 37 38 enable-active-high; 38 enable-active-high; 39 gpio = <&gpio0 12 GPIO_ACTIVE_ 39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 40 40 41 regulator-always-on; 41 regulator-always-on; 42 regulator-boot-on; 42 regulator-boot-on; 43 regulator-min-microvolt = <300 43 regulator-min-microvolt = <3000000>; 44 regulator-max-microvolt = <300 44 regulator-max-microvolt = <3000000>; 45 45 46 vin-supply = <&ppvar_sys>; 46 vin-supply = <&ppvar_sys>; 47 }; 47 }; 48 48 49 ppvar_centerlogic_pwm: ppvar-centerlog 49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm { 50 compatible = "pwm-regulator"; 50 compatible = "pwm-regulator"; 51 regulator-name = "ppvar_center 51 regulator-name = "ppvar_centerlogic_pwm"; 52 52 53 pwms = <&pwm3 0 3337 0>; 53 pwms = <&pwm3 0 3337 0>; 54 pwm-supply = <&ppvar_sys>; 54 pwm-supply = <&ppvar_sys>; 55 pwm-dutycycle-range = <100 0>; 55 pwm-dutycycle-range = <100 0>; 56 pwm-dutycycle-unit = <100>; 56 pwm-dutycycle-unit = <100>; 57 57 58 /* EC turns on w/ ppvar_center 58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 59 regulator-always-on; 59 regulator-always-on; 60 regulator-boot-on; 60 regulator-boot-on; 61 regulator-min-microvolt = <799 61 regulator-min-microvolt = <799434>; 62 regulator-max-microvolt = <104 62 regulator-max-microvolt = <1049925>; 63 }; 63 }; 64 64 65 ppvar_centerlogic: ppvar-centerlogic { 65 ppvar_centerlogic: ppvar-centerlogic { 66 compatible = "vctrl-regulator" 66 compatible = "vctrl-regulator"; 67 regulator-name = "ppvar_center 67 regulator-name = "ppvar_centerlogic"; 68 68 69 regulator-min-microvolt = <799 69 regulator-min-microvolt = <799434>; 70 regulator-max-microvolt = <104 70 regulator-max-microvolt = <1049925>; 71 71 72 ctrl-supply = <&ppvar_centerlo 72 ctrl-supply = <&ppvar_centerlogic_pwm>; 73 ctrl-voltage-range = <799434 1 73 ctrl-voltage-range = <799434 1049925>; 74 74 75 regulator-settling-time-up-us 75 regulator-settling-time-up-us = <378>; 76 min-slew-down-rate = <225>; 76 min-slew-down-rate = <225>; 77 ovp-threshold-percent = <16>; 77 ovp-threshold-percent = <16>; 78 }; 78 }; 79 79 80 /* Schematics call this PPVAR even tho 80 /* Schematics call this PPVAR even though it's fixed */ 81 ppvar_logic: ppvar-logic { 81 ppvar_logic: ppvar-logic { 82 compatible = "regulator-fixed" 82 compatible = "regulator-fixed"; 83 regulator-name = "ppvar_logic" 83 regulator-name = "ppvar_logic"; 84 84 85 /* EC turns on w/ ppvar_logic_ 85 /* EC turns on w/ ppvar_logic_en; always on for AP */ 86 regulator-always-on; 86 regulator-always-on; 87 regulator-boot-on; 87 regulator-boot-on; 88 regulator-min-microvolt = <900 88 regulator-min-microvolt = <900000>; 89 regulator-max-microvolt = <900 89 regulator-max-microvolt = <900000>; 90 90 91 vin-supply = <&ppvar_sys>; 91 vin-supply = <&ppvar_sys>; 92 }; 92 }; 93 93 94 pp1800_audio: pp1800-audio { 94 pp1800_audio: pp1800-audio { 95 compatible = "regulator-fixed" 95 compatible = "regulator-fixed"; 96 regulator-name = "pp1800_audio 96 regulator-name = "pp1800_audio"; 97 pinctrl-names = "default"; 97 pinctrl-names = "default"; 98 pinctrl-0 = <&pp1800_audio_en> 98 pinctrl-0 = <&pp1800_audio_en>; 99 99 100 enable-active-high; 100 enable-active-high; 101 gpio = <&gpio0 2 GPIO_ACTIVE_H 101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 102 102 103 regulator-always-on; 103 regulator-always-on; 104 regulator-boot-on; 104 regulator-boot-on; 105 105 106 vin-supply = <&pp1800>; 106 vin-supply = <&pp1800>; 107 }; 107 }; 108 108 109 /* gpio is shared with pp3300_wifi_bt 109 /* gpio is shared with pp3300_wifi_bt */ 110 pp1800_pcie: pp1800-pcie { 110 pp1800_pcie: pp1800-pcie { 111 compatible = "regulator-fixed" 111 compatible = "regulator-fixed"; 112 regulator-name = "pp1800_pcie" 112 regulator-name = "pp1800_pcie"; 113 pinctrl-names = "default"; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&wlan_module_pd_l 114 pinctrl-0 = <&wlan_module_pd_l>; 115 115 116 enable-active-high; 116 enable-active-high; 117 gpio = <&gpio0 4 GPIO_ACTIVE_H 117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 118 118 119 /* 119 /* 120 * Need to wait 1ms + ramp-up 120 * Need to wait 1ms + ramp-up time before we can power on WiFi. 121 * This has been approximated 121 * This has been approximated as 8ms total. 122 */ 122 */ 123 regulator-enable-ramp-delay = 123 regulator-enable-ramp-delay = <8000>; 124 124 125 vin-supply = <&pp1800>; 125 vin-supply = <&pp1800>; 126 }; 126 }; 127 127 128 /* Always on; plain and simple */ 128 /* Always on; plain and simple */ 129 pp3000_ap: pp3000_emmc: pp3000 { 129 pp3000_ap: pp3000_emmc: pp3000 { 130 }; 130 }; 131 131 132 pp1500_ap_io: pp1500-ap-io { 132 pp1500_ap_io: pp1500-ap-io { 133 compatible = "regulator-fixed" 133 compatible = "regulator-fixed"; 134 regulator-name = "pp1500_ap_io 134 regulator-name = "pp1500_ap_io"; 135 pinctrl-names = "default"; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pp1500_en>; 136 pinctrl-0 = <&pp1500_en>; 137 137 138 enable-active-high; 138 enable-active-high; 139 gpio = <&gpio0 10 GPIO_ACTIVE_ 139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 140 140 141 regulator-always-on; 141 regulator-always-on; 142 regulator-boot-on; 142 regulator-boot-on; 143 regulator-min-microvolt = <150 143 regulator-min-microvolt = <1500000>; 144 regulator-max-microvolt = <150 144 regulator-max-microvolt = <1500000>; 145 145 146 vin-supply = <&pp1800>; 146 vin-supply = <&pp1800>; 147 }; 147 }; 148 148 149 pp3300_disp: pp3300-disp { 149 pp3300_disp: pp3300-disp { 150 compatible = "regulator-fixed" 150 compatible = "regulator-fixed"; 151 regulator-name = "pp3300_disp" 151 regulator-name = "pp3300_disp"; 152 pinctrl-names = "default"; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pp3300_disp_en>; 153 pinctrl-0 = <&pp3300_disp_en>; 154 154 155 enable-active-high; 155 enable-active-high; 156 gpio = <&gpio4 27 GPIO_ACTIVE_ 156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 157 157 158 startup-delay-us = <2000>; 158 startup-delay-us = <2000>; 159 vin-supply = <&pp3300>; 159 vin-supply = <&pp3300>; 160 }; 160 }; 161 161 162 /* EC turns on w/ pp3300_usb_en_l */ 162 /* EC turns on w/ pp3300_usb_en_l */ 163 pp3300_usb: pp3300 { 163 pp3300_usb: pp3300 { 164 }; 164 }; 165 165 166 /* gpio is shared with pp1800_pcie and 166 /* gpio is shared with pp1800_pcie and pinctrl is set there */ 167 pp3300_wifi_bt: pp3300-wifi-bt { 167 pp3300_wifi_bt: pp3300-wifi-bt { 168 compatible = "regulator-fixed" 168 compatible = "regulator-fixed"; 169 regulator-name = "pp3300_wifi_ 169 regulator-name = "pp3300_wifi_bt"; 170 170 171 enable-active-high; 171 enable-active-high; 172 gpio = <&gpio0 4 GPIO_ACTIVE_H 172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 173 173 174 vin-supply = <&pp3300>; 174 vin-supply = <&pp3300>; 175 }; 175 }; 176 176 177 /* 177 /* 178 * This is a bit of a hack. The WiFi m 178 * This is a bit of a hack. The WiFi module should be reset at least 179 * 1ms after its regulators have rampe 179 * 1ms after its regulators have ramped up (max rampup time is ~7ms). 180 * With some stretching of the imagina 180 * With some stretching of the imagination, we can call the 1.8V 181 * regulator a supply. 181 * regulator a supply. 182 */ 182 */ 183 wlan_pd_n: wlan-pd-n { 183 wlan_pd_n: wlan-pd-n { 184 compatible = "regulator-fixed" 184 compatible = "regulator-fixed"; 185 regulator-name = "wlan_pd_n"; 185 regulator-name = "wlan_pd_n"; 186 pinctrl-names = "default"; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&wlan_module_rese 187 pinctrl-0 = <&wlan_module_reset_l>; 188 188 189 enable-active-high; 189 enable-active-high; 190 gpio = <&gpio1 11 GPIO_ACTIVE_ 190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 191 191 192 vin-supply = <&pp1800_pcie>; 192 vin-supply = <&pp1800_pcie>; 193 }; 193 }; 194 194 195 backlight: backlight { 195 backlight: backlight { 196 compatible = "pwm-backlight"; 196 compatible = "pwm-backlight"; 197 enable-gpios = <&gpio1 17 GPIO 197 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 198 power-supply = <&pp3300_disp>; 198 power-supply = <&pp3300_disp>; 199 pinctrl-names = "default"; 199 pinctrl-names = "default"; 200 pinctrl-0 = <&bl_en>; 200 pinctrl-0 = <&bl_en>; >> 201 pwm-delay-us = <10000>; 201 }; 202 }; 202 203 203 gpio_keys: gpio-keys { 204 gpio_keys: gpio-keys { 204 compatible = "gpio-keys"; 205 compatible = "gpio-keys"; 205 pinctrl-names = "default"; 206 pinctrl-names = "default"; 206 pinctrl-0 = <&bt_host_wake_l>; 207 pinctrl-0 = <&bt_host_wake_l>; 207 208 208 wake_on_bt: key-wake-on-bt { 209 wake_on_bt: key-wake-on-bt { 209 label = "Wake-on-Bluet 210 label = "Wake-on-Bluetooth"; 210 gpios = <&gpio0 3 GPIO 211 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 211 linux,code = <KEY_WAKE 212 linux,code = <KEY_WAKEUP>; 212 wakeup-source; 213 wakeup-source; 213 }; 214 }; 214 }; 215 }; 215 }; 216 }; 216 217 217 &ppvar_bigcpu { 218 &ppvar_bigcpu { 218 min-slew-down-rate = <225>; 219 min-slew-down-rate = <225>; 219 ovp-threshold-percent = <16>; 220 ovp-threshold-percent = <16>; 220 }; 221 }; 221 222 222 &ppvar_litcpu { 223 &ppvar_litcpu { 223 min-slew-down-rate = <225>; 224 min-slew-down-rate = <225>; 224 ovp-threshold-percent = <16>; 225 ovp-threshold-percent = <16>; 225 }; 226 }; 226 227 227 &ppvar_gpu { 228 &ppvar_gpu { 228 min-slew-down-rate = <225>; 229 min-slew-down-rate = <225>; 229 ovp-threshold-percent = <16>; 230 ovp-threshold-percent = <16>; 230 }; 231 }; 231 232 232 &cdn_dp { 233 &cdn_dp { 233 extcon = <&usbc_extcon0>, <&usbc_extco 234 extcon = <&usbc_extcon0>, <&usbc_extcon1>; 234 }; 235 }; 235 236 236 &dmc { 237 &dmc { 237 center-supply = <&ppvar_centerlogic>; 238 center-supply = <&ppvar_centerlogic>; 238 rockchip,pd-idle-dis-freq-hz = <800000 239 rockchip,pd-idle-dis-freq-hz = <800000000>; 239 rockchip,sr-idle-dis-freq-hz = <800000 240 rockchip,sr-idle-dis-freq-hz = <800000000>; 240 rockchip,sr-mc-gate-idle-dis-freq-hz = 241 rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>; 241 }; 242 }; 242 243 243 &edp { 244 &edp { 244 status = "okay"; 245 status = "okay"; 245 246 246 /* 247 /* 247 * eDP PHY/clk don't sync reliably at 248 * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only 248 * set this here, because rk3399-gru.d 249 * set this here, because rk3399-gru.dtsi ensures we can generate this 249 * off GPLL=600MHz, whereas some other 250 * off GPLL=600MHz, whereas some other RK3399 boards may not. 250 */ 251 */ 251 assigned-clocks = <&cru PCLK_EDP>; 252 assigned-clocks = <&cru PCLK_EDP>; 252 assigned-clock-rates = <24000000>; 253 assigned-clock-rates = <24000000>; 253 254 254 ports { 255 ports { 255 edp_out: port@1 { 256 edp_out: port@1 { 256 reg = <1>; 257 reg = <1>; 257 #address-cells = <1>; 258 #address-cells = <1>; 258 #size-cells = <0>; 259 #size-cells = <0>; 259 260 260 edp_out_panel: endpoin 261 edp_out_panel: endpoint@0 { 261 reg = <0>; 262 reg = <0>; 262 remote-endpoin 263 remote-endpoint = <&panel_in_edp>; 263 }; 264 }; 264 }; 265 }; 265 }; 266 }; 266 }; 267 }; 267 268 268 &gpio0 { 269 &gpio0 { 269 gpio-line-names = /* GPIO0 A 0-7 */ 270 gpio-line-names = /* GPIO0 A 0-7 */ 270 "AP_RTC_CLK_IN", 271 "AP_RTC_CLK_IN", 271 "EC_AP_INT_L", 272 "EC_AP_INT_L", 272 "PP1800_AUDIO_EN", 273 "PP1800_AUDIO_EN", 273 "BT_HOST_WAKE_L", 274 "BT_HOST_WAKE_L", 274 "WLAN_MODULE_PD_L", 275 "WLAN_MODULE_PD_L", 275 "H1_INT_OD_L", 276 "H1_INT_OD_L", 276 "CENTERLOGIC_DVS_PWM 277 "CENTERLOGIC_DVS_PWM", 277 "", 278 "", 278 279 279 /* GPIO0 B 0-4 */ 280 /* GPIO0 B 0-4 */ 280 "WIFI_HOST_WAKE_L", 281 "WIFI_HOST_WAKE_L", 281 "PMUIO2_33_18_L", 282 "PMUIO2_33_18_L", 282 "PP1500_EN", 283 "PP1500_EN", 283 "AP_EC_WARM_RESET_RE 284 "AP_EC_WARM_RESET_REQ", 284 "PP3000_EN"; 285 "PP3000_EN"; 285 }; 286 }; 286 287 287 &gpio1 { 288 &gpio1 { 288 gpio-line-names = /* GPIO1 A 0-7 */ 289 gpio-line-names = /* GPIO1 A 0-7 */ 289 "", 290 "", 290 "", 291 "", 291 "SPK_PA_EN", 292 "SPK_PA_EN", 292 "", 293 "", 293 "TRACKPAD_INT_L", 294 "TRACKPAD_INT_L", 294 "AP_EC_S3_S0_L", 295 "AP_EC_S3_S0_L", 295 "AP_EC_OVERTEMP", 296 "AP_EC_OVERTEMP", 296 "AP_SPI_FLASH_MISO", 297 "AP_SPI_FLASH_MISO", 297 298 298 /* GPIO1 B 0-7 */ 299 /* GPIO1 B 0-7 */ 299 "AP_SPI_FLASH_MOSI_R 300 "AP_SPI_FLASH_MOSI_R", 300 "AP_SPI_FLASH_CLK_R" 301 "AP_SPI_FLASH_CLK_R", 301 "AP_SPI_FLASH_CS_L_R 302 "AP_SPI_FLASH_CS_L_R", 302 "WLAN_MODULE_RESET_L 303 "WLAN_MODULE_RESET_L", 303 "WIFI_DISABLE_L", 304 "WIFI_DISABLE_L", 304 "MIC_INT", 305 "MIC_INT", 305 "", 306 "", 306 "AP_I2C_DVS_SDA", 307 "AP_I2C_DVS_SDA", 307 308 308 /* GPIO1 C 0-7 */ 309 /* GPIO1 C 0-7 */ 309 "AP_I2C_DVS_SCL", 310 "AP_I2C_DVS_SCL", 310 "AP_BL_EN", 311 "AP_BL_EN", 311 /* 312 /* 312 * AP_FLASH_WP is cr 313 * AP_FLASH_WP is crossystem ABI. Schematics call it 313 * AP_FW_WP or CPU1_ 314 * AP_FW_WP or CPU1_FW_WP, depending on the variant. 314 */ 315 */ 315 "AP_FLASH_WP", 316 "AP_FLASH_WP", 316 "LITCPU_DVS_PWM", 317 "LITCPU_DVS_PWM", 317 "AP_I2C_AUDIO_SDA", 318 "AP_I2C_AUDIO_SDA", 318 "AP_I2C_AUDIO_SCL", 319 "AP_I2C_AUDIO_SCL", 319 "", 320 "", 320 "HEADSET_INT_L"; 321 "HEADSET_INT_L"; 321 }; 322 }; 322 323 323 &gpio2 { 324 &gpio2 { 324 gpio-line-names = /* GPIO2 A 0-7 */ 325 gpio-line-names = /* GPIO2 A 0-7 */ 325 "", 326 "", 326 "", 327 "", 327 "SD_IO_PWR_EN", 328 "SD_IO_PWR_EN", 328 "", 329 "", 329 "", 330 "", 330 "", 331 "", 331 "", 332 "", 332 "", 333 "", 333 334 334 /* GPIO2 B 0-7 */ 335 /* GPIO2 B 0-7 */ 335 "", 336 "", 336 "", 337 "", 337 "", 338 "", 338 "", 339 "", 339 "", 340 "", 340 "", 341 "", 341 "", 342 "", 342 "", 343 "", 343 344 344 /* GPIO2 C 0-7 */ 345 /* GPIO2 C 0-7 */ 345 "", 346 "", 346 "", 347 "", 347 "", 348 "", 348 "", 349 "", 349 "AP_SPI_EC_MISO", 350 "AP_SPI_EC_MISO", 350 "AP_SPI_EC_MOSI", 351 "AP_SPI_EC_MOSI", 351 "AP_SPI_EC_CLK", 352 "AP_SPI_EC_CLK", 352 "AP_SPI_EC_CS_L", 353 "AP_SPI_EC_CS_L", 353 354 354 /* GPIO2 D 0-4 */ 355 /* GPIO2 D 0-4 */ 355 "BT_DEV_WAKE_L", 356 "BT_DEV_WAKE_L", 356 "", 357 "", 357 "WIFI_PCIE_CLKREQ_L" 358 "WIFI_PCIE_CLKREQ_L", 358 "WIFI_PERST_L", 359 "WIFI_PERST_L", 359 "SD_PWR_3000_1800_L" 360 "SD_PWR_3000_1800_L"; 360 }; 361 }; 361 362 362 &gpio3 { 363 &gpio3 { 363 gpio-line-names = /* GPIO3 A 0-7 */ 364 gpio-line-names = /* GPIO3 A 0-7 */ 364 "", 365 "", 365 "", 366 "", 366 "", 367 "", 367 "", 368 "", 368 "AP_SPI_TPM_MISO", 369 "AP_SPI_TPM_MISO", 369 "AP_SPI_TPM_MOSI_R", 370 "AP_SPI_TPM_MOSI_R", 370 "AP_SPI_TPM_CLK_R", 371 "AP_SPI_TPM_CLK_R", 371 "AP_SPI_TPM_CS_L_R", 372 "AP_SPI_TPM_CS_L_R", 372 373 373 /* GPIO3 B 0-7 */ 374 /* GPIO3 B 0-7 */ 374 "EC_IN_RW", 375 "EC_IN_RW", 375 "", 376 "", 376 "AP_I2C_TP_SDA", 377 "AP_I2C_TP_SDA", 377 "AP_I2C_TP_SCL", 378 "AP_I2C_TP_SCL", 378 "AP_I2C_TP_PU_EN", 379 "AP_I2C_TP_PU_EN", 379 "TOUCH_INT_L", 380 "TOUCH_INT_L", 380 "", 381 "", 381 "", 382 "", 382 383 383 /* GPIO3 C 0-7 */ 384 /* GPIO3 C 0-7 */ 384 "", 385 "", 385 "", 386 "", 386 "", 387 "", 387 "", 388 "", 388 "", 389 "", 389 "", 390 "", 390 "", 391 "", 391 "", 392 "", 392 393 393 /* GPIO3 D 0-7 */ 394 /* GPIO3 D 0-7 */ 394 "I2S0_SCLK", 395 "I2S0_SCLK", 395 "I2S0_LRCK_RX", 396 "I2S0_LRCK_RX", 396 "I2S0_LRCK_TX", 397 "I2S0_LRCK_TX", 397 "I2S0_SDI_0", 398 "I2S0_SDI_0", 398 "I2S0_SDI_1", 399 "I2S0_SDI_1", 399 "", 400 "", 400 "I2S0_SDO_1", 401 "I2S0_SDO_1", 401 "I2S0_SDO_0"; 402 "I2S0_SDO_0"; 402 }; 403 }; 403 404 404 &gpio4 { 405 &gpio4 { 405 gpio-line-names = /* GPIO4 A 0-7 */ 406 gpio-line-names = /* GPIO4 A 0-7 */ 406 "I2S_MCLK", 407 "I2S_MCLK", 407 "AP_I2C_MIC_SDA", 408 "AP_I2C_MIC_SDA", 408 "AP_I2C_MIC_SCL", 409 "AP_I2C_MIC_SCL", 409 "", 410 "", 410 "", 411 "", 411 "", 412 "", 412 "", 413 "", 413 "", 414 "", 414 415 415 /* GPIO4 B 0-7 */ 416 /* GPIO4 B 0-7 */ 416 "", 417 "", 417 "", 418 "", 418 "", 419 "", 419 "", 420 "", 420 "", 421 "", 421 "", 422 "", 422 "", 423 "", 423 "", 424 "", 424 425 425 /* GPIO4 C 0-7 */ 426 /* GPIO4 C 0-7 */ 426 "AP_I2C_TS_SDA", 427 "AP_I2C_TS_SDA", 427 "AP_I2C_TS_SCL", 428 "AP_I2C_TS_SCL", 428 "GPU_DVS_PWM", 429 "GPU_DVS_PWM", 429 "UART_DBG_TX_AP_RX", 430 "UART_DBG_TX_AP_RX", 430 "UART_AP_TX_DBG_RX", 431 "UART_AP_TX_DBG_RX", 431 "", 432 "", 432 "BIGCPU_DVS_PWM", 433 "BIGCPU_DVS_PWM", 433 "EDP_HPD_3V0", 434 "EDP_HPD_3V0", 434 435 435 /* GPIO4 D 0-5 */ 436 /* GPIO4 D 0-5 */ 436 "SD_CARD_DET_L", 437 "SD_CARD_DET_L", 437 "USB_DP_HPD", 438 "USB_DP_HPD", 438 "TOUCH_RESET_L", 439 "TOUCH_RESET_L", 439 "PP3300_DISP_EN", 440 "PP3300_DISP_EN", 440 "", 441 "", 441 "SD_SLOT_PWR_EN"; 442 "SD_SLOT_PWR_EN"; 442 }; 443 }; 443 444 444 ap_i2c_mic: &i2c1 { 445 ap_i2c_mic: &i2c1 { 445 status = "okay"; 446 status = "okay"; 446 447 447 clock-frequency = <400000>; 448 clock-frequency = <400000>; 448 449 449 /* These are relatively safe rise/fall 450 /* These are relatively safe rise/fall times */ 450 i2c-scl-falling-time-ns = <50>; 451 i2c-scl-falling-time-ns = <50>; 451 i2c-scl-rising-time-ns = <300>; 452 i2c-scl-rising-time-ns = <300>; 452 453 453 headsetcodec: rt5514@57 { 454 headsetcodec: rt5514@57 { 454 compatible = "realtek,rt5514"; 455 compatible = "realtek,rt5514"; 455 reg = <0x57>; 456 reg = <0x57>; 456 realtek,dmic-init-delay-ms = < 457 realtek,dmic-init-delay-ms = <20>; 457 }; 458 }; 458 }; 459 }; 459 460 460 ap_i2c_tp: &i2c5 { 461 ap_i2c_tp: &i2c5 { 461 status = "okay"; 462 status = "okay"; 462 463 463 clock-frequency = <400000>; 464 clock-frequency = <400000>; 464 465 465 /* These are relatively safe rise/fall 466 /* These are relatively safe rise/fall times */ 466 i2c-scl-falling-time-ns = <50>; 467 i2c-scl-falling-time-ns = <50>; 467 i2c-scl-rising-time-ns = <300>; 468 i2c-scl-rising-time-ns = <300>; 468 469 469 /* 470 /* 470 * Note strange pullup enable. Appare 471 * Note strange pullup enable. Apparently this avoids leakage but 471 * still allows us to get nice 4.7K pu 472 * still allows us to get nice 4.7K pullups for high speed i2c 472 * transfers. Basically we want the p 473 * transfers. Basically we want the pullup on whenever the ap is 473 * alive, so the "en" pin just gets se 474 * alive, so the "en" pin just gets set to output high. 474 */ 475 */ 475 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_ 476 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 476 }; 477 }; 477 478 478 &cros_ec { 479 &cros_ec { 479 cros_ec_pwm: pwm { 480 cros_ec_pwm: pwm { 480 compatible = "google,cros-ec-p 481 compatible = "google,cros-ec-pwm"; 481 #pwm-cells = <1>; 482 #pwm-cells = <1>; 482 }; 483 }; 483 484 484 usbc_extcon1: extcon1 { 485 usbc_extcon1: extcon1 { 485 compatible = "google,extcon-us 486 compatible = "google,extcon-usbc-cros-ec"; 486 google,usb-port-id = <1>; 487 google,usb-port-id = <1>; 487 }; 488 }; 488 }; 489 }; 489 490 490 &sound { 491 &sound { 491 rockchip,codec = <&max98357a &headsetc 492 rockchip,codec = <&max98357a &headsetcodec 492 &codec &wacky_spi_au 493 &codec &wacky_spi_audio &cdn_dp>; 493 }; 494 }; 494 495 495 &spi2 { 496 &spi2 { 496 wacky_spi_audio: spi2@0 { 497 wacky_spi_audio: spi2@0 { 497 compatible = "realtek,rt5514"; 498 compatible = "realtek,rt5514"; 498 reg = <0>; 499 reg = <0>; 499 interrupt-parent = <&gpio1>; 500 interrupt-parent = <&gpio1>; 500 interrupts = <13 IRQ_TYPE_LEVE 501 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 501 pinctrl-names = "default"; 502 pinctrl-names = "default"; 502 pinctrl-0 = <&mic_int>; 503 pinctrl-0 = <&mic_int>; 503 /* May run faster once verifie 504 /* May run faster once verified. */ 504 spi-max-frequency = <10000000> 505 spi-max-frequency = <10000000>; 505 wakeup-source; 506 wakeup-source; 506 }; 507 }; 507 }; 508 }; 508 509 509 &pci_rootport { 510 &pci_rootport { 510 mvl_wifi: wifi@0,0 { 511 mvl_wifi: wifi@0,0 { 511 compatible = "pci1b4b,2b42"; 512 compatible = "pci1b4b,2b42"; 512 reg = <0x0000 0x0 0x0 0x0 0x0> !! 513 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000 >> 514 0x83010000 0x0 0x00100000 0x0 0x00100000>; 513 interrupt-parent = <&gpio0>; 515 interrupt-parent = <&gpio0>; 514 interrupts = <8 IRQ_TYPE_LEVEL 516 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 515 pinctrl-names = "default"; 517 pinctrl-names = "default"; 516 pinctrl-0 = <&wlan_host_wake_l 518 pinctrl-0 = <&wlan_host_wake_l>; 517 wakeup-source; 519 wakeup-source; 518 }; 520 }; 519 }; 521 }; 520 522 521 &tcphy1 { 523 &tcphy1 { 522 status = "okay"; 524 status = "okay"; 523 extcon = <&usbc_extcon1>; 525 extcon = <&usbc_extcon1>; 524 }; 526 }; 525 527 526 &u2phy1 { 528 &u2phy1 { 527 status = "okay"; 529 status = "okay"; 528 }; 530 }; 529 531 530 &usb_host0_ehci { 532 &usb_host0_ehci { 531 status = "okay"; 533 status = "okay"; 532 }; 534 }; 533 535 534 &usb_host1_ehci { 536 &usb_host1_ehci { 535 status = "okay"; 537 status = "okay"; 536 }; 538 }; 537 539 538 &usb_host1_ohci { 540 &usb_host1_ohci { 539 status = "okay"; 541 status = "okay"; 540 }; 542 }; 541 543 542 &usbdrd3_1 { 544 &usbdrd3_1 { 543 status = "okay"; 545 status = "okay"; 544 extcon = <&usbc_extcon1>; 546 extcon = <&usbc_extcon1>; 545 }; 547 }; 546 548 547 &usbdrd_dwc3_1 { 549 &usbdrd_dwc3_1 { 548 status = "okay"; 550 status = "okay"; 549 dr_mode = "host"; 551 dr_mode = "host"; 550 }; 552 }; 551 553 552 &pinctrl { 554 &pinctrl { 553 discrete-regulators { 555 discrete-regulators { 554 pp1500_en: pp1500-en { 556 pp1500_en: pp1500-en { 555 rockchip,pins = <0 RK_ 557 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO 556 &pcfg 558 &pcfg_pull_none>; 557 }; 559 }; 558 560 559 pp1800_audio_en: pp1800-audio- 561 pp1800_audio_en: pp1800-audio-en { 560 rockchip,pins = <0 RK_ 562 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO 561 &pcfg 563 &pcfg_pull_down>; 562 }; 564 }; 563 565 564 pp3000_en: pp3000-en { 566 pp3000_en: pp3000-en { 565 rockchip,pins = <0 RK_ 567 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO 566 &pcfg 568 &pcfg_pull_none>; 567 }; 569 }; 568 570 569 pp3300_disp_en: pp3300-disp-en 571 pp3300_disp_en: pp3300-disp-en { 570 rockchip,pins = <4 RK_ 572 rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO 571 &pcfg 573 &pcfg_pull_none>; 572 }; 574 }; 573 575 574 wlan_module_pd_l: wlan-module- 576 wlan_module_pd_l: wlan-module-pd-l { 575 rockchip,pins = <0 RK_ 577 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO 576 &pcfg 578 &pcfg_pull_down>; 577 }; 579 }; 578 }; 580 }; 579 }; 581 }; 580 582 581 &wifi { 583 &wifi { 582 wifi_perst_l: wifi-perst-l { 584 wifi_perst_l: wifi-perst-l { 583 rockchip,pins = <2 RK_PD3 RK_F 585 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 584 }; 586 }; 585 587 586 wlan_host_wake_l: wlan-host-wake-l { 588 wlan_host_wake_l: wlan-host-wake-l { 587 /* Kevin has an external pull 589 /* Kevin has an external pull up, but Bob does not */ 588 rockchip,pins = <0 RK_PB0 RK_F 590 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 589 }; 591 }; 590 }; 592 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.