/*
 * Copyright (c) 2020 STMicroelectronics
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * Mode 2: SensorHub Mode
 *
 *   JP7 => 2-3 (I2C1 = I2Cx)
 *   JP8 => 2-3 (I2C1 = I2Cx)
 *
 * Only ISM330DHCX and IIS2DLPC sensors are accessible from the main board mcu.
 * IIS2MDC is connected directly to ISM330DHCX SCx/SDX (I2Cx) pins, so it is not
 * declared in DTS file.
 */

/ {
	aliases {
		accel0 = &iis2dlpc_19;
		accel1 = &ism330dhcx_6b;
	};
};

&arduino_i2c {

	iis2dlpc_19: iis2dlpc@19 {
		compatible = "st,iis2dlpc";
		reg = <0x19>;
		drdy-gpios =  <&arduino_header 4 GPIO_ACTIVE_HIGH>; /* A4 - INT2 */
		drdy-int =  <2>;
	};

	ism330dhcx_6b: ism330dhcx@6b {
		compatible = "st,ism330dhcx";
		reg = <0x6b>;
		drdy-gpios =  <&arduino_header 11 GPIO_ACTIVE_HIGH>; /* D5 - INT2 */
		int-pin = <2>;
	};
};
