Searched refs:ichx_priv (Results 1 - 1 of 1) sorted by relevance

/linux-4.4.14/drivers/gpio/
H A Dgpio-ich.c109 } ichx_priv; variable in typeref:struct:__anon3971
124 spin_lock_irqsave(&ichx_priv.lock, flags); ichx_write_bit()
126 if (reg == GPIO_LVL && ichx_priv.desc->use_outlvl_cache) ichx_write_bit()
127 data = ichx_priv.outlvl_cache[reg_nr]; ichx_write_bit()
129 data = ICHX_READ(ichx_priv.desc->regs[reg][reg_nr], ichx_write_bit()
130 ichx_priv.gpio_base); ichx_write_bit()
136 ICHX_WRITE(data, ichx_priv.desc->regs[reg][reg_nr], ichx_write_bit()
137 ichx_priv.gpio_base); ichx_write_bit()
138 if (reg == GPIO_LVL && ichx_priv.desc->use_outlvl_cache) ichx_write_bit()
139 ichx_priv.outlvl_cache[reg_nr] = data; ichx_write_bit()
141 tmp = ICHX_READ(ichx_priv.desc->regs[reg][reg_nr], ichx_write_bit()
142 ichx_priv.gpio_base); ichx_write_bit()
146 spin_unlock_irqrestore(&ichx_priv.lock, flags); ichx_write_bit()
158 spin_lock_irqsave(&ichx_priv.lock, flags); ichx_read_bit()
160 data = ICHX_READ(ichx_priv.desc->regs[reg][reg_nr], ichx_read_bit()
161 ichx_priv.gpio_base); ichx_read_bit()
163 if (reg == GPIO_LVL && ichx_priv.desc->use_outlvl_cache) ichx_read_bit()
164 data = ichx_priv.outlvl_cache[reg_nr] | data; ichx_read_bit()
166 spin_unlock_irqrestore(&ichx_priv.lock, flags); ichx_read_bit()
173 return !!(ichx_priv.use_gpio & (1 << (nr / 32))); ichx_gpio_check_available()
197 if (nr < 32 && ichx_priv.desc->have_blink) ichx_gpio_direction_output()
228 if (!ichx_priv.pm_base) ich6_gpio_get()
231 spin_lock_irqsave(&ichx_priv.lock, flags); ich6_gpio_get()
234 ICHX_WRITE(1 << (16 + nr), 0, ichx_priv.pm_base); ich6_gpio_get()
235 data = ICHX_READ(0, ichx_priv.pm_base); ich6_gpio_get()
237 spin_unlock_irqrestore(&ichx_priv.lock, flags); ich6_gpio_get()
256 if (ichx_priv.desc->use_sel_ignore[nr / 32] & (1 << (nr & 0x1f))) ichx_gpio_request()
285 chip->dev = &ichx_priv.dev->dev; ichx_gpiolib_setup()
288 chip->request = ichx_priv.desc->request ? ichx_gpiolib_setup()
289 ichx_priv.desc->request : ichx_gpio_request; ichx_gpiolib_setup()
290 chip->get = ichx_priv.desc->get ? ichx_gpiolib_setup()
291 ichx_priv.desc->get : ichx_gpio_get; ichx_gpiolib_setup()
298 chip->ngpio = ichx_priv.desc->ngpio; ichx_gpiolib_setup()
395 for (i = 0; i < ARRAY_SIZE(ichx_priv.desc->regs[0]); i++) { ichx_gpio_request_regions()
399 res_base->start + ichx_priv.desc->regs[0][i], ichx_gpio_request_regions()
400 ichx_priv.desc->reglen[i], name)) ichx_gpio_request_regions()
410 release_region(res_base->start + ichx_priv.desc->regs[0][i], ichx_gpio_request_regions()
411 ichx_priv.desc->reglen[i]); ichx_gpio_request_regions()
420 for (i = 0; i < ARRAY_SIZE(ichx_priv.desc->regs[0]); i++) { ichx_gpio_release_regions()
423 release_region(res_base->start + ichx_priv.desc->regs[0][i], ichx_gpio_release_regions()
424 ichx_priv.desc->reglen[i]); ichx_gpio_release_regions()
437 ichx_priv.dev = pdev; ichx_gpio_probe()
441 ichx_priv.desc = &i3100_desc; ichx_gpio_probe()
444 ichx_priv.desc = &intel5_desc; ichx_gpio_probe()
447 ichx_priv.desc = &ich6_desc; ichx_gpio_probe()
450 ichx_priv.desc = &ich7_desc; ichx_gpio_probe()
453 ichx_priv.desc = &ich9_desc; ichx_gpio_probe()
456 ichx_priv.desc = &ich10_corp_desc; ichx_gpio_probe()
459 ichx_priv.desc = &ich10_cons_desc; ichx_gpio_probe()
462 ichx_priv.desc = &avoton_desc; ichx_gpio_probe()
468 spin_lock_init(&ichx_priv.lock); ichx_gpio_probe()
470 ichx_priv.use_gpio = ich_info->use_gpio; ichx_gpio_probe()
472 ichx_priv.use_gpio); ichx_gpio_probe()
476 ichx_priv.gpio_base = res_base; ichx_gpio_probe()
483 if (!ichx_priv.desc->uses_gpe0) ichx_gpio_probe()
498 ichx_priv.pm_base = res_pm; ichx_gpio_probe()
501 ichx_gpiolib_setup(&ichx_priv.chip); ichx_gpio_probe()
502 err = gpiochip_add(&ichx_priv.chip); ichx_gpio_probe()
508 pr_info("GPIO from %d to %d on %s\n", ichx_priv.chip.base, ichx_gpio_probe()
509 ichx_priv.chip.base + ichx_priv.chip.ngpio - 1, DRV_NAME); ichx_gpio_probe()
514 ichx_gpio_release_regions(ichx_priv.gpio_base, ichx_priv.use_gpio); ichx_gpio_probe()
515 if (ichx_priv.pm_base) ichx_gpio_probe()
516 release_region(ichx_priv.pm_base->start, ichx_gpio_probe()
517 resource_size(ichx_priv.pm_base)); ichx_gpio_probe()
523 gpiochip_remove(&ichx_priv.chip); ichx_gpio_remove()
525 ichx_gpio_release_regions(ichx_priv.gpio_base, ichx_priv.use_gpio); ichx_gpio_remove()
526 if (ichx_priv.pm_base) ichx_gpio_remove()
527 release_region(ichx_priv.pm_base->start, ichx_gpio_remove()
528 resource_size(ichx_priv.pm_base)); ichx_gpio_remove()

Completed in 33 milliseconds