]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: ringneck-px30: put STM32_RST line in input mode instead of output
authorQuentin Schulz <quentin.schulz@theobroma-systems.com>
Fri, 9 Feb 2024 13:18:09 +0000 (14:18 +0100)
committerKever Yang <kever.yang@rock-chips.com>
Fri, 26 Apr 2024 07:47:03 +0000 (15:47 +0800)
The STM32_RST line is routed to the ATtiny microcontroller
PA0/RESET/UPDI pin. By driving the PX30 SoC pin as GPIO output high, we
prevent external UPDI to be used for flashing without first putting this
pin as GPIO input, an extra step we could avoid in userspace.

There's an external hardware pull-up strong enough to keep the STM32_RST
state high on ATtiny side but weak enough it can be overridden by
external UPDI. This also means it is safe to use for the STM32 variant,
where STM32_RST line will be in the same state as if output high was
used.

The Q7 standard specifies that MFG_NC1 and MFG_NC2 (used for UPDI for
Ringneck) pins should neither be driven by the carrierboard, nor have
pull-up or pull-down resistors. This means this commit is safe to use
regardless of the carrierboard this module would be connected to
(provided it follows the Q7 standard).

Fixes: 6acdd63e8771 ("rockchip: ringneck-px30: always reset STM32 companion controller on boot")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
board/theobroma-systems/ringneck_px30/ringneck-px30.c

index bfebfe5136dd55af3b12a4310647832c2ddc38c2..c48de7345f79e3189c77bb670e5ff5421adf6235 100644 (file)
@@ -58,9 +58,9 @@ void spl_board_init(void)
 
        mdelay(1);
 
-       ret = gpio_direction_output(STM32_RST, 1);
+       ret = gpio_direction_input(STM32_RST);
        if (ret) {
-               debug("Failed to configure STM32_RST as output high\n");
+               debug("Failed to configure STM32_RST as input\n");
                return;
        }
 }