Kernel-3.10.0-957.el7_ab8500

  • AB8500 Multi-Functional Device (MFD)

Required parent device properties:

  • compatible : contains “stericsson,ab8500”;
  • 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-ponkey : ONKEY_DBF : : Power-on Key
ONKEY_DBR : :
ab8500-pwm : : : Pulse Width Modulator
ab8500-regulator : : : Regulators
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]";
    

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 : 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>;
    };

    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_initcore_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
                     */
            };
    };

};