• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ regulator_get_voltage函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中regulator_get_voltage函数的典型用法代码示例。如果您正苦于以下问题:C++ regulator_get_voltage函数的具体用法?C++ regulator_get_voltage怎么用?C++ regulator_get_voltage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了regulator_get_voltage函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: clk_volt_store

ssize_t clk_volt_store(struct kobject *kobj, struct kobj_attribute *attr,
		const char *buf, size_t n)
{
	char cmd[20], regulator_name[20];
	unsigned int volt;
	int ret = 0;
	int need_put_regulator=0;
	struct regulator *regulator;

	printk("%s: %s\n", __func__, buf);
	sscanf(buf, "%s %s %u", cmd, regulator_name, &volt);

	regulator = dvfs_get_regulator(regulator_name);
	if (IS_ERR_OR_NULL(regulator)) {
		regulator = regulator_get(NULL, regulator_name);
		if (IS_ERR(regulator)){
			PM_ERR("%s get dvfs_regulator %s error\n", __func__, regulator_name);
			return n;
		}
		need_put_regulator = 1;
	}	

	if (0 == strncmp(cmd, "set", strlen("set"))){
		if (volt & SET_SUSPEND_VOLT_FLAG){
			volt &= ~SET_SUSPEND_VOLT_FLAG;
			//ret = regulator_set_suspend_voltage(regulator, volt); 
			if (!ret)
				printk("set %s suspend volt to %uuV ok\n", regulator_name, volt);
			else
				printk("regulator_set_suspend_voltage err:%d\n", ret);
		}else{
			ret = regulator_set_voltage(regulator, volt, volt); 
			if (!ret)
				printk("set %s volt to %uuV ok\n", regulator_name, regulator_get_voltage(regulator));
			else
				printk("regulator_set_voltage err:%d\n", ret);
		}
		
	}
	if (0 == strncmp(cmd, "get", strlen("get"))){
		printk("%s:%duV\n", regulator_name, regulator_get_voltage(regulator));
	}

	if (need_put_regulator)
		regulator_put(regulator);

//	if (0 == strncmp(cmd, "enable", strlen("enable"))) {
	return n;
}
开发者ID:Astralix,项目名称:kernel,代码行数:49,代码来源:clk_volt.c


示例2: ak09911c_regulator_onoff

static int ak09911c_regulator_onoff(struct device *dev, bool onoff)
{
	struct regulator *vdd;
	struct regulator *vio;
	int ret = 0;

	pr_info("%s %s\n", __func__, (onoff) ? "on" : "off");

	vdd = devm_regulator_get(dev, "ak09911c,vdd");
	if (IS_ERR(vdd)) {
		pr_err("%s: cannot get vdd\n", __func__);
		ret = -ENOMEM;
		goto err_vdd;
	} else if (!regulator_get_voltage(vdd)) {
		ret = regulator_set_voltage(vdd, 2850000, 2850000);
	}

	vio = devm_regulator_get(dev, "ak09911c,vio");
	if (IS_ERR(vio)) {
		pr_err("%s: cannot get vio\n", __func__);
		ret = -ENOMEM;
		goto err_vio;
	} else if (!regulator_get_voltage(vio)) {
		ret = regulator_set_voltage(vio, 1800000, 1800000);
	}

	if (onoff) {
		ret = regulator_enable(vdd);
		if (ret)
			pr_err("%s: Failed to enable vdd.\n", __func__);
		ret = regulator_enable(vio);
		if (ret)
			pr_err("%s: Failed to enable vio.\n", __func__);
	} else {
		ret = regulator_disable(vdd);
		if (ret)
			pr_err("%s: Failed to enable vdd.\n", __func__);
		ret = regulator_disable(vio);
		if (ret)
			pr_err("%s: Failed to enable vio.\n", __func__);
	}
	msleep(20);

	devm_regulator_put(vio);
err_vio:
	devm_regulator_put(vdd);
err_vdd:
	return ret;
}
开发者ID:Jackeagle,项目名称:kernel_samsung,代码行数:49,代码来源:ak09911c.c


示例3: hw_tp_power_get_info

