|
3 | 3 | * Copyright (c) 2017-2023, STMicroelectronics
|
4 | 4 | *
|
5 | 5 | * STM32 GPIO driver is used as pin controller for stm32mp SoCs.
|
6 |
| - * The driver API is defined in header file stm32_gpio.h. |
7 | 6 | */
|
8 | 7 |
|
9 | 8 | #include <assert.h>
|
|
24 | 23 | #include <trace.h>
|
25 | 24 | #include <util.h>
|
26 | 25 |
|
| 26 | +#ifndef CFG_DRIVERS_GPIO |
| 27 | +#error stm32_gpio driver expects CFG_DRIVERS_GPIO |
| 28 | +#endif |
| 29 | + |
27 | 30 | #define GPIO_PIN_MAX 15
|
28 | 31 |
|
29 | 32 | #define GPIO_MODER_OFFSET 0x00
|
@@ -765,58 +768,6 @@ int stm32_get_gpio_count(void *fdt, int pinctrl_node, unsigned int bank)
|
765 | 768 | return -1;
|
766 | 769 | }
|
767 | 770 |
|
768 |
| -static __maybe_unused bool valid_gpio_config(unsigned int bank_id, |
769 |
| - unsigned int pin, bool input) |
770 |
| -{ |
771 |
| - struct stm32_gpio_bank *bank = stm32_gpio_get_bank(bank_id); |
772 |
| - uint32_t mode = (io_read32(bank->base + GPIO_MODER_OFFSET) >> |
773 |
| - (pin << 1)) & GPIO_MODE_MASK; |
774 |
| - |
775 |
| - if (pin > GPIO_PIN_MAX) |
776 |
| - return false; |
777 |
| - |
778 |
| - if (input) |
779 |
| - return mode == GPIO_MODE_INPUT; |
780 |
| - else |
781 |
| - return mode == GPIO_MODE_OUTPUT; |
782 |
| -} |
783 |
| - |
784 |
| -int stm32_gpio_get_input_level(unsigned int bank_id, unsigned int pin) |
785 |
| -{ |
786 |
| - struct stm32_gpio_bank *bank = stm32_gpio_get_bank(bank_id); |
787 |
| - int rc = 0; |
788 |
| - |
789 |
| - if (clk_enable(bank->clock)) |
790 |
| - panic(); |
791 |
| - |
792 |
| - assert(valid_gpio_config(bank_id, pin, true)); |
793 |
| - |
794 |
| - if (io_read32(bank->base + GPIO_IDR_OFFSET) == BIT(pin)) |
795 |
| - rc = 1; |
796 |
| - |
797 |
| - clk_disable(bank->clock); |
798 |
| - |
799 |
| - return rc; |
800 |
| -} |
801 |
| - |
802 |
| -void stm32_gpio_set_output_level(unsigned int bank_id, unsigned int pin, |
803 |
| - int level) |
804 |
| -{ |
805 |
| - struct stm32_gpio_bank *bank = stm32_gpio_get_bank(bank_id); |
806 |
| - |
807 |
| - if (clk_enable(bank->clock)) |
808 |
| - panic(); |
809 |
| - |
810 |
| - assert(valid_gpio_config(bank_id, pin, false)); |
811 |
| - |
812 |
| - if (level) |
813 |
| - io_write32(bank->base + GPIO_BSRR_OFFSET, BIT(pin)); |
814 |
| - else |
815 |
| - io_write32(bank->base + GPIO_BSRR_OFFSET, BIT(pin + 16)); |
816 |
| - |
817 |
| - clk_disable(bank->clock); |
818 |
| -} |
819 |
| - |
820 | 771 | void stm32_gpio_set_secure_cfg(unsigned int bank_id, unsigned int pin,
|
821 | 772 | bool secure)
|
822 | 773 | {
|
|
0 commit comments