Lines Matching refs:offset
48 static void sprd_gpio_update(struct gpio_chip *chip, unsigned int offset, in sprd_gpio_update() argument
53 offset / SPRD_GPIO_BANK_NR); in sprd_gpio_update()
61 tmp |= BIT(SPRD_GPIO_BIT(offset)); in sprd_gpio_update()
63 tmp &= ~BIT(SPRD_GPIO_BIT(offset)); in sprd_gpio_update()
69 static int sprd_gpio_read(struct gpio_chip *chip, unsigned int offset, u16 reg) in sprd_gpio_read() argument
73 offset / SPRD_GPIO_BANK_NR); in sprd_gpio_read()
75 return !!(readl_relaxed(base + reg) & BIT(SPRD_GPIO_BIT(offset))); in sprd_gpio_read()
78 static int sprd_gpio_request(struct gpio_chip *chip, unsigned int offset) in sprd_gpio_request() argument
80 sprd_gpio_update(chip, offset, SPRD_GPIO_DMSK, 1); in sprd_gpio_request()
84 static void sprd_gpio_free(struct gpio_chip *chip, unsigned int offset) in sprd_gpio_free() argument
86 sprd_gpio_update(chip, offset, SPRD_GPIO_DMSK, 0); in sprd_gpio_free()
90 unsigned int offset) in sprd_gpio_direction_input() argument
92 sprd_gpio_update(chip, offset, SPRD_GPIO_DIR, 0); in sprd_gpio_direction_input()
93 sprd_gpio_update(chip, offset, SPRD_GPIO_INEN, 1); in sprd_gpio_direction_input()
98 unsigned int offset, int value) in sprd_gpio_direction_output() argument
100 sprd_gpio_update(chip, offset, SPRD_GPIO_DIR, 1); in sprd_gpio_direction_output()
101 sprd_gpio_update(chip, offset, SPRD_GPIO_INEN, 0); in sprd_gpio_direction_output()
102 sprd_gpio_update(chip, offset, SPRD_GPIO_DATA, value); in sprd_gpio_direction_output()
106 static int sprd_gpio_get(struct gpio_chip *chip, unsigned int offset) in sprd_gpio_get() argument
108 return sprd_gpio_read(chip, offset, SPRD_GPIO_DATA); in sprd_gpio_get()
111 static void sprd_gpio_set(struct gpio_chip *chip, unsigned int offset, in sprd_gpio_set() argument
114 sprd_gpio_update(chip, offset, SPRD_GPIO_DATA, value); in sprd_gpio_set()
120 u32 offset = irqd_to_hwirq(data); in sprd_gpio_irq_mask() local
122 sprd_gpio_update(chip, offset, SPRD_GPIO_IE, 0); in sprd_gpio_irq_mask()
123 gpiochip_disable_irq(chip, offset); in sprd_gpio_irq_mask()
129 u32 offset = irqd_to_hwirq(data); in sprd_gpio_irq_ack() local
131 sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1); in sprd_gpio_irq_ack()
137 u32 offset = irqd_to_hwirq(data); in sprd_gpio_irq_unmask() local
139 sprd_gpio_update(chip, offset, SPRD_GPIO_IE, 1); in sprd_gpio_irq_unmask()
140 gpiochip_enable_irq(chip, offset); in sprd_gpio_irq_unmask()
147 u32 offset = irqd_to_hwirq(data); in sprd_gpio_irq_set_type() local
151 sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); in sprd_gpio_irq_set_type()
152 sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); in sprd_gpio_irq_set_type()
153 sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1); in sprd_gpio_irq_set_type()
154 sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1); in sprd_gpio_irq_set_type()
158 sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); in sprd_gpio_irq_set_type()
159 sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); in sprd_gpio_irq_set_type()
160 sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0); in sprd_gpio_irq_set_type()
161 sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1); in sprd_gpio_irq_set_type()
165 sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); in sprd_gpio_irq_set_type()
166 sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 1); in sprd_gpio_irq_set_type()
167 sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1); in sprd_gpio_irq_set_type()
171 sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 1); in sprd_gpio_irq_set_type()
172 sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); in sprd_gpio_irq_set_type()
173 sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1); in sprd_gpio_irq_set_type()
177 sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 1); in sprd_gpio_irq_set_type()
178 sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); in sprd_gpio_irq_set_type()
179 sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0); in sprd_gpio_irq_set_type()