162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * sc7280 CRD 3+ 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-wcd9385.dtsi"
1262306a36Sopenharmony_ci#include "sc7280-herobrine-lte-sku.dtsi"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/ {
1562306a36Sopenharmony_ci	model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+)";
1662306a36Sopenharmony_ci	compatible = "google,zoglin", "google,hoglin", "qcom,sc7280";
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	/* FIXED REGULATORS */
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	/*
2162306a36Sopenharmony_ci	 * On most herobrine boards PPVAR_SYS directly provides VREG_EDP_BL.
2262306a36Sopenharmony_ci	 * However, on CRD there's an extra regulator in the way. Since this
2362306a36Sopenharmony_ci	 * is expected to be uncommon, we'll leave the "vreg_edp_bl" label
2462306a36Sopenharmony_ci	 * in the baseboard herobrine.dtsi point at "ppvar_sys" and then
2562306a36Sopenharmony_ci	 * make a "_crd" specific version here.
2662306a36Sopenharmony_ci	 */
2762306a36Sopenharmony_ci	vreg_edp_bl_crd: vreg-edp-bl-crd-regulator {
2862306a36Sopenharmony_ci		compatible = "regulator-fixed";
2962306a36Sopenharmony_ci		regulator-name = "vreg_edp_bl_crd";
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci		gpio = <&pm8350c_gpios 6 GPIO_ACTIVE_HIGH>;
3262306a36Sopenharmony_ci		enable-active-high;
3362306a36Sopenharmony_ci		pinctrl-names = "default";
3462306a36Sopenharmony_ci		pinctrl-0 = <&edp_bl_reg_en>;
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci		vin-supply = <&ppvar_sys>;
3762306a36Sopenharmony_ci	};
3862306a36Sopenharmony_ci};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci&apps_rsc {
4362306a36Sopenharmony_ci	regulators-2 {
4462306a36Sopenharmony_ci		compatible = "qcom,pmg1110-rpmh-regulators";
4562306a36Sopenharmony_ci		qcom,pmic-id = "k";
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci		vreg_s1k_1p0: smps1 {
4862306a36Sopenharmony_ci			regulator-min-microvolt = <1010000>;
4962306a36Sopenharmony_ci			regulator-max-microvolt = <1170000>;
5062306a36Sopenharmony_ci		};
5162306a36Sopenharmony_ci	};
5262306a36Sopenharmony_ci};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciap_tp_i2c: &i2c0 {
5562306a36Sopenharmony_ci	status = "okay";
5662306a36Sopenharmony_ci	clock-frequency = <400000>;
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	trackpad: trackpad@15 {
5962306a36Sopenharmony_ci		compatible = "hid-over-i2c";
6062306a36Sopenharmony_ci		reg = <0x15>;
6162306a36Sopenharmony_ci		pinctrl-names = "default";
6262306a36Sopenharmony_ci		pinctrl-0 = <&tp_int_odl>;
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
6562306a36Sopenharmony_ci		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci		post-power-on-delay-ms = <20>;
6862306a36Sopenharmony_ci		hid-descr-addr = <0x0001>;
6962306a36Sopenharmony_ci		vdd-supply = <&pp3300_z1>;
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci		wakeup-source;
7262306a36Sopenharmony_ci	};
7362306a36Sopenharmony_ci};
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci&ap_sar_sensor_i2c {
7662306a36Sopenharmony_ci	status = "okay";
7762306a36Sopenharmony_ci};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci&ap_sar_sensor0 {
8062306a36Sopenharmony_ci	status = "okay";
8162306a36Sopenharmony_ci};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci&ap_sar_sensor1 {
8462306a36Sopenharmony_ci	status = "okay";
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciap_ts_pen_1v8: &i2c13 {
8862306a36Sopenharmony_ci	status = "okay";
8962306a36Sopenharmony_ci	clock-frequency = <400000>;
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci	ap_ts: touchscreen@5c {
9262306a36Sopenharmony_ci		compatible = "hid-over-i2c";
9362306a36Sopenharmony_ci		reg = <0x5c>;
9462306a36Sopenharmony_ci		pinctrl-names = "default";
9562306a36Sopenharmony_ci		pinctrl-0 = <&ts_int_conn>, <&ts_rst_conn>;
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci		interrupt-parent = <&tlmm>;
9862306a36Sopenharmony_ci		interrupts = <55 IRQ_TYPE_LEVEL_LOW>;
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci		post-power-on-delay-ms = <500>;
10162306a36Sopenharmony_ci		hid-descr-addr = <0x0000>;
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci		vdd-supply = <&pp3300_left_in_mlb>;
10462306a36Sopenharmony_ci	};
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci&mdss_edp {
10862306a36Sopenharmony_ci	status = "okay";
10962306a36Sopenharmony_ci};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci&mdss_edp_phy {
11262306a36Sopenharmony_ci	status = "okay";
11362306a36Sopenharmony_ci};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci/* For nvme */
11662306a36Sopenharmony_ci&pcie1 {
11762306a36Sopenharmony_ci	status = "okay";
11862306a36Sopenharmony_ci};
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci/* For nvme */
12162306a36Sopenharmony_ci&pcie1_phy {
12262306a36Sopenharmony_ci	status = "okay";
12362306a36Sopenharmony_ci};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci&pm8350c_pwm_backlight {
12662306a36Sopenharmony_ci	power-supply = <&vreg_edp_bl_crd>;
12762306a36Sopenharmony_ci};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci/* For eMMC */
13062306a36Sopenharmony_ci&sdhc_1 {
13162306a36Sopenharmony_ci	status = "okay";
13262306a36Sopenharmony_ci};
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci/* For SD Card */
13562306a36Sopenharmony_ci&sdhc_2 {
13662306a36Sopenharmony_ci	status = "okay";
13762306a36Sopenharmony_ci};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci/*
14262306a36Sopenharmony_ci * This pin goes to the display panel but then doesn't actually do anything
14362306a36Sopenharmony_ci * on the panel itself (it doesn't connect to the touchscreen controller).
14462306a36Sopenharmony_ci * We'll set a pullup here just to park the line.
14562306a36Sopenharmony_ci */
14662306a36Sopenharmony_ci&ts_rst_conn {
14762306a36Sopenharmony_ci	bias-pull-up;
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci/* PINCTRL - BOARD-SPECIFIC */
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci/*
15362306a36Sopenharmony_ci * Methodology for gpio-line-names:
15462306a36Sopenharmony_ci * - If a pin goes to CRD board and is named it gets that name.
15562306a36Sopenharmony_ci * - If a pin goes to CRD board and is not named, it gets no name.
15662306a36Sopenharmony_ci * - If a pin is totally internal to Qcard then it gets Qcard name.
15762306a36Sopenharmony_ci * - If a pin is not hooked up on Qcard, it gets no name.
15862306a36Sopenharmony_ci */
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci&pm8350c_gpios {
16162306a36Sopenharmony_ci	gpio-line-names = "FLASH_STROBE_1",		/* 1 */
16262306a36Sopenharmony_ci			  "AP_SUSPEND",
16362306a36Sopenharmony_ci			  "PM8008_1_RST_N",
16462306a36Sopenharmony_ci			  "",
16562306a36Sopenharmony_ci			  "",
16662306a36Sopenharmony_ci			  "EDP_BL_REG_EN",
16762306a36Sopenharmony_ci			  "PMIC_EDP_BL_EN",
16862306a36Sopenharmony_ci			  "PMIC_EDP_BL_PWM",
16962306a36Sopenharmony_ci			  "";
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci	edp_bl_reg_en: edp-bl-reg-en-state {
17262306a36Sopenharmony_ci		pins = "gpio6";
17362306a36Sopenharmony_ci		function = "normal";
17462306a36Sopenharmony_ci		bias-disable;
17562306a36Sopenharmony_ci		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci};
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci&tlmm {
18062306a36Sopenharmony_ci	gpio-line-names = "AP_TP_I2C_SDA",		/* 0 */
18162306a36Sopenharmony_ci			  "AP_TP_I2C_SCL",
18262306a36Sopenharmony_ci			  "PCIE1_RESET_N",
18362306a36Sopenharmony_ci			  "PCIE1_WAKE_N",
18462306a36Sopenharmony_ci			  "APPS_I2C_SDA",
18562306a36Sopenharmony_ci			  "APPS_I2C_SCL",
18662306a36Sopenharmony_ci			  "",
18762306a36Sopenharmony_ci			  "TPAD_INT_N",
18862306a36Sopenharmony_ci			  "",
18962306a36Sopenharmony_ci			  "",
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci			  "GNSS_L1_EN",			/* 10 */
19262306a36Sopenharmony_ci			  "GNSS_L5_EN",
19362306a36Sopenharmony_ci			  "QSPI_DATA_0",
19462306a36Sopenharmony_ci			  "QSPI_DATA_1",
19562306a36Sopenharmony_ci			  "QSPI_CLK",
19662306a36Sopenharmony_ci			  "QSPI_CS_N_1",
19762306a36Sopenharmony_ci			  /*
19862306a36Sopenharmony_ci			   * AP_FLASH_WP is crossystem ABI. Schematics call it
19962306a36Sopenharmony_ci			   * BIOS_FLASH_WP_L (the '_L' suffix is misleading, the
20062306a36Sopenharmony_ci			   * signal is active high).
20162306a36Sopenharmony_ci			   */
20262306a36Sopenharmony_ci			  "AP_FLASH_WP",
20362306a36Sopenharmony_ci			  "",
20462306a36Sopenharmony_ci			  "AP_EC_INT_N",
20562306a36Sopenharmony_ci			  "",
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci			  "CAM0_RST_N",			/* 20 */
20862306a36Sopenharmony_ci			  "CAM1_RST_N",
20962306a36Sopenharmony_ci			  "SM_DBG_UART_TX",
21062306a36Sopenharmony_ci			  "SM_DBG_UART_RX",
21162306a36Sopenharmony_ci			  "",
21262306a36Sopenharmony_ci			  "PM8008_IRQ_1",
21362306a36Sopenharmony_ci			  "HOST2WLAN_SOL",
21462306a36Sopenharmony_ci			  "WLAN2HOST_SOL",
21562306a36Sopenharmony_ci			  "MOS_BT_UART_CTS",
21662306a36Sopenharmony_ci			  "MOS_BT_UART_RFR",
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci			  "MOS_BT_UART_TX",		/* 30 */
21962306a36Sopenharmony_ci			  "MOS_BT_UART_RX",
22062306a36Sopenharmony_ci			  "",
22162306a36Sopenharmony_ci			  "HUB_RST",
22262306a36Sopenharmony_ci			  "",
22362306a36Sopenharmony_ci			  "",
22462306a36Sopenharmony_ci			  "",
22562306a36Sopenharmony_ci			  "",
22662306a36Sopenharmony_ci			  "",
22762306a36Sopenharmony_ci			  "",
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci			  "EC_SPI_MISO_GPIO40",		/* 40 */
23062306a36Sopenharmony_ci			  "EC_SPI_MOSI_GPIO41",
23162306a36Sopenharmony_ci			  "EC_SPI_CLK_GPIO42",
23262306a36Sopenharmony_ci			  "EC_SPI_CS_GPIO43",
23362306a36Sopenharmony_ci			  "",
23462306a36Sopenharmony_ci			  "EARLY_EUD_EN",
23562306a36Sopenharmony_ci			  "",
23662306a36Sopenharmony_ci			  "DP_HOT_PLUG_DETECT",
23762306a36Sopenharmony_ci			  "AP_BRD_ID_0",
23862306a36Sopenharmony_ci			  "AP_BRD_ID_1",
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci			  "AP_BRD_ID_2",		/* 50 */
24162306a36Sopenharmony_ci			  "NVME_PWR_REG_EN",
24262306a36Sopenharmony_ci			  "TS_I2C_SDA_CONN",
24362306a36Sopenharmony_ci			  "TS_I2C_CLK_CONN",
24462306a36Sopenharmony_ci			  "TS_RST_CONN",
24562306a36Sopenharmony_ci			  "TS_INT_CONN",
24662306a36Sopenharmony_ci			  "AP_I2C_TPM_SDA",
24762306a36Sopenharmony_ci			  "AP_I2C_TPM_SCL",
24862306a36Sopenharmony_ci			  "",
24962306a36Sopenharmony_ci			  "",
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci			  "EDP_HOT_PLUG_DET_N",		/* 60 */
25262306a36Sopenharmony_ci			  "",
25362306a36Sopenharmony_ci			  "",
25462306a36Sopenharmony_ci			  "AMP_EN",
25562306a36Sopenharmony_ci			  "CAM0_MCLK_GPIO_64",
25662306a36Sopenharmony_ci			  "CAM1_MCLK_GPIO_65",
25762306a36Sopenharmony_ci			  "",
25862306a36Sopenharmony_ci			  "",
25962306a36Sopenharmony_ci			  "",
26062306a36Sopenharmony_ci			  "CCI_I2C_SDA0",
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci			  "CCI_I2C_SCL0",		/* 70 */
26362306a36Sopenharmony_ci			  "",
26462306a36Sopenharmony_ci			  "",
26562306a36Sopenharmony_ci			  "",
26662306a36Sopenharmony_ci			  "",
26762306a36Sopenharmony_ci			  "",
26862306a36Sopenharmony_ci			  "",
26962306a36Sopenharmony_ci			  "",
27062306a36Sopenharmony_ci			  "",
27162306a36Sopenharmony_ci			  "PCIE1_CLK_REQ_N",
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci			  "EN_PP3300_DX_EDP",		/* 80 */
27462306a36Sopenharmony_ci			  "US_EURO_HS_SEL",
27562306a36Sopenharmony_ci			  "FORCED_USB_BOOT",
27662306a36Sopenharmony_ci			  "WCD_RESET_N",
27762306a36Sopenharmony_ci			  "MOS_WLAN_EN",
27862306a36Sopenharmony_ci			  "MOS_BT_EN",
27962306a36Sopenharmony_ci			  "MOS_SW_CTRL",
28062306a36Sopenharmony_ci			  "MOS_PCIE0_RST",
28162306a36Sopenharmony_ci			  "MOS_PCIE0_CLKREQ_N",
28262306a36Sopenharmony_ci			  "MOS_PCIE0_WAKE_N",
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci			  "MOS_LAA_AS_EN",		/* 90 */
28562306a36Sopenharmony_ci			  "SD_CARD_DET_CONN",
28662306a36Sopenharmony_ci			  "",
28762306a36Sopenharmony_ci			  "",
28862306a36Sopenharmony_ci			  "MOS_BT_WLAN_SLIMBUS_CLK",
28962306a36Sopenharmony_ci			  "MOS_BT_WLAN_SLIMBUS_DAT0",
29062306a36Sopenharmony_ci			  "",
29162306a36Sopenharmony_ci			  "",
29262306a36Sopenharmony_ci			  "",
29362306a36Sopenharmony_ci			  "",
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci			  "",				/* 100 */
29662306a36Sopenharmony_ci			  "",
29762306a36Sopenharmony_ci			  "",
29862306a36Sopenharmony_ci			  "",
29962306a36Sopenharmony_ci			  "H1_AP_INT_N",
30062306a36Sopenharmony_ci			  "",
30162306a36Sopenharmony_ci			  "AMP_BCLK",
30262306a36Sopenharmony_ci			  "AMP_DIN",
30362306a36Sopenharmony_ci			  "AMP_LRCLK",
30462306a36Sopenharmony_ci			  "UIM1_DATA_GPIO_109",
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci			  "UIM1_CLK_GPIO_110",		/* 110 */
30762306a36Sopenharmony_ci			  "UIM1_RESET_GPIO_111",
30862306a36Sopenharmony_ci			  "",
30962306a36Sopenharmony_ci			  "UIM1_DATA",
31062306a36Sopenharmony_ci			  "UIM1_CLK",
31162306a36Sopenharmony_ci			  "UIM1_RESET",
31262306a36Sopenharmony_ci			  "UIM1_PRESENT",
31362306a36Sopenharmony_ci			  "SDM_RFFE0_CLK",
31462306a36Sopenharmony_ci			  "SDM_RFFE0_DATA",
31562306a36Sopenharmony_ci			  "",
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci			  "SDM_RFFE1_DATA",		/* 120 */
31862306a36Sopenharmony_ci			  "SC_GPIO_121",
31962306a36Sopenharmony_ci			  "FASTBOOT_SEL_1",
32062306a36Sopenharmony_ci			  "SC_GPIO_123",
32162306a36Sopenharmony_ci			  "FASTBOOT_SEL_2",
32262306a36Sopenharmony_ci			  "SM_RFFE4_CLK_GRFC_8",
32362306a36Sopenharmony_ci			  "SM_RFFE4_DATA_GRFC_9",
32462306a36Sopenharmony_ci			  "WLAN_COEX_UART1_RX",
32562306a36Sopenharmony_ci			  "WLAN_COEX_UART1_TX",
32662306a36Sopenharmony_ci			  "",
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci			  "",				/* 130 */
32962306a36Sopenharmony_ci			  "",
33062306a36Sopenharmony_ci			  "",
33162306a36Sopenharmony_ci			  "SDR_QLINK_REQ",
33262306a36Sopenharmony_ci			  "SDR_QLINK_EN",
33362306a36Sopenharmony_ci			  "QLINK0_WMSS_RESET_N",
33462306a36Sopenharmony_ci			  "SMR526_QLINK1_REQ",
33562306a36Sopenharmony_ci			  "SMR526_QLINK1_EN",
33662306a36Sopenharmony_ci			  "SMR526_QLINK1_WMSS_RESET_N",
33762306a36Sopenharmony_ci			  "",
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci			  "SAR1_INT_N",			/* 140 */
34062306a36Sopenharmony_ci			  "SAR0_INT_N",
34162306a36Sopenharmony_ci			  "",
34262306a36Sopenharmony_ci			  "",
34362306a36Sopenharmony_ci			  "WCD_SWR_TX_CLK",
34462306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA0",
34562306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA1",
34662306a36Sopenharmony_ci			  "WCD_SWR_RX_CLK",
34762306a36Sopenharmony_ci			  "WCD_SWR_RX_DATA0",
34862306a36Sopenharmony_ci			  "WCD_SWR_RX_DATA1",
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci			  "DMIC01_CLK",			/* 150 */
35162306a36Sopenharmony_ci			  "DMIC01_DATA",
35262306a36Sopenharmony_ci			  "DMIC23_CLK",
35362306a36Sopenharmony_ci			  "DMIC23_DATA",
35462306a36Sopenharmony_ci			  "",
35562306a36Sopenharmony_ci			  "",
35662306a36Sopenharmony_ci			  "EC_IN_RW_N",
35762306a36Sopenharmony_ci			  "EN_PP3300_HUB",
35862306a36Sopenharmony_ci			  "WCD_SWR_TX_DATA2",
35962306a36Sopenharmony_ci			  "",
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci			  "",				/* 160 */
36262306a36Sopenharmony_ci			  "",
36362306a36Sopenharmony_ci			  "",
36462306a36Sopenharmony_ci			  "",
36562306a36Sopenharmony_ci			  "",
36662306a36Sopenharmony_ci			  "",
36762306a36Sopenharmony_ci			  "",
36862306a36Sopenharmony_ci			  "",
36962306a36Sopenharmony_ci			  "",
37062306a36Sopenharmony_ci			  "",
37162306a36Sopenharmony_ci
37262306a36Sopenharmony_ci			  "",				/* 170 */
37362306a36Sopenharmony_ci			  "MOS_BLE_UART_TX",
37462306a36Sopenharmony_ci			  "MOS_BLE_UART_RX",
37562306a36Sopenharmony_ci			  "",
37662306a36Sopenharmony_ci			  "";
37762306a36Sopenharmony_ci};
378