162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Google Herobrine board device tree source
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2022 Google LLC.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/dts-v1/;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include "sc7280-herobrine.dtsi"
1162306a36Sopenharmony_ci#include "sc7280-herobrine-audio-rt5682.dtsi"
1262306a36Sopenharmony_ci#include "sc7280-herobrine-lte-sku.dtsi"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/ {
1562306a36Sopenharmony_ci	model = "Google Herobrine (rev1+)";
1662306a36Sopenharmony_ci	compatible = "google,herobrine", "qcom,sc7280";
1762306a36Sopenharmony_ci};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci/*
2062306a36Sopenharmony_ci * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES
2162306a36Sopenharmony_ci *
2262306a36Sopenharmony_ci * Sort order matches the order in the parent files (parents before children).
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci&pp3300_codec {
2662306a36Sopenharmony_ci	status = "okay";
2762306a36Sopenharmony_ci};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci&pp3300_fp_mcu {
3062306a36Sopenharmony_ci	status = "okay";
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci&pp2850_vcm_wf_cam {
3462306a36Sopenharmony_ci	status = "okay";
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci&pp2850_wf_cam {
3862306a36Sopenharmony_ci	status = "okay";
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci&pp1800_wf_cam {
4262306a36Sopenharmony_ci	status = "okay";
4362306a36Sopenharmony_ci};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci&pp1200_wf_cam {
4662306a36Sopenharmony_ci	status = "okay";
4762306a36Sopenharmony_ci};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci/*
5262306a36Sopenharmony_ci * Although the trackpad is really part of the herobrine baseboard, we'll
5362306a36Sopenharmony_ci * put the actual definition in the board device tree since different boards
5462306a36Sopenharmony_ci * might hook up different trackpads (or no i2c trackpad at all in the case
5562306a36Sopenharmony_ci * of tablets / detachables).
5662306a36Sopenharmony_ci */
5762306a36Sopenharmony_ciap_tp_i2c: &i2c0 {
5862306a36Sopenharmony_ci	status = "okay";
5962306a36Sopenharmony_ci	clock-frequency = <400000>;
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	trackpad: trackpad@15 {
6262306a36Sopenharmony_ci		compatible = "elan,ekth3000";
6362306a36Sopenharmony_ci		reg = <0x15>;
6462306a36Sopenharmony_ci		pinctrl-names = "default";
6562306a36Sopenharmony_ci		pinctrl-0 = <&tp_int_odl>;
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
6862306a36Sopenharmony_ci		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		vcc-supply = <&pp3300_z1>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		wakeup-source;
7362306a36Sopenharmony_ci	};
7462306a36Sopenharmony_ci};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci/*
7762306a36Sopenharmony_ci * The touchscreen connector might come off the Qcard, at least in the case of
7862306a36Sopenharmony_ci * eDP. Like the trackpad, we'll put it in the board device tree file since
7962306a36Sopenharmony_ci * different boards have different touchscreens.
8062306a36Sopenharmony_ci */
8162306a36Sopenharmony_cits_i2c: &i2c13 {
8262306a36Sopenharmony_ci	status = "okay";
8362306a36Sopenharmony_ci	clock-frequency = <400000>;
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	ap_ts: touchscreen@5c {
8662306a36Sopenharmony_ci		compatible = "hid-over-i2c";
8762306a36Sopenharmony_ci		reg = <0x5c>;
8862306a36Sopenharmony_ci		pinctrl-names = "default";
8962306a36Sopenharmony_ci		pinctrl-0 = <&ts_int_conn>, <&ts_rst_conn>;
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
9262306a36Sopenharmony_ci		interrupts = <55 IRQ_TYPE_LEVEL_LOW>;
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci		post-power-on-delay-ms = <500>;
9562306a36Sopenharmony_ci		hid-descr-addr = <0x0000>;
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci		vdd-supply = <&ts_avdd>;
9862306a36Sopenharmony_ci	};
9962306a36Sopenharmony_ci};
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci&mdss_edp {
10262306a36Sopenharmony_ci	status = "okay";
10362306a36Sopenharmony_ci};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci&mdss_edp_phy {
10662306a36Sopenharmony_ci	status = "okay";
10762306a36Sopenharmony_ci};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci/* For nvme */
11062306a36Sopenharmony_ci&pcie1 {
11162306a36Sopenharmony_ci	status = "okay";
11262306a36Sopenharmony_ci};
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci/* For nvme */
11562306a36Sopenharmony_ci&pcie1_phy {
11662306a36Sopenharmony_ci	status = "okay";
11762306a36Sopenharmony_ci};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci/* For eMMC */
12062306a36Sopenharmony_ci&sdhc_1 {
12162306a36Sopenharmony_ci	status = "okay";
12262306a36Sopenharmony_ci};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci/* For SD Card */
12562306a36Sopenharmony_ci&sdhc_2 {
12662306a36Sopenharmony_ci	status = "okay";
12762306a36Sopenharmony_ci};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci/*
13262306a36Sopenharmony_ci * This pin goes to the display panel but then doesn't actually do anything
13362306a36Sopenharmony_ci * on the panel itself (it doesn't connect to the touchscreen controller).
13462306a36Sopenharmony_ci * We'll set a pullup here just to park the line.
13562306a36Sopenharmony_ci */
13662306a36Sopenharmony_ci&ts_rst_conn {
13762306a36Sopenharmony_ci	bias-pull-up;
13862306a36Sopenharmony_ci};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci/* PINCTRL - BOARD-SPECIFIC */
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci/*
14362306a36Sopenharmony_ci * Methodology for gpio-line-names:
14462306a36Sopenharmony_ci * - If a pin goes to herobrine board and is named it gets that name.
14562306a36Sopenharmony_ci * - If a pin goes to herobrine board and is not named, it gets no name.
14662306a36Sopenharmony_ci * - If a pin is totally internal to Qcard then it gets Qcard name.
14762306a36Sopenharmony_ci * - If a pin is not hooked up on Qcard, it gets no name.
14862306a36Sopenharmony_ci */
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci&pm8350c_gpios {
15162306a36Sopenharmony_ci	gpio-line-names = "FLASH_STROBE_1",		/* 1 */
15262306a36Sopenharmony_ci			  "AP_SUSPEND",
15362306a36Sopenharmony_ci			  "PM8008_1_RST_N",
15462306a36Sopenharmony_ci			  "",
15562306a36Sopenharmony_ci			  "",
15662306a36Sopenharmony_ci			  "",
15762306a36Sopenharmony_ci			  "PMIC_EDP_BL_EN",
15862306a36Sopenharmony_ci			  "PMIC_EDP_BL_PWM",
15962306a36Sopenharmony_ci			  "";
16062306a36Sopenharmony_ci};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci&tlmm {
16362306a36Sopenharmony_ci	gpio-line-names = "AP_TP_I2C_SDA",		/* 0 */
16462306a36Sopenharmony_ci			  "AP_TP_I2C_SCL",
16562306a36Sopenharmony_ci			  "SSD_RST_L",
16662306a36Sopenharmony_ci			  "PE_WAKE_ODL",
16762306a36Sopenharmony_ci			  "AP_SAR_SDA",
16862306a36Sopenharmony_ci			  "AP_SAR_SCL",
16962306a36Sopenharmony_ci			  "PRB_SC_GPIO_6",
17062306a36Sopenharmony_ci			  "TP_INT_ODL",
17162306a36Sopenharmony_ci			  "HP_I2C_SDA",
17262306a36Sopenharmony_ci			  "HP_I2C_SCL",
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci			  "GNSS_L1_EN",			/* 10 */
17562306a36Sopenharmony_ci			  "GNSS_L5_EN",
17662306a36Sopenharmony_ci			  "SPI_AP_MOSI",
17762306a36Sopenharmony_ci			  "SPI_AP_MISO",
17862306a36Sopenharmony_ci			  "SPI_AP_CLK",
17962306a36Sopenharmony_ci			  "SPI_AP_CS0_L",
18062306a36Sopenharmony_ci			  /*
18162306a36Sopenharmony_ci			   * AP_FLASH_WP is crossystem ABI. Schematics
18262306a36Sopenharmony_ci			   * call it BIOS_FLASH_WP_OD.
18362306a36Sopenharmony_ci			   */
18462306a36Sopenharmony_ci			  "AP_FLASH_WP",
18562306a36Sopenharmony_ci			  "",
18662306a36Sopenharmony_ci			  "AP_EC_INT_L",
18762306a36Sopenharmony_ci			  "",
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci			  "UF_CAM_RST_L",		/* 20 */
19062306a36Sopenharmony_ci			  "WF_CAM_RST_L",
19162306a36Sopenharmony_ci			  "UART_AP_TX_DBG_RX",
19262306a36Sopenharmony_ci			  "UART_DBG_TX_AP_RX",
19362306a36Sopenharmony_ci			  "",
19462306a36Sopenharmony_ci			  "PM8008_IRQ_1",
19562306a36Sopenharmony_ci			  "HOST2WLAN_SOL",
19662306a36Sopenharmony_ci			  "WLAN2HOST_SOL",
19762306a36Sopenharmony_ci			  "MOS_BT_UART_CTS",
19862306a36Sopenharmony_ci			  "MOS_BT_UART_RFR",
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci			  "MOS_BT_UART_TX",		/* 30 */
20162306a36Sopenharmony_ci			  "MOS_BT_UART_RX",
20262306a36Sopenharmony_ci			  "PRB_SC_GPIO_32",
20362306a36Sopenharmony_ci			  "HUB_RST_L",
20462306a36Sopenharmony_ci			  "",
20562306a36Sopenharmony_ci			  "",
20662306a36Sopenharmony_ci			  "AP_SPI_FP_MISO",
20762306a36Sopenharmony_ci			  "AP_SPI_FP_MOSI",
20862306a36Sopenharmony_ci			  "AP_SPI_FP_CLK",
20962306a36Sopenharmony_ci			  "AP_SPI_FP_CS_L",
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci			  "AP_EC_SPI_MISO",		/* 40 */
21262306a36Sopenharmony_ci			  "AP_EC_SPI_MOSI",
21362306a36Sopenharmony_ci			  "AP_EC_SPI_CLK",
21462306a36Sopenharmony_ci			  "AP_EC_SPI_CS_L",
21562306a36Sopenharmony_ci			  "LCM_RST_L",
21662306a36Sopenharmony_ci			  "EARLY_EUD_N",
21762306a36Sopenharmony_ci			  "",
21862306a36Sopenharmony_ci			  "DP_HOT_PLUG_DET",
21962306a36Sopenharmony_ci			  "IO_BRD_MLB_ID0",
22062306a36Sopenharmony_ci			  "IO_BRD_MLB_ID1",
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci			  "IO_BRD_MLB_ID2",		/* 50 */
22362306a36Sopenharmony_ci			  "SSD_EN",
22462306a36Sopenharmony_ci			  "TS_I2C_SDA_CONN",
22562306a36Sopenharmony_ci			  "TS_I2C_CLK_CONN",
22662306a36Sopenharmony_ci			  "TS_RST_CONN",
22762306a36Sopenharmony_ci			  "TS_INT_CONN",
22862306a36Sopenharmony_ci			  "AP_I2C_TPM_SDA",
22962306a36Sopenharmony_ci			  "AP_I2C_TPM_SCL",
23062306a36Sopenharmony_ci			  "PRB_SC_GPIO_58",
23162306a36Sopenharmony_ci			  "PRB_SC_GPIO_59",
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci			  "EDP_HOT_PLUG_DET_N",		/* 60 */
23462306a36Sopenharmony_ci			  "FP_TO_AP_IRQ_L",
23562306a36Sopenharmony_ci			  "",
23662306a36Sopenharmony_ci			  "AMP_EN",
23762306a36Sopenharmony_ci			  "CAM0_MCLK_GPIO_64",
23862306a36Sopenharmony_ci			  "CAM1_MCLK_GPIO_65",
23962306a36Sopenharmony_ci			  "WF_CAM_MCLK",
24062306a36Sopenharmony_ci			  "PRB_SC_GPIO_67",
24162306a36Sopenharmony_ci			  "FPMCU_BOOT0",
24262306a36Sopenharmony_ci			  "UF_CAM_SDA",
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci			  "UF_CAM_SCL",			/* 70 */
24562306a36Sopenharmony_ci			  "",
24662306a36Sopenharmony_ci			  "",
24762306a36Sopenharmony_ci			  "WF_CAM_SDA",
24862306a36Sopenharmony_ci			  "WF_CAM_SCL",
24962306a36Sopenharmony_ci			  "",
25062306a36Sopenharmony_ci			  "",
25162306a36Sopenharmony_ci			  "EN_FP_RAILS",
25262306a36Sopenharmony_ci			  "FP_RST_L",
25362306a36Sopenharmony_ci			  "PCIE1_CLKREQ_ODL",
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci			  "EN_PP3300_DX_EDP",		/* 80 */
25662306a36Sopenharmony_ci			  "SC_GPIO_81",
25762306a36Sopenharmony_ci			  "FORCED_USB_BOOT",
25862306a36Sopenharmony_ci			  "WCD_RESET_N",
25962306a36Sopenharmony_ci			  "MOS_WLAN_EN",
26062306a36Sopenharmony_ci			  "MOS_BT_EN",
26162306a36Sopenharmony_ci			  "MOS_SW_CTRL",
26262306a36Sopenharmony_ci			  "MOS_PCIE0_RST",
26362306a36Sopenharmony_ci			  "MOS_PCIE0_CLKREQ_N",
26462306a36Sopenharmony_ci			  "MOS_PCIE0_WAKE_N",
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ci			  "MOS_LAA_AS_EN",		/* 90 */
26762306a36Sopenharmony_ci			  "SD_CD_ODL",
26862306a36Sopenharmony_ci			  "",
26962306a36Sopenharmony_ci			  "",
27062306a36Sopenharmony_ci			  "MOS_BT_WLAN_SLIMBUS_CLK",
27162306a36Sopenharmony_ci			  "MOS_BT_WLAN_SLIMBUS_DAT0",
27262306a36Sopenharmony_ci			  "HP_MCLK",
27362306a36Sopenharmony_ci			  "HP_BCLK",
27462306a36Sopenharmony_ci			  "HP_DOUT",
27562306a36Sopenharmony_ci			  "HP_DIN",
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci			  "HP_LRCLK",			/* 100 */
27862306a36Sopenharmony_ci			  "HP_IRQ",
27962306a36Sopenharmony_ci			  "",
28062306a36Sopenharmony_ci			  "",
28162306a36Sopenharmony_ci			  "GSC_AP_INT_ODL",
28262306a36Sopenharmony_ci			  "EN_PP3300_CODEC",
28362306a36Sopenharmony_ci			  "AMP_BCLK",
28462306a36Sopenharmony_ci			  "AMP_DIN",
28562306a36Sopenharmony_ci			  "AMP_LRCLK",
28662306a36Sopenharmony_ci			  "UIM1_DATA_GPIO_109",
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci			  "UIM1_CLK_GPIO_110",		/* 110 */
28962306a36Sopenharmony_ci			  "UIM1_RESET_GPIO_111",
29062306a36Sopenharmony_ci			  "PRB_SC_GPIO_112",
29162306a36Sopenharmony_ci			  "UIM0_DATA",
29262306a36Sopenharmony_ci			  "UIM0_CLK",
29362306a36Sopenharmony_ci			  "UIM0_RST",
29462306a36Sopenharmony_ci			  "UIM0_PRESENT_ODL",
29562306a36Sopenharmony_ci			  "SDM_RFFE0_CLK",
29662306a36Sopenharmony_ci			  "SDM_RFFE0_DATA",
29762306a36Sopenharmony_ci			  "WF_CAM_EN",
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci			  "FASTBOOT_SEL_0",		/* 120 */
30062306a36Sopenharmony_ci			  "SC_GPIO_121",
30162306a36Sopenharmony_ci			  "FASTBOOT_SEL_1",
30262306a36Sopenharmony_ci			  "SC_GPIO_123",
30362306a36Sopenharmony_ci			  "FASTBOOT_SEL_2",
30462306a36Sopenharmony_ci			  "SM_RFFE4_CLK_GRFC_8",
30562306a36Sopenharmony_ci			  "SM_RFFE4_DATA_GRFC_9",
30662306a36Sopenharmony_ci			  "WLAN_COEX_UART1_RX",
30762306a36Sopenharmony_ci			  "WLAN_COEX_UART1_TX",
30862306a36Sopenharmony_ci			  "PRB_SC_GPIO_129",
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ci			  "LCM_ID0",			/* 130 */
31162306a36Sopenharmony_ci			  "LCM_ID1",
31262306a36Sopenharmony_ci			  "",
31362306a36Sopenharmony_ci			  "SDR_QLINK_REQ",
31462306a36Sopenharmony_ci			  "SDR_QLINK_EN",
31562306a36Sopenharmony_ci			  "QLINK0_WMSS_RESET_N",
31662306a36Sopenharmony_ci			  "SMR526_QLINK1_REQ",
31762306a36Sopenharmony_ci			  "SMR526_QLINK1_EN",
31862306a36Sopenharmony_ci			  "SMR526_QLINK1_WMSS_RESET_N",
31962306a36Sopenharmony_ci			  "PRB_SC_GPIO_139",
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ci			  "SAR1_IRQ_ODL",		/* 140 */
32262306a36Sopenharmony_ci			  "SAR0_IRQ_ODL",
32362306a36Sopenharmony_ci			  "PRB_SC_GPIO_142",
32462306a36Sopenharmony_ci			  "",
32562306a36Sopenharmony_ci			  "WCD_SWR_TX_CLK",
32662306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA0",
32762306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA1",
32862306a36Sopenharmony_ci			  "WCD_SWR_RX_CLK",
32962306a36Sopenharmony_ci			  "WCD_SWR_RX_DATA0",
33062306a36Sopenharmony_ci			  "WCD_SWR_RX_DATA1",
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ci			  "DMIC01_CLK",			/* 150 */
33362306a36Sopenharmony_ci			  "DMIC01_DATA",
33462306a36Sopenharmony_ci			  "DMIC23_CLK",
33562306a36Sopenharmony_ci			  "DMIC23_DATA",
33662306a36Sopenharmony_ci			  "",
33762306a36Sopenharmony_ci			  "",
33862306a36Sopenharmony_ci			  "EC_IN_RW_ODL",
33962306a36Sopenharmony_ci			  "HUB_EN",
34062306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA2",
34162306a36Sopenharmony_ci			  "",
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci			  "",				/* 160 */
34462306a36Sopenharmony_ci			  "",
34562306a36Sopenharmony_ci			  "",
34662306a36Sopenharmony_ci			  "",
34762306a36Sopenharmony_ci			  "",
34862306a36Sopenharmony_ci			  "",
34962306a36Sopenharmony_ci			  "",
35062306a36Sopenharmony_ci			  "",
35162306a36Sopenharmony_ci			  "",
35262306a36Sopenharmony_ci			  "",
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci			  "",				/* 170 */
35562306a36Sopenharmony_ci			  "MOS_BLE_UART_TX",
35662306a36Sopenharmony_ci			  "MOS_BLE_UART_RX",
35762306a36Sopenharmony_ci			  "",
35862306a36Sopenharmony_ci			  "";
35962306a36Sopenharmony_ci};
360