303 lines
8.4 KiB
Plaintext
303 lines
8.4 KiB
Plaintext
|
// SPDX-License-Identifier: GPL-2.0+
|
||
|
/*
|
||
|
* Copyright (c) 2019 MediaTek Inc.
|
||
|
* Author: Owen Chen <owen.chen@mediatek.com>
|
||
|
*/
|
||
|
|
||
|
/ {
|
||
|
mt6370_pmu: mt6370_pmu_dts {
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <1>;
|
||
|
mt6370,intr_gpio_num = <3>; /* direct defined GPIO num */
|
||
|
mt6370,intr_gpio = <&pio 3 0x0>; /* GPIO */
|
||
|
core {
|
||
|
compatible = "mediatek,mt6370_pmu_core";
|
||
|
interrupt-names = "otp", "vdda_ovp", "vdda_uv";
|
||
|
/* i2cstmr_rst_en; *//* i2c safe timer reset function */
|
||
|
i2cstmr_rst_tmr = <0>; /* 0: 0.5s, 1: 0.75s */
|
||
|
/* 2: 1s, 3: 2s */
|
||
|
mrstb_en; /* external reset pin enable */
|
||
|
mrstb_tmr = <3>; /* 0: 0.75ms, 1: 1ms, 2: 1.25ms, */
|
||
|
/* 3: 1.5ms, 4: 1.75ms, 5: 2ms, */
|
||
|
/* 6: 2.25ms, 7: 2.5ms */
|
||
|
int_wdt = <0>; /* 0: disable, 1: 250ms */
|
||
|
/* 2: 500ms, 3: 1s */
|
||
|
int_deg = <0>; /* interrupt deglitch */
|
||
|
/* 0: 1ms, 1: 2ms, 2: 5ms, 3: 10ms */
|
||
|
};
|
||
|
mt6370_chg: charger {
|
||
|
compatible = "mediatek,mt6370_pmu_charger";
|
||
|
interrupt-names = "chg_mivr", "chg_aiclmeasi",
|
||
|
"attachi", "ovpctrl_uvp_d_evt", "chg_wdtmri",
|
||
|
"chg_vbusov", "chg_tmri", "chg_treg", "dcdti";
|
||
|
bootmode = <&chosen>;
|
||
|
charger_name = "primary_chg";
|
||
|
load_switch_name = "primary_load_switch";
|
||
|
ichg = <2000000>; /* uA */
|
||
|
aicr = <500000>; /* uA */
|
||
|
mivr = <4400000>; /* uV */
|
||
|
cv = <4350000>; /* uA */
|
||
|
ieoc = <150000>; /* uA */
|
||
|
safety_timer = <12>; /* hour */
|
||
|
dc_wdt = <4000000>; /* us */
|
||
|
ircmp_resistor = <25000>; /* uohm */
|
||
|
ircmp_vclamp = <32000>; /* uV */
|
||
|
enable_te;
|
||
|
enable_wdt;
|
||
|
enable_otg_wdt;
|
||
|
lbp_hys_sel = <1>; /* 0: 100mV, 1: 200mV */
|
||
|
lbp_dt = <1>; /* 0: 10ms, 1: 20ms */
|
||
|
/* 2: 40ms, 3: 500us */
|
||
|
/* with it: don't check 1.2v while PD/SD during BC12 */
|
||
|
/* disable_vlgc; */
|
||
|
/* with it: enable fast unknown TA detection */
|
||
|
/* fast_unknown_ta_dect; */
|
||
|
/* enable_polling; */
|
||
|
/* with it: do post aicl measure */
|
||
|
/* post_aicl; */
|
||
|
charger = <&mt6370_chg>;
|
||
|
bc12_sel = <0>;
|
||
|
otg_vbus: usb-otg-vbus {
|
||
|
regulator-compatible = "usb-otg-vbus";
|
||
|
regulator-name = "usb-otg-vbus";
|
||
|
regulator-min-microvolt = <4350000>;
|
||
|
regulator-max-microvolt = <5800000>;
|
||
|
regulator-min-microamp = <500000>;
|
||
|
regulator-max-microamp = <3000000>;
|
||
|
};
|
||
|
};
|
||
|
mt6370_pmu_fled1 {
|
||
|
compatible = "mediatek,mt6370_pmu_fled1";
|
||
|
interrupt-names = "fled_lvf", "fled2_short",
|
||
|
"fled1_short";
|
||
|
fled_enable = <1>;
|
||
|
torch_cur = <300000>; /* 25000 ~ 400000 uA */
|
||
|
strobe_cur = <1200000>; /* 100000 ~ 1500000 uA */
|
||
|
strobe_timeout = <2400>; /* 64 ~ 2432 ms */
|
||
|
};
|
||
|
mt6370_pmu_fled2 {
|
||
|
compatible = "mediatek,mt6370_pmu_fled2";
|
||
|
fled_enable = <1>;
|
||
|
torch_cur = <200000>;
|
||
|
strobe_cur = <1000000>;
|
||
|
strobe_timeout = <1200>;
|
||
|
};
|
||
|
ldo {
|
||
|
compatible = "mediatek,mt6370_pmu_ldo";
|
||
|
interrupt-names = "ldo_oc";
|
||
|
|
||
|
/* 0: floating */
|
||
|
/* 1: discharge to ground for off mode */
|
||
|
ldo_oms = <1>;
|
||
|
/* ldo_vrc = <0>; */ /* to assign this, a value */
|
||
|
/* will also set vrc_en = 1 */
|
||
|
/* 0: 1 step/16us */
|
||
|
/* 1: 2 steps/16us */
|
||
|
/* 2: 4 steps/16us */
|
||
|
/* 3: 8 steps/16us */
|
||
|
ldo_vrc_lt = <1>; /* 0: disable, 1: 10us */
|
||
|
/* 2: 20us, 3: 40us */
|
||
|
mt6370_ldo {
|
||
|
/* change name by yourself */
|
||
|
regulator-name = "irtx_ldo";
|
||
|
regulator-min-microvolt = <1600000>;
|
||
|
|
||
|
/* max == min then apply_uV = 1 */
|
||
|
regulator-max-microvolt = <4000000>;
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-microvolt-offset = <0>; */
|
||
|
|
||
|
/* optional: exist = enabled */
|
||
|
/* regulator-boot-on; */
|
||
|
|
||
|
/* optional: exist = enabled */
|
||
|
/* regulator-always-on; */
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-ramp-delay = <100>; */
|
||
|
};
|
||
|
};
|
||
|
rgbled {
|
||
|
compatible = "mediatek,mt6370_pmu_rgbled";
|
||
|
interrupt-names = "isink4_short", "isink3_short",
|
||
|
"isink2_short", "isink1_short",
|
||
|
"isink4_open", "isink3_open",
|
||
|
"isink2_open", "isink1_open";
|
||
|
/* name cnt must be 4 */
|
||
|
mt,led_name = "mt6370_pmu_led1", "mt6370_pmu_led2",
|
||
|
"mt6370_pmu_led3", "mt6370_pmu_led4";
|
||
|
/* trigger cnt must be 4, mode can be selected as */
|
||
|
/* cc_mode -> const current mode */
|
||
|
/* pwm_mode -> pwm dimming mode */
|
||
|
/* breath_mode -> as the name */
|
||
|
mt,led_default_trigger = "cc_mode", "cc_mode",
|
||
|
"cc_mode", "none";
|
||
|
};
|
||
|
bled {
|
||
|
compatible = "mediatek,mt6370_pmu_bled";
|
||
|
interrupt-names = "bled_ocp";
|
||
|
mt,bled_name = "mt6370_pmu_bled";
|
||
|
/* mt,ext_en_pin; */
|
||
|
mt,chan_en = <0xF>; /* bit 0 1 2 3 -> chan 1 2 3 4 */
|
||
|
mt,map_linear;
|
||
|
mt,bl_ovp_level = <3>; /* 0: 17v */
|
||
|
/* 1: 21v */
|
||
|
/* 2: 25v */
|
||
|
/* 3: 29v */
|
||
|
mt,bl_ocp_level = <2>; /* 0: 900mA */
|
||
|
/* 1: 1200mA */
|
||
|
/* 2: 1500mA */
|
||
|
/* 3: 1800mA */
|
||
|
mt,use_pwm;
|
||
|
mt,pwm_fsample = <2>; /* 0: 1MHz */
|
||
|
/* 1: 4MHz */
|
||
|
/* 2: or 3: 24mHz */
|
||
|
mt,pwm_deglitch = <1>; /* 0: no filter */
|
||
|
/* 1: 100ns */
|
||
|
/* 2: 160ns */
|
||
|
/* 3: 200ns */
|
||
|
mt,pwm_hys_en = <1>; /* PWM Input Hysteresis */
|
||
|
mt,pwm_hys = <0>; /* 0: 1 bit, 1: 2 bit */
|
||
|
/* 2: 4 bit, 3: 6 bit */
|
||
|
mt,pwm_avg_cycle = <0>; /* 0: disable avg */
|
||
|
/* 1: avg 2 cycle */
|
||
|
/* 2: avg 4 cycle */
|
||
|
/* 3: avg 8 cycle */
|
||
|
/* 4: avg 16 cycle */
|
||
|
/* 5: avg 32 cycle */
|
||
|
mt,bled_ramptime = <3>; /* 0, 500us, 750us, 1ms, 2ms */
|
||
|
/* 5ms, 10ms, 20ms, 50ms */
|
||
|
/* 100ms, 250ms, 800ms */
|
||
|
/* 1s, 2s, 4s, 8s */
|
||
|
mt,bled_flash_ramp = <1>; /* 0, 500us, 750us */
|
||
|
/* 1ms, 2ms, 5ms */
|
||
|
|
||
|
/* we have 11 bit resolution, quantize in driver */
|
||
|
mt,max_bled_brightness = <512>; /* maximum 2047 */
|
||
|
|
||
|
mt,bled_curr_scale = <0>; /* 0: 30mA, 1: 22.5mA */
|
||
|
/* 2: 20mA, 3: 17.5mA */
|
||
|
/* If use bled lpf,
|
||
|
* Set //mt,map_linear;
|
||
|
* pwm_lpf_coef = <2>;
|
||
|
* mt,pwm_lpf_en;
|
||
|
* mt,bled_curr_mode;
|
||
|
* Else
|
||
|
* Set mt,map_linear;
|
||
|
* pwm_lpf_coef = <0>;
|
||
|
* //mt,pwm_lpf_en;
|
||
|
* //mt,bled_curr_mode;
|
||
|
*/
|
||
|
mt,pwm_lpf_coef = <0>; /* 0: (1)/(2^15) */
|
||
|
/* 1: (2)/(2^15) */
|
||
|
/* 2: (3)/(2^15) */
|
||
|
/* 3: (4)/(2^15) */
|
||
|
/* with it, Alpha-LPF enable */
|
||
|
/* mt,pwm_lpf_en; */
|
||
|
/* with it, pwm duty is multiplied after
|
||
|
* linear/expenential mapper
|
||
|
*/
|
||
|
/* mt,bled_curr_mode; */
|
||
|
};
|
||
|
dsv {
|
||
|
compatible = "mediatek,mt6370_pmu_dsv";
|
||
|
interrupt-names = "dsv_vneg_ocp", "dsv_vpos_ocp",
|
||
|
"dsv_bst_ocp", "dsv_vneg_scp",
|
||
|
"dsv_vpos_scp";
|
||
|
db_ext_en = <0>; /* 0 = i2c ctrl, 1 = ext pin */
|
||
|
|
||
|
/* 1 = prevent from voltage drop when db is restarted */
|
||
|
db_periodic_fix = <0>;
|
||
|
|
||
|
/* 0 : VOS & VNEG are ctrled by DB_ENP & DB_ENN */
|
||
|
/* 1 : single pin ctrl */
|
||
|
db_single_pin = <0>;
|
||
|
|
||
|
/* 0 = 20Hz */
|
||
|
/* 1 = 33Hz, valid if db_period_mode = 1 */
|
||
|
db_freq_pm = <0>;
|
||
|
|
||
|
/* 0 = always on if DB is enabled */
|
||
|
/* 1 = DB period mode */
|
||
|
db_periodic_mode = <0>;
|
||
|
|
||
|
/* 0 = close loop, wait 80% */
|
||
|
/* 1 = open loop, go after soft-start dimming */
|
||
|
db_startup = <0>;
|
||
|
|
||
|
/* 1 = DB VNEG discharge 20ms when shutdown */
|
||
|
/* 0 = disable */
|
||
|
db_vneg_20ms = <1>;
|
||
|
|
||
|
/* 1 = Discharge VNEG when turn off */
|
||
|
/* 0 = disable */
|
||
|
db_vneg_disc = <0>;
|
||
|
|
||
|
/* 1 = DB VPOS discharge 20ms when shutdown */
|
||
|
/* 0 = disable */
|
||
|
db_vpos_20ms = <1>;
|
||
|
|
||
|
/* 1 = Discharge VPOS when turn off */
|
||
|
/* 0 = disable */
|
||
|
db_vpos_disc = <1>;
|
||
|
|
||
|
db_delay = <3>; /* 0 = no constraint */
|
||
|
/* 1 = 0ms */
|
||
|
/* 2 = 1ms */
|
||
|
/* 3 = 4ms */
|
||
|
db_vbst = <5700>; /* mV */
|
||
|
db_vpos_slew = <1>; /* 0: 8.54 V/ms */
|
||
|
/* 1: 5.84 V/ms */
|
||
|
/* 2: 4.83 V/ms */
|
||
|
/* 3: 3.00 V/ms */
|
||
|
db_vneg_slew = <1>; /* 0: -10.09 V/ms */
|
||
|
/* 1: -6.31 V/ms */
|
||
|
/* 2: -5.05 V/ms */
|
||
|
/* 3: -3.15 V/ms */
|
||
|
mt6370_dsvp {
|
||
|
/* change name by yourself */
|
||
|
regulator-name = "dsv_pos";
|
||
|
|
||
|
regulator-min-microvolt = <4000000>;
|
||
|
|
||
|
/* max == min then apply_uV = 1 */
|
||
|
regulator-max-microvolt = <6000000>;
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-microvolt-offset = <0>; */
|
||
|
|
||
|
/* optional, exist = enabled */
|
||
|
/* regulator-boot-on; */
|
||
|
|
||
|
/* optional, exist = enabled */
|
||
|
/* regulator-always-on; */
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-ramp-delay = <100>; */
|
||
|
};
|
||
|
mt6370_dsvn {
|
||
|
/* change name by yourself */
|
||
|
regulator-name = "dsv_neg";
|
||
|
|
||
|
regulator-min-microvolt = <4000000>;
|
||
|
|
||
|
/* max == min then apply_uV = 1 */
|
||
|
regulator-max-microvolt = <6000000>;
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-microvolt-offset = <0> */
|
||
|
|
||
|
/* optional, exist = enabled */
|
||
|
/* regulator-boot-on; */
|
||
|
|
||
|
/* optional, exist = enabled */
|
||
|
/* regulator-always-on; */
|
||
|
|
||
|
/* optional */
|
||
|
/* regulator-ramp-delay = <100>; */
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|