// SPDX-License-Identifier: (GPL-2.0 OR MIT) /* * Copyright (c) 2020 MediaTek Inc. */ #include &pwrap { pmic: mt6359 { compatible = "mediatek,mt6359"; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&pio>; interrupts = <222 IRQ_TYPE_LEVEL_HIGH>; accdet: accdet { compatible = "mediatek,mt6359-accdet"; accdet-name = "mt63xx-accdet"; accdet-mic-vol = <8>; accdet-plugout-debounce = <1>; accdet-mic-mode = <2>; eint_use_ext_res = <0>; headset-mode-setting = <0x500 0x500 1 0x1f0 0x800 0x800 0x20 0x44 0x4 0x1 0x5 0x3 0x3 0x5 0xe>; headset-use-ap-eint = <0>; headset-eint-num = <0>; headset-eint-trig-mode = <1>; headset-eint-level-pol = <4>; headset-key-mode = <0>; headset-three-key-threshold = <0 80 220 400>; headset-three-key-threshold-CDD = <0 121 192 600>; headset-four-key-threshold = <0 58 121 192 400>; io-channels = <&pmic_auxadc AUXADC_ACCDET>; io-channel-names = "pmic_accdet"; nvmem = <&pmic_efuse>; nvmem-names = "mt63xx-accdet-efuse"; status = "okay"; }; mt63xx_debug { compatible = "mediatek,mt63xx-debug"; }; mt63xx-oc-debug { compatible = "mediatek,mt63xx-oc-debug"; }; mtk_gauge: mtk_gauge { compatible = "mediatek,mt6359p-gauge"; io-channels = <&pmic_auxadc AUXADC_BAT_TEMP>, <&pmic_auxadc AUXADC_BATADC>, <&pmic_auxadc AUXADC_VBIF>, <&pmic_auxadc AUXADC_IMP>, <&pmic_auxadc AUXADC_IMIX_R>; io-channel-names = "pmic_battery_temp", "pmic_battery_voltage", "pmic_bif_voltage", "pmic_ptim_voltage", "pmic_ptim_r"; nvmem-cells = <&fg_init>, <&fg_soc>; nvmem-cell-names = "initialization", "state-of-charge"; }; pmic_auxadc: mt635x-auxadc { compatible = "mediatek,mt6359-auxadc"; #io-channel-cells = <1>; batadc { channel = ; resistance-ratio = <7 2>; avg-num = <128>; }; bat_temp { channel = ; resistance-ratio = <5 2>; }; chip_temp { channel = ; }; vcore_temp { channel = ; }; vproc_temp { channel = ; }; vgpu_temp { channel = ; }; accdet { channel = ; }; dcxo_volt { channel = ; resistance-ratio = <3 2>; }; tsx_temp { channel = ; avg-num = <128>; }; hpofs_cal { channel = ; avg-num = <256>; }; dcxo_temp { channel = ; avg-num = <16>; }; vbif { channel = ; resistance-ratio = <5 2>; }; imp { channel = ; resistance-ratio = <7 2>; avg-num = <128>; }; imix_r { channel = ; }; }; mt6359codec: mt6359codec { mediatek,dmic-mode = <0>; /* 2-wire */ mediatek,mic-type-0 = <0>; /* Idle */ mediatek,mic-type-1 = <0>; /* Idle */ mediatek,mic-type-2 = <0>; /* Idle */ }; mt6359rtc: mt6359rtc { compatible = "mediatek,mt6359-rtc"; #address-cells = <1>; #size-cells = <1>; bootmode = <&chosen>; fg_init: fg_init { reg = <0 0x1>; bits = <0 8>; }; fg_soc: fg_soc { reg = <1 0x1>; bits = <0 8>; }; ext_32k: ext_32k { reg = <2 0x1>; bits = <6 1>; }; }; clock_buffer_ctrl: clock_buffer_ctrl { compatible = "mediatek,clock_buffer"; n-clkbuf-pmic-dependent = <7>; clkbuf-pmic-dependent = "pmic-bblplm-hw", "pmic-bblpm-sel", "pmic-ldo-vrfck", "pmic-ldo-vbbck", "pmic-auxout-sel", "pmic-auxout-xo", "pmic-auxout-bblpm-en"; pmic-dcxo-cw = <0x788>; pmic-xo-mode = <0x788 0 0x788 3 0x788 6 0x788 9 0xffff 0xffff 0x79e 9 0x79e 12>; pmic-xo-en = <0x788 2 0x788 5 0x788 8 0x788 11 0xffff 0xffff 0x79e 11 0x79e 14>; pmic-bblpm-sw = <0x788 12>; pmic-srclkeni3 = <0x458 0>; n-pmic-bblplm-hw = <7>; pmic-bblplm-hw = <0x7a8 1 0x7a8 2 0x7a8 3 0x7a8 4 0xffff 0xffff 0x7a8 5 0x7a8 6>; n-pmic-bblpm-sel = <1>; pmic-bblpm-sel = <0x7a8 0>; n-pmic-ldo-vrfck = <2>; pmic-ldo-vrfck = <0x1d1a 0 0x1d1e 14>; n-pmic-ldo-vbbck = <2>; pmic-ldo-vbbck = <0x1d2a 0 0x1d2e 14>; n-pmic-auxout-sel = <4>; pmic-auxout-sel = <0x7b0 0 0x7b0 6 0x7b0 27 0x7b0 39>; n-pmic-auxout-xo = <7>; pmic-auxout-xo = <0x7b2 13 0x7b2 11 0x7b2 9 0x7b2 7 0xffff 0xffff 0x7b2 5 0x7b2 3>; n-pmic-auxout-bblpm-en = <1>; pmic-auxout-bblpm-en = <0x7b2 0>; }; mt6359regulator: mt6359regulator { compatible = "mediatek,mt6359-regulator"; mt6359_vs1_reg: buck_vs1 { regulator-name = "vs1"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <2200000>; regulator-enable-ramp-delay = <0>; regulator-always-on; }; mt6359_vgpu11_reg: buck_vgpu11 { regulator-name = "vgpu11"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1193750>; regulator-ramp-delay = <5000>; regulator-enable-ramp-delay = <200>; regulator-allowed-modes = <0 1 2>; regulator-always-on; }; mt6359_vmodem_reg: buck_vmodem { regulator-name = "vmodem"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1100000>; regulator-ramp-delay = <10760>; regulator-enable-ramp-delay = <200>; }; mt6359_vpu_reg: buck_vpu { regulator-name = "vpu"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1193750>; regulator-ramp-delay = <5000>; regulator-enable-ramp-delay = <200>; regulator-allowed-modes = <0 1 2>; regulator-always-on; }; mt6359_vcore_reg: buck_vcore { regulator-name = "vcore"; regulator-min-microvolt = <506250>; regulator-max-microvolt = <1300000>; regulator-ramp-delay = <5000>; regulator-enable-ramp-delay = <200>; regulator-allowed-modes = <0 1 2>; regulator-always-on; }; mt6359_vs2_reg: buck_vs2 { regulator-name = "vs2"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1600000>; regulator-enable-ramp-delay = <0>; regulator-always-on; }; mt6359_vpa_reg: buck_vpa { regulator-name = "vpa"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <3650000>; regulator-enable-ramp-delay = <300>; }; mt6359_vproc2_reg: buck_vproc2 { regulator-name = "vproc2"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1193750>; regulator-ramp-delay = <7500>; regulator-enable-ramp-delay = <200>; regulator-allowed-modes = <0 1 2>; }; mt6359_vproc1_reg: buck_vproc1 { regulator-name = "vproc1"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1193750>; regulator-ramp-delay = <7500>; regulator-enable-ramp-delay = <200>; regulator-allowed-modes = <0 1 2>; }; mt6359_vgpu11_sshub_reg: buck_vgpu11_sshub { regulator-name = "vgpu11_sshub"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1193750>; }; mt6359_vaud18_reg: ldo_vaud18 { regulator-name = "vaud18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-enable-ramp-delay = <240>; }; mt6359_vsim1_reg: ldo_vsim1 { regulator-name = "vsim1"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <3100000>; regulator-enable-ramp-delay = <480>; }; mt6359_vibr_reg: ldo_vibr { regulator-name = "vibr"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <3300000>; regulator-enable-ramp-delay = <240>; }; mt6359_vrf12_reg: ldo_vrf12 { regulator-name = "vrf12"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1300000>; regulator-enable-ramp-delay = <480>; regulator-always-on; }; mt6359_vusb_reg: ldo_vusb { regulator-name = "vusb"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-enable-ramp-delay = <960>; regulator-always-on; }; mt6359_vsram_proc2_reg: ldo_vsram_proc2 { regulator-name = "vsram_proc2"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1293750>; regulator-ramp-delay = <7500>; regulator-enable-ramp-delay = <240>; regulator-always-on; }; mt6359_vio18_reg: ldo_vio18 { regulator-name = "vio18"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <1900000>; regulator-enable-ramp-delay = <960>; regulator-always-on; }; mt6359_vcamio_reg: ldo_vcamio { regulator-name = "vcamio"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <1900000>; regulator-enable-ramp-delay = <1920>; }; mt6359_vcn18_reg: ldo_vcn18 { regulator-name = "vcn18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-enable-ramp-delay = <240>; }; mt6359_vfe28_reg: ldo_vfe28 { regulator-name = "vfe28"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-enable-ramp-delay = <120>; }; mt6359_vcn13_reg: ldo_vcn13 { regulator-name = "vcn13"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1300000>; regulator-enable-ramp-delay = <240>; }; mt6359_vcn33_1_bt_reg: ldo_vcn33_1_bt { regulator-name = "vcn33_1_bt"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3500000>; regulator-enable-ramp-delay = <240>; }; mt6359_vcn33_1_wifi_reg: ldo_vcn33_1_wifi { regulator-name = "vcn33_1_wifi"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3500000>; regulator-enable-ramp-delay = <240>; }; mt6359_vaux18_reg: ldo_vaux18 { regulator-name = "vaux18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-enable-ramp-delay = <240>; regulator-always-on; }; mt6359_vsram_others_reg: ldo_vsram_others { regulator-name = "vsram_others"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1293750>; regulator-ramp-delay = <5000>; regulator-enable-ramp-delay = <240>; }; mt6359_vefuse_reg: ldo_vefuse { regulator-name = "vefuse"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <2000000>; regulator-enable-ramp-delay = <240>; }; mt6359_vxo22_reg: ldo_vxo22 { regulator-name = "vxo22"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2200000>; regulator-enable-ramp-delay = <480>; regulator-always-on; }; mt6359_vrfck_reg: ldo_vrfck { regulator-name = "vrfck"; regulator-min-microvolt = <1240000>; regulator-max-microvolt = <1600000>; regulator-enable-ramp-delay = <480>; }; mt6359_vbif28_reg: ldo_vbif28 { regulator-name = "vbif28"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-enable-ramp-delay = <240>; }; mt6359_vio28_reg: ldo_vio28 { regulator-name = "vio28"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3300000>; regulator-enable-ramp-delay = <1920>; }; mt6359_vemc_reg: ldo_vemc_1 { regulator-name = "vemc"; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <3300000>; regulator-enable-ramp-delay = <240>; regulator-always-on; }; mt6359_vcn33_2_bt_reg: ldo_vcn33_2_bt { regulator-name = "vcn33_2_bt"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3500000>; regulator-enable-ramp-delay = <240>; }; mt6359_vcn33_2_wifi_reg: ldo_vcn33_2_wifi { regulator-name = "vcn33_2_wifi"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3500000>; regulator-enable-ramp-delay = <240>; }; mt6359_va12_reg: ldo_va12 { regulator-name = "va12"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1300000>; regulator-enable-ramp-delay = <960>; regulator-always-on; }; mt6359_va09_reg: ldo_va09 { regulator-name = "va09"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1200000>; regulator-enable-ramp-delay = <960>; }; mt6359_vrf18_reg: ldo_vrf18 { regulator-name = "vrf18"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <1810000>; regulator-enable-ramp-delay = <240>; }; mt6359_vsram_md_reg: ldo_vsram_md { regulator-name = "vsram_md"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1293750>; regulator-ramp-delay = <10760>; regulator-enable-ramp-delay = <240>; }; mt6359_vufs_reg: ldo_vufs { regulator-name = "vufs"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <1900000>; regulator-enable-ramp-delay = <1920>; regulator-allowed-modes = <0 1>; regulator-always-on; }; mt6359_vm18_reg: ldo_vm18 { regulator-name = "vm18"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <1900000>; regulator-enable-ramp-delay = <1920>; }; mt6359_vbbck_reg: ldo_vbbck { regulator-name = "vbbck"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1200000>; regulator-enable-ramp-delay = <480>; regulator-always-on; }; mt6359_vsram_proc1_reg: ldo_vsram_proc1 { regulator-name = "vsram_proc1"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1293750>; regulator-ramp-delay = <7500>; regulator-enable-ramp-delay = <240>; regulator-always-on; }; mt6359_vsim2_reg: ldo_vsim2 { regulator-name = "vsim2"; regulator-min-microvolt = <1700000>; regulator-max-microvolt = <3100000>; regulator-enable-ramp-delay = <480>; }; mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub { regulator-name = "vsram_others_sshub"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1193750>; }; }; pmic_efuse: pmic_efuse { compatible = "mediatek,mt6359-efuse"; #address-cells = <1>; #size-cells = <1>; thermal_efuse_data1: e_data1 { reg = <0x3e 10>; }; }; pmic_key: pmic_key { compatible = "mediatek,mt6359-keys"; mediatek,long-press-mode = <1>; power-off-time-sec = <0>; power_key{ linux,keycodes = <116>; wakeup-source; }; home_key{ linux,keycodes = <114>; wakeup-source; }; }; }; };