void hw_tp_power_get_info(char * buf, ssize_t len) {
    struct hw_tp_power_data * pd = NULL;
    struct hw_tp_power_node * pn =NULL;
    char str_tmp[MAX_POWER_TMP_STR_LEN] = {0};
    ssize_t size = 0;
    
    pd = hw_tp_get_power_data();
    if(!pd) {
        tp_log_err("%s#%d: get power data fail!\n",__func__,__LINE__);
        return;
    }

     pn = pd->pnode_list;
     while(pn) {
        snprintf(str_tmp,sizeof(str_tmp),
            "power-name=%s; power-type=%d; power-gpio=%d; power-volt=%d; "
            "gpio-value=%d; is-initialized = %d; ",
            pn->power_name, pn->power_type, pn->power_gpio, pn->power_volt,
            gpio_get_value(pn->power_gpio), pn->is_initialized);
            strncat(buf,str_tmp, len-size);
            size  += strlen(str_tmp);
        if(pn->preg) {
            snprintf(str_tmp,sizeof(str_tmp),
            "power-reg-enable=%d; power-reg-value=%d\n",
            regulator_get_voltage(pn->preg), pn->power_volt);
            strncat(buf,str_tmp, len-size);
            size += strlen(str_tmp);
        } else {
            strncat(buf,"\n",1);
            size++;
        }
        pn = pn->next;
     }
}
开发者ID:DestructoSphere,项目名称:android_kernel_huawei_msm8909,代码行数:34,代码来源:hw_tp_power.c


示例4: sensor_VDD_control

int sensor_VDD_control(int on)
{
	static struct regulator *vreg_vdd;
	int rc = -EINVAL;

	vreg_vdd = regulator_get(NULL, "8038_l10");
	
	if (IS_ERR(vreg_vdd)) {
		pr_err("%s: regulator get of sensor_3(VDD) failed (%ld)\n"
			, __func__, PTR_ERR(vreg_vdd));
		rc = PTR_ERR(vreg_vdd);
		return rc;
	}
	pr_info("%s: regulator_get end\n", __func__);

	if(on == 1)
		rc = regulator_enable(vreg_vdd);
	else
		rc = regulator_disable(vreg_vdd);
	
	if(rc != 0){
		pr_err("%s: SENSOR_LDO_EN(%d) %s fail\n", __func__, SENSOR_LDO_EN, on ? "ON":"OFF");
		return -1;
	}
	mdelay(10);
	
	pr_info("%s: SENSOR_VDD(%d) is set to %d\n", __func__, SENSOR_VDD, regulator_get_voltage(vreg_vdd));

	return 1;
}
开发者ID:GameTheory-,项目名称:android_kernel_lge_f3,代码行数:30,代码来源:board-fx3-sensor-vzw.c


示例5: regulator_status

void regulator_status(int id, int type)
{
	struct regulator *regulator = NULL;
	int status = 0, voltage = 0;
	id = (type << REGULATOR_SHIFT) | id;
	regulator = regulator_get_by_id(id);
	if (NULL == regulator)
	{
		regu_pr_info("get regulator failed---->id is :%d\n", id);
		return;
	}
	status = regulator_is_enabled(regulator);
	if (type != REGULATOR_TYPE_P531_MTCMOS && type != REGULATOR_TYPE_V7R2_MTCMOS)
	{
		voltage = regulator_get_voltage(regulator);
	}
	else
	{
		voltage = -1;
	}

	printf("id\t name\t\t use_count\t status\t voltage\t\n");
	printf("%-d\t %-s\t %-d\t\t %-d\t %-d\t\n", regulator->id, regulator->name, regulator->use_count,
											status, voltage);
}
开发者ID:herryfan,项目名称:kernel-huawei-h60,代码行数:25,代码来源:regulator_test_byid.c


示例6: gk20a_volt_new

