Lines Matching refs:chip

43 int samsung_gpio_setpull_updown(struct samsung_gpio_chip *chip,  in samsung_gpio_setpull_updown()  argument
46 void __iomem *reg = chip->base + 0x08; in samsung_gpio_setpull_updown()
58 samsung_gpio_pull_t samsung_gpio_getpull_updown(struct samsung_gpio_chip *chip, in samsung_gpio_getpull_updown() argument
61 void __iomem *reg = chip->base + 0x08; in samsung_gpio_getpull_updown()
71 int s3c2443_gpio_setpull(struct samsung_gpio_chip *chip, in s3c2443_gpio_setpull() argument
85 return samsung_gpio_setpull_updown(chip, off, pull); in s3c2443_gpio_setpull()
88 samsung_gpio_pull_t s3c2443_gpio_getpull(struct samsung_gpio_chip *chip, in s3c2443_gpio_getpull() argument
93 pull = samsung_gpio_getpull_updown(chip, off); in s3c2443_gpio_getpull()
111 static int s3c24xx_gpio_setpull_1(struct samsung_gpio_chip *chip, in s3c24xx_gpio_setpull_1() argument
115 void __iomem *reg = chip->base + 0x08; in s3c24xx_gpio_setpull_1()
129 static samsung_gpio_pull_t s3c24xx_gpio_getpull_1(struct samsung_gpio_chip *chip, in s3c24xx_gpio_getpull_1() argument
133 void __iomem *reg = chip->base + 0x08; in s3c24xx_gpio_getpull_1()
140 samsung_gpio_pull_t s3c24xx_gpio_getpull_1up(struct samsung_gpio_chip *chip, in s3c24xx_gpio_getpull_1up() argument
143 return s3c24xx_gpio_getpull_1(chip, off, S3C_GPIO_PULL_UP); in s3c24xx_gpio_getpull_1up()
146 int s3c24xx_gpio_setpull_1up(struct samsung_gpio_chip *chip, in s3c24xx_gpio_setpull_1up() argument
149 return s3c24xx_gpio_setpull_1(chip, off, pull, S3C_GPIO_PULL_UP); in s3c24xx_gpio_setpull_1up()
152 samsung_gpio_pull_t s3c24xx_gpio_getpull_1down(struct samsung_gpio_chip *chip, in s3c24xx_gpio_getpull_1down() argument
155 return s3c24xx_gpio_getpull_1(chip, off, S3C_GPIO_PULL_DOWN); in s3c24xx_gpio_getpull_1down()
158 int s3c24xx_gpio_setpull_1down(struct samsung_gpio_chip *chip, in s3c24xx_gpio_setpull_1down() argument
161 return s3c24xx_gpio_setpull_1(chip, off, pull, S3C_GPIO_PULL_DOWN); in s3c24xx_gpio_setpull_1down()
178 static int samsung_gpio_setcfg_2bit(struct samsung_gpio_chip *chip, in samsung_gpio_setcfg_2bit() argument
181 void __iomem *reg = chip->base; in samsung_gpio_setcfg_2bit()
211 static unsigned int samsung_gpio_getcfg_2bit(struct samsung_gpio_chip *chip, in samsung_gpio_getcfg_2bit() argument
216 con = __raw_readl(chip->base); in samsung_gpio_getcfg_2bit()
241 static int samsung_gpio_setcfg_4bit(struct samsung_gpio_chip *chip, in samsung_gpio_setcfg_4bit() argument
244 void __iomem *reg = chip->base; in samsung_gpio_setcfg_4bit()
248 if (off < 8 && chip->chip.ngpio > 8) in samsung_gpio_setcfg_4bit()
276 static unsigned samsung_gpio_getcfg_4bit(struct samsung_gpio_chip *chip, in samsung_gpio_getcfg_4bit() argument
279 void __iomem *reg = chip->base; in samsung_gpio_getcfg_4bit()
283 if (off < 8 && chip->chip.ngpio > 8) in samsung_gpio_getcfg_4bit()
306 static int s3c24xx_gpio_setcfg_abank(struct samsung_gpio_chip *chip, in s3c24xx_gpio_setcfg_abank() argument
309 void __iomem *reg = chip->base; in s3c24xx_gpio_setcfg_abank()
344 static unsigned s3c24xx_gpio_getcfg_abank(struct samsung_gpio_chip *chip, in s3c24xx_gpio_getcfg_abank() argument
349 con = __raw_readl(chip->base); in s3c24xx_gpio_getcfg_abank()
431 static int samsung_gpiolib_2bit_input(struct gpio_chip *chip, unsigned offset) in samsung_gpiolib_2bit_input() argument
433 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_2bit_input()
449 static int samsung_gpiolib_2bit_output(struct gpio_chip *chip, in samsung_gpiolib_2bit_output() argument
452 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_2bit_output()
493 static int samsung_gpiolib_4bit_input(struct gpio_chip *chip, in samsung_gpiolib_4bit_input() argument
496 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_4bit_input()
512 static int samsung_gpiolib_4bit_output(struct gpio_chip *chip, in samsung_gpiolib_4bit_output() argument
515 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_4bit_output()
562 static int samsung_gpiolib_4bit2_input(struct gpio_chip *chip, in samsung_gpiolib_4bit2_input() argument
565 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_4bit2_input()
584 static int samsung_gpiolib_4bit2_output(struct gpio_chip *chip, in samsung_gpiolib_4bit2_output() argument
587 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_4bit2_output()
622 static int s3c24xx_gpiolib_banka_input(struct gpio_chip *chip, unsigned offset) in s3c24xx_gpiolib_banka_input() argument
627 static int s3c24xx_gpiolib_banka_output(struct gpio_chip *chip, in s3c24xx_gpiolib_banka_output() argument
630 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in s3c24xx_gpiolib_banka_output()
657 static void samsung_gpiolib_set(struct gpio_chip *chip, in samsung_gpiolib_set() argument
660 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_set()
676 static int samsung_gpiolib_get(struct gpio_chip *chip, unsigned offset) in samsung_gpiolib_get() argument
678 struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip); in samsung_gpiolib_get()
703 static __init void s3c_gpiolib_track(struct samsung_gpio_chip *chip) in s3c_gpiolib_track() argument
708 gpn = chip->chip.base; in s3c_gpiolib_track()
709 for (i = 0; i < chip->chip.ngpio; i++, gpn++) { in s3c_gpiolib_track()
711 s3c_gpios[gpn] = chip; in s3c_gpiolib_track()
726 static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip) in samsung_gpiolib_add() argument
728 struct gpio_chip *gc = &chip->chip; in samsung_gpiolib_add()
731 BUG_ON(!chip->base); in samsung_gpiolib_add()
735 spin_lock_init(&chip->lock); in samsung_gpiolib_add()
747 if (chip->pm != NULL) { in samsung_gpiolib_add()
748 if (!chip->pm->save || !chip->pm->resume) in samsung_gpiolib_add()
758 s3c_gpiolib_track(chip); in samsung_gpiolib_add()
761 static void __init s3c24xx_gpiolib_add_chips(struct samsung_gpio_chip *chip, in s3c24xx_gpiolib_add_chips() argument
765 struct gpio_chip *gc = &chip->chip; in s3c24xx_gpiolib_add_chips()
767 for (i = 0 ; i < nr_chips; i++, chip++) { in s3c24xx_gpiolib_add_chips()
769 if (chip->chip.base >= S3C_GPIO_END) in s3c24xx_gpiolib_add_chips()
772 if (!chip->config) in s3c24xx_gpiolib_add_chips()
773 chip->config = &s3c24xx_gpiocfg_default; in s3c24xx_gpiolib_add_chips()
774 if (!chip->pm) in s3c24xx_gpiolib_add_chips()
775 chip->pm = __gpio_pm(&samsung_gpio_pm_2bit); in s3c24xx_gpiolib_add_chips()
776 if ((base != NULL) && (chip->base == NULL)) in s3c24xx_gpiolib_add_chips()
777 chip->base = base + ((i) * 0x10); in s3c24xx_gpiolib_add_chips()
784 samsung_gpiolib_add(chip); in s3c24xx_gpiolib_add_chips()
788 static void __init samsung_gpiolib_add_2bit_chips(struct samsung_gpio_chip *chip, in samsung_gpiolib_add_2bit_chips() argument
794 for (i = 0 ; i < nr_chips; i++, chip++) { in samsung_gpiolib_add_2bit_chips()
795 chip->chip.direction_input = samsung_gpiolib_2bit_input; in samsung_gpiolib_add_2bit_chips()
796 chip->chip.direction_output = samsung_gpiolib_2bit_output; in samsung_gpiolib_add_2bit_chips()
798 if (!chip->config) in samsung_gpiolib_add_2bit_chips()
799 chip->config = &samsung_gpio_cfgs[7]; in samsung_gpiolib_add_2bit_chips()
800 if (!chip->pm) in samsung_gpiolib_add_2bit_chips()
801 chip->pm = __gpio_pm(&samsung_gpio_pm_2bit); in samsung_gpiolib_add_2bit_chips()
802 if ((base != NULL) && (chip->base == NULL)) in samsung_gpiolib_add_2bit_chips()
803 chip->base = base + ((i) * offset); in samsung_gpiolib_add_2bit_chips()
805 samsung_gpiolib_add(chip); in samsung_gpiolib_add_2bit_chips()
825 static void __init samsung_gpiolib_add_4bit_chips(struct samsung_gpio_chip *chip, in samsung_gpiolib_add_4bit_chips() argument
830 for (i = 0 ; i < nr_chips; i++, chip++) { in samsung_gpiolib_add_4bit_chips()
831 chip->chip.direction_input = samsung_gpiolib_4bit_input; in samsung_gpiolib_add_4bit_chips()
832 chip->chip.direction_output = samsung_gpiolib_4bit_output; in samsung_gpiolib_add_4bit_chips()
834 if (!chip->config) in samsung_gpiolib_add_4bit_chips()
835 chip->config = &samsung_gpio_cfgs[2]; in samsung_gpiolib_add_4bit_chips()
836 if (!chip->pm) in samsung_gpiolib_add_4bit_chips()
837 chip->pm = __gpio_pm(&samsung_gpio_pm_4bit); in samsung_gpiolib_add_4bit_chips()
838 if ((base != NULL) && (chip->base == NULL)) in samsung_gpiolib_add_4bit_chips()
839 chip->base = base + ((i) * 0x20); in samsung_gpiolib_add_4bit_chips()
841 chip->bitmap_gpio_int = 0; in samsung_gpiolib_add_4bit_chips()
843 samsung_gpiolib_add(chip); in samsung_gpiolib_add_4bit_chips()
847 static void __init samsung_gpiolib_add_4bit2_chips(struct samsung_gpio_chip *chip, in samsung_gpiolib_add_4bit2_chips() argument
850 for (; nr_chips > 0; nr_chips--, chip++) { in samsung_gpiolib_add_4bit2_chips()
851 chip->chip.direction_input = samsung_gpiolib_4bit2_input; in samsung_gpiolib_add_4bit2_chips()
852 chip->chip.direction_output = samsung_gpiolib_4bit2_output; in samsung_gpiolib_add_4bit2_chips()
854 if (!chip->config) in samsung_gpiolib_add_4bit2_chips()
855 chip->config = &samsung_gpio_cfgs[2]; in samsung_gpiolib_add_4bit2_chips()
856 if (!chip->pm) in samsung_gpiolib_add_4bit2_chips()
857 chip->pm = __gpio_pm(&samsung_gpio_pm_4bit); in samsung_gpiolib_add_4bit2_chips()
859 samsung_gpiolib_add(chip); in samsung_gpiolib_add_4bit2_chips()
863 int samsung_gpiolib_to_irq(struct gpio_chip *chip, unsigned int offset) in samsung_gpiolib_to_irq() argument
865 struct samsung_gpio_chip *samsung_chip = container_of(chip, struct samsung_gpio_chip, chip); in samsung_gpiolib_to_irq()
871 static int s3c24xx_gpiolib_fbank_to_irq(struct gpio_chip *chip, unsigned offset) in s3c24xx_gpiolib_fbank_to_irq() argument
888 static int s3c64xx_gpiolib_mbank_to_irq(struct gpio_chip *chip, unsigned pin) in s3c64xx_gpiolib_mbank_to_irq() argument
893 static int s3c64xx_gpiolib_lbank_to_irq(struct gpio_chip *chip, unsigned pin) in s3c64xx_gpiolib_lbank_to_irq() argument
903 .chip = {
912 .chip = {
919 .chip = {
926 .chip = {
933 .chip = {
940 .chip = {
949 .chip = {
957 .chip = {
967 .chip = {
975 .chip = {
983 .chip = {
991 .chip = {
1030 .chip = {
1036 .chip = {
1042 .chip = {
1048 .chip = {
1055 .chip = {
1062 .chip = {
1070 .chip = {
1084 .chip = {
1092 .chip = {
1100 .chip = {
1115 .chip = {
1122 .chip = {
1129 .chip = {
1136 .chip = {
1143 .chip = {
1150 .chip = {
1159 .chip = {
1206 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin); in s3c_gpio_cfgpin() local
1211 if (!chip) in s3c_gpio_cfgpin()
1214 offset = pin - chip->chip.base; in s3c_gpio_cfgpin()
1216 samsung_gpio_lock(chip, flags); in s3c_gpio_cfgpin()
1217 ret = samsung_gpio_do_setcfg(chip, offset, config); in s3c_gpio_cfgpin()
1218 samsung_gpio_unlock(chip, flags); in s3c_gpio_cfgpin()
1257 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin); in s3c_gpio_getcfg() local
1262 if (chip) { in s3c_gpio_getcfg()
1263 offset = pin - chip->chip.base; in s3c_gpio_getcfg()
1265 samsung_gpio_lock(chip, flags); in s3c_gpio_getcfg()
1266 ret = samsung_gpio_do_getcfg(chip, offset); in s3c_gpio_getcfg()
1267 samsung_gpio_unlock(chip, flags); in s3c_gpio_getcfg()
1276 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin); in s3c_gpio_setpull() local
1280 if (!chip) in s3c_gpio_setpull()
1283 offset = pin - chip->chip.base; in s3c_gpio_setpull()
1285 samsung_gpio_lock(chip, flags); in s3c_gpio_setpull()
1286 ret = samsung_gpio_do_setpull(chip, offset, pull); in s3c_gpio_setpull()
1287 samsung_gpio_unlock(chip, flags); in s3c_gpio_setpull()
1295 struct samsung_gpio_chip *chip = samsung_gpiolib_getchip(pin); in s3c_gpio_getpull() local
1300 if (chip) { in s3c_gpio_getpull()
1301 offset = pin - chip->chip.base; in s3c_gpio_getpull()
1303 samsung_gpio_lock(chip, flags); in s3c_gpio_getpull()
1304 pup = samsung_gpio_do_getpull(chip, offset); in s3c_gpio_getpull()
1305 samsung_gpio_unlock(chip, flags); in s3c_gpio_getpull()