@@ -13,6 +13,8 @@ Optional properties:
- interrupt-parent: should be the phandle for the interrupt controller
- interrupts: interrupt mapping for GPIO IRQ
+ - use-int2: To use interrupt pin INT2 instead of INT1 (default), use
+ "/bits/ 8 <0xff>" here. More options might be available in the future.
Example:
@@ -21,4 +23,5 @@ Example:
reg = <0x1d>;
interrupt-parent = <&gpio1>;
interrupts = <5 0>;
+ use-int2 = /bits/ 8 <0xff>;
};
@@ -1028,8 +1028,9 @@ static int mma8452_probe(struct i2c_client *client,
{
struct mma8452_data *data;
struct iio_dev *indio_dev;
- int ret;
const struct of_device_id *match;
+ int ret;
+ u8 int2;
match = of_match_device(mma8452_dt_ids, &client->dev);
if (!match) {
@@ -1104,12 +1105,17 @@ static int mma8452_probe(struct i2c_client *client,
int enabled_interrupts = MMA8452_INT_TRANS |
MMA8452_INT_FF_MT;
- /* Assume wired to INT1 pin */
- ret = i2c_smbus_write_byte_data(client,
- MMA8452_CTRL_REG5,
- supported_interrupts);
- if (ret < 0)
- return ret;
+ of_property_read_u8(client->dev.of_node, "use-int2", &int2);
+ if (int2 == 0xff) {
+ dev_dbg(&client->dev, "use interrupt line INT2\n");
+ } else {
+ dev_dbg(&client->dev, "use interrupt line INT1\n");
+ ret = i2c_smbus_write_byte_data(client,
+ MMA8452_CTRL_REG5,
+ supported_interrupts);
+ if (ret < 0)
+ return ret;
+ }
ret = i2c_smbus_write_byte_data(client,
MMA8452_CTRL_REG4,