1. 31 3月, 2009 1 次提交
    • D
      regulator: add get_status() · 853116a1
      David Brownell 提交于
      Based on previous LKML discussions:
      
       * Update docs for regulator sysfs class attributes to highlight
         the fact that all current attributes are intended to be control
         inputs, including notably "state" and "opmode" which previously
         implied otherwise.
      
       * Define a new regulator driver get_status() method, which is the
         first method reporting regulator outputs instead of inputs.
         It can report on/off and error status; or instead of simply
         "on", report the actual operating mode.
      
      For the moment, this is a sysfs-only interface, not accessible to
      regulator clients.  Such clients can use the current notification
      interfaces to detect errors, if the regulator reports them.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      853116a1
  2. 09 1月, 2009 2 次提交
  3. 14 10月, 2008 2 次提交
    • M
      regulator: Fix typo · 3de89609
      Mark Brown 提交于
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      3de89609
    • L
      regulator: core - Rework machine API to remove string based functions. · a5766f11
      Liam Girdwood 提交于
      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: NEric Miao <eric.miao@marvell.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      a5766f11
  4. 30 7月, 2008 1 次提交