Lines Matching refs:block

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