| /optee_os/core/include/drivers/ |
| H A D | gpio.h | 72 struct gpio; 99 TEE_Result (*configure)(struct gpio_chip *chip, struct gpio *gpio); 101 void (*put)(struct gpio_chip *chip, struct gpio *gpio); 110 struct gpio { struct 122 static inline void gpio_set_direction(struct gpio *gpio, enum gpio_dir dir) in gpio_set_direction() argument 124 gpio->chip->ops->set_direction(gpio->chip, gpio->pin, dir); in gpio_set_direction() 127 static inline enum gpio_dir gpio_get_direction(struct gpio *gpio) in gpio_get_direction() argument 129 return gpio->chip->ops->get_direction(gpio->chip, gpio->pin); in gpio_get_direction() 132 static inline void gpio_set_value(struct gpio *gpio, enum gpio_level value) in gpio_set_value() argument 134 if (gpio->dt_flags & GPIO_ACTIVE_LOW) in gpio_set_value() [all …]
|
| /optee_os/core/drivers/gpio/ |
| H A D | gpio.c | 16 TEE_Result gpio_dt_alloc_pin(struct dt_pargs *pargs, struct gpio **out_gpio) in gpio_dt_alloc_pin() 18 struct gpio *gpio = NULL; in gpio_dt_alloc_pin() local 23 gpio = calloc(1, sizeof(struct gpio)); in gpio_dt_alloc_pin() 24 if (!gpio) in gpio_dt_alloc_pin() 27 gpio->pin = pargs->args[0]; in gpio_dt_alloc_pin() 28 gpio->dt_flags = pargs->args[1]; in gpio_dt_alloc_pin() 30 *out_gpio = gpio; in gpio_dt_alloc_pin() 37 struct gpio **gpio) in gpio_dt_get_by_index() argument 63 *gpio = out_gpio; in gpio_dt_get_by_index() 68 TEE_Result gpio_configure(struct gpio *gpio, enum gpio_flags flags) in gpio_configure() argument [all …]
|
| H A D | sub.mk | 1 srcs-y += gpio.c
|
| /optee_os/core/arch/arm/dts/ |
| H A D | stm32mp25xxai-pinctrl.dtsi | 8 gpioa: gpio@44240000 { 11 gpio-ranges = <&pinctrl 0 0 16>; 14 gpiob: gpio@44250000 { 17 gpio-ranges = <&pinctrl 0 16 16>; 20 gpioc: gpio@44260000 { 23 gpio-ranges = <&pinctrl 0 32 14>; 26 gpiod: gpio@44270000 { 29 gpio-ranges = <&pinctrl 0 48 16>; 32 gpioe: gpio@44280000 { 35 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp15xxaa-pinctrl.dtsi | 10 gpioa: gpio@50002000 { 13 gpio-ranges = <&pinctrl 0 0 16>; 16 gpiob: gpio@50003000 { 19 gpio-ranges = <&pinctrl 0 16 16>; 22 gpioc: gpio@50004000 { 25 gpio-ranges = <&pinctrl 0 32 16>; 28 gpiod: gpio@50005000 { 31 gpio-ranges = <&pinctrl 0 48 16>; 34 gpioe: gpio@50006000 { 37 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp15xxac-pinctrl.dtsi | 10 gpioa: gpio@50002000 { 13 gpio-ranges = <&pinctrl 0 0 16>; 16 gpiob: gpio@50003000 { 19 gpio-ranges = <&pinctrl 0 16 16>; 22 gpioc: gpio@50004000 { 25 gpio-ranges = <&pinctrl 0 32 16>; 28 gpiod: gpio@50005000 { 31 gpio-ranges = <&pinctrl 0 48 16>; 34 gpioe: gpio@50006000 { 37 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp25xxal-pinctrl.dtsi | 8 gpioa: gpio@44240000 { 11 gpio-ranges = <&pinctrl 0 0 16>; 14 gpiob: gpio@44250000 { 17 gpio-ranges = <&pinctrl 0 16 16>; 20 gpioc: gpio@44260000 { 23 gpio-ranges = <&pinctrl 0 32 14>; 26 gpiod: gpio@44270000 { 29 gpio-ranges = <&pinctrl 0 48 16>; 32 gpioe: gpio@44280000 { 35 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp25xxak-pinctrl.dtsi | 8 gpioa: gpio@44240000 { 11 gpio-ranges = <&pinctrl 0 0 16>; 14 gpiob: gpio@44250000 { 17 gpio-ranges = <&pinctrl 0 16 16>; 20 gpioc: gpio@44260000 { 23 gpio-ranges = <&pinctrl 0 32 14>; 26 gpiod: gpio@44270000 { 29 gpio-ranges = <&pinctrl 0 48 16>; 32 gpioe: gpio@44280000 { 35 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp15xxab-pinctrl.dtsi | 10 gpioa: gpio@50002000 { 13 gpio-ranges = <&pinctrl 0 0 16>; 16 gpiob: gpio@50003000 { 19 gpio-ranges = <&pinctrl 0 16 16>; 22 gpioc: gpio@50004000 { 25 gpio-ranges = <&pinctrl 0 32 16>; 28 gpiod: gpio@50005000 { 31 gpio-ranges = <&pinctrl 0 48 16>; 34 gpioe: gpio@50006000 { 37 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp15xxad-pinctrl.dtsi | 10 gpioa: gpio@50002000 { 13 gpio-ranges = <&pinctrl 0 0 16>; 16 gpiob: gpio@50003000 { 19 gpio-ranges = <&pinctrl 0 16 16>; 22 gpioc: gpio@50004000 { 25 gpio-ranges = <&pinctrl 0 32 16>; 28 gpiod: gpio@50005000 { 31 gpio-ranges = <&pinctrl 0 48 16>; 34 gpioe: gpio@50006000 { 37 gpio-ranges = <&pinctrl 0 64 16>; [all …]
|
| H A D | stm32mp131.dtsi | 423 gpioa: gpio@50002000 { 424 gpio-controller; 425 #gpio-cells = <2>; 433 gpio-ranges = <&pinctrl 0 0 16>; 436 gpiob: gpio@50003000 { 437 gpio-controller; 438 #gpio-cells = <2>; 446 gpio-ranges = <&pinctrl 0 16 16>; 449 gpioc: gpio@50004000 { 450 gpio-controller; [all …]
|
| H A D | stm32mp251.dtsi | 524 gpioa: gpio@44240000 { 525 gpio-controller; 526 #gpio-cells = <2>; 536 gpiob: gpio@44250000 { 537 gpio-controller; 538 #gpio-cells = <2>; 548 gpioc: gpio@44260000 { 549 gpio-controller; 550 #gpio-cells = <2>; 560 gpiod: gpio@44270000 { [all …]
|
| H A D | stm32mp231.dtsi | 471 gpioa: gpio@44240000 { 472 gpio-controller; 473 #gpio-cells = <2>; 483 gpiob: gpio@44250000 { 484 gpio-controller; 485 #gpio-cells = <2>; 495 gpioc: gpio@44260000 { 496 gpio-controller; 497 #gpio-cells = <2>; 507 gpiod: gpio@44270000 { [all …]
|
| H A D | dt_driver_test.dtsi | 5 #include <dt-bindings/gpio/gpio.h> 45 #gpio-cells = <2>;
|
| H A D | stm32mp15xx-dhcom-som.dtsi | 9 #include <dt-bindings/gpio/gpio.h> 72 gpio = <&gpiog 3 GPIO_ACTIVE_LOW>; 197 gpio-line-names = "", "", "", "", 204 gpio-line-names = "", "", "", "", 211 gpio-line-names = "", "", "", "", 218 gpio-line-names = "", "", "", "", 225 gpio-line-names = "", "", "", "", 232 gpio-line-names = "", "", "", "DHCOM-A", 239 gpio-line-names = "DHCOM-C", "", "", "", 246 gpio-line-names = "", "", "", "", [all …]
|
| H A D | stm32mp157c-ev1.dts | 9 #include <dt-bindings/gpio/gpio.h> 34 compatible = "gpio-keys"; 65 compatible = "gpio-backlight"; 209 gpio-controller; 210 #gpio-cells = <2>; 213 gpio-ranges = <&stmfx_pinctrl 0 0 24>;
|
| /optee_os/core/drivers/amd/ |
| H A D | gpio_common.c | 16 void amd_gpio_get_bank_and_pin(struct amd_gbank_data *bdata, uint32_t gpio, in amd_gpio_get_bank_and_pin() argument 21 assert(gpio < bdata->ngpio); in amd_gpio_get_bank_and_pin() 24 if (gpio >= bdata->bank_min[i] && in amd_gpio_get_bank_and_pin() 25 gpio <= bdata->bank_max[i]) { in amd_gpio_get_bank_and_pin() 27 *pin = gpio - bdata->bank_min[i]; in amd_gpio_get_bank_and_pin() 33 EMSG("Invalid GPIO pin number: %"PRIu32, gpio); in amd_gpio_get_bank_and_pin() 38 struct gpio **out_gpio) in amd_gpio_get_dt() 42 struct gpio *gpio = NULL; in amd_gpio_get_dt() local 44 res = gpio_dt_alloc_pin(pargs, &gpio); in amd_gpio_get_dt() 48 if (gpio->pin >= amd->bdata->ngpio) { in amd_gpio_get_dt() [all …]
|
| H A D | gpio_private.h | 49 void amd_gpio_get_bank_and_pin(struct amd_gbank_data *bdata, uint32_t gpio, 52 struct gpio **out_gpio);
|
| /optee_os/core/drivers/ |
| H A D | bcm_gpio.c | 57 static void iproc_set_bit(unsigned int reg, unsigned int gpio) in iproc_set_bit() argument 59 unsigned int offset = IPROC_GPIO_REG(gpio, reg); in iproc_set_bit() 60 unsigned int shift = IPROC_GPIO_SHIFT(gpio); in iproc_set_bit() 61 struct bcm_gpio_chip *gc = bcm_gpio_pin_to_chip(gpio); in iproc_set_bit() 67 static void iproc_clr_bit(unsigned int reg, unsigned int gpio) in iproc_clr_bit() argument 69 unsigned int offset = IPROC_GPIO_REG(gpio, reg); in iproc_clr_bit() 70 unsigned int shift = IPROC_GPIO_SHIFT(gpio); in iproc_clr_bit() 71 struct bcm_gpio_chip *gc = bcm_gpio_pin_to_chip(gpio); in iproc_clr_bit() 77 static void iproc_gpio_set(struct gpio_chip *chip __unused, unsigned int gpio, in iproc_gpio_set() argument 81 iproc_set_bit(IPROC_GPIO_DATA_OUT_OFFSET, gpio); in iproc_gpio_set() [all …]
|
| H A D | versal_gpio.c | 73 static void versal_gpio_get_pin(struct versal_gpio_chip *chip, uint32_t gpio, in versal_gpio_get_pin() argument 79 assert(gpio < platdata->p_data->ngpio); in versal_gpio_get_pin() 82 if (gpio < platdata->p_data->bank_min[bnk]) in versal_gpio_get_pin() 85 if (gpio > platdata->p_data->bank_max[bnk]) in versal_gpio_get_pin() 89 *pin = gpio - platdata->p_data->bank_min[bnk]; in versal_gpio_get_pin() 94 EMSG("GPIO_%d not found", gpio); in versal_gpio_get_pin() 99 uint32_t gpio) in versal_gpio_get_value() argument 104 versal_gpio_get_pin(chip, gpio, &bank, &pin); 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() [all …]
|
| H A D | stm32_gpio.c | 354 struct gpio *gpio) in stm32_gpio_configure() argument 360 unsigned int shift_1b = gpio->pin; in stm32_gpio_configure() 361 unsigned int shift_2b = SHIFT_U32(gpio->pin, 1); in stm32_gpio_configure() 365 if (gpio->dt_flags & GPIO_PULL_UP) in stm32_gpio_configure() 367 else if (gpio->dt_flags & GPIO_PULL_DOWN) in stm32_gpio_configure() 372 if (gpio->dt_flags & GPIO_LINE_OPEN_DRAIN) in stm32_gpio_configure() 395 static void stm32_gpio_put_gpio(struct gpio_chip *chip, struct gpio *gpio) in stm32_gpio_put_gpio() argument 408 state->gpio_pinctrl.pin == gpio->pin) { in stm32_gpio_put_gpio() 412 release_rif_semaphore_if_acquired(bank, gpio->pin); in stm32_gpio_put_gpio() 414 free(gpio); in stm32_gpio_put_gpio() [all …]
|
| H A D | atmel_piobu.c | 233 struct gpio **out_gpio) in secumod_dt_get() 236 struct gpio *gpio = NULL; in secumod_dt_get() local 239 res = gpio_dt_alloc_pin(pargs, &gpio); in secumod_dt_get() 243 if (gpio_protected & BIT32(gpio->pin)) { in secumod_dt_get() 244 free(gpio); in secumod_dt_get() 248 gpio->chip = chip; in secumod_dt_get() 249 *out_gpio = gpio; in secumod_dt_get()
|
| /optee_os/core/drivers/regulator/ |
| H A D | regulator_gpio.c | 29 struct gpio *enable_gpio; 31 struct gpio *voltage_gpio; 133 struct gpio *gpio = NULL; in get_enable_gpio() local 135 res = gpio_dt_get_by_index(fdt, node, 0, "enable", &gpio); in get_enable_gpio() 146 gpio->dt_flags &= ~GPIO_ACTIVE_LOW; in get_enable_gpio() 148 gpio->dt_flags |= GPIO_ACTIVE_LOW; in get_enable_gpio() 152 gpio->dt_flags |= GPIO_LINE_OPEN_DRAIN; in get_enable_gpio() 154 gpio->dt_flags &= ~GPIO_LINE_OPEN_DRAIN; in get_enable_gpio() 161 res = gpio_configure(gpio, GPIO_ASIS); in get_enable_gpio() 166 gpio_set_direction(gpio, GPIO_DIR_OUT); in get_enable_gpio() [all …]
|
| H A D | regulator_fixed.c | 28 struct gpio *enable_gpio; 80 struct gpio *gpio = NULL; in get_enable_gpio() local 82 res = gpio_dt_get_by_index(fdt, node, 0, NULL, &gpio); in get_enable_gpio() 93 gpio->dt_flags &= ~GPIO_ACTIVE_LOW; in get_enable_gpio() 95 gpio->dt_flags |= GPIO_ACTIVE_LOW; in get_enable_gpio() 99 gpio->dt_flags |= GPIO_LINE_OPEN_DRAIN; in get_enable_gpio() 101 gpio->dt_flags &= ~GPIO_LINE_OPEN_DRAIN; in get_enable_gpio() 112 res = gpio_configure(gpio, GPIO_ASIS); in get_enable_gpio() 117 gpio_set_direction(gpio, GPIO_DIR_OUT); in get_enable_gpio() 119 regu->enable_gpio = gpio; in get_enable_gpio()
|
| /optee_os/core/pta/tests/ |
| H A D | dt_driver_test.c | 280 struct gpio *gpio = NULL; in probe_test_gpios() local 285 res = gpio_dt_cfg_by_index(fdt, node, 0, "test", GPIO_IN, &gpio); in probe_test_gpios() 289 if (gpio_get_direction(gpio) != GPIO_DIR_IN) { in probe_test_gpios() 296 if (gpio_get_value(gpio) != GPIO_LEVEL_LOW) { in probe_test_gpios() 302 res = gpio_dt_cfg_by_index(fdt, node, 1, "test", GPIO_IN, &gpio); in probe_test_gpios() 306 if (gpio_get_direction(gpio) != GPIO_DIR_IN) { in probe_test_gpios() 312 if (gpio_get_value(gpio) != GPIO_LEVEL_HIGH) { in probe_test_gpios() 696 struct gpio **out_device) in dt_test_gpio_get_dt() 699 struct gpio *gpio = NULL; in dt_test_gpio_get_dt() local 702 res = gpio_dt_alloc_pin(args, &gpio); in dt_test_gpio_get_dt() [all …]
|