283 lines
11 KiB
Plaintext
283 lines
11 KiB
Plaintext
* AB8500 Multi-Functional Device (MFD)
|
|
|
|
Required parent device properties:
|
|
- compatible : contains "stericsson,ab8500" or "stericsson,ab8505";
|
|
- interrupts : contains the IRQ line for the AB8500
|
|
- interrupt-controller : describes the AB8500 as an Interrupt Controller (has its own domain)
|
|
- #interrupt-cells : should be 2, for 2-cell format
|
|
- The first cell is the AB8500 local IRQ number
|
|
- The second cell is used to specify optional parameters
|
|
- bits[3:0] trigger type and level flags:
|
|
1 = low-to-high edge triggered
|
|
2 = high-to-low edge triggered
|
|
4 = active high level-sensitive
|
|
8 = active low level-sensitive
|
|
|
|
The AB8500 consists of a large and varied group of sub-devices:
|
|
|
|
Device IRQ Names Supply Names Description
|
|
------ --------- ------------ -----------
|
|
ab8500-bm : : : Battery Manager
|
|
ab8500-btemp : : : Battery Temperature
|
|
ab8500-charger : : : Battery Charger
|
|
ab8500-codec : : : Audio Codec
|
|
ab8500-fg : : vddadc : Fuel Gauge
|
|
: NCONV_ACCU : : Accumulate N Sample Conversion
|
|
: BATT_OVV : : Battery Over Voltage
|
|
: LOW_BAT_F : : LOW threshold battery voltage
|
|
: CC_INT_CALIB : : Coulomb Counter Internal Calibration
|
|
: CCEOC : : Coulomb Counter End of Conversion
|
|
ab8500-btemp : : vtvout : Battery Temperature
|
|
: BAT_CTRL_INDB : : Battery Removal Indicator
|
|
: BTEMP_LOW : : Btemp < BtempLow, if battery temperature is lower than -10°C
|
|
: BTEMP_LOW_MEDIUM : : BtempLow < Btemp < BtempMedium,if battery temperature is between -10 and 0°C
|
|
: BTEMP_MEDIUM_HIGH : : BtempMedium < Btemp < BtempHigh,if battery temperature is between 0°C and MaxTemp
|
|
: BTEMP_HIGH : : Btemp > BtempHigh, if battery temperature is higher than MaxTemp
|
|
ab8500-charger : : vddadc : Charger interface
|
|
: MAIN_CH_UNPLUG_DET : : main charger unplug detection management (not in 8505)
|
|
: MAIN_CHARGE_PLUG_DET : : main charger plug detection management (not in 8505)
|
|
: MAIN_EXT_CH_NOT_OK : : main charger not OK
|
|
: MAIN_CH_TH_PROT_R : : Die temp is above main charger
|
|
: MAIN_CH_TH_PROT_F : : Die temp is below main charger
|
|
: VBUS_DET_F : : VBUS falling detected
|
|
: VBUS_DET_R : : VBUS rising detected
|
|
: USB_LINK_STATUS : : USB link status has changed
|
|
: USB_CH_TH_PROT_R : : Die temp is above usb charger
|
|
: USB_CH_TH_PROT_F : : Die temp is below usb charger
|
|
: USB_CHARGER_NOT_OKR : : allowed USB charger not ok detection
|
|
: VBUS_OVV : : Overvoltage on Vbus ball detected (USB charge is stopped)
|
|
: CH_WD_EXP : : Charger watchdog detected
|
|
ab8500-gpadc : HW_CONV_END : vddadc : Analogue to Digital Converter
|
|
SW_CONV_END : :
|
|
ab8500-gpio : : : GPIO Controller (AB8500)
|
|
ab8505-gpio : : : GPIO Controller (AB8505)
|
|
ab8500-ponkey : ONKEY_DBF : : Power-on Key
|
|
ONKEY_DBR : :
|
|
ab8500-pwm : : : Pulse Width Modulator
|
|
ab8500-regulator : : : Regulators (AB8500)
|
|
ab8505-regulator : : : Regulators (AB8505)
|
|
ab8500-rtc : 60S : : Real Time Clock
|
|
: ALARM : :
|
|
ab8500-sysctrl : : : System Control
|
|
ab8500-usb : ID_WAKEUP_R : vddulpivio18 : Universal Serial Bus
|
|
: ID_WAKEUP_F : v-ape :
|
|
: VBUS_DET_F : musb_1v8 :
|
|
: VBUS_DET_R : :
|
|
: USB_LINK_STATUS : :
|
|
: USB_ADP_PROBE_PLUG : :
|
|
: USB_ADP_PROBE_UNPLUG : :
|
|
|
|
Required child device properties:
|
|
- compatible : "stericsson,ab8500-[bm|btemp|charger|fg|gpadc|gpio|ponkey|
|
|
pwm|regulator|rtc|sysctrl|usb]";
|
|
|
|
A few child devices require ADC channels from the GPADC node. Those follow the
|
|
standard bindings from
|
|
https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml
|
|
and Documentation/devicetree/bindings/iio/adc/adc.yaml
|
|
|
|
abx500-temp : io-channels "aux1" and "aux2" for measuring external
|
|
temperatures.
|
|
ab8500-fg : io-channel "main_bat_v" for measuring main battery voltage,
|
|
ab8500-btemp : io-channels "btemp_ball" and "bat_ctrl" for measuring the
|
|
battery voltage.
|
|
ab8500-charger : io-channels "main_charger_v", "main_charger_c", "vbus_v",
|
|
"usb_charger_c" for measuring voltage and current of the
|
|
different charging supplies.
|
|
|
|
Optional child device properties:
|
|
- interrupts : contains the device IRQ(s) using the 2-cell format (see above)
|
|
- interrupt-names : contains names of IRQ resource in the order in which they were
|
|
supplied in the interrupts property
|
|
- <supply_name>-supply : contains a phandle to the regulator supply node in Device Tree
|
|
|
|
Non-standard child device properties:
|
|
- Audio CODEC:
|
|
- stericsson,amic[1|2]-type-single-ended : Single-ended Analoge Mic (default: differential)
|
|
- stericsson,amic1a-bias-vamic2 : Analoge Mic wishes to use a non-standard Vamic
|
|
- stericsson,amic1b-bias-vamic2 : Analoge Mic wishes to use a non-standard Vamic
|
|
- stericsson,amic2-bias-vamic1 : Analoge Mic wishes to use a non-standard Vamic
|
|
- stericsson,earpeice-cmv : Earpeice voltage (only: 950 | 1100 | 1270 | 1580)
|
|
|
|
ab8500 {
|
|
compatible = "stericsson,ab8500";
|
|
interrupts = <0 40 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
ab8500-rtc {
|
|
compatible = "stericsson,ab8500-rtc";
|
|
interrupts = <17 0x4
|
|
18 0x4>;
|
|
interrupt-names = "60S", "ALARM";
|
|
};
|
|
|
|
ab8500-gpadc {
|
|
compatible = "stericsson,ab8500-gpadc";
|
|
interrupts = <32 0x4
|
|
39 0x4>;
|
|
interrupt-names = "HW_CONV_END", "SW_CONV_END";
|
|
vddadc-supply = <&ab8500_ldo_tvout_reg>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
#io-channel-cells = <1>;
|
|
|
|
/* GPADC channels */
|
|
bat_ctrl: channel@1 {
|
|
reg = <0x01>;
|
|
};
|
|
btemp_ball: channel@2 {
|
|
reg = <0x02>;
|
|
};
|
|
main_charger_v: channel@3 {
|
|
reg = <0x03>;
|
|
};
|
|
acc_detect1: channel@4 {
|
|
reg = <0x04>;
|
|
};
|
|
acc_detect2: channel@5 {
|
|
reg = <0x05>;
|
|
};
|
|
adc_aux1: channel@6 {
|
|
reg = <0x06>;
|
|
};
|
|
adc_aux2: channel@7 {
|
|
reg = <0x07>;
|
|
};
|
|
main_batt_v: channel@8 {
|
|
reg = <0x08>;
|
|
};
|
|
vbus_v: channel@9 {
|
|
reg = <0x09>;
|
|
};
|
|
main_charger_c: channel@a {
|
|
reg = <0x0a>;
|
|
};
|
|
usb_charger_c: channel@b {
|
|
reg = <0x0b>;
|
|
};
|
|
bk_bat_v: channel@c {
|
|
reg = <0x0c>;
|
|
};
|
|
die_temp: channel@d {
|
|
reg = <0x0d>;
|
|
};
|
|
usb_id: channel@e {
|
|
reg = <0x0e>;
|
|
};
|
|
xtal_temp: channel@12 {
|
|
reg = <0x12>;
|
|
};
|
|
vbat_true_meas: channel@13 {
|
|
reg = <0x13>;
|
|
};
|
|
bat_ctrl_and_ibat: channel@1c {
|
|
reg = <0x1c>;
|
|
};
|
|
vbat_meas_and_ibat: channel@1d {
|
|
reg = <0x1d>;
|
|
};
|
|
vbat_true_meas_and_ibat: channel@1e {
|
|
reg = <0x1e>;
|
|
};
|
|
bat_temp_and_ibat: channel@1f {
|
|
reg = <0x1f>;
|
|
};
|
|
};
|
|
|
|
ab8500_temp {
|
|
compatible = "stericsson,abx500-temp";
|
|
io-channels = <&gpadc 0x06>,
|
|
<&gpadc 0x07>;
|
|
io-channel-name = "aux1", "aux2";
|
|
};
|
|
|
|
ab8500_battery: ab8500_battery {
|
|
stericsson,battery-type = "LIPO";
|
|
thermistor-on-batctrl;
|
|
};
|
|
|
|
ab8500_fg {
|
|
compatible = "stericsson,ab8500-fg";
|
|
battery = <&ab8500_battery>;
|
|
io-channels = <&gpadc 0x08>;
|
|
io-channel-name = "main_bat_v";
|
|
};
|
|
|
|
ab8500_btemp {
|
|
compatible = "stericsson,ab8500-btemp";
|
|
battery = <&ab8500_battery>;
|
|
io-channels = <&gpadc 0x02>,
|
|
<&gpadc 0x01>;
|
|
io-channel-name = "btemp_ball",
|
|
"bat_ctrl";
|
|
};
|
|
|
|
ab8500_charger {
|
|
compatible = "stericsson,ab8500-charger";
|
|
battery = <&ab8500_battery>;
|
|
vddadc-supply = <&ab8500_ldo_tvout_reg>;
|
|
io-channels = <&gpadc 0x03>,
|
|
<&gpadc 0x0a>,
|
|
<&gpadc 0x09>,
|
|
<&gpadc 0x0b>;
|
|
io-channel-name = "main_charger_v",
|
|
"main_charger_c",
|
|
"vbus_v",
|
|
"usb_charger_c";
|
|
};
|
|
|
|
ab8500-usb {
|
|
compatible = "stericsson,ab8500-usb";
|
|
interrupts = < 90 0x4
|
|
96 0x4
|
|
14 0x4
|
|
15 0x4
|
|
79 0x4
|
|
74 0x4
|
|
75 0x4>;
|
|
interrupt-names = "ID_WAKEUP_R",
|
|
"ID_WAKEUP_F",
|
|
"VBUS_DET_F",
|
|
"VBUS_DET_R",
|
|
"USB_LINK_STATUS",
|
|
"USB_ADP_PROBE_PLUG",
|
|
"USB_ADP_PROBE_UNPLUG";
|
|
vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
|
|
v-ape-supply = <&db8500_vape_reg>;
|
|
musb_1v8-supply = <&db8500_vsmps2_reg>;
|
|
};
|
|
|
|
ab8500-ponkey {
|
|
compatible = "stericsson,ab8500-ponkey";
|
|
interrupts = <6 0x4
|
|
7 0x4>;
|
|
interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
|
|
};
|
|
|
|
ab8500-sysctrl {
|
|
compatible = "stericsson,ab8500-sysctrl";
|
|
};
|
|
|
|
ab8500-pwm {
|
|
compatible = "stericsson,ab8500-pwm";
|
|
};
|
|
|
|
codec: ab8500-codec {
|
|
compatible = "stericsson,ab8500-codec";
|
|
|
|
stericsson,earpeice-cmv = <950>; /* Units in mV. */
|
|
};
|
|
|
|
ab8500-regulators {
|
|
compatible = "stericsson,ab8500-regulator";
|
|
|
|
ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
|
|
/*
|
|
* See: Documentation/devicetree/bindings/regulator/regulator.txt
|
|
* for more information on regulators
|
|
*/
|
|
};
|
|
};
|
|
};
|