Lines Matching refs:chip

73 static void versal_gpio_get_pin(struct versal_gpio_chip *chip, uint32_t gpio,  in versal_gpio_get_pin()  argument
76 struct versal_gpio_platdata *platdata = &chip->plat; in versal_gpio_get_pin()
98 static enum gpio_level versal_gpio_get_value(struct versal_gpio_chip *chip, in versal_gpio_get_value() argument
104 versal_gpio_get_pin(chip, gpio, &bank, &pin); in versal_gpio_get_value()
106 return (io_read32(chip->base + DATA_RO_OFFSET(bank)) >> pin) & 1; in versal_gpio_get_value()
109 static void versal_gpio_set_value(struct versal_gpio_chip *chip, uint32_t gpio, in versal_gpio_set_value() argument
116 versal_gpio_get_pin(chip, gpio, &bank, &pin); in versal_gpio_set_value()
133 io_write32(chip->base + off, val); in versal_gpio_set_value()
136 static void versal_gpio_set_direction(struct versal_gpio_chip *chip, in versal_gpio_set_direction() argument
143 versal_gpio_get_pin(chip, gpio, &bank, &pin); in versal_gpio_set_direction()
147 reg = io_read32(chip->base + DIRM_OFFSET(bank)); in versal_gpio_set_direction()
149 io_write32(chip->base + DIRM_OFFSET(bank), reg); in versal_gpio_set_direction()
152 reg = io_read32(chip->base + OUTEN_OFFSET(bank)); in versal_gpio_set_direction()
155 io_write32(chip->base + OUTEN_OFFSET(bank), reg); in versal_gpio_set_direction()
158 versal_gpio_set_value(chip, gpio, GPIO_LEVEL_LOW); in versal_gpio_set_direction()
163 reg = io_read32(chip->base + DIRM_OFFSET(bank)); in versal_gpio_set_direction()
165 io_write32(chip->base + DIRM_OFFSET(bank), reg); in versal_gpio_set_direction()
169 static enum gpio_dir versal_gpio_get_direction(struct versal_gpio_chip *chip, in versal_gpio_get_direction() argument
175 versal_gpio_get_pin(chip, gpio, &bank, &pin); in versal_gpio_get_direction()
177 if (io_read32(chip->base + DIRM_OFFSET(bank)) & BIT(pin)) in versal_gpio_get_direction()
183 static enum gpio_level do_get_value(struct gpio_chip *chip, uint32_t gpio) in do_get_value() argument
185 struct versal_gpio_chip *p = container_of(chip, in do_get_value()
186 struct versal_gpio_chip, chip); in do_get_value()
190 static void do_set_value(struct gpio_chip *chip, uint32_t gpio, in do_set_value() argument
193 struct versal_gpio_chip *p = container_of(chip, in do_set_value()
194 struct versal_gpio_chip, chip); in do_set_value()
198 static void do_set_dir(struct gpio_chip *chip, uint32_t gpio, in do_set_dir() argument
201 struct versal_gpio_chip *p = container_of(chip, in do_set_dir()
202 struct versal_gpio_chip, chip); in do_set_dir()
206 static enum gpio_dir do_get_dir(struct gpio_chip *chip, uint32_t gpio) in do_get_dir() argument
208 struct versal_gpio_chip *p = container_of(chip, in do_get_dir()
209 struct versal_gpio_chip, chip); in do_get_dir()
222 TEE_Result versal_gpio_pmc_init(struct versal_gpio_chip *chip) in versal_gpio_pmc_init() argument
224 if (chip->base) in versal_gpio_pmc_init()
227 chip->plat.p_data = &versal_gpio_pmc_def; in versal_gpio_pmc_init()
228 chip->plat.base = VERSAL_GPIO_PMC_BASE; in versal_gpio_pmc_init()
229 chip->chip.ops = &versal_gpio_ops; in versal_gpio_pmc_init()
231 chip->base = (vaddr_t)core_mmu_add_mapping(MEM_AREA_IO_SEC, in versal_gpio_pmc_init()
234 if (!chip->base) { in versal_gpio_pmc_init()
236 chip->chip.ops = NULL; in versal_gpio_pmc_init()
243 TEE_Result versal_gpio_ps_init(struct versal_gpio_chip *chip) in versal_gpio_ps_init() argument
245 if (chip->base) in versal_gpio_ps_init()
248 chip->plat.p_data = &versal_gpio_ps_def; in versal_gpio_ps_init()
249 chip->plat.base = VERSAL_GPIO_PS_BASE; in versal_gpio_ps_init()
250 chip->chip.ops = &versal_gpio_ops; in versal_gpio_ps_init()
252 chip->base = (vaddr_t)core_mmu_add_mapping(MEM_AREA_IO_SEC, in versal_gpio_ps_init()
255 if (!chip->base) { in versal_gpio_ps_init()
257 chip->chip.ops = NULL; in versal_gpio_ps_init()