09 Nov, 2008

1 commit

  • Use menuconfig instead of flat configs so that you can disable/enable
    regulator items with one selection. Also, use depends instead of
    reverse selections to make life easier, too.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Liam Girdwood

    Takashi Iwai
     

30 Oct, 2008

1 commit

  • Changes the device registration part of the probe function to supply the
    regulator device rather than its parent (the mfd device) as this caused
    problems when the regulator core attempted to find constraints associated
    with the regulators.

    Signed-off-by: Jonathan Cameron
    Acked-by: Eric Miao
    Signed-off-by: Liam Girdwood

    Jonathan Cameron
     

14 Oct, 2008

8 commits

  • Signed-off-by: Eric Miao
    Signed-off-by: Mike Rapoport
    Signed-off-by: Liam Girdwood

    Eric Miao
     
  • The WM8350 features six DCDC convertors (four buck and two boost), four
    LDO voltage regulators and two constant current sinks. This driver adds
    support for these through the regulator API.

    This driver was written by Liam Girdwood with updates for submission
    from Mark Brown.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • Provide a new file 'name' in the regulator sysfs class with a human
    readable name for the regulator for use in applications.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • The WM8400 provides two programmable DCDC step-down (buck) convertors
    and four low-dropout (LDO) regulators. This driver provides support for
    runtime managment of these in the standard regulator API.

    Support for configuration of the suspend and hibernate mode behaviour
    of the regulators is not yet included.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • If the machine constraints mark a regulator as always_on but this was
    not done by the bootloader then enable the regulator when applying
    constraints.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • Try to find a human readable name for the regulator we're failing on and
    print a specific diagnostic when we fail to set the suspend state.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • Since it is now mandatory to supply constraints via init_data on device
    registration check for that when registering, saving us from oopsing
    later on.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • This improves the machine level API in order to configure
    regulator constraints and consumers as platform data and removes the
    old string based API that required several calls to set up each regulator.

    The intention is to create a struct regulator_init_data, populate
    it's fields with constraints, consumers devices, etc and then register
    the regulator device from board.c in the standard Linux way.

    e.g. regulator LDO2 (supplying codec and sim) platform data.

    /* regulator LDO2 consumer devices */
    static struct regulator_consumer_supply ldo2_consumers[] = {
    {
    .dev = &platform_audio_device.dev,
    .supply = "codec_avdd",
    },
    {
    .dev = &platform_sim_device.dev,
    .supply = "sim_vcc",
    }
    };

    /* regulator LDO2 constraints */
    static struct regulator_init_data ldo2_data = {
    .constraints = {
    .min_uV = 3300000,
    .max_uV = 3300000,
    .valid_modes_mask = REGULATOR_MODE_NORMAL,
    .apply_uV = 1,
    },
    .num_consumer_supplies = ARRAY_SIZE(ldo2_consumers),
    .consumer_supplies = ldo2_consumers,
    };

    /* machine regulator devices with thier consumers and constraints */
    static struct platform_device wm8350_regulator_devices[] = {
    {
    .name = "wm8350-regulator",
    .id = WM8350_LDO_2,
    .dev = {
    .platform_data = &ldo2_data,
    },
    },
    };

    Changes in detail:-

    o Removed all const char* regulator config functions in machine API.
    o Created new struct regulator_init_data to contain regulator
    machine configuration constraints and consmuers.
    o Changed set_supply(), set_machine_constraints(),
    set_consumer_device_supply() to remove their string identifier
    parameters. Also made them static and moved functions nearer top of
    core.c.
    o Removed no longer used inline func to_rdev()
    o Added regulator_get_init_drvdata() to retrieve init data.
    o Added struct device* as parameter to regulator_register().
    o Changed my email address.

    Signed-off-by: Eric Miao
    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Liam Girdwood
     

30 Jul, 2008

5 commits

  • This adds a regulator driver for the TI bq24022 Single-Chip
    Li-Ion Charger with its nCE and ISET2 pins connected to GPIOs.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Liam Girdwood

    Philipp Zabel
     
  • This patch adds kernel build support for the regulator core.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Liam Girdwood

    Liam Girdwood
     
  • This provides a virtual regulator test harness which exposes a sysfs
    interface for setting power requirements, intended for test purposes only.

    Signed-off-by: Mark Brown
    Signed-off-by: Philipp Zabel
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • This adds supports for regulator that are not software controlable. It allows
    them to coexist in systems with mixed supplies.

    Signed-off-by: Mark Brown
    Signed-off-by: Mike Rapoport
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • This adds the regulator framework core.

    This framework is designed to provide a generic interface to voltage
    and current regulators within the Linux kernel. It's intended to
    provide voltage and current control to client or consumer drivers and
    also provide status information to user space applications through a
    sysfs interface.

    The intention is to allow systems to dynamically control regulator
    output in order to save power and prolong battery life. This applies
    to both voltage regulators (where voltage output is controllable) and
    current sinks (where current output is controllable).

    This framework safely compiles out if not selected so that client
    drivers can still be used in systems with no software controllable
    regulators.

    Signed-off-by: Liam Girdwood
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Mark Brown

    Liam Girdwood