09 Jul, 2012

1 commit

  • Pre-regulator of 88pm8606 is mainly for support charging based on vbus,
    it needs to be enabled for charging battery, and will be disabled in
    some exception condition like over-temp.
    Add the pre-regulator device init data and resource for mfd subdev.

    Signed-off-by: Jett.Zhou
    Signed-off-by: Samuel Ortiz

    Jett.Zhou
     

07 Mar, 2012

2 commits

  • The reference group and internal oscillator are shared by sub-devs
    like led, backlight and vibrator in PM8606 chip. Now introduce a
    voting mechanism to enable/disable it.

    Add pm8606_osc_enable() and pm8606_osc_disable() interface and
    related defines to support this. This interface will be called by
    vibrator led and backlight driver.The refernce group and internal
    oscillator are enabled only when at least one of it's clients holds
    it on or disabled only all the clients don't use it any more based
    on the above mechanism.

    Signed-off-by: Jett.Zhou
    Signed-off-by: Samuel Ortiz

    Jett.Zhou
     
  • For 88pm860x pmic, it can wake the system from low power mode by irq,
    its sub-devs like RTC and onkey can be enabled for this usage.

    Signed-off-by: Jett.Zhou
    Signed-off-by: Samuel Ortiz

    Jett.Zhou
     

09 Jan, 2012

1 commit


27 May, 2011

1 commit


23 Mar, 2011

4 commits


29 Oct, 2010

1 commit


28 May, 2010

1 commit

  • This patch fixes three section mismatches.

    WARNING: drivers/mfd/88pm860x.o(.text+0x12): Section mismatch in
    reference from the function pm860x_device_exit() to the function
    .devexit.text:device_irq_exit()
    The function pm860x_device_exit() references a function in an exit
    section.
    Often the function device_irq_exit() has valid usage outside the exit
    section
    and the fix is to remove the __devexit annotation of device_irq_exit.

    WARNING: drivers/mfd/88pm860x.o(.text+0xb0): Section mismatch in
    reference from the function pm860x_device_init() to the function
    .devinit.text:device_8606_init()
    The function pm860x_device_init() references
    the function __devinit device_8606_init().
    This is often because pm860x_device_init lacks a __devinit
    annotation or the annotation of device_8606_init is wrong.

    WARNING: drivers/mfd/88pm860x.o(.text+0xbe): Section mismatch in
    reference from the function pm860x_device_init() to the function
    .devinit.text:device_8607_init()
    The function pm860x_device_init() references
    the function __devinit device_8607_init().
    This is often because pm860x_device_init lacks a __devinit
    annotation or the annotation of device_8607_init is wrong.

    Signed-off-by: Henrik Kretzschmar
    Signed-off-by: Samuel Ortiz

    Henrik Kretzschmar
     

25 May, 2010

1 commit

  • A lot of condition comparision statements are used in original driver. These
    statements are used to check the boundary of voltage numbers since voltage
    number isn't linear.

    Now use array of voltage numbers instead. Clean code with simpler way.

    Signed-off-by: Haojian Zhuang
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Haojian Zhuang
     

08 Mar, 2010

5 commits

  • Use genirq to simplify IRQ handling in 88pm860x. Remove the interface of
    mask/free IRQs on 88pm860x. All these work is taken by genirq. Update the
    touchscreen driver of 88pm860x since IRQ handling is changed.

    Signed-off-by: Haojian Zhuang
    Signed-off-by: Samuel Ortiz

    Haojian Zhuang
     
  • Enable touchscreen driver for the 88pm860x multi function core.

    Signed-off-by: Haojian Zhuang
    Acked-by: Dmitry Torokhov
    Signed-off-by: Samuel Ortiz

    Haojian Zhuang
     
  • Append backlight, led & touch subdevs into 88pm860x driver.

    Signed-off-by: Haojian Zhuang
    Signed-off-by: Samuel Ortiz

    Haojian Zhuang
     
  • 88PM860x is a complex PMIC device. It contains touch, charger, sound, rtc,
    backlight, led, and so on.

    Host communicates to 88PM860x by I2C bus. Use thread irq to support this
    usage case.

    Signed-off-by: Haojian Zhuang
    Signed-off-by: Samuel Ortiz

    Haojian Zhuang
     
  • 88PM8606 and 88PM8607 are two discrete chips used for power management.
    Hardware designer can use them together or only one of them according to
    requirement.

    There's some logic tightly linked between these two chips. For example, USB
    charger driver needs to access both chips by I2C interface.

    Now share one driver to these two devices. Only one I2C client is identified
    in platform init data. If another chip is also used, user should mark it in
    companion_addr field of platform init data. Then driver could create another
    I2C client for the companion chip.

    All I2C operations are accessed by 860x-i2c driver. In order to support both
    I2C client address, the read/write API is changed in below.

    reg_read(client, offset)
    reg_write(client, offset, data)

    The benefit is that client drivers only need one kind of read/write API. I2C
    and MFD driver can be shared in both 8606 and 8607.

    Since API is changed, update API in 8607 regulator driver.

    Signed-off-by: Haojian Zhuang
    Signed-off-by: Samuel Ortiz

    Haojian Zhuang