static struct adm5120_gpio_line adm5120_gpio_map[ADM5120_GPIO_COUNT];
+static u32 gpio_conf2;
+
/*-------------------------------------------------------------------------*/
static inline int gpio_is_invalid(unsigned gpio)
void __init adm5120_gpio_csx0_enable(void)
{
- u32 t;
-
- t = SW_READ_REG(GPIO_CONF2);
- t |= GPIO_CONF2_CSX0;
- SW_WRITE_REG(GPIO_CONF2, t);
+ gpio_conf2 |= GPIO_CONF2_CSX0;
+ SW_WRITE_REG(GPIO_CONF2, gpio_conf2);
adm5120_gpio_map[ADM5120_GPIO_PIN1].flags &= ~GPIO_FLAG_VALID;
adm5120_gpio_map[ADM5120_GPIO_PIN2].irq = ADM5120_IRQ_GPIO2;
void __init adm5120_gpio_csx1_enable(void)
{
- u32 t;
-
- t = SW_READ_REG(GPIO_CONF2);
- t |= GPIO_CONF2_CSX1;
- SW_WRITE_REG(GPIO_CONF2, t);
+ gpio_conf2 |= GPIO_CONF2_CSX1;
+ SW_WRITE_REG(GPIO_CONF2, gpio_conf2);
adm5120_gpio_map[ADM5120_GPIO_PIN3].flags &= ~GPIO_FLAG_VALID;
if (adm5120_package_bga())
void __init adm5120_gpio_ew_enable(void)
{
- u32 t;
-
- t = SW_READ_REG(GPIO_CONF2);
- t |= GPIO_CONF2_EW;
- SW_WRITE_REG(GPIO_CONF2, t);
+ gpio_conf2 |= GPIO_CONF2_EW;
+ SW_WRITE_REG(GPIO_CONF2, gpio_conf2);
adm5120_gpio_map[ADM5120_GPIO_PIN0].flags &= ~GPIO_FLAG_VALID;
}
{
int i;
- SW_WRITE_REG(GPIO_CONF2, 0);
+ gpio_conf2 = 0;
+ SW_WRITE_REG(GPIO_CONF2, gpio_conf2);
for (i = 0; i < ADM5120_GPIO_COUNT; i++)
adm5120_gpio_map[i].flags = GPIO_FLAG_VALID;