cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rk3399-gru-scarlet.dtsi (17436B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Google Gru-scarlet board device tree source
      4 *
      5 * Copyright 2018 Google, Inc
      6 */
      7
      8#include "rk3399-gru.dtsi"
      9
     10/{
     11	chassis-type = "tablet";
     12
     13	/* Power tree */
     14
     15	/* ppvar_sys children, sorted by name */
     16	pp1250_s3: pp1250-s3 {
     17		compatible = "regulator-fixed";
     18		regulator-name = "pp1250_s3";
     19
     20		/* EC turns on w/ pp1250_s3_en; always on for AP */
     21		regulator-always-on;
     22		regulator-boot-on;
     23		regulator-min-microvolt = <1250000>;
     24		regulator-max-microvolt = <1250000>;
     25
     26		vin-supply = <&ppvar_sys>;
     27	};
     28
     29	pp1250_cam: pp1250-dvdd {
     30		compatible = "regulator-fixed";
     31		regulator-name = "pp1250_dvdd";
     32		pinctrl-names = "default";
     33		pinctrl-0 = <&pp1250_cam_en>;
     34
     35		enable-active-high;
     36		gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;
     37
     38		/* 740us delay from gpio output high to pp1250 stable,
     39		 * rounding up to 1ms for safety.
     40		 */
     41		startup-delay-us = <1000>;
     42		vin-supply = <&pp1250_s3>;
     43	};
     44
     45	pp900_s0: pp900-s0 {
     46		compatible = "regulator-fixed";
     47		regulator-name = "pp900_s0";
     48
     49		/* EC turns on w/ pp900_s0_en; always on for AP */
     50		regulator-always-on;
     51		regulator-boot-on;
     52		regulator-min-microvolt = <900000>;
     53		regulator-max-microvolt = <900000>;
     54
     55		vin-supply = <&ppvar_sys>;
     56	};
     57
     58	ppvarn_lcd: ppvarn-lcd {
     59		compatible = "regulator-fixed";
     60		regulator-name = "ppvarn_lcd";
     61		pinctrl-names = "default";
     62		pinctrl-0 = <&ppvarn_lcd_en>;
     63
     64		enable-active-high;
     65		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
     66		vin-supply = <&ppvar_sys>;
     67	};
     68
     69	ppvarp_lcd: ppvarp-lcd {
     70		compatible = "regulator-fixed";
     71		regulator-name = "ppvarp_lcd";
     72		pinctrl-names = "default";
     73		pinctrl-0 = <&ppvarp_lcd_en>;
     74
     75		enable-active-high;
     76		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
     77		vin-supply = <&ppvar_sys>;
     78	};
     79
     80	/* pp1800 children, sorted by name */
     81	pp900_s3: pp900-s3 {
     82		compatible = "regulator-fixed";
     83		regulator-name = "pp900_s3";
     84
     85		/* EC turns on w/ pp900_s3_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 = <&pp1800>;
     92	};
     93
     94	/* EC turns on pp1800_s3_en */
     95	pp1800_s3: pp1800 {
     96	};
     97
     98	/* pp3300 children, sorted by name */
     99	pp2800_cam: pp2800-avdd {
    100		compatible = "regulator-fixed";
    101		regulator-name = "pp2800_avdd";
    102		pinctrl-names = "default";
    103		pinctrl-0 = <&pp2800_cam_en>;
    104
    105		enable-active-high;
    106		gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
    107		startup-delay-us = <100>;
    108		vin-supply = <&pp3300>;
    109	};
    110
    111	/* EC turns on pp3300_s0_en */
    112	pp3300_s0: pp3300 {
    113	};
    114
    115	/* EC turns on pp3300_s3_en */
    116	pp3300_s3: pp3300 {
    117	};
    118
    119	/*
    120	 * See b/66922012
    121	 *
    122	 * This is a hack to make sure the Bluetooth part of the QCA6174A
    123	 * is reset at boot by toggling BT_EN. At boot BT_EN is first set
    124	 * to low when the bt_3v3 regulator is registered (in disabled
    125	 * state). The fake regulator is configured as a supply of the
    126	 * wlan_3v3 regulator below. When wlan_3v3 is enabled early in
    127	 * the boot process it also enables its supply regulator bt_3v3,
    128	 * which changes BT_EN to high.
    129	 */
    130	bt_3v3: bt-3v3 {
    131		compatible = "regulator-fixed";
    132		regulator-name = "bt_3v3";
    133		pinctrl-names = "default";
    134		pinctrl-0 = <&bt_en_1v8_l>;
    135
    136		enable-active-high;
    137		gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
    138		vin-supply = <&pp3300_s3>;
    139	};
    140
    141	wlan_3v3: wlan-3v3 {
    142		compatible = "regulator-fixed";
    143		regulator-name = "wlan_3v3";
    144		pinctrl-names = "default";
    145		pinctrl-0 = <&wlan_pd_1v8_l>;
    146
    147		/*
    148		 * The WL_EN pin is driven low when the regulator is
    149		 * registered, and transitions to high when the PCIe bus
    150		 * is powered up.
    151		 */
    152		enable-active-high;
    153		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
    154
    155		/*
    156		 * Require minimum 10ms from power-on (e.g., PD#) to init PCIe.
    157		 * TODO (b/64444991): how long to assert PD#?
    158		 */
    159		regulator-enable-ramp-delay = <10000>;
    160		/* See bt_3v3 hack above */
    161		vin-supply = <&bt_3v3>;
    162	};
    163
    164	backlight: backlight {
    165		compatible = "pwm-backlight";
    166		enable-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>;
    167		pinctrl-names = "default";
    168		pinctrl-0 = <&bl_en>;
    169		pwms = <&pwm1 0 1000000 0>;
    170		pwm-delay-us = <10000>;
    171	};
    172
    173	dmic: dmic {
    174		compatible = "dmic-codec";
    175		dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
    176		pinctrl-names = "default";
    177		pinctrl-0 = <&dmic_en>;
    178		wakeup-delay-ms = <250>;
    179	};
    180
    181	gpio_keys: gpio-keys {
    182		compatible = "gpio-keys";
    183		pinctrl-names = "default";
    184		pinctrl-0 = <&pen_eject_odl>;
    185
    186		pen-insert {
    187			label = "Pen Insert";
    188			/* Insert = low, eject = high */
    189			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
    190			linux,code = <SW_PEN_INSERTED>;
    191			linux,input-type = <EV_SW>;
    192			wakeup-source;
    193		};
    194	};
    195};
    196
    197/* pp900_s0 aliases */
    198pp900_ddrpll_ap: &pp900_s0 {
    199};
    200pp900_pcie: &pp900_s0 {
    201};
    202pp900_usb: &pp900_s0 {
    203};
    204
    205/* pp900_s3 aliases */
    206pp900_emmcpll: &pp900_s3 {
    207};
    208
    209/* EC turns on; alias for pp1800_s0 */
    210pp1800_pcie: &pp1800_s0 {
    211};
    212
    213/* On scarlet PPVAR(big_cpu, lit_cpu, gpu) need to adjust voltage ranges */
    214&ppvar_bigcpu {
    215	ctrl-voltage-range = <800074 1299226>;
    216	regulator-min-microvolt = <800074>;
    217	regulator-max-microvolt = <1299226>;
    218};
    219
    220&ppvar_bigcpu_pwm {
    221	/* On scarlet ppvar big cpu use pwm3 */
    222	pwms = <&pwm3 0 3337 0>;
    223	regulator-min-microvolt = <800074>;
    224	regulator-max-microvolt = <1299226>;
    225};
    226
    227&ppvar_litcpu {
    228	ctrl-voltage-range = <802122 1199620>;
    229	regulator-min-microvolt = <802122>;
    230	regulator-max-microvolt = <1199620>;
    231};
    232
    233&ppvar_litcpu_pwm {
    234	regulator-min-microvolt = <802122>;
    235	regulator-max-microvolt = <1199620>;
    236};
    237
    238&ppvar_gpu {
    239	ctrl-voltage-range = <799600 1099600>;
    240	regulator-min-microvolt = <799600>;
    241	regulator-max-microvolt = <1099600>;
    242};
    243
    244&ppvar_gpu_pwm {
    245	regulator-min-microvolt = <799600>;
    246	regulator-max-microvolt = <1099600>;
    247};
    248
    249&ppvar_sd_card_io {
    250	states = <1800000 0x0>, <3300000 0x1>;
    251	regulator-max-microvolt = <3300000>;
    252};
    253
    254&pp3000_sd_slot {
    255	vin-supply = <&pp3300>;
    256};
    257
    258ap_i2c_dig: &i2c2 {
    259	status = "okay";
    260
    261	clock-frequency = <400000>;
    262
    263	/* These are relatively safe rise/fall times. */
    264	i2c-scl-falling-time-ns = <50>;
    265	i2c-scl-rising-time-ns = <300>;
    266
    267	digitizer: digitizer@9 {
    268		compatible = "hid-over-i2c";
    269		reg = <0x9>;
    270		interrupt-parent = <&gpio1>;
    271		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
    272		hid-descr-addr = <0x1>;
    273		pinctrl-names = "default";
    274		pinctrl-0 = <&pen_int_odl &pen_reset_l>;
    275	};
    276};
    277
    278&ap_i2c_ts {
    279	touchscreen: touchscreen@10 {
    280		compatible = "elan,ekth3500";
    281		reg = <0x10>;
    282		interrupt-parent = <&gpio1>;
    283		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
    284		pinctrl-names = "default";
    285		pinctrl-0 = <&touch_int_l &touch_reset_l>;
    286		reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
    287	};
    288};
    289
    290camera: &i2c7 {
    291	status = "okay";
    292
    293	clock-frequency = <400000>;
    294
    295	/* These are relatively safe rise/fall times; TODO: measure */
    296	i2c-scl-falling-time-ns = <50>;
    297	i2c-scl-rising-time-ns = <300>;
    298
    299	/* 24M mclk is shared between world and user cameras */
    300	pinctrl-0 = <&i2c7_xfer &test_clkout1>;
    301
    302	/* Rear-facing camera */
    303	wcam: camera@36 {
    304		compatible = "ovti,ov5695";
    305		reg = <0x36>;
    306		pinctrl-names = "default";
    307		pinctrl-0 = <&wcam_rst>;
    308
    309		clocks = <&cru SCLK_TESTCLKOUT1>;
    310		clock-names = "xvclk";
    311
    312		avdd-supply = <&pp2800_cam>;
    313		dvdd-supply = <&pp1250_cam>;
    314		dovdd-supply = <&pp1800_s0>;
    315		reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
    316
    317		port {
    318			wcam_out: endpoint {
    319				remote-endpoint = <&mipi_in_wcam>;
    320				data-lanes = <1 2>;
    321			};
    322		};
    323	};
    324
    325	/* Front-facing camera */
    326	ucam: camera@3c {
    327		compatible = "ovti,ov2685";
    328		reg = <0x3c>;
    329		pinctrl-names = "default";
    330		pinctrl-0 = <&ucam_rst>;
    331
    332		clocks = <&cru SCLK_TESTCLKOUT1>;
    333		clock-names = "xvclk";
    334
    335		avdd-supply = <&pp2800_cam>;
    336		dovdd-supply = <&pp1800_s0>;
    337		dvdd-supply = <&pp1800_s0>;
    338		reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
    339
    340		port {
    341			ucam_out: endpoint {
    342				remote-endpoint = <&mipi_in_ucam>;
    343				data-lanes = <1>;
    344			};
    345		};
    346	};
    347};
    348
    349&cdn_dp {
    350	extcon = <&usbc_extcon0>;
    351	phys = <&tcphy0_dp>;
    352};
    353
    354&cpu_alert0 {
    355	temperature = <66000>;
    356};
    357
    358&cpu_alert1 {
    359	temperature = <71000>;
    360};
    361
    362&cros_ec {
    363	interrupt-parent = <&gpio1>;
    364	interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
    365};
    366
    367&cru {
    368	assigned-clocks =
    369		<&cru PLL_GPLL>, <&cru PLL_CPLL>,
    370		<&cru PLL_NPLL>,
    371		<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
    372		<&cru PCLK_PERIHP>,
    373		<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
    374		<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
    375		<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
    376		<&cru ACLK_VIO>,
    377		<&cru ACLK_GIC_PRE>,
    378		<&cru PCLK_DDR>,
    379		<&cru ACLK_HDCP>;
    380	assigned-clock-rates =
    381		<600000000>, <1600000000>,
    382		<1000000000>,
    383		<150000000>, <75000000>,
    384		<37500000>,
    385		<100000000>, <100000000>,
    386		<50000000>, <800000000>,
    387		<100000000>, <50000000>,
    388		<400000000>,
    389		<200000000>,
    390		<200000000>,
    391		<400000000>;
    392};
    393
    394/* The center supply is fixed to .9V on scarlet */
    395&dmc {
    396	center-supply = <&pp900_s0>;
    397};
    398
    399/* We don't need .925 V for 928 MHz on scarlet */
    400&dmc_opp_table {
    401	opp03 {
    402		opp-microvolt = <900000>;
    403	};
    404};
    405
    406&gpio0 {
    407	gpio-line-names = /* GPIO0 A 0-7 */
    408			  "CLK_32K_AP",
    409			  "EC_IN_RW_OD",
    410			  "SPK_PA_EN",
    411			  "WLAN_PERST_1V8_L",
    412			  "WLAN_PD_1V8_L",
    413			  "WLAN_RF_KILL_1V8_L",
    414			  "BIGCPU_DVS_PWM",
    415			  "SD_CD_L_JTAG_EN",
    416
    417			  /* GPIO0 B 0-5 */
    418			  "BT_EN_BT_RF_KILL_1V8_L",
    419			  "PMUIO2_33_18_L_PP3300_S0_EN",
    420			  "TOUCH_RESET_L",
    421			  "AP_EC_WARM_RESET_REQ",
    422			  "PEN_RESET_L",
    423			  /*
    424			   * AP_FLASH_WP_L is crossystem ABI. Schematics call
    425			   * it AP_FLASH_WP_R_ODL.
    426			   */
    427			  "AP_FLASH_WP_L";
    428};
    429
    430&gpio1 {
    431	gpio-line-names = /* GPIO1 A 0-7 */
    432			  "PEN_INT_ODL",
    433			  "PEN_EJECT_ODL",
    434			  "BT_HOST_WAKE_1V8_L",
    435			  "WLAN_HOST_WAKE_1V8_L",
    436			  "TOUCH_INT_ODL",
    437			  "AP_EC_S3_S0_L",
    438			  "AP_EC_OVERTEMP",
    439			  "AP_SPI_FLASH_MISO",
    440
    441			  /* GPIO1 B 0-7 */
    442			  "AP_SPI_FLASH_MOSI_R",
    443			  "AP_SPI_FLASH_CLK_R",
    444			  "AP_SPI_FLASH_CS_L_R",
    445			  "SD_CARD_DET_ODL",
    446			  "",
    447			  "AP_EXPANSION_IO1",
    448			  "AP_EXPANSION_IO2",
    449			  "AP_I2C_DISP_SDA",
    450
    451			  /* GPIO1 C 0-7 */
    452			  "AP_I2C_DISP_SCL",
    453			  "H1_INT_ODL",
    454			  "EC_AP_INT_ODL",
    455			  "LITCPU_DVS_PWM",
    456			  "AP_I2C_AUDIO_SDA",
    457			  "AP_I2C_AUDIO_SCL",
    458			  "AP_EXPANSION_IO3",
    459			  "HEADSET_INT_ODL",
    460
    461			  /* GPIO1 D0 */
    462			  "AP_EXPANSION_IO4";
    463};
    464
    465&gpio2 {
    466	gpio-line-names = /* GPIO2 A 0-7 */
    467			  "AP_I2C_PEN_SDA",
    468			  "AP_I2C_PEN_SCL",
    469			  "SD_IO_PWR_EN",
    470			  "UCAM_RST_L",
    471			  "PP1250_CAM_EN",
    472			  "WCAM_RST_L",
    473			  "AP_EXPANSION_IO5",
    474			  "AP_I2C_CAM_SDA",
    475
    476			  /* GPIO2 B 0-7 */
    477			  "AP_I2C_CAM_SCL",
    478			  "AP_H1_SPI_MISO",
    479			  "AP_H1_SPI_MOSI",
    480			  "AP_H1_SPI_CLK",
    481			  "AP_H1_SPI_CS_L",
    482			  "",
    483			  "",
    484			  "",
    485
    486			  /* GPIO2 C 0-7 */
    487			  "UART_EXPANSION_TX_AP_RX",
    488			  "UART_AP_TX_EXPANSION_RX",
    489			  "UART_EXPANSION_RTS_AP_CTS",
    490			  "UART_AP_RTS_EXPANSION_CTS",
    491			  "AP_SPI_EC_MISO",
    492			  "AP_SPI_EC_MOSI",
    493			  "AP_SPI_EC_CLK",
    494			  "AP_SPI_EC_CS_L",
    495
    496			  /* GPIO2 D 0-4 */
    497			  "PP2800_CAM_EN",
    498			  "CLK_24M_CAM",
    499			  "WLAN_PCIE_CLKREQ_1V8_L",
    500			  "",
    501			  "SD_PWR_3000_1800_L";
    502};
    503
    504&gpio3 {
    505	gpio-line-names = /* GPIO3 A 0-7 */
    506			  "",
    507			  "",
    508			  "",
    509			  "",
    510			  "",
    511			  "",
    512			  "",
    513			  "",
    514
    515			  /* GPIO3 B 0-7 */
    516			  "",
    517			  "",
    518			  "",
    519			  "",
    520			  "",
    521			  "",
    522			  "",
    523			  "",
    524
    525			  /* GPIO3 C 0-7 */
    526			  "",
    527			  "",
    528			  "",
    529			  "",
    530			  "",
    531			  "",
    532			  "",
    533			  "",
    534
    535			  /* GPIO3 D 0-7 */
    536			  "I2S0_SCLK",
    537			  "I2S0_LRCK_RX",
    538			  "I2S0_LRCK_TX",
    539			  "I2S0_SDI_0",
    540			  "STRAP_LCDBIAS_L",
    541			  "STRAP_FEATURE_1",
    542			  "STRAP_FEATURE_2",
    543			  "I2S0_SDO_0";
    544};
    545
    546&gpio4 {
    547	gpio-line-names = /* GPIO4 A 0-7 */
    548			  "I2S_MCLK",
    549			  "AP_I2C_EXPANSION_SDA",
    550			  "AP_I2C_EXPANSION_SCL",
    551			  "DMIC_EN",
    552			  "",
    553			  "",
    554			  "",
    555			  "",
    556
    557			  /* GPIO4 B 0-7 */
    558			  "",
    559			  "",
    560			  "",
    561			  "",
    562			  "",
    563			  "",
    564			  "",
    565			  "",
    566
    567			  /* GPIO4 C 0-7 */
    568			  "AP_I2C_TS_SDA",
    569			  "AP_I2C_TS_SCL",
    570			  "GPU_DVS_PWM",
    571			  "UART_DBG_TX_AP_RX",
    572			  "UART_AP_TX_DBG_RX",
    573			  "BL_EN",
    574			  "BL_PWM",
    575			  "",
    576
    577			  /* GPIO4 D 0-5 */
    578			  "",
    579			  "DISPLAY_RST_L",
    580			  "",
    581			  "PPVARP_LCD_EN",
    582			  "PPVARN_LCD_EN",
    583			  "SD_SLOT_PWR_EN";
    584};
    585
    586&i2c_tunnel {
    587	google,remote-bus = <0>;
    588};
    589
    590&io_domains {
    591	bt656-supply = <&pp1800_s0>;		/* APIO2_VDD;  2a 2b */
    592	audio-supply = <&pp1800_s0>;		/* APIO5_VDD;  3d 4a */
    593	gpio1830-supply = <&pp1800_s0>;		/* APIO4_VDD;  4c 4d */
    594};
    595
    596&isp0 {
    597	status = "okay";
    598
    599	ports {
    600		port@0 {
    601			mipi_in_wcam: endpoint@0 {
    602				reg = <0>;
    603				remote-endpoint = <&wcam_out>;
    604				data-lanes = <1 2>;
    605			};
    606
    607			mipi_in_ucam: endpoint@1 {
    608				reg = <1>;
    609				remote-endpoint = <&ucam_out>;
    610				data-lanes = <1>;
    611			};
    612		};
    613	};
    614};
    615
    616&isp0_mmu {
    617	status = "okay";
    618};
    619
    620&max98357a {
    621	sdmode-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
    622};
    623
    624&mipi_dphy_rx0 {
    625	status = "okay";
    626};
    627
    628&mipi_dsi {
    629	status = "okay";
    630	clock-master;
    631
    632	ports {
    633		mipi_out: port@1 {
    634			reg = <1>;
    635
    636			mipi_out_panel: endpoint {
    637				remote-endpoint = <&mipi_in_panel>;
    638			};
    639		};
    640	};
    641
    642	mipi_panel: panel@0 {
    643		/* 2 different panels are used, compatibles are in dts files */
    644		reg = <0>;
    645		backlight = <&backlight>;
    646		enable-gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
    647		pinctrl-names = "default";
    648		pinctrl-0 = <&display_rst_l>;
    649
    650		ports {
    651			#address-cells = <1>;
    652			#size-cells = <0>;
    653
    654			port@0 {
    655				reg = <0>;
    656
    657				mipi_in_panel: endpoint {
    658					remote-endpoint = <&mipi_out_panel>;
    659				};
    660			};
    661
    662			port@1 {
    663				reg = <1>;
    664
    665				mipi1_in_panel: endpoint@1 {
    666					remote-endpoint = <&mipi1_out_panel>;
    667				};
    668			};
    669		};
    670	};
    671};
    672
    673&mipi_dsi1 {
    674	status = "okay";
    675
    676	ports {
    677		mipi1_out: port@1 {
    678			reg = <1>;
    679
    680			mipi1_out_panel: endpoint {
    681				remote-endpoint = <&mipi1_in_panel>;
    682			};
    683		};
    684	};
    685};
    686
    687&pcie0 {
    688	ep-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
    689
    690	/* PERST# asserted in S3 */
    691	pcie-reset-suspend = <1>;
    692
    693	vpcie3v3-supply = <&wlan_3v3>;
    694	vpcie1v8-supply = <&pp1800_pcie>;
    695};
    696
    697&sdmmc {
    698	cd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
    699};
    700
    701&sound {
    702	rockchip,codec = <&max98357a &dmic &codec &cdn_dp>;
    703};
    704
    705&spi2 {
    706	status = "okay";
    707
    708	cr50@0 {
    709		compatible = "google,cr50";
    710		reg = <0>;
    711		interrupt-parent = <&gpio1>;
    712		interrupts = <17 IRQ_TYPE_EDGE_RISING>;
    713		pinctrl-names = "default";
    714		pinctrl-0 = <&h1_int_od_l>;
    715		spi-max-frequency = <800000>;
    716	};
    717};
    718
    719&usb_host0_ohci {
    720	#address-cells = <1>;
    721	#size-cells = <0>;
    722
    723	qca_bt: bluetooth@1 {
    724		compatible = "usbcf3,e300", "usb4ca,301a";
    725		reg = <1>;
    726		pinctrl-names = "default";
    727		pinctrl-0 = <&bt_host_wake_l>;
    728		interrupt-parent = <&gpio1>;
    729		interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
    730		interrupt-names = "wakeup";
    731	};
    732};
    733
    734/* PINCTRL OVERRIDES */
    735&ec_ap_int_l {
    736	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
    737};
    738
    739&ap_fw_wp {
    740	rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
    741};
    742
    743&bl_en {
    744	rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
    745};
    746
    747&bt_host_wake_l {
    748	rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
    749};
    750
    751&ec_ap_int_l {
    752	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
    753};
    754
    755&headset_int_l {
    756	rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
    757};
    758
    759&i2s0_8ch_bus {
    760	rockchip,pins =
    761		<3 RK_PD0 1 &pcfg_pull_none_6ma>,
    762		<3 RK_PD1 1 &pcfg_pull_none_6ma>,
    763		<3 RK_PD2 1 &pcfg_pull_none_6ma>,
    764		<3 RK_PD3 1 &pcfg_pull_none_6ma>,
    765		<3 RK_PD7 1 &pcfg_pull_none_6ma>,
    766		<4 RK_PA0 1 &pcfg_pull_none_6ma>;
    767};
    768
    769/* there is no external pull up, so need to set this pin pull up */
    770&sdmmc_cd_pin {
    771	rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
    772};
    773
    774&sd_pwr_1800_sel {
    775	rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
    776};
    777
    778&sdmode_en {
    779	rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>;
    780};
    781
    782&touch_reset_l {
    783	rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
    784};
    785
    786&touch_int_l {
    787	rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
    788};
    789
    790&pinctrl {
    791	pinctrl-0 = <
    792		&ap_pwroff	/* AP will auto-assert this when in S3 */
    793		&clk_32k	/* This pin is always 32k on gru boards */
    794		&wlan_rf_kill_1v8_l
    795	>;
    796
    797	pcfg_pull_none_6ma: pcfg-pull-none-6ma {
    798		bias-disable;
    799		drive-strength = <6>;
    800	};
    801
    802	camera {
    803		pp1250_cam_en: pp1250-dvdd {
    804			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
    805		};
    806
    807		pp2800_cam_en: pp2800-avdd {
    808			rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
    809		};
    810
    811		ucam_rst: ucam_rst {
    812			rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
    813		};
    814
    815		wcam_rst: wcam_rst {
    816			rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
    817		};
    818	};
    819
    820	digitizer {
    821		pen_int_odl: pen-int-odl {
    822			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
    823		};
    824
    825		pen_reset_l: pen-reset-l {
    826			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
    827		};
    828	};
    829
    830	discrete-regulators {
    831		display_rst_l: display-rst-l {
    832			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_down>;
    833		};
    834
    835		ppvarp_lcd_en: ppvarp-lcd-en {
    836			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
    837		};
    838
    839		ppvarn_lcd_en: ppvarn-lcd-en {
    840			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
    841		};
    842	};
    843
    844	dmic {
    845		dmic_en: dmic-en {
    846			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
    847		};
    848	};
    849
    850	pen {
    851		pen_eject_odl: pen-eject-odl {
    852			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
    853		};
    854	};
    855
    856	tpm {
    857		h1_int_od_l: h1-int-od-l {
    858			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
    859		};
    860	};
    861};
    862
    863&wifi {
    864	bt_en_1v8_l: bt-en-1v8-l {
    865		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
    866	};
    867
    868	wlan_pd_1v8_l: wlan-pd-1v8-l {
    869		rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
    870	};
    871
    872	/* Default pull-up, but just to be clear */
    873	wlan_rf_kill_1v8_l: wlan-rf-kill-1v8-l {
    874		rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
    875	};
    876
    877	wifi_perst_l: wifi-perst-l {
    878		rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
    879	};
    880
    881	wlan_host_wake_l: wlan-host-wake-l {
    882		rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
    883	};
    884};