本文整理汇总了C++中GPIO_bit函数的典型用法代码示例。如果您正苦于以下问题:C++ GPIO_bit函数的具体用法?C++ GPIO_bit怎么用?C++ GPIO_bit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GPIO_bit函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: corgi_irda_transceiver_mode
/*
* Irda
*/
static void corgi_irda_transceiver_mode(struct device *dev, int mode)
{
if (mode & IR_OFF)
GPSR(CORGI_GPIO_IR_ON) = GPIO_bit(CORGI_GPIO_IR_ON);
else
GPCR(CORGI_GPIO_IR_ON) = GPIO_bit(CORGI_GPIO_IR_ON);
}
示例2: pxa_gpio_mode
int pxa_gpio_mode(int gpio_mode)
{
unsigned long flags;
int gpio = gpio_mode & GPIO_MD_MASK_NR;
int fn = (gpio_mode & GPIO_MD_MASK_FN) >> 8;
int gafr;
if (gpio > pxa_last_gpio)
return -EINVAL;
local_irq_save(flags);
if (gpio_mode & GPIO_DFLT_LOW)
GPCR(gpio) = GPIO_bit(gpio);
else if (gpio_mode & GPIO_DFLT_HIGH)
GPSR(gpio) = GPIO_bit(gpio);
if (gpio_mode & GPIO_MD_MASK_DIR)
GPDR(gpio) |= GPIO_bit(gpio);
else
GPDR(gpio) &= ~GPIO_bit(gpio);
gafr = GAFR(gpio) & ~(0x3 << (((gpio) & 0xf)*2));
GAFR(gpio) = gafr | (fn << (((gpio) & 0xf)*2));
local_irq_restore(flags);
return 0;
}
示例3: spitz_should_wakeup
static int spitz_should_wakeup(unsigned int resume_on_alarm)
{
int is_resume = 0;
int acin = sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN);
if (spitz_last_ac_status != acin) {
if (acin) {
/* charge on */
sharpsl_pm.flags |= SHARPSL_DO_OFFLINE_CHRG;
dev_dbg(sharpsl_pm.dev, "AC Inserted\n");
} else {
/* charge off */
dev_dbg(sharpsl_pm.dev, "AC Removed\n");
sharpsl_pm_led(SHARPSL_LED_OFF);
sharpsl_pm.machinfo->charge(0);
sharpsl_pm.charge_mode = CHRG_OFF;
}
spitz_last_ac_status = acin;
/* Return to suspend as this must be what we were woken for */
return 0;
}
if (PEDR & GPIO_bit(SPITZ_GPIO_KEY_INT))
is_resume |= GPIO_bit(SPITZ_GPIO_KEY_INT);
if (PKSR & GPIO_bit(SPITZ_GPIO_SYNC))
is_resume |= GPIO_bit(SPITZ_GPIO_SYNC);
if (resume_on_alarm && (PEDR & PWER_RTC))
is_resume |= PWER_RTC;
dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume);
return is_resume;
}
示例4: pxa2xx_mfp_suspend
static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
{
int i;
/* set corresponding PGSR bit of those marked MFP_LPM_KEEP_OUTPUT */
for (i = 0; i < pxa_last_gpio; i++) {
if ((gpio_desc[i].config & MFP_LPM_KEEP_OUTPUT) &&
(GPDR(i) & GPIO_bit(i))) {
if (GPLR(i) & GPIO_bit(i))
PGSR(i) |= GPIO_bit(i);
else
PGSR(i) &= ~GPIO_bit(i);
}
}
for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) {
saved_gafr[0][i] = GAFR_L(i);
saved_gafr[1][i] = GAFR_U(i);
saved_gpdr[i] = GPDR(i * 32);
saved_pgsr[i] = PGSR(i);
GPDR(i * 32) = gpdr_lpm[i];
}
return 0;
}
示例5: palmtx_pcmcia_hw_init
static int palmtx_pcmcia_hw_init (struct soc_pcmcia_socket *skt)
{
GPSR(GPIO48_nPOE_MD) = GPIO_bit(GPIO48_nPOE_MD) |
GPIO_bit(GPIO49_nPWE_MD) |
GPIO_bit(GPIO50_nPIOR_MD) |
GPIO_bit(GPIO51_nPIOW_MD) |
GPIO_bit(GPIO85_nPCE_1_MD) |
GPIO_bit(GPIO53_nPCE_2_MD) |
GPIO_bit(GPIO54_pSKTSEL_MD) |
GPIO_bit(GPIO55_nPREG_MD) |
GPIO_bit(GPIO56_nPWAIT_MD) |
GPIO_bit(GPIO57_nIOIS16_MD);
pxa_gpio_mode(GPIO48_nPOE_MD);
pxa_gpio_mode(GPIO49_nPWE_MD);
pxa_gpio_mode(GPIO50_nPIOR_MD);
pxa_gpio_mode(GPIO51_nPIOW_MD);
pxa_gpio_mode(GPIO85_nPCE_1_MD);
pxa_gpio_mode(GPIO53_nPCE_2_MD);
pxa_gpio_mode(GPIO54_pSKTSEL_MD);
pxa_gpio_mode(GPIO55_nPREG_MD);
pxa_gpio_mode(GPIO56_nPWAIT_MD);
pxa_gpio_mode(GPIO57_nIOIS16_MD);
skt->irq = IRQ_GPIO(GPIO_NR_PALMTX_PCMCIA_READY);
palmtx_pcmcia_dbg("%s:%i, Socket:%d\n", __FUNCTION__, __LINE__, skt->nr);
return soc_pcmcia_request_irqs(skt, palmtx_socket_state_irqs,
ARRAY_SIZE(palmtx_socket_state_irqs));
}
示例6: corgi_measure_temp
static void corgi_measure_temp(int on)
{
if (on)
GPSR(CORGI_GPIO_ADC_TEMP_ON) = GPIO_bit(CORGI_GPIO_ADC_TEMP_ON);
else
GPCR(CORGI_GPIO_ADC_TEMP_ON) = GPIO_bit(CORGI_GPIO_ADC_TEMP_ON);
}
示例7: pm_do_poweroff
void pm_do_poweroff(void)
{
unsigned long start, flags;
PWER &= ~0x8000ffff;
local_irq_save(flags);
printk("Poweroff, Begin to wait BP_RDY signal.\n");
pm_send_all(PM_SUSPEND, (void *)3);
start = OSCR;
*(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = NO_FLAG;
do {
if( !(GPLR(GPIO_BP_RDY) & GPIO_bit(GPIO_BP_RDY))){
printk(KERN_DEBUG"got BP_RDY signal.\n");
GPDR(GPIO_WDI_AP) |= GPIO_bit(GPIO_WDI_AP);
GPCR(GPIO_WDI_AP) = GPIO_bit(GPIO_WDI_AP);
while(1);
}
if ((OSCR - start) >= POWER_OFF_TIMEOUT) {
printk(KERN_DEBUG "timeout when power down\n");
mdelay(1);
GPDR(GPIO_WDI_AP) |= GPIO_bit(GPIO_WDI_AP);
GPCR(GPIO_WDI_AP) = GPIO_bit(GPIO_WDI_AP);
while(1);
}
} while(1);
pm_do_useroff();
printk(KERN_DEBUG "resume from useroff\n");
pm_send_all(PM_SUSPEND, (void *)0);
local_irq_restore(flags);
}
示例8: dsp_reset
int dsp_reset(struct inode *inode, struct file *file, unsigned cmd,unsigned long arg)
{
/* ignore any argument, just do reset here */
/* raise reset */
GPSR(73) |= GPIO_bit(73);
/* udelay(1); DAVEDE */ /* wait 1/7.3728MHz = 135.6ns (par 11.13.4) */
/* sleep 1/10 second */
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(HZ/10);
/* Same PIOs of sa1110 */
GPSR(19) |= GPIO_bit(19);
GPCR(17) |= GPIO_bit(17);
/* sleep 2/10 second */
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(2*HZ/10);
/* lower reset */
GPCR(73) |= GPIO_bit(73);
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(2*HZ/10);
writew(DSP_BOB, (unsigned short *)dsp_iopage); // little endian
return 0;
}
示例9: init_module
static int init_module(void)
{
/* u32 reg; */
int result=1;
result = misc_register(&dsp_misc);
printk("btpxa_dsp 2.0: dsp_init\n");
if (result)
printk("btweb: can't register /dev/dsp (error %i)\n",
result);
/* reg = GPDR; */
/* printk("btweb: dsp_init reg=%x letto\n",reg); DAVEDE */
/* reg &= ~GPIO_GPIO(1); */ /* GPIO1 is input */
GPDR(1) &= ~GPIO_bit(1); /* TODO: Da mettere nel boot loader */
/* reg |= GPIO_GPIO(17) | GPIO_GPIO(19); */ /* 17 and 19 are output DAVEDE */
/* TODO: Da mettere nel boot loader */
GPDR(19) |= GPIO_bit(19);
GPDR(17) |= GPIO_bit(17);
GPDR(73) |= GPIO_bit(73);
/* GPDR = reg; */
/* printk("btweb: dsp_init reg=%x scritto\n",reg); DAVEDE */
/* TODO: Da mettere nel boot loader */
MCIO0 = 0x00018103;
MCIO1 = 0x00018103;
MECR = 0x00000001;
return result;
}
示例10: corgi_discharge
static void corgi_discharge(int on)
{
if (on)
GPSR(CORGI_GPIO_DISCHARGE_ON) = GPIO_bit(CORGI_GPIO_DISCHARGE_ON);
else
GPCR(CORGI_GPIO_DISCHARGE_ON) = GPIO_bit(CORGI_GPIO_DISCHARGE_ON);
}
示例11: poodle_irda_transceiver_mode
/*
* Irda
*/
static void poodle_irda_transceiver_mode(struct device *dev, int mode)
{
if (mode & IR_OFF) {
GPSR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON);
} else {
GPCR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON);
}
}
示例12: corgiled_amber_set
static void corgiled_amber_set(struct led_classdev *led_cdev,
enum led_brightness value)
{
if (value)
GPSR0 = GPIO_bit(CORGI_GPIO_LED_ORANGE);
else
GPCR0 = GPIO_bit(CORGI_GPIO_LED_ORANGE);
}
示例13: cmx270_green_set
static void cmx270_green_set(struct led_classdev *led_cdev,
enum led_brightness value)
{
if (value)
GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED);
else
GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED);
}
示例14: gpio_set
static void gpio_set(int id, int on)
{
do {
if (on)
GPSR(id) = GPIO_bit(id);
else
GPCR(id) = GPIO_bit(id);
} while (0);
}
示例15: turn_off_gpio
void turn_off_gpio(int gpio) {
set_GPIO_mode(gpio | GPIO_OUT);
GPCR(gpio) = GPIO_bit(gpio);
if (GPLR(gpio) & GPIO_bit(gpio)) {
PDEBUG("LED gpio %d on\n", gpio);
} else {
PDEBUG("LED gpio %d off\n", gpio);
}
}