• Home
  • Raw
  • Download

Lines Matching refs:block

145 	struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip);  in sch311x_gpio_request()  local
147 if (block->config_regs[offset] == 0) /* GPIO is not available */ in sch311x_gpio_request()
150 if (!request_region(block->runtime_reg + block->config_regs[offset], in sch311x_gpio_request()
153 block->runtime_reg + block->config_regs[offset]); in sch311x_gpio_request()
161 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); in sch311x_gpio_free() local
163 if (block->config_regs[offset] == 0) /* GPIO is not available */ in sch311x_gpio_free()
166 release_region(block->runtime_reg + block->config_regs[offset], 1); in sch311x_gpio_free()
171 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); in sch311x_gpio_get() local
174 spin_lock(&block->lock); in sch311x_gpio_get()
175 data = inb(block->runtime_reg + block->data_reg); in sch311x_gpio_get()
176 spin_unlock(&block->lock); in sch311x_gpio_get()
181 static void __sch311x_gpio_set(struct sch311x_gpio_block *block, in __sch311x_gpio_set() argument
184 unsigned char data = inb(block->runtime_reg + block->data_reg); in __sch311x_gpio_set()
189 outb(data, block->runtime_reg + block->data_reg); in __sch311x_gpio_set()
195 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); in sch311x_gpio_set() local
197 spin_lock(&block->lock); in sch311x_gpio_set()
198 __sch311x_gpio_set(block, offset, value); in sch311x_gpio_set()
199 spin_unlock(&block->lock); in sch311x_gpio_set()
204 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); in sch311x_gpio_direction_in() local
206 spin_lock(&block->lock); in sch311x_gpio_direction_in()
207 outb(SCH311X_GPIO_CONF_IN, block->runtime_reg + in sch311x_gpio_direction_in()
208 block->config_regs[offset]); in sch311x_gpio_direction_in()
209 spin_unlock(&block->lock); in sch311x_gpio_direction_in()
217 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); in sch311x_gpio_direction_out() local
219 spin_lock(&block->lock); in sch311x_gpio_direction_out()
221 outb(SCH311X_GPIO_CONF_OUT, block->runtime_reg + in sch311x_gpio_direction_out()
222 block->config_regs[offset]); in sch311x_gpio_direction_out()
224 __sch311x_gpio_set(block, offset, value); in sch311x_gpio_direction_out()
226 spin_unlock(&block->lock); in sch311x_gpio_direction_out()
234 struct sch311x_gpio_block *block; in sch311x_gpio_probe() local
251 block = &priv->blocks[i]; in sch311x_gpio_probe()
253 spin_lock_init(&block->lock); in sch311x_gpio_probe()
255 block->chip.label = DRV_NAME; in sch311x_gpio_probe()
256 block->chip.owner = THIS_MODULE; in sch311x_gpio_probe()
257 block->chip.request = sch311x_gpio_request; in sch311x_gpio_probe()
258 block->chip.free = sch311x_gpio_free; in sch311x_gpio_probe()
259 block->chip.direction_input = sch311x_gpio_direction_in; in sch311x_gpio_probe()
260 block->chip.direction_output = sch311x_gpio_direction_out; in sch311x_gpio_probe()
261 block->chip.get = sch311x_gpio_get; in sch311x_gpio_probe()
262 block->chip.set = sch311x_gpio_set; in sch311x_gpio_probe()
263 block->chip.ngpio = 8; in sch311x_gpio_probe()
264 block->chip.dev = &pdev->dev; in sch311x_gpio_probe()
265 block->chip.base = sch311x_gpio_blocks[i].base; in sch311x_gpio_probe()
266 block->config_regs = sch311x_gpio_blocks[i].config_regs; in sch311x_gpio_probe()
267 block->data_reg = sch311x_gpio_blocks[i].data_reg; in sch311x_gpio_probe()
268 block->runtime_reg = pdata->runtime_reg; in sch311x_gpio_probe()
270 err = gpiochip_add(&block->chip); in sch311x_gpio_probe()