&pm660_0 { pm660_charger: qcom,qpnp-smb2 { compatible = "qcom,qpnp-smb2"; #address-cells = <1>; #size-cells = <1>; #cooling-cells = <2>; qcom,pmic-revid = <&pm660_revid>; qcom,qcs605-ipc-wa; io-channels = <&pm660_rradc 8>, <&pm660_rradc 10>, <&pm660_rradc 3>, <&pm660_rradc 4>; io-channel-names = "charger_temp", "charger_temp_max", "usbin_i", "usbin_v"; qcom,wipower-max-uw = <5000000>; dpdm-supply = <&qusb_phy0>; qcom,thermal-mitigation = <3000000 2500000 2000000 1500000 1000000 500000>; qcom,auto-recharge-soc; qcom,chgr@1000 { reg = <0x1000 0x100>; interrupts = <0x0 0x10 0x0 IRQ_TYPE_EDGE_RISING>, <0x0 0x10 0x1 IRQ_TYPE_EDGE_RISING>, <0x0 0x10 0x2 IRQ_TYPE_EDGE_RISING>, <0x0 0x10 0x3 IRQ_TYPE_EDGE_RISING>, <0x0 0x10 0x4 IRQ_TYPE_EDGE_RISING>; interrupt-names = "chg-error", "chg-state-change", "step-chg-state-change", "step-chg-soc-update-fail", "step-chg-soc-update-request"; }; qcom,otg@1100 { reg = <0x1100 0x100>; interrupts = <0x0 0x11 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x11 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x11 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x11 0x3 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "otg-fail", "otg-overcurrent", "otg-oc-dis-sw-sts", "testmode-change-detect"; }; qcom,bat-if@1200 { reg = <0x1200 0x100>; interrupts = <0x0 0x12 0x0 IRQ_TYPE_EDGE_RISING>, <0x0 0x12 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x12 0x3 IRQ_TYPE_EDGE_BOTH>, <0x0 0x12 0x4 IRQ_TYPE_EDGE_BOTH>, <0x0 0x12 0x5 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "bat-temp", "bat-ocp", "bat-ov", "bat-low", "bat-therm-or-id-missing", "bat-terminal-missing"; }; qcom,usb-chgpth@1300 { reg = <0x1300 0x100>; interrupts = <0x0 0x13 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x13 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x13 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x13 0x3 IRQ_TYPE_EDGE_BOTH>, <0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>, <0x0 0x13 0x5 IRQ_TYPE_EDGE_RISING>, <0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>, <0x0 0x13 0x7 IRQ_TYPE_EDGE_RISING>; interrupt-names = "usbin-collapse", "usbin-lt-3p6v", "usbin-uv", "usbin-ov", "usbin-plugin", "usbin-src-change", "usbin-icl-change", "type-c-change"; }; qcom,dc-chgpth@1400 { reg = <0x1400 0x100>; interrupts = <0x0 0x14 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x3 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x4 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x5 IRQ_TYPE_EDGE_BOTH>, <0x0 0x14 0x6 IRQ_TYPE_EDGE_RISING>; interrupt-names = "dcin-collapse", "dcin-lt-3p6v", "dcin-uv", "dcin-ov", "dcin-plugin", "div2-en-dg", "dcin-icl-change"; }; qcom,chgr-misc@1600 { reg = <0x1600 0x100>; interrupts = <0x0 0x16 0x0 IRQ_TYPE_EDGE_RISING>, <0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>, <0x0 0x16 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x16 0x3 IRQ_TYPE_EDGE_BOTH>, <0x0 0x16 0x4 IRQ_TYPE_EDGE_BOTH>, <0x0 0x16 0x5 IRQ_TYPE_EDGE_BOTH>, <0x0 0x16 0x6 IRQ_TYPE_EDGE_FALLING>, <0x0 0x16 0x7 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "wdog-snarl", "wdog-bark", "aicl-fail", "aicl-done", "high-duty-cycle", "input-current-limiting", "temperature-change", "switcher-power-ok"; }; smb2_vbus: qcom,smb2-vbus { regulator-name = "smb2-vbus"; }; smb2_vconn: qcom,smb2-vconn { regulator-name = "smb2-vconn"; }; }; pm660_rradc: rradc@4500 { reg = <0x4500 0x100>; #address-cells = <1>; #size-cells = <0>; #io-channel-cells = <1>; qcom,pmic-revid = <&pm660_revid>; }; pm660_fg: qpnp,fg { compatible = "qcom,fg-gen3"; #address-cells = <1>; #size-cells = <1>; qcom,pmic-revid = <&pm660_revid>; io-channels = <&pm660_rradc 0>, <&pm660_rradc 7>; io-channel-names = "rradc_batt_id", "rradc_die_temp"; qcom,rradc-base = <0x4500>; qcom,fg-esr-timer-awake = <64 96>; qcom,fg-esr-timer-asleep = <224 256>; qcom,fg-esr-timer-charging = <0 96>; qcom,cycle-counter-en; qcom,hold-soc-while-full; qcom,fg-auto-recharge-soc; qcom,fg-recharge-soc-thr = <98>; status = "okay"; qcom,fg-batt-soc@4000 { status = "okay"; reg = <0x4000 0x100>; interrupts = <0x0 0x40 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x40 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x40 0x2 IRQ_TYPE_EDGE_RISING>, <0x0 0x40 0x3 IRQ_TYPE_EDGE_RISING>, <0x0 0x40 0x4 IRQ_TYPE_EDGE_BOTH>, <0x0 0x40 0x5 IRQ_TYPE_EDGE_RISING>, <0x0 0x40 0x6 IRQ_TYPE_EDGE_BOTH>, <0x0 0x40 0x7 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "soc-update", "soc-ready", "bsoc-delta", "msoc-delta", "msoc-low", "msoc-empty", "msoc-high", "msoc-full"; }; qcom,fg-batt-info@4100 { status = "okay"; reg = <0x4100 0x100>; interrupts = <0x0 0x41 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x41 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x41 0x2 IRQ_TYPE_EDGE_BOTH>, <0x0 0x41 0x3 IRQ_TYPE_EDGE_BOTH>, <0x0 0x41 0x6 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "vbatt-pred-delta", "vbatt-low", "esr-delta", "batt-missing", "batt-temp-delta"; }; qcom,fg-memif@4400 { status = "okay"; reg = <0x4400 0x100>; interrupts = <0x0 0x44 0x0 IRQ_TYPE_EDGE_BOTH>, <0x0 0x44 0x1 IRQ_TYPE_EDGE_BOTH>, <0x0 0x44 0x2 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "ima-rdy", "mem-xcp", "dma-grant"; }; }; }; &pm660_1 { pm660_haptics: qcom,haptics@c000 { reg = <0xc000 0x100>; interrupts = <0x1 0xc0 0x0 IRQ_TYPE_EDGE_BOTH>, <0x1 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hap-sc-irq", "hap-play-irq"; qcom,pmic-revid = <&pm660_revid>; qcom,pmic-misc = <&pm660_misc>; qcom,misc-clk-trim-error-reg = <0xf3>; qcom,actuator-type = <0>; qcom,play-mode = "direct"; qcom,vmax-mv = <3200>; qcom,ilim-ma = <800>; qcom,sc-dbc-cycles = <8>; qcom,wave-play-rate-us = <6667>; qcom,en-brake; qcom,lra-high-z = "opt0"; qcom,lra-auto-res-mode = "qwd"; qcom,lra-res-cal-period = <4>; }; }; &pm660_pdphy { vdd-pdphy-supply = <&pm660_l17>; vbus-supply = <&smb2_vbus>; vconn-supply = <&smb2_vconn>; }; &usb0 { extcon = <&pm660_pdphy>, <&pm660_pdphy>, <&eud>, <&pm660_charger>, <&pm660_charger>; vbus_dwc3-supply = <&smb2_vbus>; };