Unable to disable GPIOTE for nRF Connect SDK 2.6.1

Hi, 

Recently I upgraded to nRF Connect SDK 2.6.1 and I was required to enable the GPIOTE in order to build properly. Doing this has significantly increased (nearly doubled) the total current consumption at runtime. How can I disable this peripheral now? I am unable to do so now using the overlay file.

Old: 

&gpiote {
    status = "disabled";
};
New:
&gpiote {
    status = "okay";
};

Thank you,

  • Hi,

    I'm not asking about API. This thread is about device tree. How to have GPIO enabled and GPIOTE disabled in device tree file without hacks.

  • Hi Grzegorz

    If you want to use the Zephyr GPIO driver, the interrupt handling is done from GPIOTE no matter what. But if you disable both the GPIO and GPIOTE and just use the nrfx library I think this should be doable without any "hacks". 

    Best regards,

    Simon

  • Hi Simon

    Yes, it is doable, but it contradicts the move that Nordic made when it transitioned to Zephyr and device tree. In NCS the device tree is the source of hardware configuration. Disabling GPIO in device tree but using it anyway through nrfx is not very elegant and not consistent. So it looks like there is no good solution for that in NCS right now. Thanks for your support.

    Best regards,
    Grzegorz

  • This is all on a custom board. There are many other peripherals running, which is why you see 199uA. I am now trying to upgrade the SDK to the 3.0.2 and having the same issues.

    I am running the software and have GPIOTE1 disabled in the device tree, but I am still able to get P1.00 to interrupt on the application core. 

    I understand the GPIOTE is required for interrupts, but it is unclear why it works in the older SDK when I disabled them in the device tree. It worked and resulted in a lower power draw. 

    My overall goal is to get the lowest possible power draw while using interrupts. How can I go about this? I tried the suggestion above, but the sense-edge-mask did not make much of a difference.

  • This used to work in the older 2.4.2. I had the following in all of my .overlay files and had much less current consumption with full functionality with all my GPIO interrupts. Now I am unable to achieve the same current consumption because I am forced to keep the gpiote enabled in all my device tree files. I guess, for now I am stuck on 2.4.2.

    &gpiote {
    	status = "disabled";
    };

Related