mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
stm32: add analog GPIO configuration
Allow to setup a GPIO pin in analog mode on STM32 chips. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=run comparators with GPIOs in analog mode on STM32L151 and STM32F072. Change-Id: Ie11dd8711e39ab191c96478c6d8c7b7e0dfa7ea4 Reviewed-on: https://chromium-review.googlesource.com/189863 Reviewed-by: Vic Yang <victoryang@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
This commit is contained in:
committed by
chrome-internal-fetch
parent
defaf5cdb5
commit
6472ce964d
@@ -81,7 +81,10 @@ void gpio_set_flags_by_mask(uint32_t port, uint32_t pmask, uint32_t flags)
|
||||
* GPIOx_ODR determines which resistor to activate in
|
||||
* input mode, see Table 16 (datasheet rm0041)
|
||||
*/
|
||||
if (flags & GPIO_PULL_UP) {
|
||||
if (flags & GPIO_ANALOG) {
|
||||
/* Analog input, MODE=00 CNF=00 */
|
||||
/* the 4 bits in mask are already reset above */
|
||||
} else if (flags & GPIO_PULL_UP) {
|
||||
mask |= 0x88888888 & cnf;
|
||||
STM32_GPIO_BSRR(port) = pmask;
|
||||
} else if (flags & GPIO_PULL_DOWN) {
|
||||
|
||||
@@ -67,6 +67,10 @@ void gpio_set_flags_by_mask(uint32_t port, uint32_t mask, uint32_t flags)
|
||||
val |= 0x55555555 & mask2;
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
|
||||
} else if (flags & GPIO_ANALOG) {
|
||||
/* Analog, MODE=11 */
|
||||
val |= 0xFFFFFFFF & mask2;
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
} else if (flags & GPIO_INPUT) {
|
||||
/* Input, MODE=00 */
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
|
||||
@@ -67,6 +67,10 @@ void gpio_set_flags_by_mask(uint32_t port, uint32_t mask, uint32_t flags)
|
||||
val |= 0x55555555 & mask2;
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
|
||||
} else if (flags & GPIO_ANALOG) {
|
||||
/* Analog, MODE=11 */
|
||||
val |= 0xFFFFFFFF & mask2;
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
} else if (flags & GPIO_INPUT) {
|
||||
/* Input, MODE=00 */
|
||||
STM32_GPIO_MODER(port) = val;
|
||||
|
||||
Reference in New Issue
Block a user