int
gk20a_volt_new(struct nvkm_device *device, int index, struct nvkm_volt **pvolt)
{
	struct nvkm_device_tegra *tdev = device->func->tegra(device);
	struct gk20a_volt *volt;
	int i, uv;

	if (!(volt = kzalloc(sizeof(*volt), GFP_KERNEL)))
		return -ENOMEM;

	nvkm_volt_ctor(&gk20a_volt, device, index, &volt->base);
	*pvolt = &volt->base;

	uv = regulator_get_voltage(tdev->vdd);
	nvkm_info(&volt->base.subdev, "The default voltage is %duV\n", uv);

	volt->vdd = tdev->vdd;

	volt->base.vid_nr = ARRAY_SIZE(gk20a_cvb_coef);
	nvkm_debug(&volt->base.subdev, "%s - vid_nr = %d\n", __func__,
		   volt->base.vid_nr);
	for (i = 0; i < volt->base.vid_nr; i++) {
		volt->base.vid[i].vid = i;
		volt->base.vid[i].uv =
			gk20a_volt_calc_voltage(&gk20a_cvb_coef[i],
						tdev->gpu_speedo);
		nvkm_debug(&volt->base.subdev, "%2d: vid=%d, uv=%d\n", i,
			   volt->base.vid[i].vid, volt->base.vid[i].uv);
	}

	return 0;
}
开发者ID:BORETS24,项目名称:common.git-android-4.4,代码行数:32,代码来源:gk20a.c


示例7: adc128_read_raw

static int adc128_read_raw(struct iio_dev *indio_dev,
			   struct iio_chan_spec const *channel, int *val,
			   int *val2, long mask)
{
	struct adc128 *adc = iio_priv(indio_dev);
	int ret;

	switch (mask) {
	case IIO_CHAN_INFO_RAW:

		ret = adc128_adc_conversion(adc, channel->channel);
		if (ret < 0)
			return ret;

		*val = ret;
		return IIO_VAL_INT;

	case IIO_CHAN_INFO_SCALE:

		ret = regulator_get_voltage(adc->reg);
		if (ret < 0)
			return ret;

		*val = ret / 1000;
		*val2 = 12;
		return IIO_VAL_FRACTIONAL_LOG2;

	default:
		return -EINVAL;
	}

}
开发者ID:168519,项目名称:linux,代码行数:32,代码来源:ti-adc128s052.c


示例8: tse850_get_ana

int tse850_get_ana(struct snd_kcontrol *kctrl,
		   struct snd_ctl_elem_value *ucontrol)
{
	struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kctrl);
	struct snd_soc_card *card = dapm->card;
	struct tse850_priv *tse850 = snd_soc_card_get_drvdata(card);
	int ret;

	ret = regulator_get_voltage(tse850->ana);
	if (ret < 0)
		return ret;

	/*
	 * Map regulator output values like so:
	 *      -11.5V to "Low" (enum 0)
	 * 11.5V-12.5V to "12V" (enum 1)
	 * 12.5V-13.5V to "13V" (enum 2)
	 *     ...
	 * 18.5V-19.5V to "19V" (enum 8)
	 * 19.5V-      to "20V" (enum 9)
	 */
	if (ret < 11000000)
		ret = 11000000;
	else if (ret > 20000000)
		ret = 20000000;
	ret -= 11000000;
	ret = (ret + 500000) / 1000000;

	ucontrol->value.enumerated.item[0] = ret;

	return 0;
}
开发者ID:forgivemyheart,项目名称:linux,代码行数:32,代码来源:tse850-pcm5142.c


示例9: omap_cpufreq_probe

static int omap_cpufreq_probe(struct platform_device *pdev)
{
	mpu_dev = get_cpu_device(0);
	if (!mpu_dev) {
		pr_warning("%s: unable to get the mpu device\n", __func__);
		return -EINVAL;
	}

	mpu_reg = regulator_get(mpu_dev, "vcc");
	if (IS_ERR(mpu_reg)) {
		pr_warning("%s: unable to get MPU regulator\n", __func__);
		mpu_reg = NULL;
	} else {
		/* 
		 * Ensure physical regulator is present.
		 * (e.g. could be dummy regulator.)
		 */
		if (regulator_get_voltage(mpu_reg) < 0) {
			pr_warn("%s: physical regulator not present for MPU\n",
				__func__);
			regulator_put(mpu_reg);
			mpu_reg = NULL;
		}
	}

	return cpufreq_register_driver(&omap_driver);
}
开发者ID:24hours,项目名称:linux,代码行数:27,代码来源:omap-cpufreq.c


示例10: soc_pcmcia_regulator_set

int soc_pcmcia_regulator_set(struct soc_pcmcia_socket *skt,
	struct soc_pcmcia_regulator *r, int v)
{
	bool on;
	int ret;

	if (!r->reg)
		return 0;

	on = v != 0;
	if (r->on == on)
		return 0;

