int at91_set_pio_pullup(unsigned port, unsigned pin, int use_pullup) { struct at91_port *at91_port = at91_pio_get_port(port); if (at91_port && (pin < GPIO_PER_BANK)) at91_set_port_pullup(at91_port, pin, use_pullup); return 0; }
static void at91_set_port_input(struct at91_port *at91_port, int offset, int use_pullup) { u32 mask; mask = 1 << offset; writel(mask, &at91_port->idr); at91_set_port_pullup(at91_port, offset, use_pullup); writel(mask, &at91_port->odr); writel(mask, &at91_port->per); }
static void at91_set_port_input(struct at91_port *at91_port, int offset, int use_pullup) { u32 mask; mask = 1 << offset; #if defined(CPU_HAS_PIO4) u32 reg_value = AT91_PIO_CFGR_FUNC_GPIO; reg_value |= use_pullup ? AT91_PIO_CFGR_PUEN : 0; writel(mask, &at91_port->mskr); writel(reg_value, &at91_port->cfgr); #else writel(mask, &at91_port->idr); at91_set_port_pullup(at91_port, offset, use_pullup); writel(mask, &at91_port->odr); writel(mask, &at91_port->per); #endif }