diff options
Diffstat (limited to 'arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts')
-rw-r--r-- | arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 346 |
1 files changed, 310 insertions, 36 deletions
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts index 176898c9dbbd..769c66cb5d19 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts @@ -71,28 +71,54 @@ }; }; - reserved-memory { - cont_splash_mem: cont-splash@e1000000 { - reg = <0x0 0xe1000000 0x0 0x2300000>; - no-map; - }; + pmic-glink { + compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink"; - cdsp_mem: cdsp@88f00000 { - reg = <0x0 0x88f00000 0x0 0x1e00000>; - no-map; - }; + #address-cells = <1>; + #size-cells = <0>; - rmtfs_mem: memory@f8500000 { - compatible = "qcom,rmtfs-mem"; - reg = <0x0 0xf8500000 0x0 0x600000>; - no-map; + orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>; - qcom,client-id = <1>; - qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>; + 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_1_dwc3_ss>; + }; + }; + }; }; }; - ois_avdd0_1p8: regulator-ois-avdd0-1p8 { + vreg_afvdd_2p8: regulator-afvdd-2p8 { + compatible = "regulator-fixed"; + regulator-name = "AFVDD_2P8"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&vreg_bob>; + }; + + vreg_ois_avdd0_1p8: regulator-ois-avdd0-1p8 { compatible = "regulator-fixed"; regulator-name = "OIS_AVDD0_1P8"; regulator-min-microvolt = <1800000>; @@ -102,7 +128,7 @@ vin-supply = <&vreg_bob>; }; - ois_dvdd_1p1: regulator-ois-dvdd-1p1 { + vreg_ois_dvdd_1p1: regulator-ois-dvdd-1p1 { compatible = "regulator-fixed"; regulator-name = "OIS_DVDD_1P1"; regulator-min-microvolt = <1100000>; @@ -112,20 +138,36 @@ vin-supply = <&vreg_s8b>; }; - afvdd_2p8: regulator-afvdd-2p8 { - compatible = "regulator-fixed"; - regulator-name = "AFVDD_2P8"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>; - enable-active-high; - vin-supply = <&vreg_bob>; + 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; + }; + + removed_mem: removed@c0000000 { + reg = <0x0 0xc0000000 0x0 0x5100000>; + no-map; + }; + + rmtfs_mem: memory@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 { @@ -139,7 +181,7 @@ chg-skin-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pm7250b_adc_tm 0>; trips { @@ -153,7 +195,7 @@ conn-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pm7250b_adc_tm 1>; trips { @@ -165,9 +207,42 @@ }; }; + mem-thermal { + polling-delay-passive = <0>; + + thermal-sensors = <&pm7250b_adc_tm 2>; + + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + pm8008-thermal { + polling-delay-passive = <100>; + thermal-sensors = <&pm8008>; + + trips { + trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + trip1 { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; + quiet-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 1>; trips { @@ -181,7 +256,7 @@ rear-cam-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 4>; trips { @@ -195,7 +270,7 @@ sdm-skin-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 3>; trips { @@ -209,7 +284,7 @@ xo-thermal { polling-delay-passive = <0>; - polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm 0>; trips { @@ -229,46 +304,54 @@ 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>; @@ -276,66 +359,77 @@ }; 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>; @@ -347,60 +441,70 @@ 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>; @@ -409,36 +513,42 @@ }; 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>; @@ -446,6 +556,47 @@ }; }; +&cci0 { + status = "okay"; +}; + +&cci0_i2c0 { + /* IMX800 @ 1a */ + + eeprom@50 { + compatible = "puya,p24c256c", "atmel,24c256"; + reg = <0x50>; + vcc-supply = <&vreg_l6p>; + read-only; + }; +}; + +&cci0_i2c1 { + /* IMX858 @ 29 */ + + eeprom@54 { + compatible = "giantec,gt24p128f", "atmel,24c128"; + reg = <0x54>; + vcc-supply = <&vreg_l6p>; + read-only; + }; +}; + +&cci1 { + status = "okay"; +}; + +&cci1_i2c1 { + /* S5KJN1SQ03 @ 10 */ + + eeprom@51 { + compatible = "giantec,gt24p128f", "atmel,24c128"; + reg = <0x51>; + vcc-supply = <&vreg_l6p>; + read-only; + }; +}; + &dispcc { /* Disable for now so simple-framebuffer continues working */ status = "disabled"; @@ -480,7 +631,76 @@ &i2c1 { status = "okay"; - /* PM8008 PMIC @ 8 and 9 */ + pm8008: pmic@8 { + compatible = "qcom,pm8008"; + reg = <0x8>; + + interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>; + reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>; + + vdd-l1-l2-supply = <&vreg_s8b>; + vdd-l3-l4-supply = <&vreg_bob>; + vdd-l5-supply = <&vreg_bob>; + vdd-l6-supply = <&vreg_s1b>; + vdd-l7-supply = <&vreg_bob>; + + pinctrl-names = "default"; + pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pm8008 0 0 2>; + + interrupt-controller; + #interrupt-cells = <2>; + + #thermal-sensor-cells = <0>; + + regulators { + vreg_l1p: ldo1 { + regulator-name = "vreg_l1p"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + vreg_l2p: ldo2 { + regulator-name = "vreg_l2p"; + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1152000>; + }; + + vreg_l3p: ldo3 { + regulator-name = "vreg_l3p"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + }; + + vreg_l4p: ldo4 { + regulator-name = "vreg_l4p"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2900000>; + }; + + vreg_l5p: ldo5 { + regulator-name = "vreg_l5p"; + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2900000>; + }; + + vreg_l6p: ldo6 { + regulator-name = "vreg_l6p"; + regulator-min-microvolt = <1700000>; + regulator-max-microvolt = <1904000>; + }; + + vreg_l7p: ldo7 { + regulator-name = "vreg_l7p"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + }; + }; + }; + /* Pixelworks @ 26 */ /* FSA4480 USB audio switch @ 42 */ /* AW86927FCR haptics @ 5a */ @@ -509,11 +729,14 @@ &ipa { qcom,gsi-loader = "self"; memory-region = <&ipa_fw_mem>; - firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mdt"; + firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn"; status = "okay"; }; &pm7250b_adc { + pinctrl-0 = <&pm7250b_adc_default>; + pinctrl-names = "default"; + channel@4d { reg = <ADC5_AMUX_THM1_100K_PU>; qcom,ratiometric; @@ -529,6 +752,14 @@ qcom,pre-scaling = <1 1>; label = "conn_therm"; }; + + channel@53 { + reg = <ADC5_GPIO2_100K_PU>; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + label = "mem_therm"; + }; }; &pm7250b_adc_tm { @@ -547,6 +778,21 @@ qcom,ratiometric; qcom,hw-settle-time-us = <200>; }; + + mem-therm@2 { + reg = <2>; + io-channels = <&pm7250b_adc ADC5_GPIO2_100K_PU>; + qcom,ratiometric; + qcom,hw-settle-time-us = <200>; + }; +}; + +&pm7250b_gpios { + pm7250b_adc_default: adc-default-state { + pins = "gpio12"; + function = PMIC_GPIO_FUNC_NORMAL; + bias-high-impedance; + }; }; &pm7325_gpios { @@ -611,6 +857,14 @@ }; }; +&pm8350c_gpios { + pm8008_reset_n_default: pm8008-reset-n-default-state { + pins = "gpio3"; + function = PMIC_GPIO_FUNC_NORMAL; + bias-pull-down; + }; +}; + &pmk8350_rtc { status = "okay"; }; @@ -768,6 +1022,13 @@ bias-pull-up; }; + pm8008_int_default: pm8008-int-default-state { + pins = "gpio25"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { pins = "gpio28"; function = "gpio"; @@ -822,7 +1083,6 @@ }; &uart5 { - compatible = "qcom,geni-debug-uart"; status = "okay"; }; @@ -886,7 +1146,16 @@ }; &usb_1_dwc3 { - dr_mode = "peripheral"; + dr_mode = "otg"; + usb-role-switch; +}; + +&usb_1_dwc3_hs { + remote-endpoint = <&pmic_glink_hs_in>; +}; + +&usb_1_dwc3_ss { + remote-endpoint = <&pmic_glink_ss_in>; }; &usb_1_hsphy { @@ -915,6 +1184,11 @@ status = "okay"; }; +&venus { + firmware-name = "qcom/qcm6490/fairphone5/venus.mbn"; + status = "okay"; +}; + &wifi { qcom,ath11k-calibration-variant = "Fairphone_5"; status = "okay"; |