Lines Matching refs:bank

61 #define GPIO_BANK_BASE(bank)		(0x200 + 0x24 * (bank))  argument
855 static inline u32 gpio_readl(struct pistachio_gpio_bank *bank, u32 reg) in gpio_readl() argument
857 return readl(bank->base + reg); in gpio_readl()
860 static inline void gpio_writel(struct pistachio_gpio_bank *bank, u32 val, in gpio_writel() argument
863 writel(val, bank->base + reg); in gpio_writel()
866 static inline void gpio_mask_writel(struct pistachio_gpio_bank *bank, in gpio_mask_writel() argument
873 gpio_writel(bank, (0x10000 | val) << bit, reg); in gpio_mask_writel()
876 static inline void gpio_enable(struct pistachio_gpio_bank *bank, in gpio_enable() argument
879 gpio_mask_writel(bank, GPIO_BIT_EN, offset, 1); in gpio_enable()
882 static inline void gpio_disable(struct pistachio_gpio_bank *bank, in gpio_disable() argument
885 gpio_mask_writel(bank, GPIO_BIT_EN, offset, 0); in gpio_disable()
1176 struct pistachio_gpio_bank *bank = gc_to_bank(chip); in pistachio_gpio_get_direction() local
1178 return !(gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset)); in pistachio_gpio_get_direction()
1183 struct pistachio_gpio_bank *bank = gc_to_bank(chip); in pistachio_gpio_get() local
1186 if (gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset)) in pistachio_gpio_get()
1191 return !!(gpio_readl(bank, reg) & BIT(offset)); in pistachio_gpio_get()
1197 struct pistachio_gpio_bank *bank = gc_to_bank(chip); in pistachio_gpio_set() local
1199 gpio_mask_writel(bank, GPIO_OUTPUT, offset, !!value); in pistachio_gpio_set()
1205 struct pistachio_gpio_bank *bank = gc_to_bank(chip); in pistachio_gpio_direction_input() local
1207 gpio_mask_writel(bank, GPIO_OUTPUT_EN, offset, 0); in pistachio_gpio_direction_input()
1208 gpio_enable(bank, offset); in pistachio_gpio_direction_input()
1216 struct pistachio_gpio_bank *bank = gc_to_bank(chip); in pistachio_gpio_direction_output() local
1219 gpio_mask_writel(bank, GPIO_OUTPUT_EN, offset, 1); in pistachio_gpio_direction_output()
1220 gpio_enable(bank, offset); in pistachio_gpio_direction_output()
1227 struct pistachio_gpio_bank *bank = irqd_to_bank(data); in pistachio_gpio_irq_ack() local
1229 gpio_mask_writel(bank, GPIO_INTERRUPT_STATUS, data->hwirq, 0); in pistachio_gpio_irq_ack()
1234 struct pistachio_gpio_bank *bank = irqd_to_bank(data); in pistachio_gpio_irq_mask() local
1236 gpio_mask_writel(bank, GPIO_INTERRUPT_EN, data->hwirq, 0); in pistachio_gpio_irq_mask()
1241 struct pistachio_gpio_bank *bank = irqd_to_bank(data); in pistachio_gpio_irq_unmask() local
1243 gpio_mask_writel(bank, GPIO_INTERRUPT_EN, data->hwirq, 1); in pistachio_gpio_irq_unmask()
1258 struct pistachio_gpio_bank *bank = irqd_to_bank(data); in pistachio_gpio_irq_set_type() local
1262 gpio_mask_writel(bank, GPIO_INPUT_POLARITY, data->hwirq, 1); in pistachio_gpio_irq_set_type()
1263 gpio_mask_writel(bank, GPIO_INTERRUPT_TYPE, data->hwirq, in pistachio_gpio_irq_set_type()
1265 gpio_mask_writel(bank, GPIO_INTERRUPT_EDGE, data->hwirq, in pistachio_gpio_irq_set_type()
1269 gpio_mask_writel(bank, GPIO_INPUT_POLARITY, data->hwirq, 0); in pistachio_gpio_irq_set_type()
1270 gpio_mask_writel(bank, GPIO_INTERRUPT_TYPE, data->hwirq, in pistachio_gpio_irq_set_type()
1272 gpio_mask_writel(bank, GPIO_INTERRUPT_EDGE, data->hwirq, in pistachio_gpio_irq_set_type()
1276 gpio_mask_writel(bank, GPIO_INTERRUPT_TYPE, data->hwirq, in pistachio_gpio_irq_set_type()
1278 gpio_mask_writel(bank, GPIO_INTERRUPT_EDGE, data->hwirq, in pistachio_gpio_irq_set_type()
1282 gpio_mask_writel(bank, GPIO_INPUT_POLARITY, data->hwirq, 1); in pistachio_gpio_irq_set_type()
1283 gpio_mask_writel(bank, GPIO_INTERRUPT_TYPE, data->hwirq, in pistachio_gpio_irq_set_type()
1287 gpio_mask_writel(bank, GPIO_INPUT_POLARITY, data->hwirq, 0); in pistachio_gpio_irq_set_type()
1288 gpio_mask_writel(bank, GPIO_INTERRUPT_TYPE, data->hwirq, in pistachio_gpio_irq_set_type()
1306 struct pistachio_gpio_bank *bank = gc_to_bank(gc); in pistachio_gpio_irq_handler() local
1312 pending = gpio_readl(bank, GPIO_INTERRUPT_STATUS) & in pistachio_gpio_irq_handler()
1313 gpio_readl(bank, GPIO_INTERRUPT_EN); in pistachio_gpio_irq_handler()
1357 struct pistachio_gpio_bank *bank; in pistachio_gpio_register() local
1387 bank = &pctl->gpio_banks[i]; in pistachio_gpio_register()
1388 bank->pctl = pctl; in pistachio_gpio_register()
1389 bank->base = pctl->base + GPIO_BANK_BASE(i); in pistachio_gpio_register()
1391 bank->gpio_chip.dev = pctl->dev; in pistachio_gpio_register()
1392 bank->gpio_chip.of_node = child; in pistachio_gpio_register()
1393 ret = gpiochip_add(&bank->gpio_chip); in pistachio_gpio_register()
1400 ret = gpiochip_irqchip_add(&bank->gpio_chip, &bank->irq_chip, in pistachio_gpio_register()
1405 gpiochip_remove(&bank->gpio_chip); in pistachio_gpio_register()
1408 gpiochip_set_chained_irqchip(&bank->gpio_chip, &bank->irq_chip, in pistachio_gpio_register()
1411 ret = gpiochip_add_pin_range(&bank->gpio_chip, in pistachio_gpio_register()
1413 bank->pin_base, bank->npins); in pistachio_gpio_register()
1417 gpiochip_remove(&bank->gpio_chip); in pistachio_gpio_register()
1425 bank = &pctl->gpio_banks[i - 1]; in pistachio_gpio_register()
1426 gpiochip_remove(&bank->gpio_chip); in pistachio_gpio_register()