本文整理汇总了C++中OMAP_GPIO_IRQ函数的典型用法代码示例。如果您正苦于以下问题:C++ OMAP_GPIO_IRQ函数的具体用法?C++ OMAP_GPIO_IRQ怎么用?C++ OMAP_GPIO_IRQ使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OMAP_GPIO_IRQ函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: omap4_mapphone_wifi_init
static void omap4_mapphone_wifi_init(void)
{
int ret;
mapphone_wifi_pmena_gpio = get_gpio_by_name("wlan_pmena");
mapphone_wifi_irq_gpio = get_gpio_by_name("wlan_irqena");
ret = gpio_request(mapphone_wifi_pmena_gpio, "wifi_pmena");
if (ret < 0)
goto out;
gpio_direction_output(mapphone_wifi_pmena_gpio, 0);
omap4_mapphone_wlan_data.irq = OMAP_GPIO_IRQ(mapphone_wifi_irq_gpio);
if (wl12xx_set_platform_data(&omap4_mapphone_wlan_data))
pr_err("Error setting wl12xx data\n");
out:
return;
}
示例2: omap3beagle_ks8851_init
static void __init omap3beagle_ks8851_init(void)
{
if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) &&
(gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
omap3beagle_zippy2_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
} else {
printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
return;
}
spi_register_board_info(omap3beagle_zippy2_spi_board_info,
ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
}
示例3: dhd_customer_oob_irq_map
int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr)
{
int host_oob_irq = 0;
//&*&*&*JohWan1 mod BCM4329 OOB support
#if 0
#ifdef CUSTOMER_HW2
host_oob_irq = wifi_get_irq_number(irq_flags_ptr);
#else /* for NOT CUSTOMER_HW2 */
#if defined(CUSTOM_OOB_GPIO_NUM)
if (dhd_oob_gpio_num < 0) {
dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM;
}
#endif
if (dhd_oob_gpio_num < 0) {
WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n",
__FUNCTION__));
return (dhd_oob_gpio_num);
}
WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n",
__FUNCTION__, dhd_oob_gpio_num));
#if defined CUSTOMER_HW
host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num);
#elif defined CUSTOMER_HW3
gpio_request(dhd_oob_gpio_num, "oob irq");
host_oob_irq = gpio_to_irq(dhd_oob_gpio_num);
gpio_direction_input(dhd_oob_gpio_num);
#endif /* CUSTOMER_HW */
#endif /* CUSTOMER_HW2 */
#else //if 0
{
//BOARD_ID_EVT3
gpio_direction_input(CUSTOM_OOB_GPIO_NUM);
host_oob_irq = OMAP_GPIO_IRQ(CUSTOM_OOB_GPIO_NUM);
printk("dhd_customer_oob_irq_map irg = %d \n",host_oob_irq);
}
#endif //if 0
//&*&*&*JohWan2 mod BCM4329 OOB support
return (host_oob_irq);
}
示例4: cy_as_hal_omap_hardware_deinit
void cy_as_hal_omap_hardware_deinit(cy_as_omap_dev_kernel *dev_p)
{
/*
* free omap hw resources
*/
if (dev_p->m_vma_addr_base != 0)
iounmap((void *)dev_p->m_vma_addr_base);
if (dev_p->m_phy_addr_base != 0)
release_mem_region((void *)dev_p->m_phy_addr_base, SZ_16K);
gpmc_cs_free(AST_GPMC_CS);
if (have_irq)
free_irq(OMAP_GPIO_IRQ(AST_INT), dev_p);
cy_as_hal_release_user_pads(user_pad_cfg);
}
示例5: omap_3430sdp_init
static void __init omap_3430sdp_init(void)
{
platform_add_devices(sdp3430_devices, ARRAY_SIZE(sdp3430_devices));
omap_board_config = sdp3430_config;
omap_board_config_size = ARRAY_SIZE(sdp3430_config);
if (is_sil_rev_greater_than(OMAP3430_REV_ES1_0))
ts_gpio = OMAP34XX_TS_GPIO_IRQ_SDPV2;
else
ts_gpio = OMAP34XX_TS_GPIO_IRQ_SDPV1;
sdp3430_spi_board_info[0].irq = OMAP_GPIO_IRQ(ts_gpio);
spi_register_board_info(sdp3430_spi_board_info,
ARRAY_SIZE(sdp3430_spi_board_info));
ads7846_dev_init();
sdp3430_flash_init();
omap_serial_init();
sdp3430_usb_init();
sdp_mmc_init();
}
示例6: omap1510_fpga_init_irq
/*
* All of the FPGA interrupt request inputs except for the touchscreen are
* edge-sensitive; the touchscreen is level-sensitive. The edge-sensitive
* interrupts are acknowledged as a side-effect of reading the interrupt
* status register from the FPGA. The edge-sensitive interrupt inputs
* cause a problem with level interrupt requests, such as Ethernet. The
* problem occurs when a level interrupt request is asserted while its
* interrupt input is masked in the FPGA, which results in a missed
* interrupt.
*
* In an attempt to workaround the problem with missed interrupts, the
* mask_ack routine for all of the FPGA interrupts has been changed from
* fpga_mask_ack_irq() to fpga_ack_irq() so that the specific FPGA interrupt
* being serviced is left unmasked. We can do this because the FPGA cascade
* interrupt is installed with the IRQF_DISABLED flag, which leaves all
* interrupts masked at the CPU while an FPGA interrupt handler executes.
*
* Limited testing indicates that this workaround appears to be effective
* for the smc9194 Ethernet driver used on the Innovator. It should work
* on other FPGA interrupts as well, but any drivers that explicitly mask
* interrupts at the interrupt controller via disable_irq/enable_irq
* could pose a problem.
*/
void omap1510_fpga_init_irq(void)
{
int i;
__raw_writeb(0, OMAP1510_FPGA_IMR_LO);
__raw_writeb(0, OMAP1510_FPGA_IMR_HI);
__raw_writeb(0, INNOVATOR_FPGA_IMR2);
for (i = OMAP1510_IH_FPGA_BASE; i < (OMAP1510_IH_FPGA_BASE + NR_FPGA_IRQS); i++) {
if (i == OMAP1510_INT_FPGA_TS) {
/*
* The touchscreen interrupt is level-sensitive, so
* we'll use the regular mask_ack routine for it.
*/
set_irq_chip(i, &omap_fpga_irq_ack);
}
else {
/*
* All FPGA interrupts except the touchscreen are
* edge-sensitive, so we won't mask them.
*/
set_irq_chip(i, &omap_fpga_irq);
}
set_irq_handler(i, handle_edge_irq);
set_irq_flags(i, IRQF_VALID);
}
/*
* The FPGA interrupt line is connected to GPIO13. Claim this pin for
* the ARM.
*
* NOTE: For general GPIO/MPUIO access and interrupts, please see
* gpio.[ch]
*/
omap_request_gpio(13);
omap_set_gpio_direction(13, 1);
set_irq_type(OMAP_GPIO_IRQ(13), IRQT_RISING);
set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
}
示例7: hx_ts_probe
static int __init hx_ts_probe(struct omap_ts_t *ts)
{
unsigned gpio;
if (machine_is_omap_h2()) {
gpio = H2_GPIO_NUM;
omap_cfg_reg(P20_1610_GPIO4);
} else if (machine_is_omap_h3()) {
gpio = H3_GPIO_NUM;
omap_cfg_reg(W19_1610_GPIO48);
} else
return -ENODEV;
ts->irq = OMAP_GPIO_IRQ(gpio);
if (omap_request_gpio(gpio) != 0) {
printk(KERN_ERR "hX_ts_init.c: Could not reserve GPIO!\n");
return -EINVAL;
};
omap_set_gpio_direction(gpio, 1);
ts->irq_type = IRQF_TRIGGER_FALLING;
return 0;
}
示例8: microusbic_fast_init
int microusbic_fast_init(void)
{
int microusbic_irq = 0;
printk(" Microusbic init\n");
install_usbic_irq_chip_handler();
INIT_WORK(&work_device_intr, work_handler_device_intr);
////////////////////////////////////////////////////////////
// microusbic irq
microusbic_irq = OMAP_GPIO_IRQ(OMAP_GPIO_USBSW_NINT);
set_irq_type(microusbic_irq, 3); //IRQT_BOTHEDGE
if(request_irq(microusbic_irq, microusbic_interrupt,
IRQF_DISABLED | IRQF_SHARED, "USBIC", (void *)&dev_id))
printk("[microusbic] Error! irq %d in use.\n", microusbic_irq);
else
printk("[microusbic] found microusbic at irq %d\n", microusbic_irq);
enable_irq_wake(microusbic_irq);
return 0;
}
示例9: omap_kp_scan_keypad
static void omap_kp_scan_keypad(struct omap_kp *omap_kp, unsigned char *state)
{
int col = 0;
/* read the keypad status */
if (cpu_is_omap24xx()) {
int i;
for (i = 0; i < omap_kp->rows; i++)
disable_irq(OMAP_GPIO_IRQ(row_gpios[i]));
/* read the keypad status */
for (col = 0; col < omap_kp->cols; col++) {
set_col_gpio_val(omap_kp, ~(1 << col));
state[col] = ~(get_row_gpio_val(omap_kp)) & 0x3f;
}
set_col_gpio_val(omap_kp, 0);
} else {
/* disable keyboard interrupt and schedule for handling */
omap_writew(1, OMAP_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT);
/* read the keypad status */
omap_writew(0xff, OMAP_MPUIO_BASE + OMAP_MPUIO_KBC);
for (col = 0; col < omap_kp->cols; col++) {
omap_writew(~(1 << col) & 0xff,
OMAP_MPUIO_BASE + OMAP_MPUIO_KBC);
udelay(omap_kp->delay);
state[col] = ~omap_readw(OMAP_MPUIO_BASE +
OMAP_MPUIO_KBR_LATCH) & 0xff;
}
omap_writew(0x00, OMAP_MPUIO_BASE + OMAP_MPUIO_KBC);
udelay(2);
}
}
示例10: smsc43340_usb_probe
static int __init smsc43340_usb_probe(struct platform_device *pdev)
{
struct smsc43340_usb_data *pdata = pdev->dev.platform_data;
struct smsc43340_usb *smsc;
int status;
if (!pdata) {
dev_dbg(&pdev->dev, "platform_data not available\n");
return -EINVAL;
}
smsc = kzalloc(sizeof *smsc, GFP_KERNEL);
if (!smsc)
return -ENOMEM;
smsc->dev = &pdev->dev;
smsc->otg.dev = smsc->dev;
smsc->otg.label = "smsc43340";
smsc->otg.set_host = smsc43340_set_host;
smsc->otg.set_peripheral = smsc43340_set_peripheral;
smsc->otg.set_suspend = smsc43340_set_suspend;
smsc->otg.init = smsc43340_phy_init;
smsc->otg.shutdown = smsc43340_phy_shutdown;
smsc->otg.set_clk = smsc43340_set_phy_clk;
smsc->otg.set_vbus = smsc43340_set_vbus;
smsc->asleep = 1;
smsc->gpio_reset = pdata->gpio_reset;
smsc->gpio_overcurrent = pdata->gpio_overcurrent;
if (!gpio_is_valid(smsc->gpio_reset)) {
kfree(smsc);
return -EINVAL;
}
// Init IRQ
if (gpio_is_valid(smsc->gpio_overcurrent)) {
// Get IRQ
smsc->irq = OMAP_GPIO_IRQ(smsc->gpio_overcurrent);
if (gpio_request(smsc->gpio_overcurrent, "smsc43340_usb_irq") < 0) {
printk(KERN_ERR "Failed to request GPIO%d for smsc43340 IRQ\n",
smsc->gpio_overcurrent);
return -EIO;
}
gpio_direction_input(smsc->gpio_overcurrent);
}
smsc43340_phy_init(&smsc->otg);
otg_set_transceiver(&smsc->otg);
platform_set_drvdata(pdev, smsc);
status = request_irq(smsc->irq, smsc43340_usb_irq,
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
"smsc43340_usb", smsc);
if (status < 0) {
dev_dbg(&pdev->dev, "can't get IRQ %d, err %d\n",
smsc->irq, status);
kfree(smsc);
return status;
}
INIT_WORK(&smsc->irq_work, smsc43340_irq_work_handler);
/* Generate first IRQ */
smsc43340_usb_irq(smsc->irq, (void *) smsc );
dev_info(&pdev->dev, "Initialized SMSC 43340 USB module for OMAP 3630 USB OTG\n");
BLOCKING_INIT_NOTIFIER_HEAD(&smsc->otg.notifier);
return 0;
}
示例11: defined
/*SMSC 9220 chipset*/
case 0x92200000:
default:
omap3_evm_version = OMAP3EVM_BOARD_GEN_2;
}
}
#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
static struct resource omap3evm_smsc911x_resources[] = {
[0] = {
.start = OMAP3EVM_ETHR_START,
.end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
.flags = IORESOURCE_MEM,
},
[1] = {
.start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
.end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
.flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
},
};
static struct smsc911x_platform_config smsc911x_config = {
.phy_interface = PHY_INTERFACE_MODE_MII,
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
.flags = (SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS),
};
static struct platform_device omap3evm_smsc911x_device = {
.name = "smsc911x",
.id = -1,
示例12: uWire
}
#else
#define palmte_get_power_status NULL
#endif
static struct omap_board_config_kernel palmte_config[] __initdata = {
{ OMAP_TAG_LCD, &palmte_lcd_config },
{ OMAP_TAG_UART, &palmte_uart_config },
};
static struct spi_board_info palmte_spi_info[] __initdata = {
{
.modalias = "tsc2102",
.bus_num = 2, /* uWire (officially) */
.chip_select = 0, /* As opposed to 3 */
.irq = OMAP_GPIO_IRQ(PALMTE_PINTDAV_GPIO),
.max_speed_hz = 8000000,
},
};
static void palmte_headphones_detect(void *data, int state)
{
if (state) {
/* Headphones connected, disable speaker */
gpio_set_value(PALMTE_SPEAKER_GPIO, 0);
printk(KERN_INFO "PM: speaker off\n");
} else {
/* Headphones unplugged, re-enable speaker */
gpio_set_value(PALMTE_SPEAKER_GPIO, 1);
printk(KERN_INFO "PM: speaker on\n");
}
示例13: EXPORT_SYMBOL
}
#ifndef CONFIG_WIFI_CONTROL_FUNC
EXPORT_SYMBOL(sdp4430_wifi_reset);
#endif
struct wifi_platform_data sdp4430_wifi_control = {
.set_power = sdp4430_wifi_power,
.set_reset = sdp4430_wifi_reset,
.set_carddetect = sdp4430_wifi_set_carddetect,
};
#ifdef CONFIG_WIFI_CONTROL_FUNC
static struct resource sdp4430_wifi_resources[] = {
[0] = {
.name = "device_wifi_irq",
.start = OMAP_GPIO_IRQ(SDP4430_WIFI_IRQ_GPIO),
.end = OMAP_GPIO_IRQ(SDP4430_WIFI_IRQ_GPIO),
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
},
};
static struct platform_device sdp4430_wifi_device = {
.name = "device_wifi",
.id = 1,
.num_resources = ARRAY_SIZE(sdp4430_wifi_resources),
.resource = sdp4430_wifi_resources,
.dev = {
.platform_data = &sdp4430_wifi_control,
},
};
#endif
示例14: I2C_BOARD_INFO
}
static struct synaptics_i2c_rmi_platform_data synaptics_platform_data[] = {
{
.version = 0x0,
.power = &synaptics_power,
.flags = SYNAPTICS_SWAP_XY,
.irqflags = IRQF_TRIGGER_LOW,
}
};
static struct i2c_board_info __initdata zoom2_i2c_bus2_info[] = {
{
I2C_BOARD_INFO(SYNAPTICS_I2C_RMI_NAME, 0x20),
.platform_data = &synaptics_platform_data,
.irq = OMAP_GPIO_IRQ(OMAP_SYNAPTICS_GPIO),
},
#if (defined(CONFIG_VIDEO_IMX046) || defined(CONFIG_VIDEO_IMX046_MODULE)) && \
defined(CONFIG_VIDEO_OMAP3)
{
I2C_BOARD_INFO(IMX046_NAME, IMX046_I2C_ADDR),
.platform_data = &zoom2_imx046_platform_data,
},
#endif
#if (defined(CONFIG_VIDEO_LV8093) || defined(CONFIG_VIDEO_LV8093_MODULE)) && \
defined(CONFIG_VIDEO_OMAP3)
{
I2C_BOARD_INFO(LV8093_NAME, LV8093_AF_I2C_ADDR),
.platform_data = &zoom2_lv8093_platform_data,
},
#endif
示例15: defined
.platform_data = &twl6040_vddhf,
},
};
/* i2c_2_info */
static struct i2c_board_info i2c_2_info[] __initdata = {
#if defined(CONFIG_TOUCHSCREEN_P940_GENERAL)
{
I2C_BOARD_INFO(LGE_TOUCH_NAME, LGE_TOUCH_ADDR),
.platform_data = &u2_ts_data,
},
#endif
#if defined(CONFIG_TOUCHSCREEN_COMMON_SYNAPTICS)
{
I2C_BOARD_INFO(LGE_TOUCH_NAME, 0x20),
.irq = OMAP_GPIO_IRQ(52),
.platform_data = &synaptics_pdata,
},
#endif
#if defined(CONFIG_MACH_LGE_U2_P769)
{
I2C_BOARD_INFO(LM3530_I2C_NAME, LM3530_I2C_ADDR),
.platform_data = &lm3530_pdata,
},
#else
{
I2C_BOARD_INFO(LM3533_I2C_NAME, LM3533_I2C_ADDR),
.platform_data = &lm3533_pdata,
},
#endif
#if defined(CONFIG_LG_FW_MAX17048_FUEL_GAUGE_I2C)