static irqreturn_t hss_dcd_irq(int irq, void *pdev) { int i, port = (irq == gpio_irq(GPIO_HSS1_DCD_N)); gpio_line_get(port ? GPIO_HSS1_DCD_N : GPIO_HSS0_DCD_N, &i); set_carrier_cb_tab[port](pdev, !i); return IRQ_HANDLED; }
static int hss_open(int port, void *pdev, void (*set_carrier_cb)(void *pdev, int carrier)) { int i, irq; if (!port) irq = gpio_irq(GPIO_HSS0_DCD_N); else irq = gpio_irq(GPIO_HSS1_DCD_N); gpio_line_get(port ? GPIO_HSS1_DCD_N : GPIO_HSS0_DCD_N, &i); set_carrier_cb(pdev, !i); set_carrier_cb_tab[!!port] = set_carrier_cb; if ((i = request_irq(irq, hss_dcd_irq, 0, "IXP4xx HSS", pdev)) != 0) { printk(KERN_ERR "ixp4xx_hss: failed to request IRQ%i (%i)\n", irq, i); return i; } set_control(port ? CONTROL_HSS1_DTR_N : CONTROL_HSS0_DTR_N, 0); output_control(); gpio_line_set(port ? GPIO_HSS1_RTS_N : GPIO_HSS0_RTS_N, 0); return 0; }
static inline u32 getmiso(struct spi_device *dev) { struct spi_gpio *sp = spidev_to_sg(dev); int val; gpio_line_get(sp->info->pin_miso,&val); return val ? 1 : 0; }
static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) { int value; gpio_line_get(gpio, &value); return value; }
static int ixdp2400_bit_getsda(void *data) { struct ixdp2400_data *gpio = (struct ixdp2400_data*)data; int ret; ret = gpio_line_get(gpio->sda_gpio); return ret; }
static int ixp4xx_bit_getsda(void *data) { int sda; gpio_line_config(ixp4xx_sda_pin(data), IXP4XX_GPIO_IN ); gpio_line_get(ixp4xx_sda_pin(data), &sda); return sda; }
static int ixp4xx_bit_getscl(void *data) { int scl; gpio_line_config(ixp4xx_scl_pin(data), IXP4XX_GPIO_IN ); gpio_line_get(ixp4xx_scl_pin(data), &scl); return scl; }
static void power_button_poll(unsigned long dummy) { if (gpio_line_get(N2100_POWER_BUTTON) == 0) { ctrl_alt_del(); return; } power_button_poll_timer.expires = jiffies + (HZ / 10); add_timer(&power_button_poll_timer); }
static void ixp2000_bit_setscl(void *data, int val) { int i = 5000; if (val) { gpio_line_config(ixp2000_scl_pin(data), GPIO_IN); while(!gpio_line_get(ixp2000_scl_pin(data)) && i--); } else { gpio_line_config(ixp2000_scl_pin(data), GPIO_OUT); } }
static void ixdp2400_bit_setscl(void *data, int val) { struct ixdp2400_data *gpio = (struct ixdp2400_data*)data; int i = 5000; if(val) { gpio_line_config(gpio->scl_gpio, GPIO_IN); while(!gpio_line_get(gpio->scl_gpio) && i--); } else { gpio_line_config(gpio->scl_gpio, GPIO_OUT); } }
static int ixp2000_bit_getsda(void *data) { return gpio_line_get(ixp2000_sda_pin(data)); }
static void gpio_line_get_slow(u8 line, int *value) { gpio_line_get(line, value); udelay(10); }
static int iop3xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) { return gpio_line_get(gpio); }