APF51 PMIC

From ArmadeusWiki
Jump to: navigation, search

APF51v1 have a Wolfson WM8311 Power Management IC (PMIC), which adds to the i.MX51 some useful functionalities. This page explains how to use them.

RTC

RTC

Voltage supervisor / Battery charger

  • Load driver:
 # modprobe wm831x_power
 wm831x 1-0034: No battery charger configuration
  • If power supplied with Wall (main power supply):
 # cat /sys/class/power_supply/wm831x-wall/online
 1
 # cat /sys/class/power_supply/wm831x-wall/voltage_now
 4550290     (? micro volts ?)
  • others:
 # ls /sys/class/power_supply/
 wm831x-battery  wm831x-usb      wm831x-wall

ADC / Temperature

  • Load driver:
 # modprobe wm831x-hwmon
  • Show what we can do:
 # ls /sys/class/hwmon/hwmon0/device/
 driver       in3_input    in6_input    in8_label    temp1_input
 hwmon        in4_input    in6_label    modalias     temp1_label
 in0_input    in4_label    in7_input    name         temp2_input
 in1_input    in5_input    in7_label    power        temp2_label
 in2_input    in5_label    in8_input    subsystem    uevent
  • temperatures:
 # cat /sys/class/hwmon/hwmon0/device/temp1_label
 PMIC
 # cat /sys/class/hwmon/hwmon0/device/temp1_input
 65720    (m°C, internal temp)

 # cat /sys/class/hwmon/hwmon0/device/temp2_label
 Battery
 # cat /sys/class/hwmon/hwmon0/device/temp2_input
 1327    (a battery should be connected)
  • analog values:
    • in[0-3]_input corresponds to AUXADCIN[1-4] of APF51 connector
  • in[4-8]_input are monitoring system voltage:
# cat /sys/class/hwmon/hwmon0/device/in4_label
SYSVDD
# cat /sys/class/hwmon/hwmon0/device/in5_label
USB
# cat /sys/class/hwmon/hwmon0/device/in6_label
Battery
# cat /sys/class/hwmon/hwmon0/device/in7_label
WALL
# cat /sys/class/hwmon/hwmon0/device/in8_label
Backup battery

Touchscreen

  • Driver is present in default kernel, everything else is generic and driven by Tslib

GPIO

Only GPIO6 and GPIO7 are usable on the APF51 (others are reserved or not available on connector).

Load driver

# modprobe wm831x-gpio

and locate corresponding interface:

# ls /sys/class/gpio/
export       gpiochip240  gpiochip64   unexport
gpiochip0    gpiochip32   gpiochip96
# cd /sys/class/gpio/gpiochip240/
# ls
base       device     label      ngpio      power      subsystem  uevent
# cat label
wm831x
# cat ngpio
16

Usage

Then you can use standard GPIOlib instructions with GPIO numbers 245 (PMIC_GPIO6) or 246 (PMIC_GPIO7).

For example to put PMIC_GPIO7 in input and read its value:

# echo 246 > /sys/class/gpio/export
# cat /sys/class/gpio/246/direction
in
# cat /sys/class/gpio/246/value
0

LEDs

LED1 and LED2 of APF51Dev board are controlled by the PMIC and are software programmable thanks to the LED API of Linux.

Load driver

# modprobe leds-wm831x-status
# ls /sys/class/leds/
/sys/class/leds/LED1:red:/    /sys/class/leds/LED2:green:/

Choose LED functionality

# cd /sys/class/leds/LED1\:red\:/
# cat src
otp [power] charger soft
# echo soft > src
# cat src
otp power charger [soft]

Blink it

# echo 0 > brightness
# echo 255 > brightness

Links