diff options
author | Rob Clark <robdclark@chromium.org> | 2019-05-16 21:52:46 -0400 |
---|---|---|
committer | Andy Gross <agross@kernel.org> | 2019-06-25 14:33:15 -0400 |
commit | 79e7739f7b877d05de8f162a3ae8006657436df0 (patch) | |
tree | 402dde7c386cb4ad94cd01c40daa43cdcfedc351 | |
parent | f48cee3239a16a2ecf7e20bee485ae1b25d0deec (diff) |
arm64: dts: qcom: sdm845-cheza: add initial cheza dt
This is essentialy a squash of a bunch of history of cheza dt updates
from chromium kernel, some of which were themselves squashes of history
from older chromium kernels.
I don't claim any credit other than wanting to more easily boot upstream
kernel on cheza to have an easier way to test upstream driver work ;-)
I've added below in Cc tags all the original actual authors (apologies
if I missed any).
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Sibi Sankar <sibis@codeaurora.org>
Cc: Evan Green <evgreen@chromium.org>
Cc: Matthias Kaehlcke <mka@chromium.org>
Cc: Abhinav Kumar <abhinavk@codeaurora.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Cc: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Andy Gross <agross@kernel.org>
-rw-r--r-- | arch/arm64/boot/dts/qcom/Makefile | 3 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dts | 238 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dts | 238 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dts | 174 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 1326 |
5 files changed, 1979 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index b3fe72ff2955..0a7e5dfce6f7 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile | |||
@@ -7,6 +7,9 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb | |||
7 | dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb | 7 | dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb |
8 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb | 8 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb |
9 | dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb | 9 | dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb |
10 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r1.dtb | ||
11 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r2.dtb | ||
12 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r3.dtb | ||
10 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb | 13 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb |
11 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb | 14 | dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb |
12 | dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb | 15 | dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb |
diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dts b/arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dts new file mode 100644 index 000000000000..bd7c25bb8d35 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dts | |||
@@ -0,0 +1,238 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Google Cheza board device tree source | ||
4 | * | ||
5 | * Copyright 2018 Google LLC. | ||
6 | */ | ||
7 | |||
8 | /dts-v1/; | ||
9 | |||
10 | #include "sdm845-cheza.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "Google Cheza (rev1)"; | ||
14 | compatible = "google,cheza-rev1", "qcom,sdm845"; | ||
15 | |||
16 | /* | ||
17 | * FIXED REGULATORS (not in sdm845-cheza.dtsi) - parents above children | ||
18 | */ | ||
19 | |||
20 | /* | ||
21 | * NOTE: Technically pp3500_a is not the exact same signal as | ||
22 | * pp3500_a_vbob (there's a load switch between them and the EC can | ||
23 | * control pp3500_a via "en_pp3300_a"), but from the AP's point of | ||
24 | * view they are the same. | ||
25 | */ | ||
26 | pp3500_a: | ||
27 | pp3500_a_vbob: pp3500-a-vbob-regulator { | ||
28 | compatible = "regulator-fixed"; | ||
29 | regulator-name = "vreg_bob"; | ||
30 | |||
31 | /* | ||
32 | * Comes on automatically when pp5000_ldo comes on, which | ||
33 | * comes on automatically when ppvar_sys comes on | ||
34 | */ | ||
35 | regulator-always-on; | ||
36 | regulator-boot-on; | ||
37 | regulator-min-microvolt = <3500000>; | ||
38 | regulator-max-microvolt = <3500000>; | ||
39 | |||
40 | vin-supply = <&ppvar_sys>; | ||
41 | }; | ||
42 | |||
43 | pp3300_dx_edp: pp3300-dx-edp-regulator { | ||
44 | /* Yes, it's really 3.5 despite the name of the signal */ | ||
45 | regulator-min-microvolt = <3500000>; | ||
46 | regulator-max-microvolt = <3500000>; | ||
47 | |||
48 | vin-supply = <&pp3500_a>; | ||
49 | }; | ||
50 | }; | ||
51 | |||
52 | /* FIXED REGULATOR OVERRIDES (modifications to sdm845-cheza.dtsi) */ | ||
53 | |||
54 | /* | ||
55 | * L19 and L28 technically go to 3.3V, but most boards have old AOP firmware | ||
56 | * that limits them to 3.0, and trying to run at 3.3V with that old firmware | ||
57 | * prevents the system from booting. | ||
58 | */ | ||
59 | &src_pp3000_l19a { | ||
60 | regulator-min-microvolt = <3008000>; | ||
61 | regulator-max-microvolt = <3008000>; | ||
62 | }; | ||
63 | |||
64 | &src_pp3300_l22a { | ||
65 | /delete-property/regulator-boot-on; | ||
66 | /delete-property/regulator-always-on; | ||
67 | }; | ||
68 | |||
69 | &src_pp3300_l28a { | ||
70 | regulator-min-microvolt = <3008000>; | ||
71 | regulator-max-microvolt = <3008000>; | ||
72 | }; | ||
73 | |||
74 | &src_vreg_bob { | ||
75 | regulator-min-microvolt = <3500000>; | ||
76 | regulator-max-microvolt = <3500000>; | ||
77 | vin-supply = <&pp3500_a_vbob>; | ||
78 | }; | ||
79 | |||
80 | /* | ||
81 | * NON-REGULATOR OVERRIDES | ||
82 | * (modifications to sdm845-cheza.dtsi) - alphabetized by dtsi label | ||
83 | */ | ||
84 | |||
85 | /* PINCTRL - board-specific pinctrl */ | ||
86 | |||
87 | &tlmm { | ||
88 | gpio-line-names = "AP_SPI_FP_MISO", | ||
89 | "AP_SPI_FP_MOSI", | ||
90 | "AP_SPI_FP_CLK", | ||
91 | "AP_SPI_FP_CS_L", | ||
92 | "UART_AP_TX_DBG_RX", | ||
93 | "UART_DBG_TX_AP_RX", | ||
94 | "", | ||
95 | "FP_RST_L", | ||
96 | "FCAM_EN", | ||
97 | "", | ||
98 | "EDP_BRIJ_IRQ", | ||
99 | "EC_IN_RW_ODL", | ||
100 | "", | ||
101 | "RCAM_MCLK", | ||
102 | "FCAM_MCLK", | ||
103 | "", | ||
104 | "RCAM_EN", | ||
105 | "CCI0_SDA", | ||
106 | "CCI0_SCL", | ||
107 | "CCI1_SDA", | ||
108 | "CCI1_SCL", | ||
109 | "FCAM_RST_L", | ||
110 | "", | ||
111 | "PEN_RST_L", | ||
112 | "PEN_IRQ_L", | ||
113 | "", | ||
114 | "RCAM_VSYNC", | ||
115 | "ESIM_MISO", | ||
116 | "ESIM_MOSI", | ||
117 | "ESIM_CLK", | ||
118 | "ESIM_CS_L", | ||
119 | "AP_PEN_1V8_SDA", | ||
120 | "AP_PEN_1V8_SCL", | ||
121 | "AP_TS_I2C_SDA", | ||
122 | "AP_TS_I2C_SCL", | ||
123 | "RCAM_RST_L", | ||
124 | "", | ||
125 | "AP_EDP_BKLTEN", | ||
126 | "AP_BRD_ID1", | ||
127 | "BOOT_CONFIG_4", | ||
128 | "AMP_IRQ_L", | ||
129 | "EDP_BRIJ_I2C_SDA", | ||
130 | "EDP_BRIJ_I2C_SCL", | ||
131 | "EN_PP3300_DX_EDP", | ||
132 | "SD_CD_ODL", | ||
133 | "BT_UART_RTS", | ||
134 | "BT_UART_CTS", | ||
135 | "BT_UART_RXD", | ||
136 | "BT_UART_TXD", | ||
137 | "AMP_I2C_SDA", | ||
138 | "AMP_I2C_SCL", | ||
139 | "AP_BRD_ID3", | ||
140 | "", | ||
141 | "AP_EC_SPI_CLK", | ||
142 | "AP_EC_SPI_CS_L", | ||
143 | "AP_EC_SPI_MISO", | ||
144 | "AP_EC_SPI_MOSI", | ||
145 | "FORCED_USB_BOOT", | ||
146 | "AMP_BCLK", | ||
147 | "AMP_LRCLK", | ||
148 | "AMP_DOUT", | ||
149 | "AMP_DIN", | ||
150 | "AP_BRD_ID2", | ||
151 | "PEN_PDCT_L", | ||
152 | "HP_MCLK", | ||
153 | "HP_BCLK", | ||
154 | "HP_LRCLK", | ||
155 | "HP_DOUT", | ||
156 | "HP_DIN", | ||
157 | "", | ||
158 | "", | ||
159 | "", | ||
160 | "", | ||
161 | "BT_SLIMBUS_DATA", | ||
162 | "BT_SLIMBUS_CLK", | ||
163 | "AMP_RESET_L", | ||
164 | "", | ||
165 | "FCAM_VSYNC", | ||
166 | "", | ||
167 | "AP_SKU_ID1", | ||
168 | "EC_WOV_BCLK", | ||
169 | "EC_WOV_LRCLK", | ||
170 | "EC_WOV_DOUT", | ||
171 | "", | ||
172 | "", | ||
173 | "AP_H1_SPI_MISO", | ||
174 | "AP_H1_SPI_MOSI", | ||
175 | "AP_H1_SPI_CLK", | ||
176 | "AP_H1_SPI_CS_L", | ||
177 | "", | ||
178 | "AP_SPI_CS0_L", | ||
179 | "AP_SPI_MOSI", | ||
180 | "AP_SPI_MISO", | ||
181 | "", | ||
182 | "", | ||
183 | "AP_SPI_CLK", | ||
184 | "", | ||
185 | "RFFE6_CLK", | ||
186 | "RFFE6_DATA", | ||
187 | "BOOT_CONFIG_1", | ||
188 | "BOOT_CONFIG_2", | ||
189 | "BOOT_CONFIG_0", | ||
190 | "EDP_BRIJ_EN", | ||
191 | "", | ||
192 | "USB_HS_TX_EN", | ||
193 | "UIM2_DATA", | ||
194 | "UIM2_CLK", | ||
195 | "UIM2_RST", | ||
196 | "UIM2_PRESENT", | ||
197 | "UIM1_DATA", | ||
198 | "UIM1_CLK", | ||
199 | "UIM1_RST", | ||
200 | "", | ||
201 | "AP_SKU_ID2", | ||
202 | "SDM_GRFC_8", | ||
203 | "SDM_GRFC_9", | ||
204 | "AP_RST_REQ", | ||
205 | "HP_IRQ", | ||
206 | "TS_RESET_L", | ||
207 | "PEN_EJECT_ODL", | ||
208 | "HUB_RST_L", | ||
209 | "FP_TO_AP_IRQ", | ||
210 | "AP_EC_INT_L", | ||
211 | "", | ||
212 | "", | ||
213 | "TS_INT_L", | ||
214 | "AP_SUSPEND_L", | ||
215 | "SDM_GRFC_3", | ||
216 | "", | ||
217 | "H1_AP_INT_ODL", | ||
218 | "QLINK_REQ", | ||
219 | "QLINK_EN", | ||
220 | "SDM_GRFC_2", | ||
221 | "BOOT_CONFIG_3", | ||
222 | "WMSS_RESET_L", | ||
223 | "SDM_GRFC_0", | ||
224 | "SDM_GRFC_1", | ||
225 | "RFFE3_DATA", | ||
226 | "RFFE3_CLK", | ||
227 | "RFFE4_DATA", | ||
228 | "RFFE4_CLK", | ||
229 | "RFFE5_DATA", | ||
230 | "RFFE5_CLK", | ||
231 | "GNSS_EN", | ||
232 | "WCI2_LTE_COEX_RXD", | ||
233 | "WCI2_LTE_COEX_TXD", | ||
234 | "AP_RAM_ID1", | ||
235 | "AP_RAM_ID2", | ||
236 | "RFFE1_DATA", | ||
237 | "RFFE1_CLK"; | ||
238 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dts b/arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dts new file mode 100644 index 000000000000..2b7230594ecb --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dts | |||
@@ -0,0 +1,238 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Google Cheza board device tree source | ||
4 | * | ||
5 | * Copyright 2018 Google LLC. | ||
6 | */ | ||
7 | |||
8 | /dts-v1/; | ||
9 | |||
10 | #include "sdm845-cheza.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "Google Cheza (rev2)"; | ||
14 | compatible = "google,cheza-rev2", "qcom,sdm845"; | ||
15 | |||
16 | /* | ||
17 | * FIXED REGULATORS (not in sdm845-cheza.dtsi) - parents above children | ||
18 | */ | ||
19 | |||
20 | /* | ||
21 | * NOTE: Technically pp3500_a is not the exact same signal as | ||
22 | * pp3500_a_vbob (there's a load switch between them and the EC can | ||
23 | * control pp3500_a via "en_pp3300_a"), but from the AP's point of | ||
24 | * view they are the same. | ||
25 | */ | ||
26 | pp3500_a: | ||
27 | pp3500_a_vbob: pp3500-a-vbob-regulator { | ||
28 | compatible = "regulator-fixed"; | ||
29 | regulator-name = "vreg_bob"; | ||
30 | |||
31 | /* | ||
32 | * Comes on automatically when pp5000_ldo comes on, which | ||
33 | * comes on automatically when ppvar_sys comes on | ||
34 | */ | ||
35 | regulator-always-on; | ||
36 | regulator-boot-on; | ||
37 | regulator-min-microvolt = <3500000>; | ||
38 | regulator-max-microvolt = <3500000>; | ||
39 | |||
40 | vin-supply = <&ppvar_sys>; | ||
41 | }; | ||
42 | |||
43 | pp3300_dx_edp: pp3300-dx-edp-regulator { | ||
44 | /* Yes, it's really 3.5 despite the name of the signal */ | ||
45 | regulator-min-microvolt = <3500000>; | ||
46 | regulator-max-microvolt = <3500000>; | ||
47 | |||
48 | vin-supply = <&pp3500_a>; | ||
49 | }; | ||
50 | }; | ||
51 | |||
52 | /* FIXED REGULATOR OVERRIDES (modifications to sdm845-cheza.dtsi) */ | ||
53 | |||
54 | /* | ||
55 | * L19 and L28 technically go to 3.3V, but most boards have old AOP firmware | ||
56 | * that limits them to 3.0, and trying to run at 3.3V with that old firmware | ||
57 | * prevents the system from booting. | ||
58 | */ | ||
59 | &src_pp3000_l19a { | ||
60 | regulator-min-microvolt = <3008000>; | ||
61 | regulator-max-microvolt = <3008000>; | ||
62 | }; | ||
63 | |||
64 | &src_pp3300_l22a { | ||
65 | /delete-property/regulator-boot-on; | ||
66 | /delete-property/regulator-always-on; | ||
67 | }; | ||
68 | |||
69 | &src_pp3300_l28a { | ||
70 | regulator-min-microvolt = <3008000>; | ||
71 | regulator-max-microvolt = <3008000>; | ||
72 | }; | ||
73 | |||
74 | &src_vreg_bob { | ||
75 | regulator-min-microvolt = <3500000>; | ||
76 | regulator-max-microvolt = <3500000>; | ||
77 | vin-supply = <&pp3500_a_vbob>; | ||
78 | }; | ||
79 | |||
80 | /* | ||
81 | * NON-REGULATOR OVERRIDES | ||
82 | * (modifications to sdm845-cheza.dtsi) - alphabetized by dtsi label | ||
83 | */ | ||
84 | |||
85 | /* PINCTRL - board-specific pinctrl */ | ||
86 | |||
87 | &tlmm { | ||
88 | gpio-line-names = "AP_SPI_FP_MISO", | ||
89 | "AP_SPI_FP_MOSI", | ||
90 | "AP_SPI_FP_CLK", | ||
91 | "AP_SPI_FP_CS_L", | ||
92 | "UART_AP_TX_DBG_RX", | ||
93 | "UART_DBG_TX_AP_RX", | ||
94 | "BRIJ_SUSPEND", | ||
95 | "FP_RST_L", | ||
96 | "FCAM_EN", | ||
97 | "", | ||
98 | "EDP_BRIJ_IRQ", | ||
99 | "EC_IN_RW_ODL", | ||
100 | "", | ||
101 | "RCAM_MCLK", | ||
102 | "FCAM_MCLK", | ||
103 | "", | ||
104 | "RCAM_EN", | ||
105 | "CCI0_SDA", | ||
106 | "CCI0_SCL", | ||
107 | "CCI1_SDA", | ||
108 | "CCI1_SCL", | ||
109 | "FCAM_RST_L", | ||
110 | "FPMCU_BOOT0", | ||
111 | "PEN_RST_L", | ||
112 | "PEN_IRQ_L", | ||
113 | "FPMCU_SEL_OD", | ||
114 | "RCAM_VSYNC", | ||
115 | "ESIM_MISO", | ||
116 | "ESIM_MOSI", | ||
117 | "ESIM_CLK", | ||
118 | "ESIM_CS_L", | ||
119 | "AP_PEN_1V8_SDA", | ||
120 | "AP_PEN_1V8_SCL", | ||
121 | "AP_TS_I2C_SDA", | ||
122 | "AP_TS_I2C_SCL", | ||
123 | "RCAM_RST_L", | ||
124 | "", | ||
125 | "AP_EDP_BKLTEN", | ||
126 | "AP_BRD_ID1", | ||
127 | "BOOT_CONFIG_4", | ||
128 | "AMP_IRQ_L", | ||
129 | "EDP_BRIJ_I2C_SDA", | ||
130 | "EDP_BRIJ_I2C_SCL", | ||
131 | "EN_PP3300_DX_EDP", | ||
132 | "SD_CD_ODL", | ||
133 | "BT_UART_RTS", | ||
134 | "BT_UART_CTS", | ||
135 | "BT_UART_RXD", | ||
136 | "BT_UART_TXD", | ||
137 | "AMP_I2C_SDA", | ||
138 | "AMP_I2C_SCL", | ||
139 | "AP_BRD_ID3", | ||
140 | "", | ||
141 | "AP_EC_SPI_CLK", | ||
142 | "AP_EC_SPI_CS_L", | ||
143 | "AP_EC_SPI_MISO", | ||
144 | "AP_EC_SPI_MOSI", | ||
145 | "FORCED_USB_BOOT", | ||
146 | "AMP_BCLK", | ||
147 | "AMP_LRCLK", | ||
148 | "AMP_DOUT", | ||
149 | "AMP_DIN", | ||
150 | "AP_BRD_ID2", | ||
151 | "PEN_PDCT_L", | ||
152 | "HP_MCLK", | ||
153 | "HP_BCLK", | ||
154 | "HP_LRCLK", | ||
155 | "HP_DOUT", | ||
156 | "HP_DIN", | ||
157 | "", | ||
158 | "", | ||
159 | "", | ||
160 | "", | ||
161 | "BT_SLIMBUS_DATA", | ||
162 | "BT_SLIMBUS_CLK", | ||
163 | "AMP_RESET_L", | ||
164 | "", | ||
165 | "FCAM_VSYNC", | ||
166 | "", | ||
167 | "AP_SKU_ID1", | ||
168 | "EC_WOV_BCLK", | ||
169 | "EC_WOV_LRCLK", | ||
170 | "EC_WOV_DOUT", | ||
171 | "", | ||
172 | "", | ||
173 | "AP_H1_SPI_MISO", | ||
174 | "AP_H1_SPI_MOSI", | ||
175 | "AP_H1_SPI_CLK", | ||
176 | "AP_H1_SPI_CS_L", | ||
177 | "", | ||
178 | "AP_SPI_CS0_L", | ||
179 | "AP_SPI_MOSI", | ||
180 | "AP_SPI_MISO", | ||
181 | "", | ||
182 | "", | ||
183 | "AP_SPI_CLK", | ||
184 | "", | ||
185 | "RFFE6_CLK", | ||
186 | "RFFE6_DATA", | ||
187 | "BOOT_CONFIG_1", | ||
188 | "BOOT_CONFIG_2", | ||
189 | "BOOT_CONFIG_0", | ||
190 | "EDP_BRIJ_EN", | ||
191 | "", | ||
192 | "USB_HS_TX_EN", | ||
193 | "UIM2_DATA", | ||
194 | "UIM2_CLK", | ||
195 | "UIM2_RST", | ||
196 | "UIM2_PRESENT", | ||
197 | "UIM1_DATA", | ||
198 | "UIM1_CLK", | ||
199 | "UIM1_RST", | ||
200 | "", | ||
201 | "AP_SKU_ID2", | ||
202 | "SDM_GRFC_8", | ||
203 | "SDM_GRFC_9", | ||
204 | "AP_RST_REQ", | ||
205 | "HP_IRQ", | ||
206 | "TS_RESET_L", | ||
207 | "PEN_EJECT_ODL", | ||
208 | "HUB_RST_L", | ||
209 | "FP_TO_AP_IRQ", | ||
210 | "AP_EC_INT_L", | ||
211 | "", | ||
212 | "", | ||
213 | "TS_INT_L", | ||
214 | "AP_SUSPEND_L", | ||
215 | "SDM_GRFC_3", | ||
216 | "", | ||
217 | "H1_AP_INT_ODL", | ||
218 | "QLINK_REQ", | ||
219 | "QLINK_EN", | ||
220 | "SDM_GRFC_2", | ||
221 | "BOOT_CONFIG_3", | ||
222 | "WMSS_RESET_L", | ||
223 | "SDM_GRFC_0", | ||
224 | "SDM_GRFC_1", | ||
225 | "RFFE3_DATA", | ||
226 | "RFFE3_CLK", | ||
227 | "RFFE4_DATA", | ||
228 | "RFFE4_CLK", | ||
229 | "RFFE5_DATA", | ||
230 | "RFFE5_CLK", | ||
231 | "GNSS_EN", | ||
232 | "WCI2_LTE_COEX_RXD", | ||
233 | "WCI2_LTE_COEX_TXD", | ||
234 | "AP_RAM_ID1", | ||
235 | "AP_RAM_ID2", | ||
236 | "RFFE1_DATA", | ||
237 | "RFFE1_CLK"; | ||
238 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dts b/arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dts new file mode 100644 index 000000000000..1ba67be08f81 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dts | |||
@@ -0,0 +1,174 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Google Cheza board device tree source | ||
4 | * | ||
5 | * Copyright 2018 Google LLC. | ||
6 | */ | ||
7 | |||
8 | /dts-v1/; | ||
9 | |||
10 | #include "sdm845-cheza.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "Google Cheza (rev3+)"; | ||
14 | compatible = "google,cheza", "qcom,sdm845"; | ||
15 | }; | ||
16 | |||
17 | /* PINCTRL - board-specific pinctrl */ | ||
18 | |||
19 | &tlmm { | ||
20 | gpio-line-names = "AP_SPI_FP_MISO", | ||
21 | "AP_SPI_FP_MOSI", | ||
22 | "AP_SPI_FP_CLK", | ||
23 | "AP_SPI_FP_CS_L", | ||
24 | "UART_AP_TX_DBG_RX", | ||
25 | "UART_DBG_TX_AP_RX", | ||
26 | "BRIJ_SUSPEND", | ||
27 | "FP_RST_L", | ||
28 | "FCAM_EN", | ||
29 | "", | ||
30 | "EDP_BRIJ_IRQ", | ||
31 | "EC_IN_RW_ODL", | ||
32 | "", | ||
33 | "RCAM_MCLK", | ||
34 | "FCAM_MCLK", | ||
35 | "", | ||
36 | "RCAM_EN", | ||
37 | "CCI0_SDA", | ||
38 | "CCI0_SCL", | ||
39 | "CCI1_SDA", | ||
40 | "CCI1_SCL", | ||
41 | "FCAM_RST_L", | ||
42 | "FPMCU_BOOT0", | ||
43 | "PEN_RST_L", | ||
44 | "PEN_IRQ_L", | ||
45 | "FPMCU_SEL_OD", | ||
46 | "RCAM_VSYNC", | ||
47 | "ESIM_MISO", | ||
48 | "ESIM_MOSI", | ||
49 | "ESIM_CLK", | ||
50 | "ESIM_CS_L", | ||
51 | "AP_PEN_1V8_SDA", | ||
52 | "AP_PEN_1V8_SCL", | ||
53 | "AP_TS_I2C_SDA", | ||
54 | "AP_TS_I2C_SCL", | ||
55 | "RCAM_RST_L", | ||
56 | "", | ||
57 | "AP_EDP_BKLTEN", | ||
58 | "AP_BRD_ID0", | ||
59 | "BOOT_CONFIG_4", | ||
60 | "AMP_IRQ_L", | ||
61 | "EDP_BRIJ_I2C_SDA", | ||
62 | "EDP_BRIJ_I2C_SCL", | ||
63 | "EN_PP3300_DX_EDP", | ||
64 | "SD_CD_ODL", | ||
65 | "BT_UART_RTS", | ||
66 | "BT_UART_CTS", | ||
67 | "BT_UART_RXD", | ||
68 | "BT_UART_TXD", | ||
69 | "AMP_I2C_SDA", | ||
70 | "AMP_I2C_SCL", | ||
71 | "AP_BRD_ID2", | ||
72 | "", | ||
73 | "AP_EC_SPI_CLK", | ||
74 | "AP_EC_SPI_CS_L", | ||
75 | "AP_EC_SPI_MISO", | ||
76 | "AP_EC_SPI_MOSI", | ||
77 | "FORCED_USB_BOOT", | ||
78 | "AMP_BCLK", | ||
79 | "AMP_LRCLK", | ||
80 | "AMP_DOUT", | ||
81 | "AMP_DIN", | ||
82 | "AP_BRD_ID1", | ||
83 | "PEN_PDCT_L", | ||
84 | "HP_MCLK", | ||
85 | "HP_BCLK", | ||
86 | "HP_LRCLK", | ||
87 | "HP_DOUT", | ||
88 | "HP_DIN", | ||
89 | "", | ||
90 | "", | ||
91 | "", | ||
92 | "", | ||
93 | "BT_SLIMBUS_DATA", | ||
94 | "BT_SLIMBUS_CLK", | ||
95 | "AMP_RESET_L", | ||
96 | "", | ||
97 | "FCAM_VSYNC", | ||
98 | "", | ||
99 | "AP_SKU_ID0", | ||
100 | "EC_WOV_BCLK", | ||
101 | "EC_WOV_LRCLK", | ||
102 | "EC_WOV_DOUT", | ||
103 | "", | ||
104 | "", | ||
105 | "AP_H1_SPI_MISO", | ||
106 | "AP_H1_SPI_MOSI", | ||
107 | "AP_H1_SPI_CLK", | ||
108 | "AP_H1_SPI_CS_L", | ||
109 | "", | ||
110 | "AP_SPI_CS0_L", | ||
111 | "AP_SPI_MOSI", | ||
112 | "AP_SPI_MISO", | ||
113 | "", | ||
114 | "", | ||
115 | "AP_SPI_CLK", | ||
116 | "", | ||
117 | "RFFE6_CLK", | ||
118 | "RFFE6_DATA", | ||
119 | "BOOT_CONFIG_1", | ||
120 | "BOOT_CONFIG_2", | ||
121 | "BOOT_CONFIG_0", | ||
122 | "EDP_BRIJ_EN", | ||
123 | "", | ||
124 | "USB_HS_TX_EN", | ||
125 | "UIM2_DATA", | ||
126 | "UIM2_CLK", | ||
127 | "UIM2_RST", | ||
128 | "UIM2_PRESENT", | ||
129 | "UIM1_DATA", | ||
130 | "UIM1_CLK", | ||
131 | "UIM1_RST", | ||
132 | "", | ||
133 | "AP_SKU_ID1", | ||
134 | "SDM_GRFC_8", | ||
135 | "SDM_GRFC_9", | ||
136 | "AP_RST_REQ", | ||
137 | "HP_IRQ", | ||
138 | "TS_RESET_L", | ||
139 | "PEN_EJECT_ODL", | ||
140 | "HUB_RST_L", | ||
141 | "FP_TO_AP_IRQ", | ||
142 | "AP_EC_INT_L", | ||
143 | "", | ||
144 | "", | ||
145 | "TS_INT_L", | ||
146 | "AP_SUSPEND_L", | ||
147 | "SDM_GRFC_3", | ||
148 | /* | ||
149 | * AP_FLASH_WP_L is crossystem ABI. Rev3 schematics | ||
150 | * call it BIOS_FLASH_WP_R_L. | ||
151 | */ | ||
152 | "AP_FLASH_WP_L", | ||
153 | "H1_AP_INT_ODL", | ||
154 | "QLINK_REQ", | ||
155 | "QLINK_EN", | ||
156 | "SDM_GRFC_2", | ||
157 | "BOOT_CONFIG_3", | ||
158 | "WMSS_RESET_L", | ||
159 | "SDM_GRFC_0", | ||
160 | "SDM_GRFC_1", | ||
161 | "RFFE3_DATA", | ||
162 | "RFFE3_CLK", | ||
163 | "RFFE4_DATA", | ||
164 | "RFFE4_CLK", | ||
165 | "RFFE5_DATA", | ||
166 | "RFFE5_CLK", | ||
167 | "GNSS_EN", | ||
168 | "WCI2_LTE_COEX_RXD", | ||
169 | "WCI2_LTE_COEX_TXD", | ||
170 | "AP_RAM_ID0", | ||
171 | "AP_RAM_ID1", | ||
172 | "RFFE1_DATA", | ||
173 | "RFFE1_CLK"; | ||
174 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi new file mode 100644 index 000000000000..1ebbd568dfd7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | |||
@@ -0,0 +1,1326 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Google Cheza device tree source (common between revisions) | ||
4 | * | ||
5 | * Copyright 2018 Google LLC. | ||
6 | */ | ||
7 | |||
8 | #include <dt-bindings/gpio/gpio.h> | ||
9 | #include <dt-bindings/input/input.h> | ||
10 | #include <dt-bindings/regulator/qcom,rpmh-regulator.h> | ||
11 | #include "sdm845.dtsi" | ||
12 | |||
13 | /* PMICs depend on spmi_bus label and so must come after SoC */ | ||
14 | #include "pm8005.dtsi" | ||
15 | #include "pm8998.dtsi" | ||
16 | |||
17 | / { | ||
18 | aliases { | ||
19 | bluetooth0 = &bluetooth; | ||
20 | hsuart0 = &uart6; | ||
21 | serial0 = &uart9; | ||
22 | wifi0 = &wifi; | ||
23 | }; | ||
24 | |||
25 | chosen { | ||
26 | stdout-path = "serial0:115200n8"; | ||
27 | }; | ||
28 | |||
29 | backlight: backlight { | ||
30 | compatible = "pwm-backlight"; | ||
31 | pwms = <&cros_ec_pwm 0>; | ||
32 | enable-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; | ||
33 | power-supply = <&ppvar_sys>; | ||
34 | pinctrl-names = "default"; | ||
35 | pinctrl-0 = <&ap_edp_bklten>; | ||
36 | }; | ||
37 | |||
38 | /* FIXED REGULATORS - parents above children */ | ||
39 | |||
40 | /* This is the top level supply and variable voltage */ | ||
41 | ppvar_sys: ppvar-sys-regulator { | ||
42 | compatible = "regulator-fixed"; | ||
43 | regulator-name = "ppvar_sys"; | ||
44 | regulator-always-on; | ||
45 | regulator-boot-on; | ||
46 | }; | ||
47 | |||
48 | /* This divides ppvar_sys by 2, so voltage is variable */ | ||
49 | src_vph_pwr: src-vph-pwr-regulator { | ||
50 | compatible = "regulator-fixed"; | ||
51 | regulator-name = "src_vph_pwr"; | ||
52 | |||
53 | /* EC turns on with switchcap_on_l; always on for AP */ | ||
54 | regulator-always-on; | ||
55 | regulator-boot-on; | ||
56 | |||
57 | vin-supply = <&ppvar_sys>; | ||
58 | }; | ||
59 | |||
60 | pp5000_a: pp5000-a-regulator { | ||
61 | compatible = "regulator-fixed"; | ||
62 | regulator-name = "pp5000_a"; | ||
63 | |||
64 | /* EC turns on with en_pp5000_a; always on for AP */ | ||
65 | regulator-always-on; | ||
66 | regulator-boot-on; | ||
67 | regulator-min-microvolt = <5000000>; | ||
68 | regulator-max-microvolt = <5000000>; | ||
69 | |||
70 | vin-supply = <&ppvar_sys>; | ||
71 | }; | ||
72 | |||
73 | src_vreg_bob: src-vreg-bob-regulator { | ||
74 | compatible = "regulator-fixed"; | ||
75 | regulator-name = "src_vreg_bob"; | ||
76 | |||
77 | /* EC turns on with vbob_en; always on for AP */ | ||
78 | regulator-always-on; | ||
79 | regulator-boot-on; | ||
80 | regulator-min-microvolt = <3600000>; | ||
81 | regulator-max-microvolt = <3600000>; | ||
82 | |||
83 | vin-supply = <&ppvar_sys>; | ||
84 | }; | ||
85 | |||
86 | pp3300_dx_edp: pp3300-dx-edp-regulator { | ||
87 | compatible = "regulator-fixed"; | ||
88 | regulator-name = "pp3300_dx_edp"; | ||
89 | |||
90 | regulator-min-microvolt = <3300000>; | ||
91 | regulator-max-microvolt = <3300000>; | ||
92 | |||
93 | gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>; | ||
94 | enable-active-high; | ||
95 | pinctrl-names = "default"; | ||
96 | pinctrl-0 = <&en_pp3300_dx_edp>; | ||
97 | }; | ||
98 | |||
99 | /* | ||
100 | * Apparently RPMh does not provide support for PM8998 S4 because it | ||
101 | * is always-on; model it as a fixed regulator. | ||
102 | */ | ||
103 | src_pp1800_s4a: pm8998-smps4 { | ||
104 | compatible = "regulator-fixed"; | ||
105 | regulator-name = "src_pp1800_s4a"; | ||
106 | |||
107 | regulator-min-microvolt = <1800000>; | ||
108 | regulator-max-microvolt = <1800000>; | ||
109 | |||
110 | regulator-always-on; | ||
111 | regulator-boot-on; | ||
112 | |||
113 | vin-supply = <&src_vph_pwr>; | ||
114 | }; | ||
115 | |||
116 | /* BOARD-SPECIFIC TOP LEVEL NODES */ | ||
117 | |||
118 | gpio-keys { | ||
119 | compatible = "gpio-keys"; | ||
120 | pinctrl-names = "default"; | ||
121 | pinctrl-0 = <&pen_eject_odl>; | ||
122 | |||
123 | pen-insert { | ||
124 | label = "Pen Insert"; | ||
125 | /* Insert = low, eject = high */ | ||
126 | gpios = <&tlmm 119 GPIO_ACTIVE_LOW>; | ||
127 | linux,code = <SW_PEN_INSERTED>; | ||
128 | linux,input-type = <EV_SW>; | ||
129 | wakeup-source; | ||
130 | }; | ||
131 | }; | ||
132 | |||
133 | panel: panel { | ||
134 | compatible ="innolux,p120zdg-bf1"; | ||
135 | power-supply = <&pp3300_dx_edp>; | ||
136 | backlight = <&backlight>; | ||
137 | no-hpd; | ||
138 | |||
139 | ports { | ||
140 | panel_in: port { | ||
141 | panel_in_edp: endpoint { | ||
142 | remote-endpoint = <&sn65dsi86_out>; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | }; | ||
147 | }; | ||
148 | |||
149 | /* | ||
150 | * Reserved memory changes | ||
151 | * | ||
152 | * Putting this all together (out of order with the rest of the file) to keep | ||
153 | * all modifications to the memory map (from sdm845.dtsi) in one place. | ||
154 | */ | ||
155 | |||
156 | /* | ||
157 | * Our mpss_region is 8MB bigger than the default one and that conflicts | ||
158 | * with venus_mem and cdsp_mem. | ||
159 | * | ||
160 | * For venus_mem we'll delete and re-create at a different address. | ||
161 | * | ||
162 | * cdsp_mem isn't used on cheza right now so we won't bother re-creating it; but | ||
163 | * that also means we need to delete cdsp_pas. | ||
164 | */ | ||
165 | /delete-node/ &venus_mem; | ||
166 | /delete-node/ &cdsp_mem; | ||
167 | /delete-node/ &cdsp_pas; | ||
168 | |||
169 | /* Increase the size from 120 MB to 128 MB */ | ||
170 | &mpss_region { | ||
171 | reg = <0 0x8e000000 0 0x8000000>; | ||
172 | }; | ||
173 | |||
174 | /* Increase the size from 2MB to 8MB */ | ||
175 | &rmtfs_mem { | ||
176 | reg = <0 0x88f00000 0 0x800000>; | ||
177 | }; | ||
178 | |||
179 | / { | ||
180 | reserved-memory { | ||
181 | venus_mem: memory@96000000 { | ||
182 | reg = <0 0x96000000 0 0x500000>; | ||
183 | no-map; | ||
184 | }; | ||
185 | }; | ||
186 | }; | ||
187 | |||
188 | &qspi { | ||
189 | status = "okay"; | ||
190 | pinctrl-names = "default"; | ||
191 | pinctrl-0 = <&qspi_clk &qspi_cs0 &qspi_data01>; | ||
192 | |||
193 | flash@0 { | ||
194 | compatible = "jedec,spi-nor"; | ||
195 | reg = <0>; | ||
196 | |||
197 | /* | ||
198 | * In theory chip supports up to 104 MHz and controller up | ||
199 | * to 80 MHz, but above 25 MHz wasn't reliable so we'll use | ||
200 | * that for now. b:117440651 | ||
201 | */ | ||
202 | spi-max-frequency = <25000000>; | ||
203 | spi-tx-bus-width = <2>; | ||
204 | spi-rx-bus-width = <2>; | ||
205 | }; | ||
206 | }; | ||
207 | |||
208 | |||
209 | &apps_rsc { | ||
210 | pm8998-rpmh-regulators { | ||
211 | compatible = "qcom,pm8998-rpmh-regulators"; | ||
212 | qcom,pmic-id = "a"; | ||
213 | |||
214 | vdd-s1-supply = <&src_vph_pwr>; | ||
215 | vdd-s2-supply = <&src_vph_pwr>; | ||
216 | vdd-s3-supply = <&src_vph_pwr>; | ||
217 | vdd-s4-supply = <&src_vph_pwr>; | ||
218 | vdd-s5-supply = <&src_vph_pwr>; | ||
219 | vdd-s6-supply = <&src_vph_pwr>; | ||
220 | vdd-s7-supply = <&src_vph_pwr>; | ||
221 | vdd-s8-supply = <&src_vph_pwr>; | ||
222 | vdd-s9-supply = <&src_vph_pwr>; | ||
223 | vdd-s10-supply = <&src_vph_pwr>; | ||
224 | vdd-s11-supply = <&src_vph_pwr>; | ||
225 | vdd-s12-supply = <&src_vph_pwr>; | ||
226 | vdd-s13-supply = <&src_vph_pwr>; | ||
227 | vdd-l1-l27-supply = <&src_pp1025_s7a>; | ||
228 | vdd-l2-l8-l17-supply = <&src_pp1350_s3a>; | ||
229 | vdd-l3-l11-supply = <&src_pp1025_s7a>; | ||
230 | vdd-l4-l5-supply = <&src_pp1025_s7a>; | ||
231 | vdd-l6-supply = <&src_vph_pwr>; | ||
232 | vdd-l7-l12-l14-l15-supply = <&src_pp2040_s5a>; | ||
233 | vdd-l9-supply = <&src_pp2040_s5a>; | ||
234 | vdd-l10-l23-l25-supply = <&src_vreg_bob>; | ||
235 | vdd-l13-l19-l21-supply = <&src_vreg_bob>; | ||
236 | vdd-l16-l28-supply = <&src_vreg_bob>; | ||
237 | vdd-l18-l22-supply = <&src_vreg_bob>; | ||
238 | vdd-l20-l24-supply = <&src_vreg_bob>; | ||
239 | vdd-l26-supply = <&src_pp1350_s3a>; | ||
240 | vin-lvs-1-2-supply = <&src_pp1800_s4a>; | ||
241 | |||
242 | src_pp1125_s2a: smps2 { | ||
243 | regulator-min-microvolt = <1100000>; | ||
244 | regulator-max-microvolt = <1100000>; | ||
245 | }; | ||
246 | |||
247 | src_pp1350_s3a: smps3 { | ||
248 | regulator-min-microvolt = <1352000>; | ||
249 | regulator-max-microvolt = <1352000>; | ||
250 | }; | ||
251 | |||
252 | src_pp2040_s5a: smps5 { | ||
253 | regulator-min-microvolt = <1904000>; | ||
254 | regulator-max-microvolt = <2040000>; | ||
255 | }; | ||
256 | |||
257 | src_pp1025_s7a: smps7 { | ||
258 | regulator-min-microvolt = <900000>; | ||
259 | regulator-max-microvolt = <1028000>; | ||
260 | }; | ||
261 | |||
262 | vdd_qusb_hs0: | ||
263 | vdda_hp_pcie_core: | ||
264 | vdda_mipi_csi0_0p9: | ||
265 | vdda_mipi_csi1_0p9: | ||
266 | vdda_mipi_csi2_0p9: | ||
267 | vdda_mipi_dsi0_pll: | ||
268 | vdda_mipi_dsi1_pll: | ||
269 | vdda_qlink_lv: | ||
270 | vdda_qlink_lv_ck: | ||
271 | vdda_qrefs_0p875: | ||
272 | vdda_pcie_core: | ||
273 | vdda_pll_cc_ebi01: | ||
274 | vdda_pll_cc_ebi23: | ||
275 | vdda_sp_sensor: | ||
276 | vdda_ufs1_core: | ||
277 | vdda_ufs2_core: | ||
278 | vdda_usb1_ss_core: | ||
279 | vdda_usb2_ss_core: | ||
280 | src_pp875_l1a: ldo1 { | ||
281 | regulator-min-microvolt = <880000>; | ||
282 | regulator-max-microvolt = <880000>; | ||
283 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
284 | }; | ||
285 | |||
286 | vddpx_10: | ||
287 | src_pp1200_l2a: ldo2 { | ||
288 | regulator-min-microvolt = <1200000>; | ||
289 | regulator-max-microvolt = <1200000>; | ||
290 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
291 | |||
292 | /* TODO: why??? */ | ||
293 | regulator-always-on; | ||
294 | }; | ||
295 | |||
296 | pp1000_l3a_sdr845: ldo3 { | ||
297 | regulator-min-microvolt = <1000000>; | ||
298 | regulator-max-microvolt = <1000000>; | ||
299 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
300 | }; | ||
301 | |||
302 | vdd_wcss_cx: | ||
303 | vdd_wcss_mx: | ||
304 | vdda_wcss_pll: | ||
305 | src_pp800_l5a: ldo5 { | ||
306 | regulator-min-microvolt = <800000>; | ||
307 | regulator-max-microvolt = <800000>; | ||
308 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
309 | }; | ||
310 | |||
311 | vddpx_13: | ||
312 | src_pp1800_l6a: ldo6 { | ||
313 | regulator-min-microvolt = <1856000>; | ||
314 | regulator-max-microvolt = <1856000>; | ||
315 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
316 | }; | ||
317 | |||
318 | pp1800_l7a_wcn3990: ldo7 { | ||
319 | regulator-min-microvolt = <1800000>; | ||
320 | regulator-max-microvolt = <1800000>; | ||
321 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
322 | }; | ||
323 | |||
324 | src_pp1200_l8a: ldo8 { | ||
325 | regulator-min-microvolt = <1200000>; | ||
326 | regulator-max-microvolt = <1248000>; | ||
327 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
328 | }; | ||
329 | |||
330 | pp1800_dx_pen: | ||
331 | src_pp1800_l9a: ldo9 { | ||
332 | regulator-min-microvolt = <1800000>; | ||
333 | regulator-max-microvolt = <1800000>; | ||
334 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
335 | }; | ||
336 | |||
337 | src_pp1800_l10a: ldo10 { | ||
338 | regulator-min-microvolt = <1800000>; | ||
339 | regulator-max-microvolt = <1800000>; | ||
340 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
341 | }; | ||
342 | |||
343 | pp1000_l11a_sdr845: ldo11 { | ||
344 | regulator-min-microvolt = <1000000>; | ||
345 | regulator-max-microvolt = <1048000>; | ||
346 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
347 | }; | ||
348 | |||
349 | vdd_qfprom: | ||
350 | vdd_qfprom_sp: | ||
351 | vdda_apc1_cs_1p8: | ||
352 | vdda_gfx_cs_1p8: | ||
353 | vdda_qrefs_1p8: | ||
354 | vdda_qusb_hs0_1p8: | ||
355 | vddpx_11: | ||
356 | src_pp1800_l12a: ldo12 { | ||
357 | regulator-min-microvolt = <1800000>; | ||
358 | regulator-max-microvolt = <1800000>; | ||
359 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
360 | }; | ||
361 | |||
362 | vddpx_2: | ||
363 | src_pp2950_l13a: ldo13 { | ||
364 | regulator-min-microvolt = <1800000>; | ||
365 | regulator-max-microvolt = <2960000>; | ||
366 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
367 | }; | ||
368 | |||
369 | src_pp1800_l14a: ldo14 { | ||
370 | regulator-min-microvolt = <1800000>; | ||
371 | regulator-max-microvolt = <1800000>; | ||
372 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
373 | }; | ||
374 | |||
375 | src_pp1800_l15a: ldo15 { | ||
376 | regulator-min-microvolt = <1800000>; | ||
377 | regulator-max-microvolt = <1800000>; | ||
378 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
379 | }; | ||
380 | |||
381 | pp2700_l16a: ldo16 { | ||
382 | regulator-min-microvolt = <2704000>; | ||
383 | regulator-max-microvolt = <2704000>; | ||
384 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
385 | }; | ||
386 | |||
387 | src_pp1300_l17a: ldo17 { | ||
388 | regulator-min-microvolt = <1304000>; | ||
389 | regulator-max-microvolt = <1304000>; | ||
390 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
391 | }; | ||
392 | |||
393 | pp2700_l18a: ldo18 { | ||
394 | regulator-min-microvolt = <2704000>; | ||
395 | regulator-max-microvolt = <2960000>; | ||
396 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
397 | }; | ||
398 | |||
399 | /* | ||
400 | * NOTE: this rail should have been called | ||
401 | * src_pp3300_l19a in the schematic | ||
402 | */ | ||
403 | src_pp3000_l19a: ldo19 { | ||
404 | regulator-min-microvolt = <3304000>; | ||
405 | regulator-max-microvolt = <3304000>; | ||
406 | |||
407 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
408 | }; | ||
409 | |||
410 | src_pp2950_l20a: ldo20 { | ||
411 | regulator-min-microvolt = <2704000>; | ||
412 | regulator-max-microvolt = <2960000>; | ||
413 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
414 | }; | ||
415 | |||
416 | src_pp2950_l21a: ldo21 { | ||
417 | regulator-min-microvolt = <2704000>; | ||
418 | regulator-max-microvolt = <2960000>; | ||
419 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
420 | }; | ||
421 | |||
422 | pp3300_hub: | ||
423 | src_pp3300_l22a: ldo22 { | ||
424 | regulator-min-microvolt = <3304000>; | ||
425 | regulator-max-microvolt = <3304000>; | ||
426 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
427 | /* | ||
428 | * HACK: Should add a usb hub node and driver | ||
429 | * to turn this on and off at suspend/resume time | ||
430 | */ | ||
431 | regulator-boot-on; | ||
432 | regulator-always-on; | ||
433 | }; | ||
434 | |||
435 | pp3300_l23a_ch1_wcn3990: ldo23 { | ||
436 | regulator-min-microvolt = <3000000>; | ||
437 | regulator-max-microvolt = <3312000>; | ||
438 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
439 | }; | ||
440 | |||
441 | vdda_qusb_hs0_3p1: | ||
442 | src_pp3075_l24a: ldo24 { | ||
443 | regulator-min-microvolt = <3088000>; | ||
444 | regulator-max-microvolt = <3088000>; | ||
445 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
446 | }; | ||
447 | |||
448 | pp3300_l25a_ch0_wcn3990: ldo25 { | ||
449 | regulator-min-microvolt = <3304000>; | ||
450 | regulator-max-microvolt = <3304000>; | ||
451 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
452 | }; | ||
453 | |||
454 | pp1200_hub: | ||
455 | vdda_hp_pcie_1p2: | ||
456 | vdda_hv_ebi0: | ||
457 | vdda_hv_ebi1: | ||
458 | vdda_hv_ebi2: | ||
459 | vdda_hv_ebi3: | ||
460 | vdda_mipi_csi_1p25: | ||
461 | vdda_mipi_dsi0_1p2: | ||
462 | vdda_mipi_dsi1_1p2: | ||
463 | vdda_pcie_1p2: | ||
464 | vdda_ufs1_1p2: | ||
465 | vdda_ufs2_1p2: | ||
466 | vdda_usb1_ss_1p2: | ||
467 | vdda_usb2_ss_1p2: | ||
468 | src_pp1200_l26a: ldo26 { | ||
469 | regulator-min-microvolt = <1200000>; | ||
470 | regulator-max-microvolt = <1200000>; | ||
471 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
472 | }; | ||
473 | |||
474 | pp3300_dx_pen: | ||
475 | src_pp3300_l28a: ldo28 { | ||
476 | regulator-min-microvolt = <3304000>; | ||
477 | regulator-max-microvolt = <3304000>; | ||
478 | regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
479 | }; | ||
480 | |||
481 | src_pp1800_lvs1: lvs1 { | ||
482 | regulator-min-microvolt = <1800000>; | ||
483 | regulator-max-microvolt = <1800000>; | ||
484 | }; | ||
485 | |||
486 | src_pp1800_lvs2: lvs2 { | ||
487 | regulator-min-microvolt = <1800000>; | ||
488 | regulator-max-microvolt = <1800000>; | ||
489 | }; | ||
490 | }; | ||
491 | |||
492 | pm8005-rpmh-regulators { | ||
493 | compatible = "qcom,pm8005-rpmh-regulators"; | ||
494 | qcom,pmic-id = "c"; | ||
495 | |||
496 | vdd-s1-supply = <&src_vph_pwr>; | ||
497 | vdd-s2-supply = <&src_vph_pwr>; | ||
498 | vdd-s3-supply = <&src_vph_pwr>; | ||
499 | vdd-s4-supply = <&src_vph_pwr>; | ||
500 | |||
501 | src_pp600_s3c: smps3 { | ||
502 | regulator-min-microvolt = <600000>; | ||
503 | regulator-max-microvolt = <600000>; | ||
504 | }; | ||
505 | }; | ||
506 | }; | ||
507 | |||
508 | &dsi0 { | ||
509 | status = "okay"; | ||
510 | vdda-supply = <&vdda_mipi_dsi0_1p2>; | ||
511 | |||
512 | ports { | ||
513 | port@1 { | ||
514 | endpoint { | ||
515 | remote-endpoint = <&sn65dsi86_in>; | ||
516 | data-lanes = <0 1 2 3>; | ||
517 | }; | ||
518 | }; | ||
519 | }; | ||
520 | }; | ||
521 | |||
522 | &dsi0_phy { | ||
523 | status = "okay"; | ||
524 | vdds-supply = <&vdda_mipi_dsi0_pll>; | ||
525 | }; | ||
526 | |||
527 | edp_brij_i2c: &i2c3 { | ||
528 | status = "okay"; | ||
529 | clock-frequency = <400000>; | ||
530 | |||
531 | sn65dsi86_bridge: bridge@2d { | ||
532 | compatible = "ti,sn65dsi86"; | ||
533 | reg = <0x2d>; | ||
534 | pinctrl-names = "default"; | ||
535 | pinctrl-0 = <&edp_brij_en &edp_brij_irq>; | ||
536 | |||
537 | interrupt-parent = <&tlmm>; | ||
538 | interrupts = <10 IRQ_TYPE_LEVEL_HIGH>; | ||
539 | |||
540 | enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>; | ||
541 | |||
542 | vpll-supply = <&src_pp1800_s4a>; | ||
543 | vccio-supply = <&src_pp1800_s4a>; | ||
544 | vcca-supply = <&src_pp1200_l2a>; | ||
545 | vcc-supply = <&src_pp1200_l2a>; | ||
546 | |||
547 | clocks = <&rpmhcc RPMH_LN_BB_CLK2>; | ||
548 | clock-names = "refclk"; | ||
549 | |||
550 | ports { | ||
551 | #address-cells = <1>; | ||
552 | #size-cells = <0>; | ||
553 | |||
554 | port@0 { | ||
555 | reg = <0>; | ||
556 | sn65dsi86_in: endpoint { | ||
557 | remote-endpoint = <&dsi0_out>; | ||
558 | }; | ||
559 | }; | ||
560 | |||
561 | port@1 { | ||
562 | reg = <1>; | ||
563 | sn65dsi86_out: endpoint { | ||
564 | remote-endpoint = <&panel_in_edp>; | ||
565 | }; | ||
566 | }; | ||
567 | }; | ||
568 | }; | ||
569 | }; | ||
570 | |||
571 | ap_pen_1v8: &i2c11 { | ||
572 | status = "okay"; | ||
573 | clock-frequency = <400000>; | ||
574 | |||
575 | digitizer@9 { | ||
576 | compatible = "wacom,w9013", "hid-over-i2c"; | ||
577 | reg = <0x9>; | ||
578 | pinctrl-names = "default"; | ||
579 | pinctrl-0 = <&pen_irq_l>, <&pen_pdct_l>, <&pen_rst_l>; | ||
580 | |||
581 | vdd-supply = <&pp3300_dx_pen>; | ||
582 | vddl-supply = <&pp1800_dx_pen>; | ||
583 | post-power-on-delay-ms = <100>; | ||
584 | |||
585 | interrupt-parent = <&tlmm>; | ||
586 | interrupts = <24 IRQ_TYPE_LEVEL_LOW>; | ||
587 | |||
588 | hid-descr-addr = <0x1>; | ||
589 | }; | ||
590 | }; | ||
591 | |||
592 | amp_i2c: &i2c12 { | ||
593 | status = "okay"; | ||
594 | clock-frequency = <400000>; | ||
595 | }; | ||
596 | |||
597 | ap_ts_i2c: &i2c14 { | ||
598 | status = "okay"; | ||
599 | clock-frequency = <400000>; | ||
600 | |||
601 | touchscreen@10 { | ||
602 | compatible = "elan,ekth3500"; | ||
603 | reg = <0x10>; | ||
604 | pinctrl-names = "default"; | ||
605 | pinctrl-0 = <&ts_int_l &ts_reset_l>; | ||
606 | |||
607 | interrupt-parent = <&tlmm>; | ||
608 | interrupts = <125 IRQ_TYPE_LEVEL_LOW>; | ||
609 | |||
610 | vcc33-supply = <&src_pp3300_l28a>; | ||
611 | |||
612 | reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>; | ||
613 | }; | ||
614 | }; | ||
615 | |||
616 | &lpasscc { | ||
617 | status = "okay"; | ||
618 | }; | ||
619 | |||
620 | &mdss { | ||
621 | status = "okay"; | ||
622 | }; | ||
623 | |||
624 | &mdss_mdp { | ||
625 | status = "okay"; | ||
626 | }; | ||
627 | |||
628 | &qupv3_id_0 { | ||
629 | status = "okay"; | ||
630 | }; | ||
631 | |||
632 | &qupv3_id_1 { | ||
633 | status = "okay"; | ||
634 | }; | ||
635 | |||
636 | &sdhc_2 { | ||
637 | status = "okay"; | ||
638 | |||
639 | pinctrl-names = "default"; | ||
640 | pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_cd_odl>; | ||
641 | |||
642 | vmmc-supply = <&src_pp2950_l21a>; | ||
643 | vqmmc-supply = <&vddpx_2>; | ||
644 | |||
645 | cd-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; | ||
646 | }; | ||
647 | |||
648 | &spi0 { | ||
649 | status = "okay"; | ||
650 | }; | ||
651 | |||
652 | &spi10 { | ||
653 | status = "okay"; | ||
654 | |||
655 | cros_ec: ec@0 { | ||
656 | compatible = "google,cros-ec-spi"; | ||
657 | reg = <0>; | ||
658 | interrupt-parent = <&tlmm>; | ||
659 | interrupts = <122 IRQ_TYPE_LEVEL_LOW>; | ||
660 | pinctrl-names = "default"; | ||
661 | pinctrl-0 = <&ec_ap_int_l>; | ||
662 | spi-max-frequency = <3000000>; | ||
663 | |||
664 | cros_ec_pwm: ec-pwm { | ||
665 | compatible = "google,cros-ec-pwm"; | ||
666 | #pwm-cells = <1>; | ||
667 | }; | ||
668 | |||
669 | i2c_tunnel: i2c-tunnel { | ||
670 | compatible = "google,cros-ec-i2c-tunnel"; | ||
671 | google,remote-bus = <0>; | ||
672 | #address-cells = <1>; | ||
673 | #size-cells = <0>; | ||
674 | }; | ||
675 | |||
676 | pdupdate { | ||
677 | compatible = "google,cros-ec-pd-update"; | ||
678 | }; | ||
679 | }; | ||
680 | }; | ||
681 | |||
682 | #include <arm/cros-ec-keyboard.dtsi> | ||
683 | #include <arm/cros-ec-sbs.dtsi> | ||
684 | |||
685 | &uart6 { | ||
686 | status = "okay"; | ||
687 | |||
688 | bluetooth: wcn3990-bt { | ||
689 | compatible = "qcom,wcn3990-bt"; | ||
690 | vddio-supply = <&src_pp1800_s4a>; | ||
691 | vddxo-supply = <&pp1800_l7a_wcn3990>; | ||
692 | vddrf-supply = <&src_pp1300_l17a>; | ||
693 | vddch0-supply = <&pp3300_l25a_ch0_wcn3990>; | ||
694 | max-speed = <3200000>; | ||
695 | }; | ||
696 | }; | ||
697 | |||
698 | &uart9 { | ||
699 | status = "okay"; | ||
700 | }; | ||
701 | |||
702 | &ufs_mem_hc { | ||
703 | status = "okay"; | ||
704 | pinctrl-names = "init", "default"; | ||
705 | pinctrl-0 = <&ufs_dev_reset_assert>; | ||
706 | pinctrl-1 = <&ufs_dev_reset_deassert>; | ||
707 | |||
708 | vcc-supply = <&src_pp2950_l20a>; | ||
709 | vcc-max-microamp = <600000>; | ||
710 | }; | ||
711 | |||
712 | &ufs_mem_phy { | ||
713 | status = "okay"; | ||
714 | |||
715 | vdda-phy-supply = <&vdda_ufs1_core>; | ||
716 | vdda-pll-supply = <&vdda_ufs1_1p2>; | ||
717 | }; | ||
718 | |||
719 | &usb_1 { | ||
720 | status = "okay"; | ||
721 | |||
722 | /* We'll use this as USB 2.0 only */ | ||
723 | qcom,select-utmi-as-pipe-clk; | ||
724 | }; | ||
725 | |||
726 | &usb_1_dwc3 { | ||
727 | /* | ||
728 | * The hardware design intends this port to be hooked up in peripheral | ||
729 | * mode, so we'll hardcode it here. Some details: | ||
730 | * - SDM845 expects only a single Type C connector so it has only one | ||
731 | * native Type C port but cheza has two Type C connectors. | ||
732 | * - The only source of DP is the single native Type C port. | ||
733 | * - On cheza we want to be able to hook DP up to _either_ of the | ||
734 | * two Type C connectors and want to be able to achieve 4 lanes of DP. | ||
735 | * - When you configure a Type C port for 4 lanes of DP you lose USB3. | ||
736 | * - In order to make everything work, the native Type C port is always | ||
737 | * configured as 4-lanes DP so it's always available. | ||
738 | * - The extra USB3 port on SDM845 goes to a USB 3 hub which is then | ||
739 | * sent to the two Type C connectors. | ||
740 | * - The extra USB2 lines from the native Type C port are always | ||
741 | * setup as "peripheral" so that we can mux them over to one connector | ||
742 | * or the other if someone needs the connector configured as a gadget | ||
743 | * (but they only get USB2 speeds). | ||
744 | * | ||
745 | * All the hardware muxes would allow us to hook things up in different | ||
746 | * ways to some potential benefit for static configurations (you could | ||
747 | * achieve extra USB2 bandwidth by using two different ports for the | ||
748 | * two conenctors or possibly even get USB3 peripheral mode), but in | ||
749 | * each case you end up forcing to disconnect/reconnect an in-use | ||
750 | * USB session in some cases depending on what you hotplug into the | ||
751 | * other connector. Thus hardcoding this as peripheral makes sense. | ||
752 | */ | ||
753 | dr_mode = "peripheral"; | ||
754 | |||
755 | /* | ||
756 | * We always need the high speed pins as 4-lanes DP in case someone | ||
757 | * hotplugs a DP peripheral. Thus limit this port to a max of high | ||
758 | * speed. | ||
759 | */ | ||
760 | maximum-speed = "high-speed"; | ||
761 | |||
762 | /* | ||
763 | * We don't need the usb3-phy since we run in highspeed mode always, so | ||
764 | * re-define these properties removing the superspeed USB PHY reference. | ||
765 | */ | ||
766 | phys = <&usb_1_hsphy>; | ||
767 | phy-names = "usb2-phy"; | ||
768 | }; | ||
769 | |||
770 | &usb_1_hsphy { | ||
771 | status = "okay"; | ||
772 | |||
773 | vdd-supply = <&vdda_usb1_ss_core>; | ||
774 | vdda-pll-supply = <&vdda_qusb_hs0_1p8>; | ||
775 | vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; | ||
776 | |||
777 | qcom,imp-res-offset-value = <8>; | ||
778 | qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; | ||
779 | qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; | ||
780 | qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; | ||
781 | }; | ||
782 | |||
783 | &usb_2 { | ||
784 | status = "okay"; | ||
785 | }; | ||
786 | |||
787 | &usb_2_dwc3 { | ||
788 | /* We have this hooked up to a hub and we always use in host mode */ | ||
789 | dr_mode = "host"; | ||
790 | }; | ||
791 | |||
792 | &usb_2_hsphy { | ||
793 | status = "okay"; | ||
794 | |||
795 | vdd-supply = <&vdda_usb2_ss_core>; | ||
796 | vdda-pll-supply = <&vdda_qusb_hs0_1p8>; | ||
797 | vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; | ||
798 | |||
799 | qcom,imp-res-offset-value = <8>; | ||
800 | qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>; | ||
801 | }; | ||
802 | |||
803 | &usb_2_qmpphy { | ||
804 | status = "okay"; | ||
805 | |||
806 | vdda-phy-supply = <&vdda_usb2_ss_1p2>; | ||
807 | vdda-pll-supply = <&vdda_usb2_ss_core>; | ||
808 | }; | ||
809 | |||
810 | &wifi { | ||
811 | status = "okay"; | ||
812 | |||
813 | vdd-0.8-cx-mx-supply = <&src_pp800_l5a >; | ||
814 | vdd-1.8-xo-supply = <&pp1800_l7a_wcn3990>; | ||
815 | vdd-1.3-rfa-supply = <&src_pp1300_l17a>; | ||
816 | vdd-3.3-ch0-supply = <&pp3300_l25a_ch0_wcn3990>; | ||
817 | }; | ||
818 | |||
819 | /* PINCTRL - additions to nodes defined in sdm845.dtsi */ | ||
820 | |||
821 | &qspi_cs0 { | ||
822 | pinconf { | ||
823 | pins = "gpio90"; | ||
824 | bias-disable; | ||
825 | }; | ||
826 | }; | ||
827 | |||
828 | &qspi_clk { | ||
829 | pinconf { | ||
830 | pins = "gpio95"; | ||
831 | bias-disable; | ||
832 | }; | ||
833 | }; | ||
834 | |||
835 | &qspi_data01 { | ||
836 | pinconf { | ||
837 | pins = "gpio91", "gpio92"; | ||
838 | |||
839 | /* High-Z when no transfers; nice to park the lines */ | ||
840 | bias-pull-up; | ||
841 | }; | ||
842 | }; | ||
843 | |||
844 | &qup_i2c3_default { | ||
845 | pinconf { | ||
846 | pins = "gpio41", "gpio42"; | ||
847 | drive-strength = <2>; | ||
848 | |||
849 | /* Has external pullup */ | ||
850 | bias-disable; | ||
851 | }; | ||
852 | }; | ||
853 | |||
854 | &qup_i2c11_default { | ||
855 | pinconf { | ||
856 | pins = "gpio31", "gpio32"; | ||
857 | drive-strength = <2>; | ||
858 | |||
859 | /* Has external pullup */ | ||
860 | bias-disable; | ||
861 | }; | ||
862 | }; | ||
863 | |||
864 | &qup_i2c12_default { | ||
865 | pinconf { | ||
866 | pins = "gpio49", "gpio50"; | ||
867 | drive-strength = <2>; | ||
868 | |||
869 | /* Has external pullup */ | ||
870 | bias-disable; | ||
871 | }; | ||
872 | }; | ||
873 | |||
874 | &qup_i2c14_default { | ||
875 | pinconf { | ||
876 | pins = "gpio33", "gpio34"; | ||
877 | drive-strength = <2>; | ||
878 | |||
879 | /* Has external pullup */ | ||
880 | bias-disable; | ||
881 | }; | ||
882 | }; | ||
883 | |||
884 | &qup_spi0_default { | ||
885 | pinconf { | ||
886 | pins = "gpio0", "gpio1", "gpio2", "gpio3"; | ||
887 | drive-strength = <2>; | ||
888 | bias-disable; | ||
889 | }; | ||
890 | }; | ||
891 | |||
892 | &qup_spi5_default { | ||
893 | pinconf { | ||
894 | pins = "gpio85", "gpio86", "gpio87", "gpio88"; | ||
895 | drive-strength = <2>; | ||
896 | bias-disable; | ||
897 | }; | ||
898 | }; | ||
899 | |||
900 | &qup_spi10_default { | ||
901 | pinconf { | ||
902 | pins = "gpio53", "gpio54", "gpio55", "gpio56"; | ||
903 | drive-strength = <2>; | ||
904 | bias-disable; | ||
905 | }; | ||
906 | }; | ||
907 | |||
908 | &qup_uart6_default { | ||
909 | /* Change pinmux to all 4 pins since CTS and RTS are connected */ | ||
910 | pinmux { | ||
911 | pins = "gpio45", "gpio46", | ||
912 | "gpio47", "gpio48"; | ||
913 | }; | ||
914 | |||
915 | pinconf-cts { | ||
916 | /* | ||
917 | * Configure a pull-down on 45 (CTS) to match the pull of | ||
918 | * the Bluetooth module. | ||
919 | */ | ||
920 | pins = "gpio45"; | ||
921 | bias-pull-down; | ||
922 | }; | ||
923 | |||
924 | pinconf-rts-tx { | ||
925 | /* We'll drive 46 (RTS) and 47 (TX), so no pull */ | ||
926 | pins = "gpio46", "gpio47"; | ||
927 | drive-strength = <2>; | ||
928 | bias-disable; | ||
929 | }; | ||
930 | |||
931 | pinconf-rx { | ||
932 | /* | ||
933 | * Configure a pull-up on 48 (RX). This is needed to avoid | ||
934 | * garbage data when the TX pin of the Bluetooth module is | ||
935 | * in tri-state (module powered off or not driving the | ||
936 | * signal yet). | ||
937 | */ | ||
938 | pins = "gpio48"; | ||
939 | bias-pull-up; | ||
940 | }; | ||
941 | }; | ||
942 | |||
943 | &qup_uart9_default { | ||
944 | pinconf-tx { | ||
945 | pins = "gpio4"; | ||
946 | drive-strength = <2>; | ||
947 | bias-disable; | ||
948 | }; | ||
949 | |||
950 | pinconf-rx { | ||
951 | pins = "gpio5"; | ||
952 | drive-strength = <2>; | ||
953 | bias-pull-up; | ||
954 | }; | ||
955 | }; | ||
956 | |||
957 | /* PINCTRL - board-specific pinctrl */ | ||
958 | &pm8005_gpio { | ||
959 | gpio-line-names = "", | ||
960 | "", | ||
961 | "SLB", | ||
962 | ""; | ||
963 | }; | ||
964 | |||
965 | &pm8998_adc { | ||
966 | adc-chan@ADC5_AMUX_THM1_100K_PU { | ||
967 | reg = <ADC5_AMUX_THM1_100K_PU>; | ||
968 | label = "sdm_temp"; | ||
969 | }; | ||
970 | |||
971 | adc-chan@ADC5_AMUX_THM2_100K_PU { | ||
972 | reg = <ADC5_AMUX_THM2_100K_PU>; | ||
973 | label = "quiet_temp"; | ||
974 | }; | ||
975 | |||
976 | adc-chan@ADC5_AMUX_THM3_100K_PU { | ||
977 | reg = <ADC5_AMUX_THM3_100K_PU>; | ||
978 | label = "lte_temp_1"; | ||
979 | }; | ||
980 | |||
981 | adc-chan@ADC5_AMUX_THM4_100K_PU { | ||
982 | reg = <ADC5_AMUX_THM4_100K_PU>; | ||
983 | label = "lte_temp_2"; | ||
984 | }; | ||
985 | |||
986 | adc-chan@ADC5_AMUX_THM5_100K_PU { | ||
987 | reg = <ADC5_AMUX_THM5_100K_PU>; | ||
988 | label = "charger_temp"; | ||
989 | }; | ||
990 | }; | ||
991 | |||
992 | &pm8998_gpio { | ||
993 | gpio-line-names = "", | ||
994 | "", | ||
995 | "SW_CTRL", | ||
996 | "", | ||
997 | "", | ||
998 | "", | ||
999 | "", | ||
1000 | "", | ||
1001 | "", | ||
1002 | "", | ||
1003 | "", | ||
1004 | "", | ||
1005 | "", | ||
1006 | "", | ||
1007 | "", | ||
1008 | "", | ||
1009 | "", | ||
1010 | "", | ||
1011 | "", | ||
1012 | "", | ||
1013 | "", | ||
1014 | "CFG_OPT1", | ||
1015 | "WCSS_PWR_REQ", | ||
1016 | "", | ||
1017 | "CFG_OPT2", | ||
1018 | "SLB"; | ||
1019 | }; | ||
1020 | |||
1021 | &tlmm { | ||
1022 | /* | ||
1023 | * pinctrl settings for pins that have no real owners. | ||
1024 | */ | ||
1025 | pinctrl-names = "default", "sleep"; | ||
1026 | pinctrl-0 = <&bios_flash_wp_r_l>, | ||
1027 | <&ap_suspend_l_deassert>; | ||
1028 | |||
1029 | pinctrl-1 = <&bios_flash_wp_r_l>, | ||
1030 | <&ap_suspend_l_assert>; | ||
1031 | |||
1032 | /* | ||
1033 | * Hogs prevent usermode from changing the value. A GPIO can be both | ||
1034 | * here and in the pinctrl section. | ||
1035 | */ | ||
1036 | ap-suspend-l-hog { | ||
1037 | gpio-hog; | ||
1038 | gpios = <126 GPIO_ACTIVE_LOW>; | ||
1039 | output-low; | ||
1040 | }; | ||
1041 | |||
1042 | ap_edp_bklten: ap-edp-bklten { | ||
1043 | pinmux { | ||
1044 | pins = "gpio37"; | ||
1045 | function = "gpio"; | ||
1046 | }; | ||
1047 | |||
1048 | pinconf { | ||
1049 | pins = "gpio37"; | ||
1050 | drive-strength = <2>; | ||
1051 | bias-disable; | ||
1052 | }; | ||
1053 | }; | ||
1054 | |||
1055 | bios_flash_wp_r_l: bios-flash-wp-r-l { | ||
1056 | pinmux { | ||
1057 | pins = "gpio128"; | ||
1058 | function = "gpio"; | ||
1059 | input-enable; | ||
1060 | }; | ||
1061 | |||
1062 | pinconf { | ||
1063 | pins = "gpio128"; | ||
1064 | bias-disable; | ||
1065 | }; | ||
1066 | }; | ||
1067 | |||
1068 | ec_ap_int_l: ec-ap-int-l { | ||
1069 | pinmux { | ||
1070 | pins = "gpio122"; | ||
1071 | function = "gpio"; | ||
1072 | input-enable; | ||
1073 | }; | ||
1074 | |||
1075 | pinconf { | ||
1076 | pins = "gpio122"; | ||
1077 | bias-pull-up; | ||
1078 | }; | ||
1079 | }; | ||
1080 | |||
1081 | edp_brij_en: edp-brij-en { | ||
1082 | pinmux { | ||
1083 | pins = "gpio102"; | ||
1084 | function = "gpio"; | ||
1085 | }; | ||
1086 | |||
1087 | pinconf { | ||
1088 | pins = "gpio102"; | ||
1089 | drive-strength = <2>; | ||
1090 | bias-disable; | ||
1091 | }; | ||
1092 | }; | ||
1093 | |||
1094 | edp_brij_irq: edp-brij-irq { | ||
1095 | pinmux { | ||
1096 | pins = "gpio10"; | ||
1097 | function = "gpio"; | ||
1098 | }; | ||
1099 | |||
1100 | pinconf { | ||
1101 | pins = "gpio10"; | ||
1102 | drive-strength = <2>; | ||
1103 | bias-pull-down; | ||
1104 | }; | ||
1105 | }; | ||
1106 | |||
1107 | en_pp3300_dx_edp: en-pp3300-dx-edp { | ||
1108 | pinmux { | ||
1109 | pins = "gpio43"; | ||
1110 | function = "gpio"; | ||
1111 | }; | ||
1112 | |||
1113 | pinconf { | ||
1114 | pins = "gpio43"; | ||
1115 | drive-strength = <2>; | ||
1116 | bias-disable; | ||
1117 | }; | ||
1118 | }; | ||
1119 | |||
1120 | h1_ap_int_odl: h1-ap-int-odl { | ||
1121 | pinmux { | ||
1122 | pins = "gpio129"; | ||
1123 | function = "gpio"; | ||
1124 | input-enable; | ||
1125 | }; | ||
1126 | |||
1127 | pinconf { | ||
1128 | pins = "gpio129"; | ||
1129 | bias-pull-up; | ||
1130 | }; | ||
1131 | }; | ||
1132 | |||
1133 | pen_eject_odl: pen-eject-odl { | ||
1134 | pinmux { | ||
1135 | pins = "gpio119"; | ||
1136 | function = "gpio"; | ||
1137 | bias-pull-up; | ||
1138 | }; | ||
1139 | }; | ||
1140 | |||
1141 | pen_irq_l: pen-irq-l { | ||
1142 | pinmux { | ||
1143 | pins = "gpio24"; | ||
1144 | function = "gpio"; | ||
1145 | }; | ||
1146 | |||
1147 | pinconf { | ||
1148 | pins = "gpio24"; | ||
1149 | |||
1150 | /* Has external pullup */ | ||
1151 | bias-disable; | ||
1152 | }; | ||
1153 | }; | ||
1154 | |||
1155 | pen_pdct_l: pen-pdct-l { | ||
1156 | pinmux { | ||
1157 | pins = "gpio63"; | ||
1158 | function = "gpio"; | ||
1159 | }; | ||
1160 | |||
1161 | pinconf { | ||
1162 | pins = "gpio63"; | ||
1163 | |||
1164 | /* Has external pullup */ | ||
1165 | bias-disable; | ||
1166 | }; | ||
1167 | }; | ||
1168 | |||
1169 | pen_rst_l: pen-rst-l { | ||
1170 | pinmux { | ||
1171 | pins = "gpio23"; | ||
1172 | function = "gpio"; | ||
1173 | }; | ||
1174 | |||
1175 | pinconf { | ||
1176 | pins = "gpio23"; | ||
1177 | bias-disable; | ||
1178 | drive-strength = <2>; | ||
1179 | |||
1180 | /* | ||
1181 | * The pen driver doesn't currently support | ||
1182 | * driving this reset line. By specifying | ||
1183 | * output-high here we're relying on the fact | ||
1184 | * that this pin has a default pulldown at boot | ||
1185 | * (which makes sure the pen was in reset if it | ||
1186 | * was powered) and then we set it high here to | ||
1187 | * take it out of reset. Better would be if the | ||
1188 | * pen driver could control this and we could | ||
1189 | * remove "output-high" here. | ||
1190 | */ | ||
1191 | output-high; | ||
1192 | }; | ||
1193 | }; | ||
1194 | |||
1195 | sdc2_clk: sdc2-clk { | ||
1196 | pinconf { | ||
1197 | pins = "sdc2_clk"; | ||
1198 | bias-disable; | ||
1199 | |||
1200 | /* | ||
1201 | * It seems that mmc_test reports errors if drive | ||
1202 | * strength is not 16. | ||
1203 | */ | ||
1204 | drive-strength = <16>; | ||
1205 | }; | ||
1206 | }; | ||
1207 | |||
1208 | sdc2_cmd: sdc2-cmd { | ||
1209 | pinconf { | ||
1210 | pins = "sdc2_cmd"; | ||
1211 | bias-pull-up; | ||
1212 | drive-strength = <16>; | ||
1213 | }; | ||
1214 | }; | ||
1215 | |||
1216 | sdc2_data: sdc2-data { | ||
1217 | pinconf { | ||
1218 | pins = "sdc2_data"; | ||
1219 | bias-pull-up; | ||
1220 | drive-strength = <16>; | ||
1221 | }; | ||
1222 | }; | ||
1223 | |||
1224 | sd_cd_odl: sd-cd-odl { | ||
1225 | pinmux { | ||
1226 | pins = "gpio44"; | ||
1227 | function = "gpio"; | ||
1228 | }; | ||
1229 | |||
1230 | pinconf { | ||
1231 | pins = "gpio44"; | ||
1232 | bias-pull-up; | ||
1233 | }; | ||
1234 | }; | ||
1235 | |||
1236 | ts_int_l: ts-int-l { | ||
1237 | pinmux { | ||
1238 | pins = "gpio125"; | ||
1239 | function = "gpio"; | ||
1240 | }; | ||
1241 | |||
1242 | pinconf { | ||
1243 | pins = "gpio125"; | ||
1244 | bias-pull-up; | ||
1245 | }; | ||
1246 | }; | ||
1247 | |||
1248 | ts_reset_l: ts-reset-l { | ||
1249 | pinmux { | ||
1250 | pins = "gpio118"; | ||
1251 | function = "gpio"; | ||
1252 | }; | ||
1253 | |||
1254 | pinconf { | ||
1255 | pins = "gpio118"; | ||
1256 | bias-disable; | ||
1257 | drive-strength = <2>; | ||
1258 | }; | ||
1259 | }; | ||
1260 | |||
1261 | ufs_dev_reset_assert: ufs_dev_reset_assert { | ||
1262 | config { | ||
1263 | pins = "ufs_reset"; | ||
1264 | bias-pull-down; /* default: pull down */ | ||
1265 | /* | ||
1266 | * UFS_RESET driver strengths are having | ||
1267 | * different values/steps compared to typical | ||
1268 | * GPIO drive strengths. | ||
1269 | * | ||
1270 | * Following table clarifies: | ||
1271 | * | ||
1272 | * HDRV value | UFS_RESET | Typical GPIO | ||
1273 | * (dec) | (mA) | (mA) | ||
1274 | * 0 | 0.8 | 2 | ||
1275 | * 1 | 1.55 | 4 | ||
1276 | * 2 | 2.35 | 6 | ||
1277 | * 3 | 3.1 | 8 | ||
1278 | * 4 | 3.9 | 10 | ||
1279 | * 5 | 4.65 | 12 | ||
1280 | * 6 | 5.4 | 14 | ||
1281 | * 7 | 6.15 | 16 | ||
1282 | * | ||
1283 | * POR value for UFS_RESET HDRV is 3 which means | ||
1284 | * 3.1mA and we want to use that. Hence just | ||
1285 | * specify 8mA to "drive-strength" binding and | ||
1286 | * that should result into writing 3 to HDRV | ||
1287 | * field. | ||
1288 | */ | ||
1289 | drive-strength = <8>; /* default: 3.1 mA */ | ||
1290 | output-low; /* active low reset */ | ||
1291 | }; | ||
1292 | }; | ||
1293 | |||
1294 | ufs_dev_reset_deassert: ufs_dev_reset_deassert { | ||
1295 | config { | ||
1296 | pins = "ufs_reset"; | ||
1297 | bias-pull-down; /* default: pull down */ | ||
1298 | /* | ||
1299 | * default: 3.1 mA | ||
1300 | * check comments under ufs_dev_reset_assert | ||
1301 | */ | ||
1302 | drive-strength = <8>; | ||
1303 | output-high; /* active low reset */ | ||
1304 | }; | ||
1305 | }; | ||
1306 | |||
1307 | ap_suspend_l_assert: ap_suspend_l_assert { | ||
1308 | config { | ||
1309 | pins = "gpio126"; | ||
1310 | function = "gpio"; | ||
1311 | bias-no-pull; | ||
1312 | drive-strength = <2>; | ||
1313 | output-low; | ||
1314 | }; | ||
1315 | }; | ||
1316 | |||
1317 | ap_suspend_l_deassert: ap_suspend_l_deassert { | ||
1318 | config { | ||
1319 | pins = "gpio126"; | ||
1320 | function = "gpio"; | ||
1321 | bias-no-pull; | ||
1322 | drive-strength = <2>; | ||
1323 | output-high; | ||
1324 | }; | ||
1325 | }; | ||
1326 | }; | ||