您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GPIO_CFG函数代码示例

51自学网 2021-06-01 20:54:34
  C++
这篇教程C++ GPIO_CFG函数代码示例写得很实用,希望能帮到您。

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

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

示例1: sku3_lcdc_lcd_camera_power_init

void sku3_lcdc_lcd_camera_power_init(void){	int rc = 0;	u32 socinfo = socinfo_get_platform_type();	  /* LDO_EXT2V8 */	if (gpio_request(SKU3_LCDC_LCD_CAMERA_LDO_2V8, "lcd_camera_ldo_2v8")) {		pr_err("failed to request gpio lcd_camera_ldo_2v8/n");		return;	}	rc = gpio_tlmm_config(GPIO_CFG(SKU3_LCDC_LCD_CAMERA_LDO_2V8, 0,		GPIO_CFG_OUTPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA),		GPIO_CFG_ENABLE);	if (rc < 0) {		pr_err("%s:unable to enable lcd_camera_ldo_2v8!/n", __func__);		goto fail_gpio2;	}	/* LDO_EVT1V8 */	if (socinfo == 0x0B) {		if (gpio_request(SKU3_LCDC_LCD_CAMERA_LDO_1V8,				"lcd_camera_ldo_1v8")) {			pr_err("failed to request gpio lcd_camera_ldo_1v8/n");			goto fail_gpio1;		}		rc = gpio_tlmm_config(GPIO_CFG(SKU3_LCDC_LCD_CAMERA_LDO_1V8, 0,			GPIO_CFG_OUTPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA),			GPIO_CFG_ENABLE);		if (rc < 0) {			pr_err("%s: unable to enable lcdc_camera_ldo_1v8!/n",				__func__);			goto fail_gpio1;		}	} else if (socinfo == 0x0F || machine_is_msm8625_qrd7()) {		if (gpio_request(SKU3_1_LCDC_LCD_CAMERA_LDO_1V8,				"lcd_camera_ldo_1v8")) {			pr_err("failed to request gpio lcd_camera_ldo_1v8/n");			goto fail_gpio1;		}		rc = gpio_tlmm_config(GPIO_CFG(SKU3_1_LCDC_LCD_CAMERA_LDO_1V8,			0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA),			GPIO_CFG_ENABLE);		if (rc < 0) {			pr_err("%s: unable to enable lcdc_camera_ldo_1v8!/n",				__func__);			goto fail_gpio1;		}	}	rc = regulator_bulk_get(NULL, ARRAY_SIZE(regs_truly_lcdc),			regs_truly_lcdc);	if (rc)		pr_err("%s: could not get regulators: %d/n", __func__, rc);	rc = regulator_bulk_set_voltage(ARRAY_SIZE(regs_truly_lcdc),			regs_truly_lcdc);	if (rc)		pr_err("%s: could not set voltages: %d/n", __func__, rc);	return;fail_gpio1:	if (socinfo == 0x0B)		gpio_free(SKU3_LCDC_LCD_CAMERA_LDO_1V8);	else if (socinfo == 0x0F || machine_is_msm8625_qrd7())		gpio_free(SKU3_1_LCDC_LCD_CAMERA_LDO_1V8);fail_gpio2:	gpio_free(SKU3_LCDC_LCD_CAMERA_LDO_2V8);	return;}
开发者ID:OpenTheDoor,项目名称:F4Kernel,代码行数:76,


示例2: init_gpios

static int init_gpios(void){    int ret;    struct gpio_switch_data *p = head;    while(p){	    ret = gpio_tlmm_config(GPIO_CFG(p->gpio, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA),GPIO_CFG_ENABLE);	    if (ret){	    	pr_err("Could not configure gpio %d/n", p->gpio);            return -EINVAL;        }        gpio_request(p->gpio , p->name);        if(p->event_mode == PAN_INPUTEVENT){            p->input_dev = input_allocate_device();            if(p->input_dev == NULL){                pr_err("switch_gpio failed to allocate input device/n");                return -ENOMEM;            }            p->input_dev->name = p->name;	        set_bit(EV_SW, p->input_dev->evbit);	        set_bit(SW_LID, p->input_dev->swbit);            ret = input_register_device(p->input_dev);            if(ret){                pr_err("switch_gpio unable to register %s input device/n", p->input_dev->name);                return -EINVAL;            }        }        else if(p->event_mode == PAN_UEVENT){            p->sdev.print_state = gpio_switch_print_state;            p->sdev.name = p->name;            ret = switch_dev_register(&p->sdev);            if(ret < 0){                pr_err("%s Switch dev register is failed/n" , p->sdev.name);                return -EINVAL;            }        }        else{            pr_err("event_mode : %d does not exist/n" , p->event_mode);             return -EINVAL;        }        p->current_state = gpio_get_value(p->gpio) ^ p->flag;        if(p->event_mode == PAN_INPUTEVENT){            dbg("INPUTEVENT %s sent event : %d/n" , p->name , p->current_state);            input_report_switch(p->input_dev , SW_LID , p->current_state);            input_sync(p->input_dev);        }        else if(p->event_mode == PAN_UEVENT){            dbg("UEVENT %s sent event : %d/n" , p->name , p->current_state);            switch_set_state(&p->sdev , p->current_state);        }        p->last_state = p->current_state;        ret = request_threaded_irq(p->irq , NULL , gpio_switch_irq_handler , IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING , p->name , p);        if(ret){            pr_err("%s request_irq is failed reason : %d/n" , p->name , ret);            return -EINVAL;        }                hrtimer_init(&p->timer , CLOCK_MONOTONIC , HRTIMER_MODE_REL);        p->timer.function = gpio_switch_timer_func;        p->debounce = DEBOUNCE_UNKNOWN | DEBOUNCE_WAIT_IRQ;        p->debounce_count = 0;        p->notify = NULL;        p->emergency_notify = NULL;        INIT_WORK(&p->work , gpio_switch_work);        wake_lock_init(&p->wakelock, WAKE_LOCK_SUSPEND, p->name);        enable_irq_wake(p->irq);        p->disabled = false;                p = p->next;    }    return 0;}
开发者ID:Vegaviet-Dev,项目名称:kernel-stock-4.4.2-ef63slk,代码行数:77,


