All pastes #747822 Raw Edit

Anonymous

public c v1 · immutable
·published 2007-10-24 11:43 UTC
rendered paste body
/* Common GPIO layer */static inline int gpio_get_value(unsigned gpio){	static int addr;	if (!addr) {		void __iomem *gpio_in = (void __iomem *)				KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_INPUT);		addr = readl(gpio_in);	}	return addr & (1 << gpio);}static inline void gpio_set_value(unsigned gpio, int value){	static unsigned addr;	unsigned tmp;	if (!addr) {		void __iomem *gpio_out = (void __iomem *)				KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_OUTPUT);		addr = readl(gpio_out);	}	tmp = addr & ~(1 << gpio)	if (value)		tmp |= 1 << gpio;	writel(tmp, gpio_out);}