962 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			962 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // SPDX-License-Identifier: BSD-3-Clause
 | |
| /*
 | |
|  * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
 | |
|  * Copyright (c) 2024, Caleb Connolly <caleb@postmarketos.org>
 | |
|  */
 | |
| 
 | |
| /dts-v1/;
 | |
| 
 | |
| #define PM7250B_SID 8
 | |
| #define PM7250B_SID1 9
 | |
| 
 | |
| #include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
 | |
| #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
 | |
| #include <dt-bindings/leds/common.h>
 | |
| #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 | |
| #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 | |
| #include "sc7280.dtsi"
 | |
| #include "pm7250b.dtsi"
 | |
| #include "pm7325.dtsi"
 | |
| #include "pm8350c.dtsi" /* PM7350C */
 | |
| #include "pmk8350.dtsi" /* PMK7325 */
 | |
| 
 | |
| /delete-node/ &rmtfs_mem;
 | |
| 
 | |
| / {
 | |
| 	model = "SHIFT SHIFTphone 8";
 | |
| 	compatible = "shift,otter", "qcom,qcm6490";
 | |
| 	chassis-type = "handset";
 | |
| 
 | |
| 	aliases {
 | |
| 		serial0 = &uart5;
 | |
| 		serial1 = &uart7;
 | |
| 	};
 | |
| 
 | |
| 	chosen {
 | |
| 		#address-cells = <2>;
 | |
| 		#size-cells = <2>;
 | |
| 		ranges;
 | |
| 
 | |
| 		stdout-path = "serial0:115200n8";
 | |
| 
 | |
| 		framebuffer0: framebuffer@a000000 {
 | |
| 			compatible = "simple-framebuffer";
 | |
| 			reg = <0x0 0xe1000000 0x0 (2400 * 1080 * 4)>;
 | |
| 			width = <1080>;
 | |
| 			height = <2400>;
 | |
| 			stride = <(1080 * 4)>;
 | |
| 			format = "a8r8g8b8";
 | |
| 			clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	gpio-keys {
 | |
| 		compatible = "gpio-keys";
 | |
| 
 | |
| 		pinctrl-0 = <&volume_down_default>;
 | |
| 		pinctrl-names = "default";
 | |
| 
 | |
| 		key-volume-up {
 | |
| 			label = "Volume up";
 | |
| 			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
 | |
| 			linux,code = <KEY_VOLUMEUP>;
 | |
| 			debounce-interval = <15>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	pmic-glink {
 | |
| 		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
 | |
| 
 | |
| 		#address-cells = <1>;
 | |
| 		#size-cells = <0>;
 | |
| 
 | |
| 		connector@0 {
 | |
| 			compatible = "usb-c-connector";
 | |
| 			reg = <0>;
 | |
| 			power-role = "dual";
 | |
| 			data-role = "dual";
 | |
| 
 | |
| 			ports {
 | |
| 				#address-cells = <1>;
 | |
| 				#size-cells = <0>;
 | |
| 
 | |
| 				port@0 {
 | |
| 					reg = <0>;
 | |
| 
 | |
| 					pmic_glink_hs_in: endpoint {
 | |
| 						remote-endpoint = <&usb_1_dwc3_hs>;
 | |
| 					};
 | |
| 				};
 | |
| 
 | |
| 				port@1 {
 | |
| 					reg = <1>;
 | |
| 
 | |
| 					pmic_glink_ss_in: endpoint {
 | |
| 						remote-endpoint = <&usb_dp_qmpphy_out>;
 | |
| 					};
 | |
| 				};
 | |
| 
 | |
| 				port@2 {
 | |
| 					reg = <2>;
 | |
| 
 | |
| 					pmic_glink_sbu: endpoint {
 | |
| 						remote-endpoint = <&fsa4480_sbu_mux>;
 | |
| 					};
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	reserved-memory {
 | |
| 		cont_splash_mem: cont-splash@e1000000 {
 | |
| 			reg = <0x0 0xe1000000 0x0 0x2300000>;
 | |
| 			no-map;
 | |
| 		};
 | |
| 
 | |
| 		cdsp_mem: cdsp@88f00000 {
 | |
| 			reg = <0x0 0x88f00000 0x0 0x1e00000>;
 | |
| 			no-map;
 | |
| 		};
 | |
| 
 | |
| 		rmtfs_mem: rmtfs@f8500000 {
 | |
| 			compatible = "qcom,rmtfs-mem";
 | |
| 			reg = <0x0 0xf8500000 0x0 0x600000>;
 | |
| 			no-map;
 | |
| 
 | |
| 			qcom,client-id = <1>;
 | |
| 			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	thermal-zones {
 | |
| 		camera-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pmk8350_adc_tm 2>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		chg-skin-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pm7250b_adc_tm 0>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		conn-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pm7250b_adc_tm 1>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		quiet-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pmk8350_adc_tm 1>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		rear-cam-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pmk8350_adc_tm 4>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		sdm-skin-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pmk8350_adc_tm 3>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 
 | |
| 		xo-thermal {
 | |
| 			polling-delay-passive = <0>;
 | |
| 			polling-delay = <0>;
 | |
| 			thermal-sensors = <&pmk8350_adc_tm 0>;
 | |
| 
 | |
| 			trips {
 | |
| 				active-config0 {
 | |
| 					temperature = <125000>;
 | |
| 					hysteresis = <1000>;
 | |
| 					type = "passive";
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &apps_rsc {
 | |
| 	regulators-0 {
 | |
| 		compatible = "qcom,pm7325-rpmh-regulators";
 | |
| 		qcom,pmic-id = "b";
 | |
| 
 | |
| 		vreg_s1b: smps1 {
 | |
| 			regulator-name = "vreg_s1b";
 | |
| 			regulator-min-microvolt = <1840000>;
 | |
| 			regulator-max-microvolt = <2040000>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_s7b: smps7 {
 | |
| 			regulator-name = "vreg_s7b";
 | |
| 			regulator-min-microvolt = <535000>;
 | |
| 			regulator-max-microvolt = <1120000>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_s8b: smps8 {
 | |
| 			regulator-name = "vreg_s8b";
 | |
| 			regulator-min-microvolt = <1200000>;
 | |
| 			regulator-max-microvolt = <1500000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l1b: ldo1 {
 | |
| 			regulator-name = "vreg_l1b";
 | |
| 			regulator-min-microvolt = <825000>;
 | |
| 			regulator-max-microvolt = <925000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l2b: ldo2 {
 | |
| 			regulator-name = "vreg_l2b";
 | |
| 			regulator-min-microvolt = <2700000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l3b: ldo3 {
 | |
| 			regulator-name = "vreg_l3b";
 | |
| 			regulator-min-microvolt = <312000>;
 | |
| 			regulator-max-microvolt = <910000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l6b: ldo6 {
 | |
| 			regulator-name = "vreg_l6b";
 | |
| 			regulator-min-microvolt = <1140000>;
 | |
| 			regulator-max-microvolt = <1260000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l7b: ldo7 {
 | |
| 			regulator-name = "vreg_l7b";
 | |
| 			/* Constrained for UFS VCC, at least until UFS driver scales voltage */
 | |
| 			regulator-min-microvolt = <2952000>;
 | |
| 			regulator-max-microvolt = <2952000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l8b: ldo8 {
 | |
| 			regulator-name = "vreg_l8b";
 | |
| 			regulator-min-microvolt = <870000>;
 | |
| 			regulator-max-microvolt = <970000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l9b: ldo9 {
 | |
| 			regulator-name = "vreg_l9b";
 | |
| 			regulator-min-microvolt = <1200000>;
 | |
| 			regulator-max-microvolt = <1304000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l11b: ldo11 {
 | |
| 			regulator-name = "vreg_l11b";
 | |
| 			regulator-min-microvolt = <1504000>;
 | |
| 			regulator-max-microvolt = <2000000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l12b: ldo12 {
 | |
| 			regulator-name = "vreg_l12b";
 | |
| 			regulator-min-microvolt = <751000>;
 | |
| 			regulator-max-microvolt = <824000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l13b: ldo13 {
 | |
| 			regulator-name = "vreg_l13b";
 | |
| 			regulator-min-microvolt = <530000>;
 | |
| 			regulator-max-microvolt = <824000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l14b: ldo14 {
 | |
| 			regulator-name = "vreg_l14b";
 | |
| 			regulator-min-microvolt = <1080000>;
 | |
| 			regulator-max-microvolt = <1304000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l15b: ldo15 {
 | |
| 			regulator-name = "vreg_l15b";
 | |
| 			regulator-min-microvolt = <765000>;
 | |
| 			regulator-max-microvolt = <1020000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l16b: ldo16 {
 | |
| 			regulator-name = "vreg_l16b";
 | |
| 			regulator-min-microvolt = <1100000>;
 | |
| 			regulator-max-microvolt = <1300000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l17b: ldo17 {
 | |
| 			regulator-name = "vreg_l17b";
 | |
| 			regulator-min-microvolt = <1700000>;
 | |
| 			regulator-max-microvolt = <1900000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l18b: ldo18 {
 | |
| 			regulator-name = "vreg_l18b";
 | |
| 			regulator-min-microvolt = <1800000>;
 | |
| 			regulator-max-microvolt = <2000000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l19b: ldo19 {
 | |
| 			regulator-name = "vreg_l19b";
 | |
| 			regulator-min-microvolt = <1800000>;
 | |
| 			regulator-max-microvolt = <2000000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	regulators-1 {
 | |
| 		compatible = "qcom,pm8350c-rpmh-regulators";
 | |
| 		qcom,pmic-id = "c";
 | |
| 
 | |
| 		vreg_s1c: smps1 {
 | |
| 			regulator-name = "vreg_s1c";
 | |
| 			regulator-min-microvolt = <2190000>;
 | |
| 			regulator-max-microvolt = <2210000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_s9c: smps9 {
 | |
| 			regulator-name = "vreg_s9c";
 | |
| 			regulator-min-microvolt = <1010000>;
 | |
| 			regulator-max-microvolt = <1170000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l1c: ldo1 {
 | |
| 			regulator-name = "vreg_l1c";
 | |
| 			regulator-min-microvolt = <1800000>;
 | |
| 			regulator-max-microvolt = <1980000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l2c: ldo2 {
 | |
| 			regulator-name = "vreg_l2c";
 | |
| 			regulator-min-microvolt = <1800000>;
 | |
| 			regulator-max-microvolt = <1950000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l3c: ldo3 {
 | |
| 			regulator-name = "vreg_l3c";
 | |
| 			regulator-min-microvolt = <3000000>;
 | |
| 			regulator-max-microvolt = <3400000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l4c: ldo4 {
 | |
| 			regulator-name = "vreg_l4c";
 | |
| 			regulator-min-microvolt = <1620000>;
 | |
| 			regulator-max-microvolt = <3300000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l5c: ldo5 {
 | |
| 			regulator-name = "vreg_l5c";
 | |
| 			regulator-min-microvolt = <1620000>;
 | |
| 			regulator-max-microvolt = <3300000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l6c: ldo6 {
 | |
| 			regulator-name = "vreg_l6c";
 | |
| 			regulator-min-microvolt = <1650000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l7c: ldo7 {
 | |
| 			regulator-name = "vreg_l7c";
 | |
| 			regulator-min-microvolt = <3000000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l8c: ldo8 {
 | |
| 			regulator-name = "vreg_l8c";
 | |
| 			regulator-min-microvolt = <1620000>;
 | |
| 			regulator-max-microvolt = <2000000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l9c: ldo9 {
 | |
| 			regulator-name = "vreg_l9c";
 | |
| 			regulator-min-microvolt = <2700000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l10c: ldo10 {
 | |
| 			regulator-name = "vreg_l10c";
 | |
| 			regulator-min-microvolt = <720000>;
 | |
| 			regulator-max-microvolt = <1050000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l11c: ldo11 {
 | |
| 			regulator-name = "vreg_l11c";
 | |
| 			regulator-min-microvolt = <2800000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l12c: ldo12 {
 | |
| 			regulator-name = "vreg_l12c";
 | |
| 			regulator-min-microvolt = <1650000>;
 | |
| 			regulator-max-microvolt = <2000000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_l13c: ldo13 {
 | |
| 			regulator-name = "vreg_l13c";
 | |
| 			regulator-min-microvolt = <2700000>;
 | |
| 			regulator-max-microvolt = <3544000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 | |
| 		};
 | |
| 
 | |
| 		vreg_bob: bob {
 | |
| 			regulator-name = "vreg_bob";
 | |
| 			regulator-min-microvolt = <3008000>;
 | |
| 			regulator-max-microvolt = <3960000>;
 | |
| 			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &gcc {
 | |
| 	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
 | |
| 			   <GCC_EDP_CLKREF_EN>,
 | |
| 			   <GCC_MSS_CFG_AHB_CLK>,
 | |
| 			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
 | |
| 			   <GCC_MSS_OFFLINE_AXI_CLK>,
 | |
| 			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
 | |
| 			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
 | |
| 			   <GCC_MSS_SNOC_AXI_CLK>,
 | |
| 			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
 | |
| 			   <GCC_QSPI_CORE_CLK>,
 | |
| 			   <GCC_QSPI_CORE_CLK_SRC>,
 | |
| 			   <GCC_SEC_CTRL_CLK_SRC>,
 | |
| 			   <GCC_WPSS_AHB_BDG_MST_CLK>,
 | |
| 			   <GCC_WPSS_AHB_CLK>,
 | |
| 			   <GCC_WPSS_RSCP_CLK>;
 | |
| };
 | |
| 
 | |
| &gpi_dma0 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &gpi_dma1 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &gpu {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &gpu_zap_shader {
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/a660_zap.mbn";
 | |
| };
 | |
| 
 | |
| &i2c1 {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	/* PM8008 PMIC @ 8 and 9 */
 | |
| 	/* rtc6226 FM receiver @ 64 */
 | |
| 
 | |
| 	typec-mux@42 {
 | |
| 		compatible = "fcs,fsa4480";
 | |
| 		reg = <0x42>;
 | |
| 
 | |
| 		vcc-supply = <&vreg_bob>;
 | |
| 
 | |
| 		mode-switch;
 | |
| 		orientation-switch;
 | |
| 
 | |
| 		port {
 | |
| 			fsa4480_sbu_mux: endpoint {
 | |
| 				remote-endpoint = <&pmic_glink_sbu>;
 | |
| 			};
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &i2c4 {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	/* tas2563 audio codec @ 4d */
 | |
| };
 | |
| 
 | |
| &i2c9 {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	/* TMS(?) NFC @ 28 */
 | |
| 	/* Ti drv2624 haptics @ 5a */
 | |
| };
 | |
| 
 | |
| &i2c13 {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	/* focaltech FT3658U @ 38 */
 | |
| };
 | |
| 
 | |
| &ipa {
 | |
| 	qcom,gsi-loader = "self";
 | |
| 	memory-region = <&ipa_fw_mem>;
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/ipa_fws.mbn";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &pm7250b_adc {
 | |
| 	channel@4d {
 | |
| 		reg = <ADC5_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "charger_skin_therm";
 | |
| 	};
 | |
| 
 | |
| 	channel@4f {
 | |
| 		reg = <ADC5_AMUX_THM3_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "conn_therm";
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pm7250b_adc_tm {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	charger-skin-therm@0 {
 | |
| 		reg = <0>;
 | |
| 		io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| 
 | |
| 	conn-therm@1 {
 | |
| 		reg = <1>;
 | |
| 		io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pm7325_gpios {
 | |
| 	volume_down_default: volume-down-default-state {
 | |
| 		pins = "gpio6";
 | |
| 		function = PMIC_GPIO_FUNC_NORMAL;
 | |
| 		power-source = <1>;
 | |
| 		bias-pull-up;
 | |
| 		input-enable;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pmk8350_adc_tm {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	xo-therm@0 {
 | |
| 		reg = <0>;
 | |
| 		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| 
 | |
| 	quiet-therm@1 {
 | |
| 		reg = <1>;
 | |
| 		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| 
 | |
| 	cam-flash-therm@2 {
 | |
| 		reg = <2>;
 | |
| 		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| 
 | |
| 	sdm-skin-therm@3 {
 | |
| 		reg = <3>;
 | |
| 		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| 
 | |
| 	wide-rfc-therm@4 {
 | |
| 		reg = <4>;
 | |
| 		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time-us = <200>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pmk8350_rtc {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &pmk8350_vadc {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	channel@44 {
 | |
| 		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "pmk8350_xo_therm";
 | |
| 	};
 | |
| 
 | |
| 	channel@144 {
 | |
| 		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "pm7325_quiet_therm";
 | |
| 	};
 | |
| 
 | |
| 	channel@145 {
 | |
| 		reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "pm7325_cam_flash_therm";
 | |
| 	};
 | |
| 
 | |
| 	channel@146 {
 | |
| 		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "pm7325_sdm_skin_therm";
 | |
| 	};
 | |
| 
 | |
| 	channel@147 {
 | |
| 		reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
 | |
| 		qcom,ratiometric;
 | |
| 		qcom,hw-settle-time = <200>;
 | |
| 		qcom,pre-scaling = <1 1>;
 | |
| 		label = "pm7325_wide_rfc_therm";
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &pon_pwrkey {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &pon_resin {
 | |
| 	linux,code = <KEY_VOLUMEDOWN>;
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &qup_spi13_cs {
 | |
| 	drive-strength = <6>;
 | |
| 	bias-disable;
 | |
| };
 | |
| 
 | |
| &qup_spi13_data_clk {
 | |
| 	drive-strength = <6>;
 | |
| 	bias-disable;
 | |
| };
 | |
| 
 | |
| &qup_uart5_rx {
 | |
| 	drive-strength = <2>;
 | |
| 	bias-disable;
 | |
| };
 | |
| 
 | |
| &qup_uart5_tx {
 | |
| 	drive-strength = <2>;
 | |
| 	bias-disable;
 | |
| };
 | |
| 
 | |
| &qupv3_id_0 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &qupv3_id_1 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &remoteproc_adsp {
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/adsp.mbn";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &remoteproc_cdsp {
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/cdsp.mbn";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &remoteproc_mpss {
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/modem.mbn";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &remoteproc_wpss {
 | |
| 	firmware-name = "qcom/qcm6490/SHIFT/otter/wpss.mbn";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &sdc2_clk {
 | |
| 	drive-strength = <16>;
 | |
| 	bias-disable;
 | |
| };
 | |
| 
 | |
| &sdc2_cmd {
 | |
| 	drive-strength = <10>;
 | |
| 	bias-pull-up;
 | |
| };
 | |
| 
 | |
| &sdc2_data {
 | |
| 	drive-strength = <10>;
 | |
| 	bias-pull-up;
 | |
| };
 | |
| 
 | |
| &sdhc_2 {
 | |
| 	vmmc-supply = <&vreg_l9c>;
 | |
| 	vqmmc-supply = <&vreg_l6c>;
 | |
| 
 | |
| 	pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
 | |
| 	pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &tlmm {
 | |
| 	/*
 | |
| 	 * 48-52: protected by XPU, not sure why.
 | |
| 	 */
 | |
| 	gpio-reserved-ranges = <48 4>;
 | |
| 
 | |
| 	bluetooth_enable_default: bluetooth-enable-default-state {
 | |
| 		pins = "gpio85";
 | |
| 		function = "gpio";
 | |
| 		output-low;
 | |
| 		bias-disable;
 | |
| 	};
 | |
| 
 | |
| 	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
 | |
| 		pins = "gpio28";
 | |
| 		function = "gpio";
 | |
| 		/*
 | |
| 		 * Configure a bias-bus-hold on CTS to lower power
 | |
| 		 * usage when Bluetooth is turned off. Bus hold will
 | |
| 		 * maintain a low power state regardless of whether
 | |
| 		 * the Bluetooth module drives the pin in either
 | |
| 		 * direction or leaves the pin fully unpowered.
 | |
| 		 */
 | |
| 		bias-bus-hold;
 | |
| 	};
 | |
| 
 | |
| 	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
 | |
| 		pins = "gpio29";
 | |
| 		function = "gpio";
 | |
| 		/*
 | |
| 		 * Configure pull-down on RTS. As RTS is active low
 | |
| 		 * signal, pull it low to indicate the BT SoC that it
 | |
| 		 * can wakeup the system anytime from suspend state by
 | |
| 		 * pulling RX low (by sending wakeup bytes).
 | |
| 		 */
 | |
| 		bias-pull-down;
 | |
| 	};
 | |
| 
 | |
| 	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
 | |
| 		pins = "gpio30";
 | |
| 		function = "gpio";
 | |
| 		/*
 | |
| 		 * Configure pull-up on TX when it isn't actively driven
 | |
| 		 * to prevent BT SoC from receiving garbage during sleep.
 | |
| 		 */
 | |
| 		bias-pull-up;
 | |
| 	};
 | |
| 
 | |
| 	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
 | |
| 		pins = "gpio31";
 | |
| 		function = "gpio";
 | |
| 		/*
 | |
| 		 * Configure a pull-up on RX. This is needed to avoid
 | |
| 		 * garbage data when the TX pin of the Bluetooth module
 | |
| 		 * is floating which may cause spurious wakeups.
 | |
| 		 */
 | |
| 		bias-pull-up;
 | |
| 	};
 | |
| 
 | |
| 	sw_ctrl_default: sw-ctrl-default-state {
 | |
| 		pins = "gpio86";
 | |
| 		function = "gpio";
 | |
| 		bias-pull-down;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &uart5 {
 | |
| 	compatible = "qcom,geni-debug-uart";
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &uart7 {
 | |
| 	/delete-property/interrupts;
 | |
| 	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
 | |
| 			<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
 | |
| 
 | |
| 	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
 | |
| 	pinctrl-names = "default", "sleep";
 | |
| 
 | |
| 	status = "okay";
 | |
| 
 | |
| 	bluetooth: bluetooth {
 | |
| 		compatible = "qcom,wcn6750-bt";
 | |
| 
 | |
| 		pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
 | |
| 		pinctrl-names = "default";
 | |
| 
 | |
| 		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
 | |
| 		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
 | |
| 
 | |
| 		vddio-supply = <&vreg_l19b>;
 | |
| 		vddaon-supply = <&vreg_s7b>;
 | |
| 		vddbtcxmx-supply = <&vreg_s7b>;
 | |
| 		vddrfacmn-supply = <&vreg_s7b>;
 | |
| 		vddrfa0p8-supply = <&vreg_s7b>;
 | |
| 		vddrfa1p7-supply = <&vreg_s1b>;
 | |
| 		vddrfa1p2-supply = <&vreg_s8b>;
 | |
| 		vddrfa2p2-supply = <&vreg_s1c>;
 | |
| 		vddasd-supply = <&vreg_l11c>;
 | |
| 
 | |
| 		max-speed = <3200000>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &ufs_mem_hc {
 | |
| 	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
 | |
| 
 | |
| 	vcc-supply = <&vreg_l7b>;
 | |
| 	vcc-max-microamp = <800000>;
 | |
| 	/*
 | |
| 	 * Technically l9b enables an eLDO (supplied by s1b) which then powers
 | |
| 	 * VCCQ2 of the UFS.
 | |
| 	 */
 | |
| 	vccq-supply = <&vreg_l9b>;
 | |
| 	vccq-max-microamp = <900000>;
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &ufs_mem_phy {
 | |
| 	vdda-phy-supply = <&vreg_l10c>;
 | |
| 	vdda-pll-supply = <&vreg_l6b>;
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &usb_1 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &usb_1_dwc3 {
 | |
| 	dr_mode = "otg";
 | |
| 	usb-role-switch;
 | |
| };
 | |
| 
 | |
| &usb_1_dwc3_hs {
 | |
| 	remote-endpoint = <&pmic_glink_hs_in>;
 | |
| };
 | |
| 
 | |
| &usb_dp_qmpphy_out {
 | |
| 	remote-endpoint = <&pmic_glink_ss_in>;
 | |
| };
 | |
| 
 | |
| &usb_1_hsphy {
 | |
| 	vdda-pll-supply = <&vreg_l10c>;
 | |
| 	vdda18-supply = <&vreg_l1c>;
 | |
| 	vdda33-supply = <&vreg_l2b>;
 | |
| 
 | |
| 	qcom,hs-crossover-voltage-microvolt = <28000>;
 | |
| 	qcom,hs-output-impedance-micro-ohms = <2600000>;
 | |
| 	qcom,hs-rise-fall-time-bp = <5430>;
 | |
| 	qcom,hs-disconnect-bp = <1743>;
 | |
| 	qcom,hs-amplitude-bp = <2430>;
 | |
| 
 | |
| 	qcom,pre-emphasis-amplitude-bp = <20000>;
 | |
| 	qcom,pre-emphasis-duration-bp = <20000>;
 | |
| 
 | |
| 	qcom,squelch-detector-bp = <(-2090)>;
 | |
| 
 | |
| 	orientation-switch;
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &usb_1_qmpphy {
 | |
| 	vdda-phy-supply = <&vreg_l6b>;
 | |
| 	vdda-pll-supply = <&vreg_l1b>;
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &wifi {
 | |
| 	qcom,ath11k-calibration-variant = "SHIFTphone_8";
 | |
| 
 | |
| 	status = "okay";
 | |
| };
 |