9393
9494
9595class LIS3DH :
96- """Driver base for the LIS3DH accelerometer.
96+ """Driver base for the LIS3DH accelerometer. Optional parameters:
9797
9898 :param digitalio.DigitalInOut int1: `digitalio.DigitalInOut` connected to
9999 the LIS3DH INT interrupt pin
100100 :param digitalio.DigitalInOut int2: `digitalio.DigitalInOut` connected to
101101 the LIS3DH I2 interrupt pin (only on STEMMA QT model)
102+ :param bool internal_pull_up_int1: use `internal_pull_up_int1` to control if
103+ the internal pull-up of the board/MCU should be used or not for the LIS3DH
104+ INT interrupt pin (int1). Use external pull-up resistor if set to false.
105+ By default the internal pull-up resistor will be used.
102106 """
103107
104108 def __init__ (
105109 self ,
106110 int1 : Optional [digitalio .DigitalInOut ] = None ,
107111 int2 : Optional [digitalio .DigitalInOut ] = None ,
112+ internal_pull_up_int1 : bool = True ,
108113 ) -> None :
109114 # Check device ID.
110115 device_id = self ._read_register_byte (_REG_WHOAMI )
@@ -129,7 +134,8 @@ def __init__(
129134 self ._int2 = int2
130135 if self ._int1 :
131136 self ._int1 .direction = digitalio .Direction .INPUT
132- self ._int1 .pull = digitalio .Pull .UP
137+ if internal_pull_up_int1 :
138+ self ._int1 .pull = digitalio .Pull .UP
133139
134140 @property
135141 def data_rate (
@@ -310,7 +316,7 @@ def set_tap(
310316 time_limit : int = 10 ,
311317 time_latency : int = 20 ,
312318 time_window : int = 255 ,
313- click_cfg : Optional [int ] = None
319+ click_cfg : Optional [int ] = None ,
314320 ) -> None :
315321 """
316322 The tap detection parameters.
@@ -413,15 +419,18 @@ def __init__(
413419 * ,
414420 address : int = 0x18 ,
415421 int1 : Optional [digitalio .DigitalInOut ] = None ,
416- int2 : Optional [digitalio .DigitalInOut ] = None
422+ int2 : Optional [digitalio .DigitalInOut ] = None ,
423+ internal_pull_up_int1 : bool = True ,
417424 ) -> None :
418425 from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
419426 i2c_device ,
420427 )
421428
422429 self ._i2c = i2c_device .I2CDevice (i2c , address )
423430 self ._buffer = bytearray (6 )
424- super ().__init__ (int1 = int1 , int2 = int2 )
431+ super ().__init__ (
432+ int1 = int1 , int2 = int2 , internal_pull_up_int1 = internal_pull_up_int1
433+ )
425434
426435 def _read_register (self , register : int , length : int ) -> bytearray :
427436 self ._buffer [0 ] = register & 0xFF
@@ -476,7 +485,7 @@ def __init__(
476485 * ,
477486 baudrate : int = 100000 ,
478487 int1 : Optional [digitalio .DigitalInOut ] = None ,
479- int2 : Optional [digitalio .DigitalInOut ] = None
488+ int2 : Optional [digitalio .DigitalInOut ] = None ,
480489 ) -> None :
481490 from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
482491 spi_device ,
0 commit comments