Lines Matching refs:chip

40 static int samsung_gpio_setpull_updown(struct samsung_gpio_chip *chip,
43 void __iomem *reg = chip->base + 0x08;
55 static samsung_gpio_pull_t samsung_gpio_getpull_updown(struct samsung_gpio_chip *chip,
58 void __iomem *reg = chip->base + 0x08;
68 static int samsung_gpio_setcfg_2bit(struct samsung_gpio_chip *chip,
71 void __iomem *reg = chip->base;
93 * @chip: The gpio chip that is being configured.
101 static unsigned int samsung_gpio_getcfg_2bit(struct samsung_gpio_chip *chip,
106 con = __raw_readl(chip->base);
116 * @chip: The gpio chip that is being configured.
131 static int samsung_gpio_setcfg_4bit(struct samsung_gpio_chip *chip,
134 void __iomem *reg = chip->base;
138 if (off < 8 && chip->chip.ngpio > 8)
156 * @chip: The gpio chip that is being configured.
166 static unsigned samsung_gpio_getcfg_4bit(struct samsung_gpio_chip *chip,
169 void __iomem *reg = chip->base;
173 if (off < 8 && chip->chip.ngpio > 8)
236 * chip is as following:
245 static int samsung_gpiolib_2bit_input(struct gpio_chip *chip, unsigned offset)
247 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
263 static int samsung_gpiolib_2bit_output(struct gpio_chip *chip,
266 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
307 static int samsung_gpiolib_4bit_input(struct gpio_chip *chip,
310 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
326 static int samsung_gpiolib_4bit_output(struct gpio_chip *chip,
329 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
376 static int samsung_gpiolib_4bit2_input(struct gpio_chip *chip,
379 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
398 static int samsung_gpiolib_4bit2_output(struct gpio_chip *chip,
401 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
433 static void samsung_gpiolib_set(struct gpio_chip *chip,
436 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
452 static int samsung_gpiolib_get(struct gpio_chip *chip, unsigned offset)
454 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
479 static __init void s3c_gpiolib_track(struct samsung_gpio_chip *chip)
484 gpn = chip->chip.base;
485 for (i = 0; i < chip->chip.ngpio; i++, gpn++) {
487 s3c_gpios[gpn] = chip;
494 * @chip: The chip to register
496 * This is a wrapper to gpiochip_add() that takes our specific gpio chip
502 static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
504 struct gpio_chip *gc = &chip->chip;
507 BUG_ON(!chip->base);
511 spin_lock_init(&chip->lock);
523 if (chip->pm != NULL) {
524 if (!chip->pm->save || !chip->pm->resume)
532 ret = gpiochip_add_data(gc, chip);
534 s3c_gpiolib_track(chip);
537 static void __init samsung_gpiolib_add_2bit_chips(struct samsung_gpio_chip *chip,
543 for (i = 0 ; i < nr_chips; i++, chip++) {
544 chip->chip.direction_input = samsung_gpiolib_2bit_input;
545 chip->chip.direction_output = samsung_gpiolib_2bit_output;
547 if (!chip->config)
548 chip->config = &samsung_gpio_cfgs[7];
549 if (!chip->pm)
550 chip->pm = __gpio_pm(&samsung_gpio_pm_2bit);
551 if ((base != NULL) && (chip->base == NULL))
552 chip->base = base + ((i) * offset);
554 samsung_gpiolib_add(chip);
560 * @chip: The gpio chip that is being configured.
574 static void __init samsung_gpiolib_add_4bit_chips(struct samsung_gpio_chip *chip,
579 for (i = 0 ; i < nr_chips; i++, chip++) {
580 chip->chip.direction_input = samsung_gpiolib_4bit_input;
581 chip->chip.direction_output = samsung_gpiolib_4bit_output;
583 if (!chip->config)
584 chip->config = &samsung_gpio_cfgs[2];
585 if (!chip->pm)
586 chip->pm = __gpio_pm(&samsung_gpio_pm_4bit);
587 if ((base != NULL) && (chip->base == NULL))
588 chip->base = base + ((i) * 0x20);
590 chip->bitmap_gpio_int = 0;
592 samsung_gpiolib_add(chip);
596 static void __init samsung_gpiolib_add_4bit2_chips(struct samsung_gpio_chip *chip,
599 for (; nr_chips > 0; nr_chips--, chip++) {
600 chip->chip.direction_input = samsung_gpiolib_4bit2_input;
601 chip->chip.direction_output = samsung_gpiolib_4bit2_output;
603 if (!chip->config)
604 chip->config = &samsung_gpio_cfgs[2];
605 if (!chip->pm)
606 chip->pm = __gpio_pm(&samsung_gpio_pm_4bit);
608 samsung_gpiolib_add(chip);
612 int samsung_gpiolib_to_irq(struct gpio_chip *chip, unsigned int offset)
614 struct samsung_gpio_chip *samsung_chip = gpiochip_get_data(chip);
619 static int s3c64xx_gpiolib_mbank_to_irq(struct gpio_chip *chip, unsigned pin)
624 static int s3c64xx_gpiolib_lbank_to_irq(struct gpio_chip *chip, unsigned pin)
657 .chip = {
663 .chip = {
669 .chip = {
675 .chip = {
682 .chip = {
689 .chip = {
697 .chip = {
709 .chip = {
717 .chip = {
725 .chip = {
738 .chip = {
745 .chip = {
752 .chip = {
759 .chip = {
766 .chip = {
773 .chip = {
782 .chip = {
822 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin);
827 if (!chip)
830 offset = pin - chip->chip.base;
832 samsung_gpio_lock(chip, flags);
833 ret = samsung_gpio_do_setcfg(chip, offset, config);
834 samsung_gpio_unlock(chip, flags);
873 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin);
877 if (!chip)
880 offset = pin - chip->chip.base;
882 samsung_gpio_lock(chip, flags);
883 ret = samsung_gpio_do_setpull(chip, offset, pull);
884 samsung_gpio_unlock(chip, flags);