	if (on) {
		ret = regulator_set_voltage(r->reg, v * 100000, v * 100000);
		if (ret) {
			int vout = regulator_get_voltage(r->reg) / 100000;

			dev_warn(&skt->socket.dev,
				 "CS requested %s=%u.%uV, applying %u.%uV\n",
				 r == &skt->vcc ? "Vcc" : "Vpp",
				 v / 10, v % 10, vout / 10, vout % 10);
		}

		ret = regulator_enable(r->reg);
	} else {
		regulator_disable(r->reg);
	}
	if (ret == 0)
		r->on = on;

	return ret;
}
开发者ID:acton393,项目名称:linux,代码行数:33,代码来源:soc_common.c


示例11: max11100_read_raw

static int max11100_read_raw(struct iio_dev *indio_dev,
			     struct iio_chan_spec const *chan,
			     int *val, int *val2, long info)
{
	int ret, vref_uv;
	struct max11100_state *state = iio_priv(indio_dev);

	switch (info) {
	case IIO_CHAN_INFO_RAW:
		ret = max11100_read_single(indio_dev, val);
		if (ret)
			return ret;

		return IIO_VAL_INT;

	case IIO_CHAN_INFO_SCALE:
		vref_uv = regulator_get_voltage(state->vref_reg);
		if (vref_uv < 0)
			/* dummy regulator "get_voltage" returns -EINVAL */
			return -EINVAL;

		*val =  vref_uv / 1000;
		*val2 = MAX11100_LSB_DIV;
		return IIO_VAL_FRACTIONAL;
	}

	return -EINVAL;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:28,代码来源:max11100.c


示例12: show_min_uV

static ssize_t show_min_uV(struct device *dev,
			   struct device_attribute *attr, char *buf)
{
	struct virtual_consumer_data *data = dev_get_drvdata(dev);
	data->min_uV = regulator_get_voltage(data->regulator);
	return sprintf(buf, "%d\n", data->min_uV);
}
开发者ID:GREYFOXRGR,项目名称:BPI-M3-bsp,代码行数:7,代码来源:virtual22.c


示例13: lcm_vgp_supply_enable

int lcm_vgp_supply_enable(void)
{
	int ret;
	unsigned int volt;

	pr_debug("LCM: lcm_vgp_supply_enable\n");

	if (NULL == lcm_vgp)
		return 0;

	pr_debug("LCM: set regulator voltage lcm_vgp voltage to 2.8V\n");
	/* set(vgp1) voltage to 2.8V */
	ret = regulator_set_voltage(lcm_vgp, 3300000, 3300000);
	if (ret != 0) {
		pr_err("LCM: lcm failed to set lcm_vgp voltage: %d\n", ret);
		return ret;
	}

	/* get(vgp1) voltage settings again */
	volt = regulator_get_voltage(lcm_vgp);
	if (volt == 3300000)
		pr_err("LCM: check  voltage=%d pass!\n", volt);
	else
		pr_err("LCM: check  voltage=%d fail!\n", volt);

	ret = regulator_enable(lcm_vgp);
	if (ret != 0) {
		pr_err("LCM: Failed to enable lcm_vgp: %d\n", ret);
		return ret;
	}

	return ret;
}
开发者ID:P-D-A,项目名称:android_kernel_lge_mt6753,代码行数:33,代码来源:lcm_drv_cpt_clap070wp03xg_lvds.c


示例14: sunxi_mali_platform_device_register

/*
***************************************************************
 @Function	  :sunxi_mali_platform_device_register

 @Description :Register mali platform device

 @Input		  :None

 @Return	  :0 or error code
***************************************************************
*/
int sunxi_mali_platform_device_register(void)
{
    int err;
    unsigned long mem_size = 0;
    struct __fb_addr_para fb_addr_para={0};

    sunxi_get_fb_addr_para(&fb_addr_para);

    err = platform_device_add_resources(&mali_gpu_device, mali_gpu_resources, sizeof(mali_gpu_resources) / sizeof(mali_gpu_resources[0]));
    if (0 == err){
        mali_gpu_data.fb_start = fb_addr_para.fb_paddr;
        mali_gpu_data.fb_size = fb_addr_para.fb_size;	
		mem_size = (totalram_pages  * PAGE_SIZE )/1024; /* KB */
	
		if(mem_size > 512*1024)
		{
			mali_gpu_data.shared_mem_size = 1024*1024*1024;
		}
		else
		{
			mali_gpu_data.shared_mem_size = 512*1024*1024;
		}

        err = platform_device_add_data(&mali_gpu_device, &mali_gpu_data, sizeof(mali_gpu_data));
        if(0 == err)
		{
            err = platform_device_register(&mali_gpu_device);
            if (0 == err){
                if(_MALI_OSK_ERR_OK != mali_platform_init())
				{
					return _MALI_OSK_ERR_FAULT;
				}
#ifdef CONFIG_PM_RUNTIME
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
				pm_runtime_set_autosuspend_delay(&(mali_gpu_device.dev), 1000);
				pm_runtime_use_autosuspend(&(mali_gpu_device.dev));
#endif
				pm_runtime_enable(&(mali_gpu_device.dev));
#endif /* CONFIG_PM_RUNTIME */
				/* print mali gpu information */
				printk(KERN_INFO "=========================================================\n");
				printk(KERN_INFO "       Mali GPU Information         \n");
				printk(KERN_INFO "voltage             : %d mV\n", regulator_get_voltage(mali_regulator)/1000);
				printk(KERN_INFO "initial frequency   : %ld MHz\n", clk_get_rate(h_mali_clk)/(1000*1000));
				printk(KERN_INFO "frame buffer address: 0x%lx - 0x%lx\n", mali_gpu_data.fb_start, mali_gpu_data.fb_start + mali_gpu_data.shared_mem_size);
				printk(KERN_INFO "frame buffer size   : %ld MB\n", mali_gpu_data.shared_mem_size/(1024*1024));
				printk(KERN_INFO "=========================================================\n");
                return 0;
            }
        }

        platform_device_unregister(&mali_gpu_device);
    }

#ifdef CONFIG_CPU_BUDGET_THERMAL
	register_budget_cooling_notifier(&mali_throttle_notifier);
#endif /* CONFIG_CPU_BUDGET_THERMAL */
	
    return err;
}
开发者ID:alex-deng,项目名称:a33_linux,代码行数:71,代码来源:mali_platform.c


示例15: _gk20a_volt_ctor

int
_gk20a_volt_ctor(struct nvkm_device *device, int index,
		 const struct cvb_coef *coefs, int nb_coefs,
		 struct gk20a_volt *volt)
{
	struct nvkm_device_tegra *tdev = device->func->tegra(device);
	int i, uv;

	nvkm_volt_ctor(&gk20a_volt, device, index, &volt->base);

	uv = regulator_get_voltage(tdev->vdd);
	nvkm_debug(&volt->base.subdev, "the default voltage is %duV\n", uv);

	volt->vdd = tdev->vdd;

	volt->base.vid_nr = nb_coefs;
	for (i = 0; i < volt->base.vid_nr; i++) {
		volt->base.vid[i].vid = i;
		volt->base.vid[i].uv =
			gk20a_volt_calc_voltage(&coefs[i],
						tdev->gpu_speedo);
		nvkm_debug(&volt->base.subdev, "%2d: vid=%d, uv=%d\n", i,
			   volt->base.vid[i].vid, volt->base.vid[i].uv);
	}

	return 0;
}
开发者ID:020gzh,项目名称:linux,代码行数:27,代码来源:gk20a.c


示例16: ad5624r_probe

static int __devinit ad5624r_probe(struct spi_device *spi)
{
	struct ad5624r_state *st;
	struct iio_dev *indio_dev;
	struct regulator *reg;
	int ret, voltage_uv = 0;

	reg = regulator_get(&spi->dev, "vcc");
	if (!IS_ERR(reg)) {
		ret = regulator_enable(reg);
		if (ret)
			goto error_put_reg;

		voltage_uv = regulator_get_voltage(reg);
	}
	indio_dev = iio_allocate_device(sizeof(*st));
	if (indio_dev == NULL) {
		ret = -ENOMEM;
		goto error_disable_reg;
	}
	st = iio_priv(indio_dev);
	st->reg = reg;
	spi_set_drvdata(spi, indio_dev);
	st->chip_info =
		&ad5624r_chip_info_tbl[spi_get_device_id(spi)->driver_data];

	if (voltage_uv)
		st->vref_mv = voltage_uv / 1000;
	else
		st->vref_mv = st->chip_info->int_vref_mv;

	st->us = spi;

	indio_dev->dev.parent = &spi->dev;
	indio_dev->name = spi_get_device_id(spi)->name;
	indio_dev->info = &ad5624r_info;
	indio_dev->modes = INDIO_DIRECT_MODE;

	ret = iio_device_register(indio_dev);
	if (ret)
		goto error_free_dev;

	ret = ad5624r_spi_write(spi, AD5624R_CMD_INTERNAL_REFER_SETUP, 0,
				!!voltage_uv, 16);
	if (ret)
		goto error_free_dev;

	return 0;

error_free_dev:
	iio_free_device(indio_dev);
error_disable_reg:
	if (!IS_ERR(reg))
		regulator_disable(reg);
error_put_reg:
	if (!IS_ERR(reg))
		regulator_put(reg);

	return ret;
}
开发者ID:303750856,项目名称:linux-3.1,代码行数:60,代码来源:ad5624r_spi.c


示例17: papyrus_gettemp_work

static void papyrus_gettemp_work(struct work_struct *work)
{
	int ret = 0;
	signed int temp = 0;

	/* i2c bus is suspended */
	if (mxc_i2c_suspended)
		return;

	ret = regulator_enable(display_regulator);
	if (ret < 0) {
		printk(KERN_ERR "Error enabling display_regulator\n");
		goto out;
	}

	temp = regulator_get_voltage(temp_regulator);

	if (temp >= 246)
		temp = (temp - 256);

	regulator_disable(display_regulator);
	papyrus_temp = temp;

	if (papyrus_temp >= PAPYRUS_TEMP_LOGGING)
		printk(KERN_DEBUG "Papyrus temperature: %d\n", papyrus_temp);
out:
	schedule_delayed_work(&papyrus_temp_work, msecs_to_jiffies(PAPYRUS_TEMP_THRESHOLD));
}
开发者ID:fread-ink,项目名称:fread-kernel-k4,代码行数:28,代码来源:papyrus-regulator-v2.c


示例18: irrc_power_set

static int irrc_power_set(bool enable)
{
	int rc = -EINVAL;
	if (NULL == vreg_l8) {
		vreg_l8 = regulator_get(NULL, "sw_irrc");   //2.6 ~ 3V
		INFO_MSG("enable=%d\n", enable);

		if (IS_ERR(vreg_l8)) {
			pr_err("%s: regulator get of sw_irrc failed (%ld)\n"
					, __func__, PTR_ERR(vreg_l8));
			printk("%s ERROR\n", __FUNCTION__);
			rc = PTR_ERR(vreg_l8);
			return rc;
		}
	}
	rc = regulator_set_voltage(vreg_l8, 2800000, 2800000);

	if (enable == snddev_reg_8921_l8_status)
		return 0;

	if (enable) {
		rc = regulator_set_voltage(vreg_l8, 2800000, 2800000);
		if (rc < 0)
			pr_err("LGE:  VIB %s: regulator_set_voltage(l8) failed (%d)\n",
			__func__, rc);

		rc = regulator_enable(vreg_l8);

		if (rc < 0)
			pr_err("LGE: VIB %s: regulator_enable(l8) failed (%d)\n", __func__, rc);
		snddev_reg_8921_l8_status = true;

		printk(KERN_INFO "ooooo %s_ regulator(l8) volatage = %d ooooo\n",
			__FUNCTION__, regulator_get_voltage(vreg_l8));

	} else {
		rc = regulator_disable(vreg_l8);
		if (rc < 0)
			pr_err("%s: regulator_disable(l8) failed (%d)\n", __func__, rc);
		snddev_reg_8921_l8_status = false;

                printk(KERN_INFO "ooooo %s_ regulator(l8) volatage = %d ooooo\n",
			__FUNCTION__, regulator_get_voltage(vreg_l8));
	}

	return 0;
}
开发者ID:TheTypoMaster,项目名称:android_kernel_lg_awifi,代码行数:47,代码来源:android_irrc.c


示例19: rk_cif_powerdowen

static void rk_cif_powerdowen(int on)
{
    struct regulator *ldo_28;
    ldo_28 = regulator_get(NULL, "vpll");   // vcc28_cif
    if (ldo_28 == NULL || IS_ERR(ldo_28) ) {
        printk("get cif vpll ldo failed!\n");
        return;
    }

    //  if((res->gpio_flag & RK29_CAM_POWERDNACTIVE_MASK) == RK29_CAM_POWERDNACTIVE_H) {
    if( CONFIG_SENSOR_POWERDNACTIVE_LEVEL_PMU ) {
        printk("hjc:%s[%d],on=%d\n",__func__,__LINE__,on);
        if(on == 0) { //enable camera
            regulator_set_voltage(ldo_28, 2500000, 2500000);
            regulator_enable(ldo_28);
            printk(" %s set  vpll vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28));
            regulator_put(ldo_28);

        } else { //disable camera
            if(regulator_is_enabled(ldo_28)>0) {
                printk("%s[%d]\n",__func__,__LINE__);
                int a = regulator_disable(ldo_28);

            }
            // return;
            regulator_put(ldo_28);

            mdelay(500);
        }
    } else {
        printk("hjc:%s[%d],on=%d\n",__func__,__LINE__,on);

        if(on == 1) { //enable camera
            regulator_set_voltage(ldo_28, 2500000, 2500000);
            regulator_enable(ldo_28);
            printk(" %s set  vpll vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28));
            regulator_put(ldo_28);
        } else { //disable camera
            if(regulator_is_enabled(ldo_28)>0) {
                regulator_disable(ldo_28);
            }
            regulator_put(ldo_28);
            mdelay(500);
        }
    }
}
开发者ID:jwq2011,项目名称:kernel_rk3066,代码行数:46,代码来源:board-rk3026-86v-camera.c


示例20: mali_regulator_set_voltage

void mali_regulator_set_voltage(int min_uV, int max_uV)
{
	int voltage;
#if !MALI_DVFS_ENABLED
	min_uV = mali_gpu_vol;
	max_uV = mali_gpu_vol;
#endif
/*
#if MALI_VOLTAGE_LOCK
	if (mali_vol_lock_flag == MALI_FALSE) {
		if (min_uV < MALI_BOTTOMLOCK_VOL || max_uV < MALI_BOTTOMLOCK_VOL) {
			min_uV = MALI_BOTTOMLOCK_VOL;
			max_uV = MALI_BOTTOMLOCK_VOL;
		}
	} else if (_mali_osk_atomic_read(&voltage_lock_status) > 0 ) {
		if (min_uV < mali_lock_vol || max_uV < mali_lock_vol) {
#if MALI_DVFS_ENABLED
			int mali_vol_get;
			mali_vol_get = mali_vol_get_from_table(mali_lock_vol);
			if (mali_vol_get) {
				min_uV = mali_vol_get;
				max_uV = mali_vol_get;
			}
#else
			min_uV = mali_lock_vol;
			max_uV = mali_lock_vol;
#endif
		}
	}
#endif
*/

	_mali_osk_lock_wait(mali_dvfs_lock, _MALI_OSK_LOCKMODE_RW);

	if( IS_ERR_OR_NULL(g3d_regulator) )
	{
		MALI_DEBUG_PRINT(1, ("error on mali_regulator_set_voltage : g3d_regulator is null\n"));
		return;
	}

    MALI_DEBUG_PRINT(2, ("= regulator_set_voltage: %d, %d \n",min_uV, max_uV));

    regulator_set_voltage(g3d_regulator,min_uV,max_uV);
	voltage = regulator_get_voltage(g3d_regulator);

#if MALI_INTERNAL_TIMELINE_PROFILING_ENABLED
	gVolt = voltage/1000;
	_mali_osk_profiling_add_event(MALI_PROFILING_EVENT_TYPE_SINGLE | 
				MALI_PROFILING_EVENT_CHANNEL_GPU | 
				MALI_PROFILING_EVENT_REASON_SINGLE_GPU_FREQ_VOLT_CHANGE, gFreq, gVolt, 
				0, 0, 0); 
#endif

	mali_gpu_vol = voltage;
	MALI_DEBUG_PRINT(1, ("= regulator_get_voltage: %d \n",mali_gpu_vol));

	_mali_osk_lock_signal(mali_dvfs_lock, _MALI_OSK_LOCKMODE_RW);
}
开发者ID:gokussjx,项目名称:Googy-Max-Kernel,代码行数:58,代码来源:mali_platform.c



注:本文中的regulator_get_voltage函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ regulator_has_full_constraints函数代码示例发布时间:2022-05-30
下一篇:
C++ regulator_force_disable函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap