本文整理汇总了C++中rdev_get_drvdata函数的典型用法代码示例。如果您正苦于以下问题:C++ rdev_get_drvdata函数的具体用法?C++ rdev_get_drvdata怎么用?C++ rdev_get_drvdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rdev_get_drvdata函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: vreg_get_mode
static unsigned int vreg_get_mode(struct regulator_dev *rdev)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
return vreg->mode;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:6,代码来源:rpm-regulator.c
示例2: saw_get_voltage
static int saw_get_voltage(struct regulator_dev *rdev)
{
struct saw_vreg *vreg = rdev_get_drvdata(rdev);
return vreg->uV;
}
开发者ID:AndyOpie,项目名称:android_kernel_lge_msm7x27-3.0.x,代码行数:6,代码来源:saw-regulator.c
示例3: regulator_stub_disable
static int regulator_stub_disable(struct regulator_dev *rdev)
{
struct regulator_stub *vreg_priv = rdev_get_drvdata(rdev);
vreg_priv->enabled = false;
return 0;
}
开发者ID:404992361,项目名称:mi1_kernel,代码行数:6,代码来源:stub-regulator.c
示例4: bq24022_is_enabled
static int bq24022_is_enabled(struct regulator_dev *rdev)
{
struct bq24022_mach_info *pdata = rdev_get_drvdata(rdev);
return !gpio_get_value(pdata->gpio_nce);
}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:6,代码来源:bq24022.c
示例5: pm800_get_current_limit
static int pm800_get_current_limit(struct regulator_dev *rdev)
{
struct pm800_regulator_info *info = rdev_get_drvdata(rdev);
return info->max_ua;
}
开发者ID:GalaxyTab4,项目名称:maxicm_kernel_samsung_degaswifi,代码行数:6,代码来源:88pm800.c
示例6: max8649_disable
/*
* Applied internal pulldown resistor on EN input pin.
* If pulldown EN pin outside, it would be better.
*/
static int max8649_disable(struct regulator_dev *rdev)
{
struct max8649_regulator_info *info = rdev_get_drvdata(rdev);
return max8649_set_bits(info->i2c, MAX8649_CONTROL, MAX8649_EN_PD,
MAX8649_EN_PD);
}
开发者ID:FrozenData,项目名称:SGS2-Kernel-Update2,代码行数:10,代码来源:max8649.c
示例7: vp_reg_get_voltage
static int vp_reg_get_voltage(struct regulator_dev *rdev)
{
struct msm_vp *vp = rdev_get_drvdata(rdev);
return MV_TO_UV(vp->current_voltage);
}
开发者ID:1n,项目名称:xperia-m-source,代码行数:6,代码来源:msm_vp.c
示例8: qpnp_regulator_common_enable_time
static int qpnp_regulator_common_enable_time(struct regulator_dev *rdev)
{
struct qpnp_regulator *vreg = rdev_get_drvdata(rdev);
return vreg->enable_time;
}
开发者ID:ian577416,项目名称:linux_lg_jb,代码行数:6,代码来源:qpnp-regulator.c
示例9: qpnp_vreg_show_state
static void qpnp_vreg_show_state(struct regulator_dev *rdev,
enum qpnp_regulator_action action)
{
struct qpnp_regulator *vreg = rdev_get_drvdata(rdev);
const char *action_label = qpnp_print_actions[action];
unsigned int mode = 0;
int uV = 0;
const char *mode_label = "";
enum qpnp_regulator_logical_type type;
const char *enable_label;
char pc_enable_label[5] = {'\0'};
char pc_mode_label[8] = {'\0'};
bool show_req, show_dupe, show_init, has_changed;
u8 en_reg, mode_reg;
/* Do not print unless appropriate flags are set. */
show_req = qpnp_vreg_debug_mask & QPNP_VREG_DEBUG_REQUEST;
show_dupe = qpnp_vreg_debug_mask & QPNP_VREG_DEBUG_DUPLICATE;
show_init = qpnp_vreg_debug_mask & QPNP_VREG_DEBUG_INIT;
has_changed = vreg->write_count != vreg->prev_write_count;
if (!((show_init && action == QPNP_REGULATOR_ACTION_INIT)
|| (show_req && (has_changed || show_dupe)))) {
return;
}
vreg->prev_write_count = vreg->write_count;
type = vreg->logical_type;
enable_label = qpnp_regulator_common_is_enabled(rdev) ? "on " : "off";
if (type == QPNP_REGULATOR_LOGICAL_TYPE_SMPS
|| type == QPNP_REGULATOR_LOGICAL_TYPE_LDO
|| type == QPNP_REGULATOR_LOGICAL_TYPE_FTSMPS)
uV = qpnp_regulator_common_get_voltage(rdev);
if (type == QPNP_REGULATOR_LOGICAL_TYPE_BOOST)
uV = qpnp_regulator_boost_get_voltage(rdev);
if (type == QPNP_REGULATOR_LOGICAL_TYPE_SMPS
|| type == QPNP_REGULATOR_LOGICAL_TYPE_LDO
|| type == QPNP_REGULATOR_LOGICAL_TYPE_FTSMPS) {
mode = qpnp_regulator_common_get_mode(rdev);
mode_label = mode == REGULATOR_MODE_NORMAL ? "HPM" : "LPM";
}
if (type == QPNP_REGULATOR_LOGICAL_TYPE_SMPS
|| type == QPNP_REGULATOR_LOGICAL_TYPE_LDO
|| type == QPNP_REGULATOR_LOGICAL_TYPE_VS) {
en_reg = vreg->ctrl_reg[QPNP_COMMON_IDX_ENABLE];
pc_enable_label[0] =
en_reg & QPNP_COMMON_ENABLE_FOLLOW_HW_EN3_MASK ? '3' : '_';
pc_enable_label[1] =
en_reg & QPNP_COMMON_ENABLE_FOLLOW_HW_EN2_MASK ? '2' : '_';
pc_enable_label[2] =
en_reg & QPNP_COMMON_ENABLE_FOLLOW_HW_EN1_MASK ? '1' : '_';
pc_enable_label[3] =
en_reg & QPNP_COMMON_ENABLE_FOLLOW_HW_EN0_MASK ? '0' : '_';
}
switch (type) {
case QPNP_REGULATOR_LOGICAL_TYPE_SMPS:
mode_reg = vreg->ctrl_reg[QPNP_COMMON_IDX_MODE];
pc_mode_label[0] =
mode_reg & QPNP_COMMON_MODE_AUTO_MASK ? 'A' : '_';
pc_mode_label[1] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_AWAKE_MASK ? 'W' : '_';
pc_mode_label[2] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN3_MASK ? '3' : '_';
pc_mode_label[3] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN2_MASK ? '2' : '_';
pc_mode_label[4] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN1_MASK ? '1' : '_';
pc_mode_label[5] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN0_MASK ? '0' : '_';
pr_info("%s %-11s: %s, v=%7d uV, mode=%s, pc_en=%s, "
"alt_mode=%s\n",
action_label, vreg->rdesc.name, enable_label, uV,
mode_label, pc_enable_label, pc_mode_label);
break;
case QPNP_REGULATOR_LOGICAL_TYPE_LDO:
mode_reg = vreg->ctrl_reg[QPNP_COMMON_IDX_MODE];
pc_mode_label[0] =
mode_reg & QPNP_COMMON_MODE_AUTO_MASK ? 'A' : '_';
pc_mode_label[1] =
mode_reg & QPNP_COMMON_MODE_BYPASS_MASK ? 'B' : '_';
pc_mode_label[2] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_AWAKE_MASK ? 'W' : '_';
pc_mode_label[3] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN3_MASK ? '3' : '_';
pc_mode_label[4] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN2_MASK ? '2' : '_';
pc_mode_label[5] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN1_MASK ? '1' : '_';
pc_mode_label[6] =
mode_reg & QPNP_COMMON_MODE_FOLLOW_HW_EN0_MASK ? '0' : '_';
pr_info("%s %-11s: %s, v=%7d uV, mode=%s, pc_en=%s, "
"alt_mode=%s\n",
//.........这里部分代码省略.........
开发者ID:ian577416,项目名称:linux_lg_jb,代码行数:101,代码来源:qpnp-regulator.c
示例10: vreg_get_voltage
static int vreg_get_voltage(struct regulator_dev *rdev)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
return vreg->save_uV;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:6,代码来源:rpm-regulator.c
示例11: vreg_set_mode
static int vreg_set_mode(struct regulator_dev *rdev, unsigned int mode)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
unsigned int mask[2] = {0}, val[2] = {0};
int rc = 0;
int peak_uA;
mutex_lock(&vreg->pc_lock);
peak_uA = MILLI_TO_MICRO((vreg->req[vreg->part->ip.word].value
& vreg->part->ip.mask) >> vreg->part->ip.shift);
if (mode == config->mode_hpm) {
/* Make sure that request currents are in HPM range. */
if (peak_uA < vreg_hpm_min_uA(vreg)) {
val[vreg->part->ip.word]
= MICRO_TO_MILLI(vreg_hpm_min_uA(vreg))
<< vreg->part->ip.shift;
mask[vreg->part->ip.word] = vreg->part->ip.mask;
if (config->ia_follows_ip) {
val[vreg->part->ia.word]
|= MICRO_TO_MILLI(vreg_hpm_min_uA(vreg))
<< vreg->part->ia.shift;
mask[vreg->part->ia.word]
|= vreg->part->ia.mask;
}
}
} else if (mode == config->mode_lpm) {
/* Make sure that request currents are in LPM range. */
if (peak_uA > vreg_lpm_max_uA(vreg)) {
val[vreg->part->ip.word]
= MICRO_TO_MILLI(vreg_lpm_max_uA(vreg))
<< vreg->part->ip.shift;
mask[vreg->part->ip.word] = vreg->part->ip.mask;
if (config->ia_follows_ip) {
val[vreg->part->ia.word]
|= MICRO_TO_MILLI(vreg_lpm_max_uA(vreg))
<< vreg->part->ia.shift;
mask[vreg->part->ia.word]
|= vreg->part->ia.mask;
}
}
} else {
vreg_err(vreg, "invalid mode: %u\n", mode);
mutex_unlock(&vreg->pc_lock);
return -EINVAL;
}
if (vreg->is_enabled) {
rc = vreg_set(vreg, mask[0], val[0], mask[1], val[1],
vreg->part->request_len);
} else {
/* Regulator is disabled; store but don't send new request. */
rc = vreg_store(vreg, mask[0], val[0], mask[1], val[1]);
}
if (rc)
vreg_err(vreg, "vreg_set failed, rc=%d\n", rc);
else
vreg->mode = mode;
mutex_unlock(&vreg->pc_lock);
return rc;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:67,代码来源:rpm-regulator.c
示例12: vreg_set_voltage
static int vreg_set_voltage(struct regulator_dev *rdev, int min_uV, int max_uV,
unsigned *selector)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
struct vreg_range *range = &vreg->set_points->range[0];
unsigned int mask[2] = {0}, val[2] = {0};
int rc = 0, uV = min_uV;
int lim_min_uV, lim_max_uV, i;
/* Check if request voltage is outside of physically settable range. */
lim_min_uV = vreg->set_points->range[0].min_uV;
lim_max_uV =
vreg->set_points->range[vreg->set_points->count - 1].max_uV;
if (uV < lim_min_uV && max_uV >= lim_min_uV)
uV = lim_min_uV;
if (uV < lim_min_uV || uV > lim_max_uV) {
vreg_err(vreg,
"request v=[%d, %d] is outside possible v=[%d, %d]\n",
min_uV, max_uV, lim_min_uV, lim_max_uV);
return -EINVAL;
}
/* Find the range which uV is inside of. */
for (i = vreg->set_points->count - 1; i > 0; i--) {
if (uV > vreg->set_points->range[i - 1].max_uV) {
range = &vreg->set_points->range[i];
break;
}
}
/*
* Force uV to be an allowed set point and apply a ceiling function
* to non-set point values.
*/
uV = (uV - range->min_uV + range->step_uV - 1) / range->step_uV;
uV = uV * range->step_uV + range->min_uV;
if (uV > max_uV) {
vreg_err(vreg,
"request v=[%d, %d] cannot be met by any set point; "
"next set point: %d\n",
min_uV, max_uV, uV);
return -EINVAL;
}
if (vreg->part->uV.mask) {
val[vreg->part->uV.word] = uV << vreg->part->uV.shift;
mask[vreg->part->uV.word] = vreg->part->uV.mask;
} else {
val[vreg->part->mV.word]
= MICRO_TO_MILLI(uV) << vreg->part->mV.shift;
mask[vreg->part->mV.word] = vreg->part->mV.mask;
}
mutex_lock(&vreg->pc_lock);
/*
* Only send a request for a new voltage if the regulator is currently
* enabled. This will ensure that LDO and SMPS regulators are not
* inadvertently turned on because voltage > 0 is equivalent to
* enabling. For NCP, this just removes unnecessary RPM requests.
*/
if (vreg->is_enabled) {
rc = vreg_set(vreg, mask[0], val[0], mask[1], val[1],
vreg->part->request_len);
if (rc)
vreg_err(vreg, "vreg_set failed, rc=%d\n", rc);
} else if (vreg->type == RPM_REGULATOR_TYPE_NCP) {
/* Regulator is disabled; store but don't send new request. */
rc = vreg_store(vreg, mask[0], val[0], mask[1], val[1]);
}
if (!rc && (!vreg->pdata.sleep_selectable || !vreg->is_enabled))
vreg->save_uV = uV;
mutex_unlock(&vreg->pc_lock);
return rc;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:81,代码来源:rpm-regulator.c
示例13: vreg_enable_time
static int vreg_enable_time(struct regulator_dev *rdev)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
return vreg->pdata.enable_time;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:6,代码来源:rpm-regulator.c
示例14: vreg_pin_control_is_enabled
/*
* Returns the logical pin control enable state because the pin control options
* present in the hardware out of restart could be different from those desired
* by the consumer.
*/
static int vreg_pin_control_is_enabled(struct regulator_dev *rdev)
{
struct vreg *vreg = rdev_get_drvdata(rdev);
return vreg->is_enabled_pc;
}
开发者ID:AnDr0id,项目名称:SGH-I747,代码行数:11,代码来源:rpm-regulator.c
示例15: gpio_regulator_is_enabled
static int gpio_regulator_is_enabled(struct regulator_dev *dev)
{
struct gpio_regulator_data *data = rdev_get_drvdata(dev);
return data->is_enabled;
}
开发者ID:0xroot,项目名称:Blackphone-BP1-Kernel,代码行数:6,代码来源:gpio-regulator.c
示例16: gpio_regulator_enable_time
static int gpio_regulator_enable_time(struct regulator_dev *dev)
{
struct gpio_regulator_data *data = rdev_get_drvdata(dev);
return data->startup_delay;
}
开发者ID:0xroot,项目名称:Blackphone-BP1-Kernel,代码行数:6,代码来源:gpio-regulator.c
示例17: da9063_suspend_disable
static int da9063_suspend_disable(struct regulator_dev *rdev)
{
struct da9063_regulator *regl = rdev_get_drvdata(rdev);
return regmap_field_write(regl->suspend, 0);
}
开发者ID:BozkurTR,项目名称:kernel,代码行数:6,代码来源:da9063-regulator.c
示例18: footswitch_is_enabled
static int footswitch_is_enabled(struct regulator_dev *rdev)
{
struct footswitch *fs = rdev_get_drvdata(rdev);
return fs->is_enabled;
}
开发者ID:DooMLoRD,项目名称:semc-kernel-msm7x30-dev,代码行数:6,代码来源:footswitch-8x60.c
示例19: bq24022_get_current_limit
static int bq24022_get_current_limit(struct regulator_dev *rdev)
{
struct bq24022_mach_info *pdata = rdev_get_drvdata(rdev);
return gpio_get_value(pdata->gpio_iset2) ? 500000 : 100000;
}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:6,代码来源:bq24022.c
示例20: footswitch_disable
static int footswitch_disable(struct regulator_dev *rdev)
{
struct footswitch *fs = rdev_get_drvdata(rdev);
uint32_t regval, rc = 0;
/* Return early if already disabled. */
regval = readl_relaxed(fs->gfs_ctl_reg);
if ((regval & ENABLE_BIT) == 0)
return 0;
/* Make sure required clocks are on at the correct rates. */
rc = setup_clocks(fs);
if (rc)
goto out;
/* Halt all bus ports in the power domain. */
if (fs->bus_port1) {
rc = msm_bus_axi_porthalt(fs->bus_port1);
if (rc) {
pr_err("%s: Port 1 halt failed.\n", __func__);
goto out;
}
}
if (fs->bus_port2) {
rc = msm_bus_axi_porthalt(fs->bus_port2);
if (rc) {
pr_err("%s: Port 1 halt failed.\n", __func__);
goto err_port2_halt;
}
}
/*
* Assert resets for all clocks in the clock domain so that
* outputs settle prior to clamping.
*/
if (fs->axi_clk)
clk_reset(fs->axi_clk, CLK_RESET_ASSERT);
clk_reset(fs->ahb_clk, CLK_RESET_ASSERT);
clk_reset(fs->core_clk, CLK_RESET_ASSERT);
/* Wait for synchronous resets to propagate. */
udelay(RESET_DELAY_US);
/*
* Clamp the I/O ports of the core to ensure the values
* remain fixed while the core is collapsed.
*/
regval |= CLAMP_BIT;
writel_relaxed(regval, fs->gfs_ctl_reg);
/* Collapse the power rail at the footswitch. */
regval &= ~ENABLE_BIT;
writel_relaxed(regval, fs->gfs_ctl_reg);
/* Return clocks to their state before this function. */
restore_clocks(fs);
fs->is_enabled = false;
return rc;
err_port2_halt:
msm_bus_axi_portunhalt(fs->bus_port1);
out:
return rc;
}
开发者ID:DooMLoRD,项目名称:semc-kernel-msm7x30-dev,代码行数:65,代码来源:footswitch-8x60.c
注:本文中的rdev_get_drvdata函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论