1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
8 #include "pm8350b.dtsi"
9 #include "pm8350c.dtsi"
10 #include "pmk8350.dtsi"
11 #include "pmr735a.dtsi"
12 #include "pmr735b.dtsi"
16 * Yes, you are correct, there is NO MORE {msm,board,pmic}-id on SM8350!
17 * Adding it will cause the bootloader to go crazy and randomly crash
18 * shortly after closing UEFI boot services.. Perhaps that has something
19 * to do with the OS running inside a VM now..?
22 chassis-type = "handset";
29 framebuffer: framebuffer@e1000000 {
30 compatible = "simple-framebuffer";
31 reg = <0 0xe1000000 0 0x2300000>;
33 /* The display, even though it's 4K, initializes at 1080-ish p */
36 stride = <(1096 * 4)>;
39 * That's (going to be) a lot of clocks, but it's necessary due
40 * to unused clk cleanup & no panel driver yet
42 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
43 <&gcc GCC_DISP_SF_AXI_CLK>;
48 compatible = "gpio-keys";
50 /* For reasons still unknown, GAssist key and Camera Focus/Shutter don't work.. */
53 label = "Volume Down";
54 linux,code = <KEY_VOLUMEDOWN>;
55 gpios = <&pmk8350_gpios 3 GPIO_ACTIVE_LOW>;
56 debounce-interval = <15>;
63 cont_splash_mem: memory@e1000000 {
64 reg = <0 0xe1000000 0 0x2300000>;
69 compatible = "ramoops";
70 reg = <0 0xffc00000 0 0x100000>;
71 console-size = <0x40000>;
72 record-size = <0x1000>;
80 firmware-name = "/*(DEBLOBBED)*/";
85 firmware-name = "/*(DEBLOBBED)*/";
90 clock-frequency = <1000000>;
92 /* Some subset of SONY IMX663 camera sensor @ 38 */
97 clock-frequency = <400000>;
99 /* Richwave RTC6226 FM Radio Receiver @ 64 */
104 clock-frequency = <400000>;
106 /* Samsung Touchscreen (needs I2C GPI DMA) @ 48 */
111 clock-frequency = <1000000>;
113 cs35l41_l: cs35l41@40 {
114 compatible = "cirrus,cs35l41";
116 interrupt-parent = <&tlmm>;
117 interrupts = <36 IRQ_TYPE_LEVEL_LOW>;
118 reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
119 cirrus,boost-peak-milliamp = <4000>;
120 cirrus,boost-ind-nanohenry = <1000>;
121 cirrus,boost-cap-microfarad = <15>;
122 cirrus,asp-sdout-hiz = <3>;
123 cirrus,gpio2-src-select = <2>;
124 cirrus,gpio2-output-enable;
125 #sound-dai-cells = <1>;
128 cs35l41_r: cs35l41@41 {
129 compatible = "cirrus,cs35l41";
131 interrupt-parent = <&tlmm>;
132 interrupts = <36 IRQ_TYPE_LEVEL_LOW>;
133 reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
134 cirrus,boost-peak-milliamp = <4000>;
135 cirrus,boost-ind-nanohenry = <1000>;
136 cirrus,boost-cap-microfarad = <15>;
137 cirrus,asp-sdout-hiz = <3>;
138 cirrus,gpio2-src-select = <2>;
139 cirrus,gpio2-output-enable;
140 #sound-dai-cells = <1>;
146 /* Clock frequency was not specified downstream, let's park it to 100 KHz */
147 clock-frequency = <100000>;
149 /* AMS TCS3490 RGB+IR color sensor @ 72 */
154 /* Clock frequency was not specified downstream, let's park it to 100 KHz */
155 clock-frequency = <100000>;
157 /* Qualcomm PM8008i/PM8008j (?) @ 8, 9, c, d */
158 /* Dialog SLG51000 CMIC @ 75 */
163 clock-frequency = <400000>;
165 /* NXP SN1X0 NFC @ 28 */
170 clock-frequency = <1000000>;
172 /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */
177 memory-region = <&pil_ipa_fw_mem>;
178 firmware-name = "/*(DEBLOBBED)*/";
183 firmware-name = "/*(DEBLOBBED)*/";
196 linux,code = <KEY_VOLUMEUP>;
213 firmware-name = "/*(DEBLOBBED)*/";
219 /* NXP SN1X0 NFC Secure Element @ 0 */
223 gpio-reserved-ranges = <44 4>;
225 ts_int_default: ts-int-default-state {
228 drive-strength = <2>;
234 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
235 &ufs_mem_hc { status = "disabled"; };
236 &ufs_mem_phy { status = "disabled"; };
238 /* TODO: Make USB3 work (perhaps needs regulators for higher-current operation?) */
242 qcom,select-utmi-as-pipe-clk;
246 dr_mode = "peripheral";
248 maximum-speed = "high-speed";
249 phys = <&usb_1_hsphy>;
250 phy-names = "usb2-phy";