nrf9160 gpio interrupt low power setting

SDK 2.3.0

We have a custom board with a few GPIO connected to various interrupt sources (Button, sensor interrupts, power connection etc.)

We are experiencing here sleep current 70uA even after turning all the other peripherals and sensors off and leaving 2-3 interrupt sources configured.

What I am looking for help with is the lowest possible power interrupt setup.

Here are some settings in the board file as well as the code snippet:

int8_t configButtonInt(bool enable, bool detectOff)
{
  int err = 0;
  #ifdef DEBUG_PRINT_SENSOR
    printf("Enabling pinButtonPwr Int.\n");
  #endif

  gpio_pin_configure(gpio_dev, pinButtonPwr, GPIO_INPUT | GPIO_PULL_UP);

  // if (detectOff)
    err = gpio_pin_interrupt_configure(gpio_dev, pinButtonPwr, GPIO_INT_EDGE_BOTH );
  // else
  //   gpio_pin_interrupt_configure(gpio_dev, pinButtonPwr, GPIO_INT_LEVEL_LOW );
    
  if (err !=0)
  {
    #ifdef DEBUG_PRINT_SENSOR
      printf("FAIL - Button Int setup. error: 0x%08X\n", err);
		#endif
    return err;
	}

  gpio_init_callback(&gpio_button_cb, buttonIntCallback, BIT(pinButtonPwr));
  err = gpio_add_callback(gpio_dev, &gpio_button_cb);
  if (err != 0) {
    #ifdef DEBUG_PRINT_SENSOR
      printf("Failed - Button Int setup\n");
    #endif

    return err;
  }

  #ifdef DEBUG_PRINT_SENSOR
    printf("OK - Button Int setup\n");
  #endif

  return ERROR_SUCCESS;
}

here is the common.dts file:

gpiote: &gpiote {
	status = "okay";
	/*lte uart wake up*/
	//interrupts = <4 2>;
	// interrupts = <22 2>,<4 2>,<6 2>,<10 2>;
	/*12v detect
	interrupts = <6 NRF_DEFAULT_IRQ_PRIORITY>;
	/*power Button*/
	// interrupts = <4 4>;
	/*acc int
	interrupts = <10 NRF_DEFAULT_IRQ_PRIORITY>;*/
};

gpio0: &gpio0 {
	status = "okay";
	sense-edge-mask = < 0xffffffff >;
	// sense-edge-mask = < 0xffffffff >;
};

Related