示例3: max77803_i2c_probe

static int max77803_i2c_probe(struct i2c_client *i2c,			      const struct i2c_device_id *id){	struct max77803_dev *max77803;	struct max77803_platform_data *pdata;	u8 reg_data;	int ret = 0;	dev_info(&i2c->dev, "%s/n", __func__);	max77803 = kzalloc(sizeof(struct max77803_dev), GFP_KERNEL);	if (max77803 == NULL)		return -ENOMEM;	if (i2c->dev.of_node) {		pdata = devm_kzalloc(&i2c->dev,				sizeof(struct max77803_platform_data),				GFP_KERNEL);		if (!pdata) {			dev_err(&i2c->dev, "Failed to allocate memory /n");			ret = -ENOMEM;			goto err;		}		ret = of_max77803_dt(&i2c->dev, pdata);		if (ret < 0){			dev_err(&i2c->dev, "Failed to get device of_node /n");			return ret;		}		/*Filling the platform data*/		pdata->num_regulators = MAX77803_REG_MAX;		pdata->muic_data = &max77803_muic;		pdata->charger_data = &sec_battery_pdata;		pdata->regulators = max77803_regulators,#ifdef CONFIG_VIBETONZ		pdata->haptic_data = &max77803_haptic_pdata;#endif		pdata->led_data = &max77803_led_pdata;		/* set irq_base at sec_battery_pdata */		sec_battery_pdata.bat_irq = pdata->irq_base + MAX77803_CHG_IRQ_BATP_I;		/*pdata update to other modules*/		i2c->dev.platform_data = pdata;	} else		pdata = i2c->dev.platform_data;	i2c_set_clientdata(i2c, max77803);	max77803->dev = &i2c->dev;	max77803->i2c = i2c;	max77803->irq = i2c->irq;//	max77803->type = id->driver_data;	if (pdata) {		max77803->irq_base = pdata->irq_base;		max77803->irq_gpio = pdata->irq_gpio;		max77803->wakeup = pdata->wakeup;		gpio_tlmm_config(GPIO_CFG(max77803->irq_gpio,  0, GPIO_CFG_INPUT,                GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_DISABLE);	} else {		ret = -EINVAL;		goto err;	}	mutex_init(&max77803->iolock);	if (max77803_read_reg(i2c, MAX77803_PMIC_REG_PMIC_ID2, &reg_data) < 0) {		dev_err(max77803->dev,			"device not found on this channel (this is not an error)/n");		ret = -ENODEV;		goto err;	} else {		/* print rev */		max77803->pmic_rev = (reg_data & 0x7);		max77803->pmic_ver = ((reg_data & 0xF8) >> 0x3);		pr_info("%s: device found: rev.0x%x, ver.0x%x/n", __func__,				max77803->pmic_rev, max77803->pmic_ver);	}#if 0#if defined(CONFIG_MACH_JF_VZW) || defined(CONFIG_MACH_JF_LGT)	if (kernel_sec_get_debug_level() == KERNEL_SEC_DEBUG_LEVEL_LOW) {		pm8xxx_hard_reset_config(PM8XXX_DISABLE_HARD_RESET);		max77803_write_reg(i2c, MAX77803_PMIC_REG_MAINCTRL1, 0x04);	} else {		pm8xxx_hard_reset_config(PM8XXX_DISABLE_HARD_RESET);		max77803_write_reg(i2c, MAX77803_PMIC_REG_MAINCTRL1, 0x0c);	}#else	if (kernel_sec_get_debug_level() == KERNEL_SEC_DEBUG_LEVEL_LOW) {		max77803_write_reg(i2c, MAX77803_PMIC_REG_MAINCTRL1, 0x04);	} else {		pm8xxx_hard_reset_config(PM8XXX_DISABLE_HARD_RESET);		max77803_write_reg(i2c, MAX77803_PMIC_REG_MAINCTRL1, 0x0c);	}#endif#endif	max77803_update_reg(i2c, MAX77803_CHG_REG_SAFEOUT_CTRL, 0x00, 0x30);	max77803->muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC);	i2c_set_clientdata(max77803->muic, max77803);	max77803->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC);	i2c_set_clientdata(max77803->haptic, max77803);//.........这里部分代码省略.........
开发者ID:chadzynm,项目名称:leanKernel-note3,代码行数:101,


示例4: lcdc_splash_is_enabled

};static char lcdc_splash_is_enabled(){	return mdp_pdata.cont_splash_enabled;}#define GPIO_LCDC_BRDG_PD	128#define GPIO_LCDC_BRDG_RESET_N	129#define GPIO_LCD_DSI_SEL	125#define LCDC_RESET_PHYS		0x90008014static  void __iomem *lcdc_reset_ptr;static unsigned mipi_dsi_gpio[] = {		GPIO_CFG(GPIO_LCDC_BRDG_RESET_N, 0, GPIO_CFG_OUTPUT,		GPIO_CFG_NO_PULL, GPIO_CFG_2MA), /* LCDC_BRDG_RESET_N */		GPIO_CFG(GPIO_LCDC_BRDG_PD, 0, GPIO_CFG_OUTPUT,		GPIO_CFG_NO_PULL, GPIO_CFG_2MA), /* LCDC_BRDG_PD */};static unsigned lcd_dsi_sel_gpio[] = {	GPIO_CFG(GPIO_LCD_DSI_SEL, 0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP,			GPIO_CFG_2MA),};enum {	DSI_SINGLE_LANE = 1,	DSI_TWO_LANES,};static int msm_fb_get_lane_config(void)
开发者ID:OpenTheDoor,项目名称:F4Kernel,代码行数:32,


示例5: dsi_panel_device_register

//.........这里部分代码省略.........								false;				pr_debug("%s: dynamic FPS disabled/n",								__func__);		}		pinfo->new_fps = pinfo->mipi.frame_rate;	}	pinfo->panel_max_fps = mdss_panel_get_framerate(pinfo);	pinfo->panel_max_vtotal = mdss_panel_get_vtotal(pinfo);	ctrl_pdata->disp_en_gpio = of_get_named_gpio(ctrl_pdev->dev.of_node,		"qcom,platform-enable-gpio", 0);	if (!gpio_is_valid(ctrl_pdata->disp_en_gpio))		pr_err("%s:%d, Disp_en gpio not specified/n",						__func__, __LINE__);	if (pinfo->type == MIPI_CMD_PANEL) {		ctrl_pdata->disp_te_gpio = of_get_named_gpio(ctrl_pdev->dev.of_node,						"qcom,platform-te-gpio", 0);		if (!gpio_is_valid(ctrl_pdata->disp_te_gpio)) {			pr_err("%s:%d, Disp_te gpio not specified/n",						__func__, __LINE__);		}	}	if (gpio_is_valid(ctrl_pdata->disp_te_gpio) &&					pinfo->type == MIPI_CMD_PANEL) {		rc = gpio_request(ctrl_pdata->disp_te_gpio, "disp_te");		if (rc) {			pr_err("request TE gpio failed, rc=%d/n",			       rc);			return -ENODEV;		}		rc = gpio_tlmm_config(GPIO_CFG(				ctrl_pdata->disp_te_gpio, 1,				GPIO_CFG_INPUT,				GPIO_CFG_PULL_DOWN,				GPIO_CFG_2MA),				GPIO_CFG_ENABLE);		if (rc) {			pr_err("%s: unable to config tlmm = %d/n",				__func__, ctrl_pdata->disp_te_gpio);			gpio_free(ctrl_pdata->disp_te_gpio);			return -ENODEV;		}		rc = gpio_direction_input(ctrl_pdata->disp_te_gpio);		if (rc) {			pr_err("set_direction for disp_en gpio failed, rc=%d/n",			       rc);			gpio_free(ctrl_pdata->disp_te_gpio);			return -ENODEV;		}		pr_debug("%s: te_gpio=%d/n", __func__,					ctrl_pdata->disp_te_gpio);	}	ctrl_pdata->rst_gpio = of_get_named_gpio(ctrl_pdev->dev.of_node,			 "qcom,platform-reset-gpio", 0);	if (!gpio_is_valid(ctrl_pdata->rst_gpio))		pr_err("%s:%d, reset gpio not specified/n",						__func__, __LINE__);	if (pinfo->mode_gpio_state != MODE_GPIO_NOT_VALID) {
开发者ID:TechExhibeo,项目名称:armani_kernel,代码行数:66,


示例6: msm_proc_comm

//#include <linux/module.h>int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2);extern int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat);/* ---- SDCARD ---- *//* ---- WIFI ---- */static uint32_t wifi_on_gpio_table[] = {	//GPIO_CFG(116, 1, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT3 */	//GPIO_CFG(117, 1, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT2 */	//GPIO_CFG(118, 1, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT1 */	//GPIO_CFG(119, 1, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT0 */	//GPIO_CFG(111, 1, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_8MA), /* CMD */	//GPIO_CFG(110, 1, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_8MA), /* CLK */	GPIO_CFG(RIDER_GPIO_WIFI_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), /* WLAN IRQ */};static uint32_t wifi_off_gpio_table[] = {	//GPIO_CFG(116, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT3 */	//GPIO_CFG(117, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT2 */	//GPIO_CFG(118, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT1 */	//GPIO_CFG(119, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* DAT0 */	//GPIO_CFG(111, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP, GPIO_CFG_4MA), /* CMD */	//GPIO_CFG(110, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_4MA), /* CLK */	GPIO_CFG(RIDER_GPIO_WIFI_IRQ, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA), /* WLAN IRQ */};static void config_gpio_table(uint32_t *table, int len){		int n, rc;
开发者ID:AmeriCanAndroid,项目名称:kernel-android-msm-2.6.35,代码行数:31,


示例7: lge_hsd_probe

static int lge_hsd_probe(struct platform_device *pdev){    int ret;    struct gpio_switch_platform_data *pdata = pdev->dev.platform_data;    HSD_DBG("%s/n", pdata->name);    if (!pdata) {        HSD_ERR("The platform data is null/n");        return -EBUSY;    }    hi = kzalloc(sizeof(struct hsd_info), GFP_KERNEL);    if (!hi) {        HSD_ERR("Failed to allloate headset per device info/n");        return -ENOMEM;    }    hi->gpio = pdata->gpio;    mutex_init(&hi->mutex_lock);    hi->sdev.name = pdata->name;    hi->sdev.print_state = lge_hsd_print_state;    hi->sdev.print_name = lge_hsd_print_name;    ret = switch_dev_register(&hi->sdev);    if (ret < 0) {        HSD_ERR("Failed to register switch device/n");        goto err_switch_dev_register;    }    hs_detect_work_queue = create_workqueue("hs_detect");    if (hs_detect_work_queue == NULL) {        HSD_ERR("Failed to create workqueue/n");        goto err_create_work_queue;    }    ret = gpio_request(hi->gpio, pdev->name);    if (ret < 0) {        HSD_ERR("Failed to request gpio%d/n", hi->gpio);        goto err_request_detect_gpio;    }    ret = gpio_direction_input(hi->gpio);    if (ret < 0) {        HSD_ERR("Failed to set gpio%d as input/n", hi->gpio);        goto err_set_detect_gpio;    }    if (hi->gpio == LGE_HEADSET_DETECT_GPIO) {        ret = gpio_tlmm_config(GPIO_CFG(hi->gpio, 0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL,                                        GPIO_CFG_2MA), GPIO_CFG_ENABLE);        if (ret < 0) {            HSD_ERR("Failed to configure gpio%d tlmm/n", hi->gpio);            goto err_set_detect_gpio;        }    }    hi->irq = gpio_to_irq(pdata->gpio);    if (hi->irq < 0) {        HSD_ERR("Failed to get interrupt number/n");        ret = hi->irq;        goto err_get_irq_num_failed;    }    ret = request_irq(hi->irq, gpio_irq_handler,                      IRQF_TRIGGER_RISING|IRQF_TRIGGER_FALLING, pdev->name, NULL);    if (ret < 0) {        HSD_ERR("Failed to request interrupt handler/n");        goto err_request_detect_irq;    }    ret = irq_set_irq_wake(hi->irq, 1);    if (ret < 0) {        HSD_ERR("Failed to set interrupt wake/n");        goto err_request_input_dev;    }    hi->input = input_allocate_device();    if (!hi->input) {        HSD_ERR("Failed to allocate input device/n");        ret = -ENOMEM;        goto err_request_input_dev;    }    if (pdev->dev.platform_data)        hi->input->name = "7k_headset";    else        hi->input->name = "hsd_headset";    hi->input->id.vendor	= 0x0001;    hi->input->id.product	= 1;    hi->input->id.version	= 1;    input_set_capability(hi->input, EV_SW, SW_HEADPHONE_INSERT);    ret = input_register_device(hi->input);    if (ret) {        HSD_ERR("Failed to register input device/n");        goto err_register_input_dev;//.........这里部分代码省略.........
开发者ID:kerneldevs,项目名称:lge-kernel-msm7x27-ics-3.0.8,代码行数:101,


示例8: hallic_init_gpio

static void hallic_init_gpio(void) {	gpio_request(s5712ACDL1_pdata.irq_pin,"hallic_irq");	gpio_tlmm_config(GPIO_CFG(s5712ACDL1_pdata.irq_pin,		0, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);}
开发者ID:Dm47021,项目名称:Android_kernel_f6mt_aosp,代码行数:5,


示例9: mdp_config_vsync

void mdp_config_vsync(struct platform_device *pdev,	struct msm_fb_data_type *mfd){	/* vsync on primary lcd only for now */	if ((mfd->dest != DISPLAY_LCD) || (mfd->panel_info.pdest != DISPLAY_1)	    || (!vsync_mode)) {		goto err_handle;	}	vsync_clk_status = 0;	if (mfd->panel_info.lcd.vsync_enable) {		mfd->total_porch_lines = mfd->panel_info.lcd.v_back_porch +		    mfd->panel_info.lcd.v_front_porch +		    mfd->panel_info.lcd.v_pulse_width;		mfd->total_lcd_lines =		    mfd->panel_info.yres + mfd->total_porch_lines;		mfd->lcd_ref_usec_time =		    100000000 / mfd->panel_info.lcd.refx100;		mfd->vsync_handler_pending = FALSE;		mfd->last_vsync_timetick.tv64 = 0;#ifdef MDP_HW_VSYNC		if (mdp_vsync_clk == NULL)			mdp_vsync_clk = clk_get(&pdev->dev, "vsync_clk");		if (IS_ERR(mdp_vsync_clk)) {			printk(KERN_ERR "error: can't get mdp_vsync_clk!/n");			mfd->use_mdp_vsync = 0;		} else			mfd->use_mdp_vsync = 1;		if (mfd->use_mdp_vsync) {			uint32 vsync_cnt_cfg_dem;			uint32 mdp_vsync_clk_speed_hz;			mdp_vsync_clk_speed_hz = clk_get_rate(mdp_vsync_clk);			if (mdp_vsync_clk_speed_hz == 0) {				mfd->use_mdp_vsync = 0;			} else {				/*				 * Do this calculation in 2 steps for				 * rounding uint32 properly.				 */				vsync_cnt_cfg_dem =				    (mfd->panel_info.lcd.refx100 *				     mfd->total_lcd_lines) / 100;				vsync_cnt_cfg =				    (mdp_vsync_clk_speed_hz) /				    vsync_cnt_cfg_dem;				mdp_vsync_cfg_regs(mfd, TRUE);			}		}#else		mfd->use_mdp_vsync = 0;		hrtimer_init(&mfd->dma_hrtimer, CLOCK_MONOTONIC,			     HRTIMER_MODE_REL);		mfd->dma_hrtimer.function = mdp_dma2_vsync_hrtimer_handler;		mfd->vsync_width_boundary = vmalloc(mfd->panel_info.xres * 4);#endif#ifdef CONFIG_FB_MSM_MDDI		mfd->channel_irq = 0;		if (mfd->panel_info.lcd.hw_vsync_mode) {			u32 vsync_gpio = mfd->vsync_gpio;			u32 ret;			if (vsync_gpio == -1) {				MSM_FB_INFO("vsync_gpio not defined!/n");				goto err_handle;			}			ret = gpio_tlmm_config(GPIO_CFG					(vsync_gpio,					(mfd->use_mdp_vsync) ? 1 : 0,					GPIO_CFG_INPUT,					GPIO_CFG_PULL_DOWN,					GPIO_CFG_2MA),					GPIO_CFG_ENABLE);			if (ret)				goto err_handle;			/*			 * if use_mdp_vsync, then no interrupt need since			 * mdp_vsync is feed directly to mdp to reset the			 * write pointer counter. therefore no irq_handler			 * need to reset write pointer counter.			 */			if (!mfd->use_mdp_vsync) {				mfd->channel_irq = MSM_GPIO_TO_INT(vsync_gpio);				if (request_irq				    (mfd->channel_irq,				     &mdp_hw_vsync_handler_proxy,				     IRQF_TRIGGER_FALLING, "VSYNC_GPIO",				     (void *)mfd)) {					MSM_FB_INFO					("irq=%d failed! vsync_gpio=%d/n",						mfd->channel_irq,						vsync_gpio);//.........这里部分代码省略.........
开发者ID:ReflexBow,项目名称:android_kernel_motorola_ghost,代码行数:101,


示例10: icp_hd_power

static int icp_hd_power(int on){	int rc = 0;	//int status=0;		//CAM_INFO("%s %s:%d power = %d/n", __FILE__, __func__, __LINE__,on);	if(on) {		//standby control		rc = gpio_tlmm_config(GPIO_CFG(SENSOR_STANDBY_8M, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);		if (!rc) {			//CAM_INFO("%s %s:%d/n", __FILE__, __func__, __LINE__);			gpio_set_value(SENSOR_STANDBY_8M,0);							}				rc = regulator_enable(s2b_1p2v_8m);		if (rc) {			//CAM_ERR("%s: Enable regulator s2b_1p2v failed/n", __func__);			goto fail;		}		msleep(1);				rc = regulator_enable(mvs0b_1p8v_8m);		if (rc) {			//CAM_ERR("%s: Enable regulator mvs0b_1p8v failed/n", __func__);			goto fail;		}		msleep(1);				rc = regulator_enable(lvs3b_1p8v);		if (rc) {			//CAM_ERR("%s: Enable regulator lvs3b_1p8v failed/n", __func__);			goto fail;		}				msleep(1);				rc = regulator_enable(l2b_2p8v_8m);		if (rc) {			//CAM_ERR("%s: Enable regulator l2b_2p8v failed/n", __func__);			goto fail;		}		msleep(1);				rc = regulator_enable(l3b_2p8v_8m);		if (rc) {			//CAM_ERR("%s: Enable regulator l3b_2p8v failed/n", __func__);			goto fail;		}		//CAM_INFO("%s %s ON Success:%d/n", __FILE__, __func__, __LINE__);	}	else {		//CAM_INFO("%s %s:%d power /n", __FILE__, __func__, __LINE__);		//CAM_INFO("%s %s:%d power /n", __FILE__, __func__, __LINE__);		if(1)//mvs0b_1p8v) 		{			rc = regulator_disable(mvs0b_1p8v_8m);			if (rc){				//CAM_ERR("%s: Disable regulator mvs0b_1p8v failed/n", __func__);				goto fail;			}		}		//CAM_INFO("%s %s:%d power /n", __FILE__, __func__, __LINE__);		if(1)//l2b_2p8v) 		{			rc = regulator_disable(l2b_2p8v_8m);			if (rc){				//CAM_ERR("%s: Disable regulator l2b_2p8v failed/n", __func__);				goto fail;			}			regulator_put(l2b_2p8v_8m);		}		//CAM_INFO("%s %s:%d power /n", __FILE__, __func__, __LINE__);		if(1)//l3b_2p8v) 		{		rc = regulator_disable(l3b_2p8v_8m);			if (rc){				//CAM_ERR("%s: Disable regulator l3b_2p8v failed/n", __func__);				goto fail;			}			regulator_put(l3b_2p8v_8m);				}		//CAM_INFO("%s %s OFF Success:%d/n", __FILE__, __func__, __LINE__);	}		return rc;fail:	CAM_ERR("%s %s Failed!:%d/n", __FILE__, __func__, __LINE__);	if(l2b_2p8v_8m){		regulator_put(l2b_2p8v_8m);	}	if(s2b_1p2v_8m){		regulator_put(s2b_1p2v_8m);	}	if(l3b_2p8v_8m){		regulator_put(l3b_2p8v_8m);	}	return rc;			}
开发者ID:emreharbutoglu,项目名称:at1-S0834211,代码行数:97,


示例11: msm_AR600X_setup_power

static unsigned int msm_AR600X_setup_power(bool on){	int rc = 0;	static bool init_done;	if (wlan_powered_up) {		pr_info("WLAN already powered up/n");		return 0;	}	if (unlikely(!init_done)) {		gpio_wlan_config();		rc = qrf6285_init_regs();		if (rc) {			pr_err("%s: qrf6285 init failed = %d/n", __func__, rc);			return rc;		} else {			init_done = true;		}	}	rc = wlan_switch_regulators(on);	if (rc) {		pr_err("%s: wlan_switch_regulators error = %d/n", __func__, rc);		goto out;	}	/* GPIO_WLAN_3V3_EN is only required for the QRD7627a */	if (machine_is_msm7627a_qrd1()) {		rc = gpio_tlmm_config(GPIO_CFG(GPIO_WLAN_3V3_EN, 0,					GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,					GPIO_CFG_2MA), GPIO_CFG_ENABLE);		if (rc) {			pr_err("%s gpio_tlmm_config 119 failed,error = %d/n",				__func__, rc);			goto reg_disable;		}		gpio_set_value(GPIO_WLAN_3V3_EN, 1);	}	/*	 * gpio_wlan_sys_rest_en is not from the GPIO expander for QRD7627a,	 * EVB1.0 and QRD8625,so the below step is required for those devices.	 */	if (machine_is_msm7627a_qrd1() || machine_is_msm7627a_evb()					|| machine_is_msm8625_evb()					|| machine_is_msm8625_evt()					|| machine_is_msm7627a_qrd3()					|| machine_is_msm8625_qrd7()) {		rc = gpio_tlmm_config(GPIO_CFG(gpio_wlan_sys_rest_en, 0,					GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,					GPIO_CFG_2MA), GPIO_CFG_ENABLE);		if (rc) {			pr_err("%s gpio_tlmm_config 119 failed,error = %d/n",				__func__, rc);			goto qrd_gpio_fail;		}		gpio_set_value(gpio_wlan_sys_rest_en, 1);	} else {		rc = gpio_request(gpio_wlan_sys_rest_en, "WLAN_DEEP_SLEEP_N");		if (rc) {			pr_err("%s: WLAN sys_rest_en GPIO %d request failed %d/n",				__func__,				gpio_wlan_sys_rest_en, rc);			goto qrd_gpio_fail;		}		rc = setup_wlan_gpio(on);		if (rc) {			pr_err("%s: wlan_set_gpio = %d/n", __func__, rc);			goto gpio_fail;		}	}	/* Enable the A0 clock */	rc = setup_wlan_clock(on);	if (rc) {		pr_err("%s: setup_wlan_clock = %d/n", __func__, rc);		goto set_gpio_fail;	}	/* Configure A0 clock to be slave to WLAN_CLK_PWR_REQ */	rc = pmapp_clock_vote(id, PMAPP_CLOCK_ID_A0,				 PMAPP_CLOCK_VOTE_PIN_CTRL);	if (rc) {		pr_err("%s: Configuring A0 to Pin controllable failed %d/n",				__func__, rc);		goto set_clock_fail;	}	pr_info("WLAN power-up success/n");	wlan_powered_up = true;	return 0;set_clock_fail:	setup_wlan_clock(0);set_gpio_fail:	setup_wlan_gpio(0);gpio_fail:	if (!(machine_is_msm7627a_qrd1() || machine_is_msm7627a_evb() ||	    machine_is_msm8625_evb() || machine_is_msm8625_evt() ||	    machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()))//.........这里部分代码省略.........
开发者ID:DeltaDroidTeam,项目名称:android_kernel_lge_p715,代码行数:101,


示例12: GPIO_CFG

	{		.gpio = PWR_KEY_MSMz,		.code = KEY_POWER,	},	{		.gpio = VOL_DOWNz_XA_XB,		.code = KEY_VOLUMEDOWN,	},	{		.gpio = VOL_UPz_XA_XB,		.code = KEY_VOLUMEUP,	},};static uint32_t matirx_inputs_gpio_table_xc[] = {	GPIO_CFG(PWR_KEY_MSMz, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),	GPIO_CFG(VOL_DOWNz_XC, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),	GPIO_CFG(VOL_UPz_XC, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),};static uint32_t matirx_inputs_gpio_table[] = {	GPIO_CFG(PWR_KEY_MSMz, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),	GPIO_CFG(VOL_DOWNz_XA_XB, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),	GPIO_CFG(VOL_UPz_XA_XB, 0, GPIO_CFG_INPUT, GPIO_CFG_PULL_UP,		 GPIO_CFG_2MA),};
开发者ID:BackupWildfireDEV,项目名称:ElementalX-Sense-5.0.2,代码行数:31,


示例13: msm_AR600X_shutdown_power

static unsigned int msm_AR600X_shutdown_power(bool on){	int rc = 0;	if (!wlan_powered_up) {		pr_info("WLAN is not powered up, returning success/n");		return 0;	}	/* Disable the A0 clock */	rc = setup_wlan_clock(on);	if (rc) {		pr_err("%s: setup_wlan_clock = %d/n", __func__, rc);		goto set_clock_fail;	}	/*	 * gpio_wlan_sys_rest_en is not from the GPIO expander for QRD7627a,	 * EVB1.0 and QRD8625,so the below step is required for those devices.	 */	if (machine_is_msm7627a_qrd1() || machine_is_msm7627a_evb()					|| machine_is_msm8625_evb()					|| machine_is_msm8625_evt()					|| machine_is_msm7627a_qrd3()					|| machine_is_msm8625_qrd7()) {		rc = gpio_tlmm_config(GPIO_CFG(gpio_wlan_sys_rest_en, 0,					GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,					GPIO_CFG_2MA), GPIO_CFG_ENABLE);		if (rc) {			pr_err("%s gpio_tlmm_config 119 failed,error = %d/n",				__func__, rc);			goto gpio_fail;		}		gpio_set_value(gpio_wlan_sys_rest_en, 0);	} else {		rc = setup_wlan_gpio(on);		if (rc) {			pr_err("%s: setup_wlan_gpio = %d/n", __func__, rc);			goto set_gpio_fail;		}		gpio_free(gpio_wlan_sys_rest_en);	}	/* GPIO_WLAN_3V3_EN is only required for the QRD7627a */	if (machine_is_msm7627a_qrd1()) {		rc = gpio_tlmm_config(GPIO_CFG(GPIO_WLAN_3V3_EN, 0,					GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,					GPIO_CFG_2MA), GPIO_CFG_ENABLE);		if (rc) {			pr_err("%s gpio_tlmm_config 119 failed,error = %d/n",				__func__, rc);			goto qrd_gpio_fail;		}		gpio_set_value(GPIO_WLAN_3V3_EN, 0);	}	rc = wlan_switch_regulators(on);	if (rc) {		pr_err("%s: wlan_switch_regulators error = %d/n",			__func__, rc);		goto reg_disable;	}	wlan_powered_up = false;	pr_info("WLAN power-down success/n");	return 0;set_clock_fail:	setup_wlan_clock(0);set_gpio_fail:	setup_wlan_gpio(0);gpio_fail:	if (!(machine_is_msm7627a_qrd1() || machine_is_msm7627a_evb() ||	    machine_is_msm8625_evb() || machine_is_msm8625_evt() ||	    machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()))	gpio_free(gpio_wlan_sys_rest_en);qrd_gpio_fail:	/* GPIO_WLAN_3V3_EN is only required for the QRD7627a */	if (machine_is_msm7627a_qrd1())		gpio_free(GPIO_WLAN_3V3_EN);reg_disable:	wlan_switch_regulators(0);	pr_info("WLAN power-down failed/n");	return rc;}
开发者ID:DeltaDroidTeam,项目名称:android_kernel_lge_p715,代码行数:83,


示例14: mipi_dsi_panel_power

static int mipi_dsi_panel_power(int on){	static struct regulator *reg_lvs5, *reg_l2;	static int gpio36, gpio37;	int rc;	pr_debug("%s: on=%d/n", __func__, on);	if (!dsi_power_on) {		reg_lvs5 = regulator_get(&msm_mipi_dsi1_device.dev,				"dsi1_vddio");		if (IS_ERR_OR_NULL(reg_lvs5)) {			pr_err("could not get 8921_lvs5, rc = %ld/n",				PTR_ERR(reg_lvs5));			return -ENODEV;		}		reg_l2 = regulator_get(&msm_mipi_dsi1_device.dev,				"dsi1_pll_vdda");		if (IS_ERR_OR_NULL(reg_l2)) {			pr_err("could not get 8921_l2, rc = %ld/n",				PTR_ERR(reg_l2));			return -ENODEV;		}		rc = regulator_set_voltage(reg_l2, 1200000, 1200000);		if (rc) {			pr_err("set_voltage l2 failed, rc=%d/n", rc);			return -EINVAL;		}		gpio36 = PM8921_GPIO_PM_TO_SYS(V_LCM_N5V_EN); 		rc = gpio_request(gpio36, "lcd_5v-");		if (rc) {			pr_err("request lcd_5v- failed, rc=%d/n", rc);			return -ENODEV;		}		gpio37 = PM8921_GPIO_PM_TO_SYS(V_LCM_P5V_EN); 		rc = gpio_request(gpio37, "lcd_5v+");		if (rc) {			pr_err("request lcd_5v+ failed, rc=%d/n", rc);			return -ENODEV;		}		gpio_tlmm_config(GPIO_CFG(LCD_RST, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE);		dsi_power_on = true;	}	if (on) {		if (!first_init) {			rc = regulator_enable(reg_lvs5);			if (rc) {				pr_err("enable lvs5 failed, rc=%d/n", rc);				return -ENODEV;			}			msleep(200);			gpio_set_value_cansleep(gpio37, 1);			msleep(10);			gpio_set_value_cansleep(gpio36, 1);			rc = regulator_set_optimum_mode(reg_l2, 100000);			if (rc < 0) {				pr_err("set_optimum_mode l2 failed, rc=%d/n", rc);				return -EINVAL;			}			rc = regulator_enable(reg_l2);			if (rc) {				pr_err("enable l2 failed, rc=%d/n", rc);				return -ENODEV;			}						msm_xo_mode_vote(wa_xo, MSM_XO_MODE_ON);			gpio_set_value(LCD_RST, 0);			msleep(10);			gpio_set_value(LCD_RST, 1);						msm_xo_mode_vote(wa_xo, MSM_XO_MODE_OFF);		} else {						rc = regulator_enable(reg_lvs5);			if (rc) {				pr_err("enable lvs5 failed, rc=%d/n", rc);				return -ENODEV;			}			rc = regulator_set_optimum_mode(reg_l2, 100000);			if (rc < 0) {				pr_err("set_optimum_mode l2 failed, rc=%d/n", rc);				return -EINVAL;			}			rc = regulator_enable(reg_l2);			if (rc) {				pr_err("enable l2 failed, rc=%d/n", rc);				return -ENODEV;			}						msm_xo_mode_vote(wa_xo, MSM_XO_MODE_ON);			msleep(10);			msm_xo_mode_vote(wa_xo, MSM_XO_MODE_OFF);//.........这里部分代码省略.........
开发者ID:BackupWildfireDEV,项目名称:ElementalX-Sense-5.0.2,代码行数:101,


示例15: mipi_dsi_panel_power

static int mipi_dsi_panel_power(int on){	int rc = 0;/* LGE_CHANGE_S [email
C++ GPIO_ClearValue函数代码示例
C++ GPIO_BIT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。