Loading bindings/input/qcom-hv-haptics.txt +16 −9 Original line number Diff line number Diff line Loading @@ -18,13 +18,15 @@ Properties: Value type: <string> Definition: It can be one of following: "qcom,hv-haptics", "qcom,pm8350b-haptics". "qcom,pm8350b-haptics", "qcom,pm5100-haptics". - reg: Usage: required Value type: <prop-encoded-array> Definition: Register base for following haptics modules: HAPTICS_CFG, HAPTICS_PATTERN, HAPTICS_BOOST. HAPTICS_PATTERN, HAPTICS_BOOST. HAPTICS_BOOST register base is not applicable for PM5100. - interrupts: Usage: required Loading Loading @@ -76,9 +78,11 @@ Properties: Value type: <u32> Definition: Specifies the FIFO empty threshold. The "fifo-empty" IRQ will be triggered when the number of the samples in the FIFO is less than the threshold. For PM8350B v1, allowed value is 1 - 103 and the default value is 48. For PM8350B v2, allowed value is 1 - 639 and the default value is 280. than the threshold. For PM8350B v1, allowed value is 0 - 104 in multiple of 4 and the default value is 48. For PM8350B v2, allowed value is 0 - 640 in multiple of 40 and the default value is 280. For PM5100, allowed value is 0 - 1024 in multiple of 32 and the default value is 288. - qcom,use-erm: Usage: optional Loading @@ -91,33 +95,36 @@ Properties: Value type: <string> Definition: The nvmem cell name of the SDAM module where the closed-loop brake calibration settings can be stored. It must be "hap_cl_brake". "hap_cl_brake". Not applicable for PM5100. - nvmem-cells: Usage: optional Value type: <phandle> Definition: Phandle of the nvmem cell to store the closed-loop brake calibration settings. Please refer to nvmem bindings as described in bindings/nvmem/nvmem.txt. described in bindings/nvmem/nvmem.txt. Not applicable for PM5100. - nvmem-names: Usage: optional Value type: <string> Definition: The nvmem device name of the SDAM module used for haptics configuration. It must be "hap_cfg_sdam". configuration. It must be "hap_cfg_sdam". Not applicable for PM5100. - nvmem: Usage: optional Value type: <phandle> Definition: Phandle of the nvmem device used for haptics configuration. Please refer to nvmem bindings as described in bindings/nvmem/nvmem.txt. Not applicable for PM5100. - qcom,pbs-client: Usage: optional Value type: <phandle> Definition: Phandle of the PBS client used for triggering PBS to configure haptics ISC (short circuit current) config during LRA impedance detection. detection. Not applicable for PM5100. - qcom,hpwr-supply: Usage: optional Loading bindings/soc/qcom/qcom,cx_ipeak.txt +20 −0 Original line number Diff line number Diff line Loading @@ -6,17 +6,37 @@ if it is going to cross its own threshold. If all clients are going to cross their thresholds then Cx ipeak hw module will raise an interrupt to cDSP block to throttle cDSP's fmax. There are SOC like SCUBA where Cx ipeak HW module raised interrupt will throttle frequency of other victim clients. Required properties: - #size-cells : Must be 1 - compatible : name of the component used for driver matching, should be one "qcom,cx-ipeak-v1", "qcom,cx-ipeak-v2" - reg : physical base address and length of the register set(s), SRAM and XPU of the component. Optional properties: - interrupts : Danger and Safe interrupts details having interrupt number and type of interrupt. - interrupt-names : Identifier names for Danger and Safe interrupts. - victims_table : Victim clients details having client ID, victim ID and limit frequency to be applied in case of danger interrupt. Example: cx_ipeak_lm: cx_ipeak@1fe5040 { #size-cells = <1>; compatible = "qcom,cx-ipeak-v1"; reg = <0x01fe5040 0x28>; interrupts = <0 415 IRQ_TYPE_EDGE_RISING>, <0 416 IRQ_TYPE_EDGE_RISING>; interrupt-names = "cx_ipeak_danger", "cx_ipeak_safe"; victims_table = <1 0 844800000>; }; qcom/Makefile +11 −2 Original line number Diff line number Diff line Loading @@ -144,19 +144,28 @@ dtbo-$(CONFIG_ARCH_BLAIR) += blair-rumi-overlay.dtbo \ blair-mtp-overlay.dtbo \ blair-cdp-overlay.dtbo \ blair-atp-overlay.dtbo \ blair-qrd-overlay.dtbo blair-qrd-overlay.dtbo \ blair-mtp-usbc-overlay.dtbo \ blair-mtp-nopmi-overlay.dtbo \ blair-qrd-nopmi-overlay.dtbo blair-rumi-overlay.dtbo-base := blair.dtb blair-mtp-overlay.dtbo-base := blair.dtb blair-cdp-overlay.dtbo-base := blair.dtb blair-atp-overlay.dtbo-base := blair.dtb blair-qrd-overlay.dtbo-base := blair.dtb blair-mtp-usbc-overlay.dtbo-base := blair.dtb blair-mtp-nopmi-overlay.dtbo-base := blair.dtb blair-qrd-nopmi-overlay.dtbo-base := blair.dtb else dtb-$(CONFIG_ARCH_BLAIR) += blair-rumi.dtb \ blair-mtp.dtb \ blair-cdp.dtb \ blair-atp.dtb \ blair-qrd.dtb blair-qrd.dtb \ blair-mtp-usbc.dtb \ blair-mtp-nopmi.dtb \ blair-qrd-nopmi.dtb endif ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y) Loading qcom/blair-cdp-overlay.dts +5 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ qcom,msm-id = <507 0x10000>; qcom,board-id = <1 0>; }; &wsa881x_analog_reset_gpio { pinctrl-0 = <&spkr_1_sd_n_active>; pinctrl-1 = <&spkr_1_sd_n_sleep>; }; qcom/blair-cdp.dtsi +359 −7 Original line number Diff line number Diff line #include "holi-cdp-pm6125.dtsi" #include "holi-audio-overlay.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/linux-event-codes.h> #include "holi-pmic-overlay-pm6125.dtsi" #include "holi-thermal-overlay-pm6125.dtsi" #include "display/holi-sde-display-cdp-pm6125.dtsi" #include <dt-bindings/iio/qti_power_supply_iio.h> #include "display/blair-sde-display-cdp.dtsi" / { &pm6125_pwm { status = "ok"; }; &wcd938x_codec { cdc-vdd-rxtx-supply = <&L9A>; cdc-vddio-supply = <&L9A>; qcom,cdc-static-supplies = "cdc-vdd-rxtx", "cdc-vddio"; /* * Overriding cdc-vdd-mic-bias-supply to dummy value * to avoid compilation errors as BOB is not definied * for pm6125 */ cdc-vdd-mic-bias-supply = <>; }; &wcd937x_codec { cdc-vdd-rxtx-supply = <&L9A>; cdc-vddio-supply = <&L9A>; qcom,cdc-static-supplies = "cdc-vdd-rxtx", "cdc-vddpx"; /* * Overriding cdc-vdd-mic-bias-supply to dummy value * to avoid compilation errors as BOB is not definied * for pm6125 */ cdc-vdd-mic-bias-supply = <>; }; &wsa881x_i2c_e { cdc-vdd-1p8-supply = <&L9A>; }; &wsa881x_i2c_f { cdc-vdd-1p8-supply = <&L9A>; }; /* Dummy LDO reference */ &sdhc_1 { status = "ok"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc1_on>; pinctrl-1 = <&sdc1_off>; vdd-supply = <&L24A>; qcom,vdd-voltage-level = <2960000 2960000>; qcom,vdd-current-level = <0 570000>; vdd-io-supply = <&L11A>; qcom,vdd-io-always-on; qcom,vdd-io-lpm-sup; qcom,vdd-io-voltage-level = <1800000 1800000>; qcom,vdd-io-current-level = <0 325000>; }; &sdhc_2 { status = "ok"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_on>; pinctrl-1 = <&sdc2_off>; vdd-supply = <&L22A>; qcom,vdd-voltage-level = <2960000 2960000>; qcom,vdd-current-level = <0 800000>; vdd-io-supply = <&L5A>; qcom,vdd-io-voltage-level = <1800000 2960000>; qcom,vdd-io-current-level = <0 22000>; cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; }; &ufsphy_mem { compatible = "qcom,ufs-phy-qmp-v4-yupik"; vdda-phy-supply = <&L7A>; vdda-pll-supply = <&L4A>; vdda-phy-max-microamp = <85700>; vdda-pll-max-microamp = <18300>; status = "ok"; }; &pm6125_pwm { &ufshc_mem { vdd-hba-supply = <&gcc_ufs_phy_gdsc>; vdd-hba-fixed-regulator; vcc-supply = <&L24A>; vcc-voltage-level = <2950000 2960000>; vcc-max-microamp = <800000>; vccq2-supply = <&L11A>; vccq2-max-microamp = <800000>; vccq2-voltage-level = <1800000 1800000>; qcom,vddp-ref-clk-supply = <&L4A>; qcom,vddp-ref-clk-max-microamp = <100>; status = "ok"; }; &qupv3_se8_i2c { &qupv3_se0_i2c { status = "ok"; #address-cells = <1>; #size-cells = <0>; nq@28 { compatible = "qcom,sn-nci"; reg = <0x28>; qcom,sn-irq = <&tlmm 9 0x00>; qcom,sn-ven = <&tlmm 6 0x00>; qcom,sn-firm = <&tlmm 8 0x00>; qcom,sn-clkreq = <&tlmm 7 0x00>; qcom,sn-vdd-1p8-supply = <&L9A>; qcom,sn-vdd-1p8-voltage = <1800000 1800000>; qcom,sn-vdd-1p8-current = <157000>; interrupt-parent = <&tlmm>; interrupts = <9 0>; interrupt-names = "nfc_irq"; pinctrl-names = "nfc_active", "nfc_suspend"; pinctrl-0 = <&nfc_int_active &nfc_enable_active>; pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>; }; }; &soc { gpio_keys { compatible = "gpio-keys"; label = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&key_vol_up_default>; vol_up { label = "volume_up"; gpios = <&pmr735a_gpios 1 GPIO_ACTIVE_LOW>; linux,input-type = <1>; linux,code = <KEY_VOLUMEUP>; gpio-key,wakeup; debounce-interval = <15>; linux,can-disable; }; }; }; &pm7250b_charger { status = "ok"; #io-channel-cells = <1>; io-channels = <&pm7250b_vadc ADC5_USB_IN_V_16>, <&pm7250b_vadc ADC5_USB_IN_I>, <&pm7250b_vadc ADC5_CHG_TEMP>, <&pm7250b_vadc ADC5_DIE_TEMP>, <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>, <&pm7250b_vadc ADC5_SBUx>, <&pm7250b_vadc ADC5_VPH_PWR>, <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>, <&pm7250b_qg PSY_IIO_RESISTANCE_ID>, <&pm7250b_qg PSY_IIO_VOLTAGE_NOW>, <&pm7250b_qg PSY_IIO_TEMP>, <&pm7250b_qg PSY_IIO_CAPACITY>, <&pm7250b_qg PSY_IIO_VOLTAGE_OCV>, <&pm7250b_qg PSY_IIO_VOLTAGE_AVG>, <&pm7250b_qg PSY_IIO_DEBUG_BATTERY>, <&pm7250b_qg PSY_IIO_REAL_CAPACITY>, <&pm7250b_qg PSY_IIO_CC_SOC>, <&pm7250b_qg PSY_IIO_CURRENT_NOW>, <&pm7250b_qg PSY_IIO_VOLTAGE_MAX>, <&pm7250b_qg PSY_IIO_CHARGE_FULL>, <&pm7250b_qg PSY_IIO_CHARGE_COUNTER>, <&pm7250b_qg PSY_IIO_CYCLE_COUNT>, <&pm7250b_qg PSY_IIO_CHARGE_FULL_DESIGN>, <&pm7250b_qg PSY_IIO_TIME_TO_FULL_NOW>; io-channel-names = "usb_in_voltage", "usb_in_current", "chg_temp", "die_temp", "conn_temp", "sbux_res", "vph_voltage", "skin_temp", "resistance_id", "voltage_now", "temp", "capacity", "voltage_ocv", "voltage_avg", "debug_battery", "real_capacity", "cc_soc", "current_now", "voltage_max", "charge_full", "charge_counter", "cycle_count", "charge_full_design", "time_to_full_now"; qcom,batteryless-platform; qcom,sec-charger-config = <0>; qcom,auto-recharge-soc = <98>; qcom,step-charging-enable; qcom,sw-jeita-enable; qcom,charger-temp-max = <800>; qcom,smb-temp-max = <800>; qcom,suspend-input-on-debug-batt; }; &pm7250b_qg { status = "ok"; #io-channel-cells = <1>; io-channels = <&pm7250b_vadc ADC5_BAT_THERM_100K_PU>, <&pm7250b_vadc ADC5_BAT_ID_100K_PU>, <&pm7250b_charger PSY_IIO_INPUT_CURRENT_LIMITED>, <&pm7250b_charger PSY_IIO_RECHARGE_SOC>, <&pm7250b_charger PSY_IIO_FORCE_RECHARGE>, <&pm7250b_charger PSY_IIO_CHARGE_DONE>; io-channel-names = "batt-therm", "batt-id", "input_current_limited", "recharge_soc", "force_recharge", "charge_done"; qcom,qg-iterm-ma = <100>; qcom,hold-soc-while-full; qcom,linearize-soc; qcom,cl-feedback-on; qcom,vbatt-cutoff-mv = <3400>; qcom,vbatt-empty-mv = <3200>; qcom,vbatt-empty-cold-mv = <3100>; qcom,vbatt-low-mv = <3500>; qcom,fvss-vbatt-mv = <3500>; }; &soc { touch_avdd: touch_avdd_stub { /* * Touch eLDO controlled by gpio#53 is always ON. * Using dummy regulator. */ compatible = "qcom,stub-regulator"; regulator-name = "touch_avdd_stub"; qcom,hpm-min-load = <10000>; regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3544000>; }; }; &qupv3_se8_i2c { #address-cells = <1>; #size-cells = <0>; status = "okay"; qcom,i2c-touch-active="synaptics,tcm-i2c"; synaptics_tcm@20 { compatible = "synaptics,tcm-i2c"; reg = <0x20>; interrupt-parent = <&tlmm>; interrupts = <22 0x2008>; pinctrl-names = "pmx_ts_active","pmx_ts_suspend", "pmx_ts_release"; pinctrl-0 = <&ts_active>; pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; pinctrl-2 = <&pmx_ts_release>; vdd-supply = <&L9A>; avdd-supply = <&touch_avdd>; synaptics,pwr-reg-name = "avdd"; synaptics,bus-reg-name = "vdd"; synaptics,irq-gpio = <&tlmm 22 0x2008>; synaptics,irq-on-state = <0>; synaptics,reset-gpio = <&tlmm 21 0x00>; synaptics,reset-on-state = <0>; synaptics,reset-active-ms = <20>; synaptics,reset-delay-ms = <200>; synaptics,power-delay-ms = <200>; synaptics,ubl-i2c-addr = <0x20>; synaptics,extend_report; synaptics,firmware-name = "synaptics_firmware.img"; panel = <&dsi_rm69299_visionox_amoled_video &dsi_rm69299_visionox_amoled_cmd>; }; focaltech@38 { compatible = "focaltech,fts_ts"; reg = <0x38>; interrupt-parent = <&tlmm>; interrupts = <22 0x2008>; focaltech,reset-gpio = <&tlmm 21 0x00>; focaltech,irq-gpio = <&tlmm 22 0x2008>; focaltech,max-touch-number = <5>; focaltech,display-coords = <0 0 1080 2340>; vdd-supply = <&touch_avdd>; pinctrl-names = "pmx_ts_active", "pmx_ts_suspend", "pmx_ts_release"; pinctrl-0 = <&ts_active>; pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; pinctrl-2 = <&pmx_ts_release>; }; novatek@62 { compatible = "novatek,NVT-ts"; Loading @@ -40,3 +332,63 @@ &dsi_nt36672e_fhd_plus_144_video>; }; }; #include "camera/blair-camera-sensor-cdp.dtsi" &pm7250b_charger { dpdm-supply = <&qusb_phy0>; smb5_vbus: qcom,smb5-vbus { regulator-name = "smb5-vbus"; }; smb5_vconn: qcom,smb5-vconn { regulator-name = "smb5-vconn"; }; }; &pm7250b_pdphy { vdd-pdphy-supply = <&L3A>; vbus-supply = <&smb5_vbus>; vconn-supply = <&smb5_vconn>; #io-channel-cells = <1>; io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>, <&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>, <&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>, <&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>, <&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>, <&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>, <&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>, <&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>, <&pm7250b_charger PSY_IIO_PR_SWAP>, <&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>, <&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>, <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>, <&pm7250b_charger PSY_IIO_TYPEC_MODE>, <&pm7250b_charger PSY_IIO_PE_START>; io-channel-names = "pd_active", "typec_cc_orientation", "connector_type", "typec_power_role", "pd_usb_suspend_supported", "typec_src_rp", "pd_in_hard_reset", "pr_current_max", "pr_swap", "pd_voltage_min", "pd_voltage_max", "real_type", "typec_mode", "pe_start"; }; &usb0 { extcon = <&pm7250b_pdphy>, <&pm7250b_charger>, <&eud>; #io-channel-cells = <1>; io-channels= <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>; io-channel-names = "chg_type"; }; Loading
bindings/input/qcom-hv-haptics.txt +16 −9 Original line number Diff line number Diff line Loading @@ -18,13 +18,15 @@ Properties: Value type: <string> Definition: It can be one of following: "qcom,hv-haptics", "qcom,pm8350b-haptics". "qcom,pm8350b-haptics", "qcom,pm5100-haptics". - reg: Usage: required Value type: <prop-encoded-array> Definition: Register base for following haptics modules: HAPTICS_CFG, HAPTICS_PATTERN, HAPTICS_BOOST. HAPTICS_PATTERN, HAPTICS_BOOST. HAPTICS_BOOST register base is not applicable for PM5100. - interrupts: Usage: required Loading Loading @@ -76,9 +78,11 @@ Properties: Value type: <u32> Definition: Specifies the FIFO empty threshold. The "fifo-empty" IRQ will be triggered when the number of the samples in the FIFO is less than the threshold. For PM8350B v1, allowed value is 1 - 103 and the default value is 48. For PM8350B v2, allowed value is 1 - 639 and the default value is 280. than the threshold. For PM8350B v1, allowed value is 0 - 104 in multiple of 4 and the default value is 48. For PM8350B v2, allowed value is 0 - 640 in multiple of 40 and the default value is 280. For PM5100, allowed value is 0 - 1024 in multiple of 32 and the default value is 288. - qcom,use-erm: Usage: optional Loading @@ -91,33 +95,36 @@ Properties: Value type: <string> Definition: The nvmem cell name of the SDAM module where the closed-loop brake calibration settings can be stored. It must be "hap_cl_brake". "hap_cl_brake". Not applicable for PM5100. - nvmem-cells: Usage: optional Value type: <phandle> Definition: Phandle of the nvmem cell to store the closed-loop brake calibration settings. Please refer to nvmem bindings as described in bindings/nvmem/nvmem.txt. described in bindings/nvmem/nvmem.txt. Not applicable for PM5100. - nvmem-names: Usage: optional Value type: <string> Definition: The nvmem device name of the SDAM module used for haptics configuration. It must be "hap_cfg_sdam". configuration. It must be "hap_cfg_sdam". Not applicable for PM5100. - nvmem: Usage: optional Value type: <phandle> Definition: Phandle of the nvmem device used for haptics configuration. Please refer to nvmem bindings as described in bindings/nvmem/nvmem.txt. Not applicable for PM5100. - qcom,pbs-client: Usage: optional Value type: <phandle> Definition: Phandle of the PBS client used for triggering PBS to configure haptics ISC (short circuit current) config during LRA impedance detection. detection. Not applicable for PM5100. - qcom,hpwr-supply: Usage: optional Loading
bindings/soc/qcom/qcom,cx_ipeak.txt +20 −0 Original line number Diff line number Diff line Loading @@ -6,17 +6,37 @@ if it is going to cross its own threshold. If all clients are going to cross their thresholds then Cx ipeak hw module will raise an interrupt to cDSP block to throttle cDSP's fmax. There are SOC like SCUBA where Cx ipeak HW module raised interrupt will throttle frequency of other victim clients. Required properties: - #size-cells : Must be 1 - compatible : name of the component used for driver matching, should be one "qcom,cx-ipeak-v1", "qcom,cx-ipeak-v2" - reg : physical base address and length of the register set(s), SRAM and XPU of the component. Optional properties: - interrupts : Danger and Safe interrupts details having interrupt number and type of interrupt. - interrupt-names : Identifier names for Danger and Safe interrupts. - victims_table : Victim clients details having client ID, victim ID and limit frequency to be applied in case of danger interrupt. Example: cx_ipeak_lm: cx_ipeak@1fe5040 { #size-cells = <1>; compatible = "qcom,cx-ipeak-v1"; reg = <0x01fe5040 0x28>; interrupts = <0 415 IRQ_TYPE_EDGE_RISING>, <0 416 IRQ_TYPE_EDGE_RISING>; interrupt-names = "cx_ipeak_danger", "cx_ipeak_safe"; victims_table = <1 0 844800000>; };
qcom/Makefile +11 −2 Original line number Diff line number Diff line Loading @@ -144,19 +144,28 @@ dtbo-$(CONFIG_ARCH_BLAIR) += blair-rumi-overlay.dtbo \ blair-mtp-overlay.dtbo \ blair-cdp-overlay.dtbo \ blair-atp-overlay.dtbo \ blair-qrd-overlay.dtbo blair-qrd-overlay.dtbo \ blair-mtp-usbc-overlay.dtbo \ blair-mtp-nopmi-overlay.dtbo \ blair-qrd-nopmi-overlay.dtbo blair-rumi-overlay.dtbo-base := blair.dtb blair-mtp-overlay.dtbo-base := blair.dtb blair-cdp-overlay.dtbo-base := blair.dtb blair-atp-overlay.dtbo-base := blair.dtb blair-qrd-overlay.dtbo-base := blair.dtb blair-mtp-usbc-overlay.dtbo-base := blair.dtb blair-mtp-nopmi-overlay.dtbo-base := blair.dtb blair-qrd-nopmi-overlay.dtbo-base := blair.dtb else dtb-$(CONFIG_ARCH_BLAIR) += blair-rumi.dtb \ blair-mtp.dtb \ blair-cdp.dtb \ blair-atp.dtb \ blair-qrd.dtb blair-qrd.dtb \ blair-mtp-usbc.dtb \ blair-mtp-nopmi.dtb \ blair-qrd-nopmi.dtb endif ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y) Loading
qcom/blair-cdp-overlay.dts +5 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ qcom,msm-id = <507 0x10000>; qcom,board-id = <1 0>; }; &wsa881x_analog_reset_gpio { pinctrl-0 = <&spkr_1_sd_n_active>; pinctrl-1 = <&spkr_1_sd_n_sleep>; };
qcom/blair-cdp.dtsi +359 −7 Original line number Diff line number Diff line #include "holi-cdp-pm6125.dtsi" #include "holi-audio-overlay.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/linux-event-codes.h> #include "holi-pmic-overlay-pm6125.dtsi" #include "holi-thermal-overlay-pm6125.dtsi" #include "display/holi-sde-display-cdp-pm6125.dtsi" #include <dt-bindings/iio/qti_power_supply_iio.h> #include "display/blair-sde-display-cdp.dtsi" / { &pm6125_pwm { status = "ok"; }; &wcd938x_codec { cdc-vdd-rxtx-supply = <&L9A>; cdc-vddio-supply = <&L9A>; qcom,cdc-static-supplies = "cdc-vdd-rxtx", "cdc-vddio"; /* * Overriding cdc-vdd-mic-bias-supply to dummy value * to avoid compilation errors as BOB is not definied * for pm6125 */ cdc-vdd-mic-bias-supply = <>; }; &wcd937x_codec { cdc-vdd-rxtx-supply = <&L9A>; cdc-vddio-supply = <&L9A>; qcom,cdc-static-supplies = "cdc-vdd-rxtx", "cdc-vddpx"; /* * Overriding cdc-vdd-mic-bias-supply to dummy value * to avoid compilation errors as BOB is not definied * for pm6125 */ cdc-vdd-mic-bias-supply = <>; }; &wsa881x_i2c_e { cdc-vdd-1p8-supply = <&L9A>; }; &wsa881x_i2c_f { cdc-vdd-1p8-supply = <&L9A>; }; /* Dummy LDO reference */ &sdhc_1 { status = "ok"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc1_on>; pinctrl-1 = <&sdc1_off>; vdd-supply = <&L24A>; qcom,vdd-voltage-level = <2960000 2960000>; qcom,vdd-current-level = <0 570000>; vdd-io-supply = <&L11A>; qcom,vdd-io-always-on; qcom,vdd-io-lpm-sup; qcom,vdd-io-voltage-level = <1800000 1800000>; qcom,vdd-io-current-level = <0 325000>; }; &sdhc_2 { status = "ok"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_on>; pinctrl-1 = <&sdc2_off>; vdd-supply = <&L22A>; qcom,vdd-voltage-level = <2960000 2960000>; qcom,vdd-current-level = <0 800000>; vdd-io-supply = <&L5A>; qcom,vdd-io-voltage-level = <1800000 2960000>; qcom,vdd-io-current-level = <0 22000>; cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; }; &ufsphy_mem { compatible = "qcom,ufs-phy-qmp-v4-yupik"; vdda-phy-supply = <&L7A>; vdda-pll-supply = <&L4A>; vdda-phy-max-microamp = <85700>; vdda-pll-max-microamp = <18300>; status = "ok"; }; &pm6125_pwm { &ufshc_mem { vdd-hba-supply = <&gcc_ufs_phy_gdsc>; vdd-hba-fixed-regulator; vcc-supply = <&L24A>; vcc-voltage-level = <2950000 2960000>; vcc-max-microamp = <800000>; vccq2-supply = <&L11A>; vccq2-max-microamp = <800000>; vccq2-voltage-level = <1800000 1800000>; qcom,vddp-ref-clk-supply = <&L4A>; qcom,vddp-ref-clk-max-microamp = <100>; status = "ok"; }; &qupv3_se8_i2c { &qupv3_se0_i2c { status = "ok"; #address-cells = <1>; #size-cells = <0>; nq@28 { compatible = "qcom,sn-nci"; reg = <0x28>; qcom,sn-irq = <&tlmm 9 0x00>; qcom,sn-ven = <&tlmm 6 0x00>; qcom,sn-firm = <&tlmm 8 0x00>; qcom,sn-clkreq = <&tlmm 7 0x00>; qcom,sn-vdd-1p8-supply = <&L9A>; qcom,sn-vdd-1p8-voltage = <1800000 1800000>; qcom,sn-vdd-1p8-current = <157000>; interrupt-parent = <&tlmm>; interrupts = <9 0>; interrupt-names = "nfc_irq"; pinctrl-names = "nfc_active", "nfc_suspend"; pinctrl-0 = <&nfc_int_active &nfc_enable_active>; pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>; }; }; &soc { gpio_keys { compatible = "gpio-keys"; label = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&key_vol_up_default>; vol_up { label = "volume_up"; gpios = <&pmr735a_gpios 1 GPIO_ACTIVE_LOW>; linux,input-type = <1>; linux,code = <KEY_VOLUMEUP>; gpio-key,wakeup; debounce-interval = <15>; linux,can-disable; }; }; }; &pm7250b_charger { status = "ok"; #io-channel-cells = <1>; io-channels = <&pm7250b_vadc ADC5_USB_IN_V_16>, <&pm7250b_vadc ADC5_USB_IN_I>, <&pm7250b_vadc ADC5_CHG_TEMP>, <&pm7250b_vadc ADC5_DIE_TEMP>, <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>, <&pm7250b_vadc ADC5_SBUx>, <&pm7250b_vadc ADC5_VPH_PWR>, <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>, <&pm7250b_qg PSY_IIO_RESISTANCE_ID>, <&pm7250b_qg PSY_IIO_VOLTAGE_NOW>, <&pm7250b_qg PSY_IIO_TEMP>, <&pm7250b_qg PSY_IIO_CAPACITY>, <&pm7250b_qg PSY_IIO_VOLTAGE_OCV>, <&pm7250b_qg PSY_IIO_VOLTAGE_AVG>, <&pm7250b_qg PSY_IIO_DEBUG_BATTERY>, <&pm7250b_qg PSY_IIO_REAL_CAPACITY>, <&pm7250b_qg PSY_IIO_CC_SOC>, <&pm7250b_qg PSY_IIO_CURRENT_NOW>, <&pm7250b_qg PSY_IIO_VOLTAGE_MAX>, <&pm7250b_qg PSY_IIO_CHARGE_FULL>, <&pm7250b_qg PSY_IIO_CHARGE_COUNTER>, <&pm7250b_qg PSY_IIO_CYCLE_COUNT>, <&pm7250b_qg PSY_IIO_CHARGE_FULL_DESIGN>, <&pm7250b_qg PSY_IIO_TIME_TO_FULL_NOW>; io-channel-names = "usb_in_voltage", "usb_in_current", "chg_temp", "die_temp", "conn_temp", "sbux_res", "vph_voltage", "skin_temp", "resistance_id", "voltage_now", "temp", "capacity", "voltage_ocv", "voltage_avg", "debug_battery", "real_capacity", "cc_soc", "current_now", "voltage_max", "charge_full", "charge_counter", "cycle_count", "charge_full_design", "time_to_full_now"; qcom,batteryless-platform; qcom,sec-charger-config = <0>; qcom,auto-recharge-soc = <98>; qcom,step-charging-enable; qcom,sw-jeita-enable; qcom,charger-temp-max = <800>; qcom,smb-temp-max = <800>; qcom,suspend-input-on-debug-batt; }; &pm7250b_qg { status = "ok"; #io-channel-cells = <1>; io-channels = <&pm7250b_vadc ADC5_BAT_THERM_100K_PU>, <&pm7250b_vadc ADC5_BAT_ID_100K_PU>, <&pm7250b_charger PSY_IIO_INPUT_CURRENT_LIMITED>, <&pm7250b_charger PSY_IIO_RECHARGE_SOC>, <&pm7250b_charger PSY_IIO_FORCE_RECHARGE>, <&pm7250b_charger PSY_IIO_CHARGE_DONE>; io-channel-names = "batt-therm", "batt-id", "input_current_limited", "recharge_soc", "force_recharge", "charge_done"; qcom,qg-iterm-ma = <100>; qcom,hold-soc-while-full; qcom,linearize-soc; qcom,cl-feedback-on; qcom,vbatt-cutoff-mv = <3400>; qcom,vbatt-empty-mv = <3200>; qcom,vbatt-empty-cold-mv = <3100>; qcom,vbatt-low-mv = <3500>; qcom,fvss-vbatt-mv = <3500>; }; &soc { touch_avdd: touch_avdd_stub { /* * Touch eLDO controlled by gpio#53 is always ON. * Using dummy regulator. */ compatible = "qcom,stub-regulator"; regulator-name = "touch_avdd_stub"; qcom,hpm-min-load = <10000>; regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3544000>; }; }; &qupv3_se8_i2c { #address-cells = <1>; #size-cells = <0>; status = "okay"; qcom,i2c-touch-active="synaptics,tcm-i2c"; synaptics_tcm@20 { compatible = "synaptics,tcm-i2c"; reg = <0x20>; interrupt-parent = <&tlmm>; interrupts = <22 0x2008>; pinctrl-names = "pmx_ts_active","pmx_ts_suspend", "pmx_ts_release"; pinctrl-0 = <&ts_active>; pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; pinctrl-2 = <&pmx_ts_release>; vdd-supply = <&L9A>; avdd-supply = <&touch_avdd>; synaptics,pwr-reg-name = "avdd"; synaptics,bus-reg-name = "vdd"; synaptics,irq-gpio = <&tlmm 22 0x2008>; synaptics,irq-on-state = <0>; synaptics,reset-gpio = <&tlmm 21 0x00>; synaptics,reset-on-state = <0>; synaptics,reset-active-ms = <20>; synaptics,reset-delay-ms = <200>; synaptics,power-delay-ms = <200>; synaptics,ubl-i2c-addr = <0x20>; synaptics,extend_report; synaptics,firmware-name = "synaptics_firmware.img"; panel = <&dsi_rm69299_visionox_amoled_video &dsi_rm69299_visionox_amoled_cmd>; }; focaltech@38 { compatible = "focaltech,fts_ts"; reg = <0x38>; interrupt-parent = <&tlmm>; interrupts = <22 0x2008>; focaltech,reset-gpio = <&tlmm 21 0x00>; focaltech,irq-gpio = <&tlmm 22 0x2008>; focaltech,max-touch-number = <5>; focaltech,display-coords = <0 0 1080 2340>; vdd-supply = <&touch_avdd>; pinctrl-names = "pmx_ts_active", "pmx_ts_suspend", "pmx_ts_release"; pinctrl-0 = <&ts_active>; pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; pinctrl-2 = <&pmx_ts_release>; }; novatek@62 { compatible = "novatek,NVT-ts"; Loading @@ -40,3 +332,63 @@ &dsi_nt36672e_fhd_plus_144_video>; }; }; #include "camera/blair-camera-sensor-cdp.dtsi" &pm7250b_charger { dpdm-supply = <&qusb_phy0>; smb5_vbus: qcom,smb5-vbus { regulator-name = "smb5-vbus"; }; smb5_vconn: qcom,smb5-vconn { regulator-name = "smb5-vconn"; }; }; &pm7250b_pdphy { vdd-pdphy-supply = <&L3A>; vbus-supply = <&smb5_vbus>; vconn-supply = <&smb5_vconn>; #io-channel-cells = <1>; io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>, <&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>, <&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>, <&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>, <&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>, <&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>, <&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>, <&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>, <&pm7250b_charger PSY_IIO_PR_SWAP>, <&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>, <&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>, <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>, <&pm7250b_charger PSY_IIO_TYPEC_MODE>, <&pm7250b_charger PSY_IIO_PE_START>; io-channel-names = "pd_active", "typec_cc_orientation", "connector_type", "typec_power_role", "pd_usb_suspend_supported", "typec_src_rp", "pd_in_hard_reset", "pr_current_max", "pr_swap", "pd_voltage_min", "pd_voltage_max", "real_type", "typec_mode", "pe_start"; }; &usb0 { extcon = <&pm7250b_pdphy>, <&pm7250b_charger>, <&eud>; #io-channel-cells = <1>; io-channels= <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>; io-channel-names = "chg_type"; };