I am using a colibri-imx8x module with a custom carrier board. On the carrier board I am using a LTC2954 for push button detection. As per the LT2954 data sheet the KILL pin must be pulled high within 512ms of system boot-up.
To achieve this I updated uboot to pull the gpio pin high in the board_init function:
diff --git a/board/toradex/colibri-imx8x/colibri-imx8x.c b/board/toradex/colibri-imx8x/colibri-imx8x.c
index 36bc85fdf0..77b678a1a2 100644
--- a/board/toradex/colibri-imx8x/colibri-imx8x.c
+++ b/board/toradex/colibri-imx8x/colibri-imx8x.c
@@ -176,6 +176,11 @@ int board_init(void)
return ret;
}
+ // Set COLIBRI_PWR_nKILL to 1 //
+ unsigned int gpioNo = IMX_GPIO_NR(3, 11) + 8;
+ gpio_request(gpioNo, "SODIMM_PIN_69");
+ gpio_direction_output(gpioNo, 1);
+
return 0;
}
With this update the pin goes high after about ~800ms. Is it possible to control that GPIO pin earlier such that I meet the 512ms requirement of the LTC2954 ?
I don’t think it’s likely you will get the kill# pulled high via software fast enough, you can see on our Ixora boards we have the LTC2954 and it is pulled up via hardware. I believe this is the more viable option.
Here is the same question answered (for a different module) with a bit more details, but the same topic.
schematics of the Ixora board showing the LTC2954[…] being pulled by 3.3V