Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* Freescale MC13783/MC13892 Power Management Integrated Circuit (PMIC)

Required properties:
- compatible : Should be "fsl,mc13783" or "fsl,mc13892"

Optional properties:
- fsl,mc13xxx-uses-adc : Indicate the ADC is being used
- fsl,mc13xxx-uses-codec : Indicate the Audio Codec is being used
- fsl,mc13xxx-uses-rtc : Indicate the RTC is being used
- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used

Sub-nodes:
- codec: Contain the Audio Codec node.
  - adc-port: Contain PMIC SSI port number used for ADC.
  - dac-port: Contain PMIC SSI port number used for DAC.
- leds : Contain the led nodes and initial register values in property
  "led-control". Number of register depends of used IC, for MC13783 is 6,
  for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
  these registers.
  - #address-cells: Must be 1.
  - #size-cells: Must be 0.
  Each led node should contain "reg", which used as LED ID (described below).
  Optional properties "label" and "linux,default-trigger" is described in
  Documentation/devicetree/bindings/leds/common.txt.
- regulators : Contain the regulator nodes. The regulators are bound using
  their names as listed below with their registers and bits for enabling.

MC13783 LED IDs:
    0  : Main display
    1  : AUX display
    2  : Keypad
    3  : Red 1
    4  : Green 1
    5  : Blue 1
    6  : Red 2
    7  : Green 2
    8  : Blue 2
    9  : Red 3
    10 : Green 3
    11 : Blue 3

MC13892 LED IDs:
    0  : Main display
    1  : AUX display
    2  : Keypad
    3  : Red
    4  : Green
    5  : Blue

MC34708 LED IDs:
    0  : Charger Red
    1  : Charger Green

MC13783 regulators:
    sw1a      : regulator SW1A      (register 24, bit 0)
    sw1b      : regulator SW1B      (register 25, bit 0)
    sw2a      : regulator SW2A      (register 26, bit 0)
    sw2b      : regulator SW2B      (register 27, bit 0)
    sw3       : regulator SW3       (register 29, bit 20)
    vaudio    : regulator VAUDIO    (register 32, bit 0)
    viohi     : regulator VIOHI     (register 32, bit 3)
    violo     : regulator VIOLO     (register 32, bit 6)
    vdig      : regulator VDIG      (register 32, bit 9)
    vgen      : regulator VGEN      (register 32, bit 12)
    vrfdig    : regulator VRFDIG    (register 32, bit 15)
    vrfref    : regulator VRFREF    (register 32, bit 18)
    vrfcp     : regulator VRFCP     (register 32, bit 21)
    vsim      : regulator VSIM      (register 33, bit 0)
    vesim     : regulator VESIM     (register 33, bit 3)
    vcam      : regulator VCAM      (register 33, bit 6)
    vrfbg     : regulator VRFBG     (register 33, bit 9)
    vvib      : regulator VVIB      (register 33, bit 11)
    vrf1      : regulator VRF1      (register 33, bit 12)
    vrf2      : regulator VRF2      (register 33, bit 15)
    vmmc1     : regulator VMMC1     (register 33, bit 18)
    vmmc2     : regulator VMMC2     (register 33, bit 21)
    gpo1      : regulator GPO1      (register 34, bit 6)
    gpo2      : regulator GPO2      (register 34, bit 8)
    gpo3      : regulator GPO3      (register 34, bit 10)
    gpo4      : regulator GPO4      (register 34, bit 12)
    pwgt1spi  : regulator PWGT1SPI  (register 34, bit 15)
    pwgt2spi  : regulator PWGT2SPI  (register 34, bit 16)

MC13892 regulators:
    vcoincell : regulator VCOINCELL (register 13, bit 23)
    sw1       : regulator SW1	    (register 24, bit 0)
    sw2       : regulator SW2	    (register 25, bit 0)
    sw3       : regulator SW3	    (register 26, bit 0)
    sw4       : regulator SW4	    (register 27, bit 0)
    swbst     : regulator SWBST	    (register 29, bit 20)
    vgen1     : regulator VGEN1	    (register 32, bit 0)
    viohi     : regulator VIOHI	    (register 32, bit 3)
    vdig      : regulator VDIG	    (register 32, bit 9)
    vgen2     : regulator VGEN2	    (register 32, bit 12)
    vpll      : regulator VPLL	    (register 32, bit 15)
    vusb2     : regulator VUSB2	    (register 32, bit 18)
    vgen3     : regulator VGEN3	    (register 33, bit 0)
    vcam      : regulator VCAM	    (register 33, bit 6)
    vvideo    : regulator VVIDEO    (register 33, bit 12)
    vaudio    : regulator VAUDIO    (register 33, bit 15)
    vsd       : regulator VSD	    (register 33, bit 18)
    gpo1      : regulator GPO1	    (register 34, bit 6)
    gpo2      : regulator GPO2	    (register 34, bit 8)
    gpo3      : regulator GPO3	    (register 34, bit 10)
    gpo4      : regulator GPO4	    (register 34, bit 12)
    pwgt1spi  : regulator PWGT1SPI  (register 34, bit 15)
    pwgt2spi  : regulator PWGT2SPI  (register 34, bit 16)
    vusb      : regulator VUSB	    (register 50, bit 3)

  The bindings details of individual regulator device can be found in:
  Documentation/devicetree/bindings/regulator/regulator.txt

Examples:

ecspi@70010000 { /* ECSPI1 */
	cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
		   <&gpio4 25 0>; /* GPIO4_25 */

	pmic: mc13892@0 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "fsl,mc13892";
		spi-max-frequency = <6000000>;
		reg = <0>;
		interrupt-parent = <&gpio0>;
		interrupts = <8>;

		leds {
			#address-cells = <1>;
			#size-cells = <0>;
			led-control = <0x000 0x000 0x0e0 0x000>;

			sysled@3 {
				reg = <3>;
				label = "system:red:live";
				linux,default-trigger = "heartbeat";
			};
		};

		regulators {
			sw1_reg: mc13892__sw1 {
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <1375000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw2_reg: mc13892__sw2 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1850000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};
};