mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
mfd: ab8500: Rewrite bindings in YAML
This rewrites the former text based AB8500 bindings in YAML. When the AB8500 bindings were first written (in 2012) we were not strict on some things and node names were definitely not standardized. This patch uses standard node names to most of the subnodes on the AB8500 and is accompanied by another patch fixing all the DTS files to conform to this. The bindings are not as perfect as newly written bindings would be, it is a best effort to deal with the legacy. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20220115002649.1526163-1-linus.walleij@linaro.org
This commit is contained in:
@@ -1,282 +0,0 @@
|
||||
* 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
|
||||
*/
|
||||
};
|
||||
};
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -263,6 +263,7 @@ patternProperties:
|
||||
set of devicetree bindings. The AB8505 is a newer version of the
|
||||
same ASIC.
|
||||
type: object
|
||||
$ref: stericsson,ab8500.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
Reference in New Issue
Block a user