From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FF5C2EFDAC for ; Sun, 12 Oct 2025 18:06:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292411; cv=none; b=asmjG9Cr/gL5DIRntXiv6jpHXvlzOWRYalFigT+IISQp+Zwuz8NgF+kpr4SN0skcd2dwmWTNxWpGJGLeMybKV/gz4Uc6aYxhSIhL/CziYP31QGyrlvDPDNzOMScpWZ2PKnY3zVkFbWt5Ic1l5QPZhbjaglHlaL0WpVVl+fVJVdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292411; c=relaxed/simple; bh=5cRpz/cGs2jwu8uzbZzdcA2ek9WFM+WzDiYvxFOFnMA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cXeqDEgGa1Whr8XHZ23K/8Abc1ZCNlD8g2n30AUn2a7JcoHevd7TUWgQ/Aot5wFaTihIuG36fU5tOo2jFjkmSktmgoEXSOUUtf6bD8lgw833ODlI7KyUQuIVggW7zxp3szhDkz0ENSRgXiKo2NU5csOuCyTbONMPUxIKDTGLmcw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ai12n3IL; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ai12n3IL" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-330469eb750so4440923a91.2 for ; Sun, 12 Oct 2025 11:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292408; x=1760897208; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ClGYYW1uXNGP6vic75OLMf+2JKlHrGDWFRNq5iNbb+A=; b=ai12n3ILn2kI0FBPTJldKoGshRA7Au9zwP6pPijBCtoHgf2BvpD3N7qgnjJ3Z+RSh/ nauvEDFgKxz3kA1uo3Ebf3K4MD0RZw30g5kFawiI6mi9szmXpFxKIVNRJa+ACVtGn2Zt Rf2KOe2huGOB9jxRSxFJz3b9zJ0l/0l9eeTSQmifUWLSVlEhwnM9oB1hbK1aOKTai6T1 ytLrOwgUaRPLrm2uomPvZ416m+9fXfZ0Id1dI/WvHIjya59aBh7SI96g3hjnI+q9y/nO ofeCZ3N2OkSsLVdrabZ5lGWR4tG/+XlMLXyz+cwsSkFT9RYEtQPqlihzRFCyKoPDZ3Me HiZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292408; x=1760897208; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ClGYYW1uXNGP6vic75OLMf+2JKlHrGDWFRNq5iNbb+A=; b=tMzzdqNCaekfGR8sYDihpfTbVOe9QzVUnykmWAGhQAzCHniMM8YeaOHHWuJvrScP1o qH1NtQfLygxxeknjIcYbb0geGiTUlb+iHf2eyI1jCi9DO9ftNXLjeL//BqYE2/pwS428 H6ErRoVH3NiJFBoyf9xAsA5w2cQwSGAhYgfrFbLma5lCRLzct64QPncq4M9xfLXBsD5I q/oYsKDeLy7pBhRofX10Ruqoe+FEfz+6Eu8SdBtprMAJVI76VDJNaU3VIxGk39lJqaXl 4a1rhYPHCYIcI4/iiX5rg1LkQCk3G0bFVjfXuG94QmM3do8fOp1ht9MhMvKygKbY1b0j ZF7A== X-Forwarded-Encrypted: i=1; AJvYcCVYMfLgNqHogeZre+Khi9i3WhoxKfhejkZCWpUnkrt3VF3OmPwH84I9Lt5SzTdRhvL2EtFnIcEINTwXV74=@vger.kernel.org X-Gm-Message-State: AOJu0YxGyXHzs2MuTXmO/5EoTKGLwKPoTtRusRAn51n1Q6mCPFy09J17 030i0BlMzeS1yAiK/EPWJe5gl1+0uCLN8aazIqNzCelGunL5c9B/KZNG X-Gm-Gg: ASbGncu825wOkRzHwzkaW/zD8MGL7FTbAylvA9ARIKzj7Dp8yQIVJtBSC9jGTdmrUN/ hTs4YtMRe9CIb5/CO/R3obZcLZxxthrrwKsNwcRRL/3zifeei6qeRagsZV8cUlmjn+lzuc2Qlv9 Mc54UsJdFpVyXHRoqMnG9bSwDHmnZc2K2zNXaaL5oo4zfAdU3YS1yoDshEMvEPPIBUGa+U+gaS3 Rz71QfgzePROR8TrfBPIrQ0rzEQXaVMljZlQUqsQIy0d0KEewIgba0nCl5cn4pR+ubH9PnYhg5t uOc3T8+K/KVF/JUihdjpTjkwxtnVqxe5U/+LePiQTrAkQgXODcqpTl0TmNbSUMt1Br7Asj5WA5o MzfA3NOHzEBIPTpYOSDDCWG2PJ5VG9Tm6BhoD5TfK4BXyFhJDPfU= X-Google-Smtp-Source: AGHT+IHxhQzW+ByGPIfw24UEol3/0PnIts2hHNgB21YM8YzxnIvtrSSqXo848LQdZ/6qW/8Z8RlIlA== X-Received: by 2002:a17:903:1b4b:b0:269:b6c8:4a4b with SMTP id d9443c01a7336-29027214ee7mr255843205ad.6.1760292407622; Sun, 12 Oct 2025 11:06:47 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.06.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:06:47 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 1/6] iio: accel: bma400: Reorganize and rename register and field macros Date: Sun, 12 Oct 2025 23:36:08 +0530 Message-ID: <20251012180619.195244-2-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reorganize register and field macros to improve consistency with the datasheet and naming style: - Move field macros next to their corresponding register macros - Reorder register macros to follow address order from the datasheet - Rename field macros to include the register name in the macro name - Add a _REG suffix to register macros where missing - Add INT_STAT register fields corresponding to used INT_CONFIG fields No functional changes are intended. Signed-off-by: Akshay Jindal --- Changes since v4: - Add INT_STATx field macros corresponding to used INT_CONFIGx fields. - Make INT_STATx field macro names consistent with the overall convention u= sed. - Tied the INT_STATx field to correct INT_STAT register. - Modified changelog of PATCH 1/6 due to addition of INT_STATx fields. drivers/iio/accel/bma400.h | 117 ++++++++++-------- drivers/iio/accel/bma400_core.c | 212 ++++++++++++++++---------------- 2 files changed, 170 insertions(+), 159 deletions(-) diff --git a/drivers/iio/accel/bma400.h b/drivers/iio/accel/bma400.h index 932358b45f17..fcafd1fba57a 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -16,31 +16,44 @@ * Read-Only Registers */ =20 +/* Chip ID of BMA 400 devices found in the chip ID register. */ +#define BMA400_ID_REG_VAL 0x90 + /* Status and ID registers */ #define BMA400_CHIP_ID_REG 0x00 #define BMA400_ERR_REG 0x02 #define BMA400_STATUS_REG 0x03 =20 /* Acceleration registers */ -#define BMA400_X_AXIS_LSB_REG 0x04 -#define BMA400_X_AXIS_MSB_REG 0x05 -#define BMA400_Y_AXIS_LSB_REG 0x06 -#define BMA400_Y_AXIS_MSB_REG 0x07 -#define BMA400_Z_AXIS_LSB_REG 0x08 -#define BMA400_Z_AXIS_MSB_REG 0x09 +#define BMA400_ACC_X_LSB_REG 0x04 +#define BMA400_ACC_X_MSB_REG 0x05 +#define BMA400_ACC_Y_LSB_REG 0x06 +#define BMA400_ACC_Y_MSB_REG 0x07 +#define BMA400_ACC_Z_LSB_REG 0x08 +#define BMA400_ACC_Z_MSB_REG 0x09 =20 /* Sensor time registers */ -#define BMA400_SENSOR_TIME0 0x0a -#define BMA400_SENSOR_TIME1 0x0b -#define BMA400_SENSOR_TIME2 0x0c +#define BMA400_SENSOR_TIME0_REG 0x0a +#define BMA400_SENSOR_TIME1_REG 0x0b +#define BMA400_SENSOR_TIME2_REG 0x0c =20 /* Event and interrupt registers */ #define BMA400_EVENT_REG 0x0d + #define BMA400_INT_STAT0_REG 0x0e +#define BMA400_INT_STAT0_GEN1_MASK BIT(2) +#define BMA400_INT_STAT0_GEN2_MASK BIT(3) +#define BMA400_INT_STAT0_DRDY_MASK BIT(7) + #define BMA400_INT_STAT1_REG 0x0f +#define BMA400_INT_STAT1_STEP_INT_MASK GENMASK(9, 8) +#define BMA400_INT_STAT1_S_TAP_MASK BIT(10) +#define BMA400_INT_STAT1_D_TAP_MASK BIT(11) + #define BMA400_INT_STAT2_REG 0x10 -#define BMA400_INT12_MAP_REG 0x23 -#define BMA400_INT_ENG_OVRUN_MSK BIT(4) + +/* Bit present in all INT_STAT registers */ +#define BMA400_INT_STAT_ENG_OVRRUN_MASK BIT(4) =20 /* Temperature register */ #define BMA400_TEMP_DATA_REG 0x11 @@ -55,70 +68,68 @@ #define BMA400_STEP_CNT1_REG 0x16 #define BMA400_STEP_CNT3_REG 0x17 #define BMA400_STEP_STAT_REG 0x18 -#define BMA400_STEP_INT_MSK BIT(0) #define BMA400_STEP_RAW_LEN 0x03 -#define BMA400_STEP_STAT_MASK GENMASK(9, 8) =20 /* * Read-write configuration registers */ -#define BMA400_ACC_CONFIG0_REG 0x19 -#define BMA400_ACC_CONFIG1_REG 0x1a +#define BMA400_ACC_CONFIG0_REG 0x19 +#define BMA400_ACC_CONFIG0_LP_OSR_MASK GENMASK(6, 5) +#define BMA400_LP_OSR_SHIFT 5 + +#define BMA400_ACC_CONFIG1_REG 0x1a +#define BMA400_ACC_CONFIG1_ODR_MASK GENMASK(3, 0) +#define BMA400_ACC_CONFIG1_ODR_MIN_RAW 0x05 +#define BMA400_ACC_CONFIG1_ODR_LP_RAW 0x06 +#define BMA400_ACC_CONFIG1_ODR_MAX_RAW 0x0b +#define BMA400_ACC_CONFIG1_ODR_MAX_HZ 800 +#define BMA400_ACC_CONFIG1_ODR_MIN_WHOLE_HZ 25 +#define BMA400_ACC_CONFIG1_ODR_MIN_HZ 12 +#define BMA400_ACC_CONFIG1_NP_OSR_MASK GENMASK(5, 4) +#define BMA400_NP_OSR_SHIFT 4 +#define BMA400_ACC_CONFIG1_ACC_RANGE_MASK GENMASK(7, 6) +#define BMA400_ACC_RANGE_SHIFT 6 + #define BMA400_ACC_CONFIG2_REG 0x1b -#define BMA400_CMD_REG 0x7e =20 /* Interrupt registers */ #define BMA400_INT_CONFIG0_REG 0x1f +#define BMA400_INT_CONFIG0_GEN1_MASK BIT(2) +#define BMA400_INT_CONFIG0_GEN2_MASK BIT(3) +#define BMA400_INT_CONFIG0_DRDY_MASK BIT(7) + #define BMA400_INT_CONFIG1_REG 0x20 +#define BMA400_INT_CONFIG1_STEP_INT_MASK BIT(0) +#define BMA400_INT_CONFIG1_S_TAP_MASK BIT(2) +#define BMA400_INT_CONFIG1_D_TAP_MASK BIT(3) + #define BMA400_INT1_MAP_REG 0x21 +#define BMA400_INT12_MAP_REG 0x23 #define BMA400_INT_IO_CTRL_REG 0x24 -#define BMA400_INT_DRDY_MSK BIT(7) - -/* Chip ID of BMA 400 devices found in the chip ID register. */ -#define BMA400_ID_REG_VAL 0x90 - -#define BMA400_LP_OSR_SHIFT 5 -#define BMA400_NP_OSR_SHIFT 4 -#define BMA400_SCALE_SHIFT 6 =20 #define BMA400_TWO_BITS_MASK GENMASK(1, 0) -#define BMA400_LP_OSR_MASK GENMASK(6, 5) -#define BMA400_NP_OSR_MASK GENMASK(5, 4) -#define BMA400_ACC_ODR_MASK GENMASK(3, 0) -#define BMA400_ACC_SCALE_MASK GENMASK(7, 6) - -#define BMA400_ACC_ODR_MIN_RAW 0x05 -#define BMA400_ACC_ODR_LP_RAW 0x06 -#define BMA400_ACC_ODR_MAX_RAW 0x0b - -#define BMA400_ACC_ODR_MAX_HZ 800 -#define BMA400_ACC_ODR_MIN_WHOLE_HZ 25 -#define BMA400_ACC_ODR_MIN_HZ 12 =20 /* Generic interrupts register */ -#define BMA400_GEN1INT_CONFIG0 0x3f -#define BMA400_GEN2INT_CONFIG0 0x4A +#define BMA400_GEN1INT_CONFIG0_REG 0x3f +#define BMA400_GEN2INT_CONFIG0_REG 0x4A +#define BMA400_GENINT_CONFIG0_HYST_MASK GENMASK(1, 0) + #define BMA400_GEN_CONFIG1_OFF 0x01 #define BMA400_GEN_CONFIG2_OFF 0x02 #define BMA400_GEN_CONFIG3_OFF 0x03 #define BMA400_GEN_CONFIG31_OFF 0x04 -#define BMA400_INT_GEN1_MSK BIT(2) -#define BMA400_INT_GEN2_MSK BIT(3) -#define BMA400_GEN_HYST_MSK GENMASK(1, 0) =20 /* TAP config registers */ -#define BMA400_TAP_CONFIG 0x57 -#define BMA400_TAP_CONFIG1 0x58 -#define BMA400_S_TAP_MSK BIT(2) -#define BMA400_D_TAP_MSK BIT(3) -#define BMA400_INT_S_TAP_MSK BIT(10) -#define BMA400_INT_D_TAP_MSK BIT(11) -#define BMA400_TAP_SEN_MSK GENMASK(2, 0) -#define BMA400_TAP_TICSTH_MSK GENMASK(1, 0) -#define BMA400_TAP_QUIET_MSK GENMASK(3, 2) -#define BMA400_TAP_QUIETDT_MSK GENMASK(5, 4) +#define BMA400_TAP_CONFIG_REG 0x57 +#define BMA400_TAP_CONFIG_SEN_MASK GENMASK(2, 0) + +#define BMA400_TAP_CONFIG1_REG 0x58 +#define BMA400_TAP_CONFIG1_TICSTH_MASK GENMASK(1, 0) +#define BMA400_TAP_CONFIG1_QUIET_MASK GENMASK(3, 2) +#define BMA400_TAP_CONFIG1_QUIETDT_MASK GENMASK(5, 4) #define BMA400_TAP_TIM_LIST_LEN 4 =20 +#define BMA400_CMD_REG 0x7e /* * BMA400_SCALE_MIN macro value represents m/s^2 for 1 LSB before * converting to micro values for +-2g range. @@ -138,8 +149,8 @@ * To select +-8g =3D 9577 << 2 =3D raw value to write is 2. * To select +-16g =3D 9577 << 3 =3D raw value to write is 3. */ -#define BMA400_SCALE_MIN 9577 -#define BMA400_SCALE_MAX 76617 +#define BMA400_ACC_SCALE_MIN 9577 +#define BMA400_ACC_SCALE_MAX 76617 =20 extern const struct regmap_config bma400_regmap_config; =20 diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index 85e23badf733..2324c4ef645c 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -127,15 +127,15 @@ static bool bma400_is_writable_reg(struct device *dev= , unsigned int reg) case BMA400_CHIP_ID_REG: case BMA400_ERR_REG: case BMA400_STATUS_REG: - case BMA400_X_AXIS_LSB_REG: - case BMA400_X_AXIS_MSB_REG: - case BMA400_Y_AXIS_LSB_REG: - case BMA400_Y_AXIS_MSB_REG: - case BMA400_Z_AXIS_LSB_REG: - case BMA400_Z_AXIS_MSB_REG: - case BMA400_SENSOR_TIME0: - case BMA400_SENSOR_TIME1: - case BMA400_SENSOR_TIME2: + case BMA400_ACC_X_LSB_REG: + case BMA400_ACC_X_MSB_REG: + case BMA400_ACC_Y_LSB_REG: + case BMA400_ACC_Y_MSB_REG: + case BMA400_ACC_Z_LSB_REG: + case BMA400_ACC_Z_MSB_REG: + case BMA400_SENSOR_TIME0_REG: + case BMA400_SENSOR_TIME1_REG: + case BMA400_SENSOR_TIME2_REG: case BMA400_EVENT_REG: case BMA400_INT_STAT0_REG: case BMA400_INT_STAT1_REG: @@ -159,15 +159,15 @@ static bool bma400_is_volatile_reg(struct device *dev= , unsigned int reg) switch (reg) { case BMA400_ERR_REG: case BMA400_STATUS_REG: - case BMA400_X_AXIS_LSB_REG: - case BMA400_X_AXIS_MSB_REG: - case BMA400_Y_AXIS_LSB_REG: - case BMA400_Y_AXIS_MSB_REG: - case BMA400_Z_AXIS_LSB_REG: - case BMA400_Z_AXIS_MSB_REG: - case BMA400_SENSOR_TIME0: - case BMA400_SENSOR_TIME1: - case BMA400_SENSOR_TIME2: + case BMA400_ACC_X_LSB_REG: + case BMA400_ACC_X_MSB_REG: + case BMA400_ACC_Y_LSB_REG: + case BMA400_ACC_Y_MSB_REG: + case BMA400_ACC_Z_LSB_REG: + case BMA400_ACC_Z_MSB_REG: + case BMA400_SENSOR_TIME0_REG: + case BMA400_SENSOR_TIME1_REG: + case BMA400_SENSOR_TIME2_REG: case BMA400_EVENT_REG: case BMA400_INT_STAT0_REG: case BMA400_INT_STAT1_REG: @@ -275,11 +275,11 @@ static ssize_t in_accel_gesture_tap_maxtomin_time_sho= w(struct device *dev, struct bma400_data *data =3D iio_priv(indio_dev); int ret, reg_val, raw, vals[2]; =20 - ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1, ®_val); + ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1_REG, ®_val); if (ret) return ret; =20 - raw =3D FIELD_GET(BMA400_TAP_TICSTH_MSK, reg_val); + raw =3D FIELD_GET(BMA400_TAP_CONFIG1_TICSTH_MASK, reg_val); vals[0] =3D 0; vals[1] =3D tap_max2min_time[raw]; =20 @@ -302,9 +302,9 @@ static ssize_t in_accel_gesture_tap_maxtomin_time_store= (struct device *dev, if (raw < 0) return -EINVAL; =20 - ret =3D regmap_update_bits(data->regmap, BMA400_TAP_CONFIG1, - BMA400_TAP_TICSTH_MSK, - FIELD_PREP(BMA400_TAP_TICSTH_MSK, raw)); + ret =3D regmap_update_bits(data->regmap, BMA400_TAP_CONFIG1_REG, + BMA400_TAP_CONFIG1_TICSTH_MASK, + FIELD_PREP(BMA400_TAP_CONFIG1_TICSTH_MASK, raw)); if (ret) return ret; =20 @@ -449,13 +449,13 @@ static int bma400_get_accel_reg(struct bma400_data *d= ata, =20 switch (chan->channel2) { case IIO_MOD_X: - lsb_reg =3D BMA400_X_AXIS_LSB_REG; + lsb_reg =3D BMA400_ACC_X_LSB_REG; break; case IIO_MOD_Y: - lsb_reg =3D BMA400_Y_AXIS_LSB_REG; + lsb_reg =3D BMA400_ACC_Y_LSB_REG; break; case IIO_MOD_Z: - lsb_reg =3D BMA400_Z_AXIS_LSB_REG; + lsb_reg =3D BMA400_ACC_Z_LSB_REG; break; default: dev_err(data->dev, "invalid axis channel modifier\n"); @@ -475,8 +475,8 @@ static int bma400_get_accel_reg(struct bma400_data *dat= a, static void bma400_output_data_rate_from_raw(int raw, unsigned int *val, unsigned int *val2) { - *val =3D BMA400_ACC_ODR_MAX_HZ >> (BMA400_ACC_ODR_MAX_RAW - raw); - if (raw > BMA400_ACC_ODR_MIN_RAW) + *val =3D BMA400_ACC_CONFIG1_ODR_MAX_HZ >> (BMA400_ACC_CONFIG1_ODR_MAX_RAW= - raw); + if (raw > BMA400_ACC_CONFIG1_ODR_MIN_RAW) *val2 =3D 0; else *val2 =3D 500000; @@ -494,7 +494,7 @@ static int bma400_get_accel_output_data_rate(struct bma= 400_data *data) * Runs at a fixed rate in low-power mode. See section 4.3 * in the datasheet. */ - bma400_output_data_rate_from_raw(BMA400_ACC_ODR_LP_RAW, + bma400_output_data_rate_from_raw(BMA400_ACC_CONFIG1_ODR_LP_RAW, &data->sample_freq.hz, &data->sample_freq.uhz); return 0; @@ -507,9 +507,9 @@ static int bma400_get_accel_output_data_rate(struct bma= 400_data *data) if (ret) goto error; =20 - odr =3D val & BMA400_ACC_ODR_MASK; - if (odr < BMA400_ACC_ODR_MIN_RAW || - odr > BMA400_ACC_ODR_MAX_RAW) { + odr =3D val & BMA400_ACC_CONFIG1_ODR_MASK; + if (odr < BMA400_ACC_CONFIG1_ODR_MIN_RAW || + odr > BMA400_ACC_CONFIG1_ODR_MAX_RAW) { ret =3D -EINVAL; goto error; } @@ -539,19 +539,19 @@ static int bma400_set_accel_output_data_rate(struct b= ma400_data *data, unsigned int val; int ret; =20 - if (hz >=3D BMA400_ACC_ODR_MIN_WHOLE_HZ) { - if (uhz || hz > BMA400_ACC_ODR_MAX_HZ) + if (hz >=3D BMA400_ACC_CONFIG1_ODR_MIN_WHOLE_HZ) { + if (uhz || hz > BMA400_ACC_CONFIG1_ODR_MAX_HZ) return -EINVAL; =20 /* Note this works because MIN_WHOLE_HZ is odd */ idx =3D __ffs(hz); =20 - if (hz >> idx !=3D BMA400_ACC_ODR_MIN_WHOLE_HZ) + if (hz >> idx !=3D BMA400_ACC_CONFIG1_ODR_MIN_WHOLE_HZ) return -EINVAL; =20 - idx +=3D BMA400_ACC_ODR_MIN_RAW + 1; - } else if (hz =3D=3D BMA400_ACC_ODR_MIN_HZ && uhz =3D=3D 500000) { - idx =3D BMA400_ACC_ODR_MIN_RAW; + idx +=3D BMA400_ACC_CONFIG1_ODR_MIN_RAW + 1; + } else if (hz =3D=3D BMA400_ACC_CONFIG1_ODR_MIN_HZ && uhz =3D=3D 500000) { + idx =3D BMA400_ACC_CONFIG1_ODR_MIN_RAW; } else { return -EINVAL; } @@ -561,7 +561,7 @@ static int bma400_set_accel_output_data_rate(struct bma= 400_data *data, return ret; =20 /* preserve the range and normal mode osr */ - odr =3D (~BMA400_ACC_ODR_MASK & val) | idx; + odr =3D (~BMA400_ACC_CONFIG1_ODR_MASK & val) | idx; =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG1_REG, odr); if (ret) @@ -592,7 +592,7 @@ static int bma400_get_accel_oversampling_ratio(struct b= ma400_data *data) return ret; } =20 - osr =3D (val & BMA400_LP_OSR_MASK) >> BMA400_LP_OSR_SHIFT; + osr =3D (val & BMA400_ACC_CONFIG0_LP_OSR_MASK) >> BMA400_LP_OSR_SHIFT; =20 data->oversampling_ratio =3D osr; return 0; @@ -603,7 +603,7 @@ static int bma400_get_accel_oversampling_ratio(struct b= ma400_data *data) return ret; } =20 - osr =3D (val & BMA400_NP_OSR_MASK) >> BMA400_NP_OSR_SHIFT; + osr =3D (val & BMA400_ACC_CONFIG1_NP_OSR_MASK) >> BMA400_NP_OSR_SHIFT; =20 data->oversampling_ratio =3D osr; return 0; @@ -637,7 +637,7 @@ static int bma400_set_accel_oversampling_ratio(struct b= ma400_data *data, return ret; =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG0_REG, - (acc_config & ~BMA400_LP_OSR_MASK) | + (acc_config & ~BMA400_ACC_CONFIG0_LP_OSR_MASK) | (val << BMA400_LP_OSR_SHIFT)); if (ret) { dev_err(data->dev, "Failed to write out OSR\n"); @@ -653,7 +653,7 @@ static int bma400_set_accel_oversampling_ratio(struct b= ma400_data *data, return ret; =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG1_REG, - (acc_config & ~BMA400_NP_OSR_MASK) | + (acc_config & ~BMA400_ACC_CONFIG1_NP_OSR_MASK) | (val << BMA400_NP_OSR_SHIFT)); if (ret) { dev_err(data->dev, "Failed to write out OSR\n"); @@ -679,7 +679,7 @@ static int bma400_accel_scale_to_raw(struct bma400_data= *data, /* Note this works because BMA400_SCALE_MIN is odd */ raw =3D __ffs(val); =20 - if (val >> raw !=3D BMA400_SCALE_MIN) + if (val >> raw !=3D BMA400_ACC_SCALE_MIN) return -EINVAL; =20 return raw; @@ -695,11 +695,11 @@ static int bma400_get_accel_scale(struct bma400_data = *data) if (ret) return ret; =20 - raw_scale =3D (val & BMA400_ACC_SCALE_MASK) >> BMA400_SCALE_SHIFT; + raw_scale =3D (val & BMA400_ACC_CONFIG1_ACC_RANGE_MASK) >> BMA400_ACC_RAN= GE_SHIFT; if (raw_scale > BMA400_TWO_BITS_MASK) return -EINVAL; =20 - data->scale =3D BMA400_SCALE_MIN << raw_scale; + data->scale =3D BMA400_ACC_SCALE_MIN << raw_scale; =20 return 0; } @@ -719,8 +719,8 @@ static int bma400_set_accel_scale(struct bma400_data *d= ata, unsigned int val) return raw; =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG1_REG, - (acc_config & ~BMA400_ACC_SCALE_MASK) | - (raw << BMA400_SCALE_SHIFT)); + (acc_config & ~BMA400_ACC_CONFIG1_ACC_RANGE_MASK) | + (raw << BMA400_ACC_RANGE_SHIFT)); if (ret) return ret; =20 @@ -786,8 +786,8 @@ static int bma400_enable_steps(struct bma400_data *data= , int val) return 0; =20 ret =3D regmap_update_bits(data->regmap, BMA400_INT_CONFIG1_REG, - BMA400_STEP_INT_MSK, - FIELD_PREP(BMA400_STEP_INT_MSK, val ? 1 : 0)); + BMA400_INT_CONFIG1_STEP_INT_MASK, + FIELD_PREP(BMA400_INT_CONFIG1_STEP_INT_MASK, val ? 1 : 0)); if (ret) return ret; data->steps_enabled =3D val; @@ -826,7 +826,7 @@ static void bma400_init_tables(void) for (i =3D 0; i + 1 < ARRAY_SIZE(bma400_scales); i +=3D 2) { raw =3D i / 2; bma400_scales[i] =3D 0; - bma400_scales[i + 1] =3D BMA400_SCALE_MIN << raw; + bma400_scales[i + 1] =3D BMA400_ACC_SCALE_MIN << raw; } } =20 @@ -1063,7 +1063,7 @@ static int bma400_write_raw(struct iio_dev *indio_dev, return ret; case IIO_CHAN_INFO_SCALE: if (val !=3D 0 || - val2 < BMA400_SCALE_MIN || val2 > BMA400_SCALE_MAX) + val2 < BMA400_ACC_SCALE_MIN || val2 > BMA400_ACC_SCALE_MAX) return -EINVAL; =20 mutex_lock(&data->mutex); @@ -1114,16 +1114,16 @@ static int bma400_read_event_config(struct iio_dev = *indio_dev, case IIO_ACCEL: switch (dir) { case IIO_EV_DIR_RISING: - return FIELD_GET(BMA400_INT_GEN1_MSK, + return FIELD_GET(BMA400_INT_CONFIG0_GEN1_MASK, data->generic_event_en); case IIO_EV_DIR_FALLING: - return FIELD_GET(BMA400_INT_GEN2_MSK, + return FIELD_GET(BMA400_INT_CONFIG0_GEN2_MASK, data->generic_event_en); case IIO_EV_DIR_SINGLETAP: - return FIELD_GET(BMA400_S_TAP_MSK, + return FIELD_GET(BMA400_INT_CONFIG1_S_TAP_MASK, data->tap_event_en_bitmask); case IIO_EV_DIR_DOUBLETAP: - return FIELD_GET(BMA400_D_TAP_MSK, + return FIELD_GET(BMA400_INT_CONFIG1_D_TAP_MASK, data->tap_event_en_bitmask); default: return -EINVAL; @@ -1146,8 +1146,8 @@ static int bma400_steps_event_enable(struct bma400_da= ta *data, int state) return ret; =20 ret =3D regmap_update_bits(data->regmap, BMA400_INT12_MAP_REG, - BMA400_STEP_INT_MSK, - FIELD_PREP(BMA400_STEP_INT_MSK, + BMA400_INT_CONFIG1_STEP_INT_MASK, + FIELD_PREP(BMA400_INT_CONFIG1_STEP_INT_MASK, state)); if (ret) return ret; @@ -1164,18 +1164,18 @@ static int bma400_activity_event_en(struct bma400_d= ata *data, =20 switch (dir) { case IIO_EV_DIR_RISING: - reg =3D BMA400_GEN1INT_CONFIG0; - msk =3D BMA400_INT_GEN1_MSK; + reg =3D BMA400_GEN1INT_CONFIG0_REG; + msk =3D BMA400_INT_CONFIG0_GEN1_MASK; value =3D 2; - set_mask_bits(&field_value, BMA400_INT_GEN1_MSK, - FIELD_PREP(BMA400_INT_GEN1_MSK, state)); + set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN1_MASK, + FIELD_PREP(BMA400_INT_CONFIG0_GEN1_MASK, state)); break; case IIO_EV_DIR_FALLING: - reg =3D BMA400_GEN2INT_CONFIG0; - msk =3D BMA400_INT_GEN2_MSK; + reg =3D BMA400_GEN2INT_CONFIG0_REG; + msk =3D BMA400_INT_CONFIG0_GEN2_MASK; value =3D 0; - set_mask_bits(&field_value, BMA400_INT_GEN2_MSK, - FIELD_PREP(BMA400_INT_GEN2_MSK, state)); + set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN2_MASK, + FIELD_PREP(BMA400_INT_CONFIG0_GEN2_MASK, state)); break; default: return -EINVAL; @@ -1240,21 +1240,21 @@ static int bma400_tap_event_en(struct bma400_data *= data, } =20 ret =3D regmap_update_bits(data->regmap, BMA400_INT12_MAP_REG, - BMA400_S_TAP_MSK, - FIELD_PREP(BMA400_S_TAP_MSK, state)); + BMA400_INT_CONFIG1_S_TAP_MASK, + FIELD_PREP(BMA400_INT_CONFIG1_S_TAP_MASK, state)); if (ret) return ret; =20 switch (dir) { case IIO_EV_DIR_SINGLETAP: - mask =3D BMA400_S_TAP_MSK; - set_mask_bits(&field_value, BMA400_S_TAP_MSK, - FIELD_PREP(BMA400_S_TAP_MSK, state)); + mask =3D BMA400_INT_CONFIG1_S_TAP_MASK; + set_mask_bits(&field_value, BMA400_INT_CONFIG1_S_TAP_MASK, + FIELD_PREP(BMA400_INT_CONFIG1_S_TAP_MASK, state)); break; case IIO_EV_DIR_DOUBLETAP: - mask =3D BMA400_D_TAP_MSK; - set_mask_bits(&field_value, BMA400_D_TAP_MSK, - FIELD_PREP(BMA400_D_TAP_MSK, state)); + mask =3D BMA400_INT_CONFIG1_D_TAP_MASK; + set_mask_bits(&field_value, BMA400_INT_CONFIG1_D_TAP_MASK, + FIELD_PREP(BMA400_INT_CONFIG1_D_TAP_MASK, state)); break; default: return -EINVAL; @@ -1340,9 +1340,9 @@ static int get_gen_config_reg(enum iio_event_directio= n dir) { switch (dir) { case IIO_EV_DIR_FALLING: - return BMA400_GEN2INT_CONFIG0; + return BMA400_GEN2INT_CONFIG0_REG; case IIO_EV_DIR_RISING: - return BMA400_GEN1INT_CONFIG0; + return BMA400_GEN1INT_CONFIG0_REG; default: return -EINVAL; } @@ -1393,7 +1393,7 @@ static int bma400_read_event_value(struct iio_dev *in= dio_dev, ret =3D regmap_read(data->regmap, reg, val); if (ret) return ret; - *val =3D FIELD_GET(BMA400_GEN_HYST_MSK, *val); + *val =3D FIELD_GET(BMA400_GENINT_CONFIG0_HYST_MASK, *val); return IIO_VAL_INT; default: return -EINVAL; @@ -1401,30 +1401,30 @@ static int bma400_read_event_value(struct iio_dev *= indio_dev, case IIO_EV_TYPE_GESTURE: switch (info) { case IIO_EV_INFO_VALUE: - ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG, + ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG_REG, ®_val); if (ret) return ret; =20 - *val =3D FIELD_GET(BMA400_TAP_SEN_MSK, reg_val); + *val =3D FIELD_GET(BMA400_TAP_CONFIG_SEN_MASK, reg_val); return IIO_VAL_INT; case IIO_EV_INFO_RESET_TIMEOUT: - ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1, + ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1_REG, ®_val); if (ret) return ret; =20 - raw =3D FIELD_GET(BMA400_TAP_QUIET_MSK, reg_val); + raw =3D FIELD_GET(BMA400_TAP_CONFIG1_QUIET_MASK, reg_val); *val =3D 0; *val2 =3D tap_reset_timeout[raw]; return IIO_VAL_INT_PLUS_MICRO; case IIO_EV_INFO_TAP2_MIN_DELAY: - ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1, + ret =3D regmap_read(data->regmap, BMA400_TAP_CONFIG1_REG, ®_val); if (ret) return ret; =20 - raw =3D FIELD_GET(BMA400_TAP_QUIETDT_MSK, reg_val); + raw =3D FIELD_GET(BMA400_TAP_CONFIG1_QUIETDT_MASK, reg_val); *val =3D 0; *val2 =3D double_tap2_min_delay[raw]; return IIO_VAL_INT_PLUS_MICRO; @@ -1480,8 +1480,8 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, return -EINVAL; =20 return regmap_update_bits(data->regmap, reg, - BMA400_GEN_HYST_MSK, - FIELD_PREP(BMA400_GEN_HYST_MSK, + BMA400_GENINT_CONFIG0_HYST_MASK, + FIELD_PREP(BMA400_GENINT_CONFIG0_HYST_MASK, val)); default: return -EINVAL; @@ -1493,9 +1493,9 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, return -EINVAL; =20 return regmap_update_bits(data->regmap, - BMA400_TAP_CONFIG, - BMA400_TAP_SEN_MSK, - FIELD_PREP(BMA400_TAP_SEN_MSK, + BMA400_TAP_CONFIG_REG, + BMA400_TAP_CONFIG_SEN_MASK, + FIELD_PREP(BMA400_TAP_CONFIG_SEN_MASK, val)); case IIO_EV_INFO_RESET_TIMEOUT: raw =3D usec_to_tapreg_raw(val2, tap_reset_timeout); @@ -1503,9 +1503,9 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, return -EINVAL; =20 return regmap_update_bits(data->regmap, - BMA400_TAP_CONFIG1, - BMA400_TAP_QUIET_MSK, - FIELD_PREP(BMA400_TAP_QUIET_MSK, + BMA400_TAP_CONFIG1_REG, + BMA400_TAP_CONFIG1_QUIET_MASK, + FIELD_PREP(BMA400_TAP_CONFIG1_QUIET_MASK, raw)); case IIO_EV_INFO_TAP2_MIN_DELAY: raw =3D usec_to_tapreg_raw(val2, double_tap2_min_delay); @@ -1513,9 +1513,9 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, return -EINVAL; =20 return regmap_update_bits(data->regmap, - BMA400_TAP_CONFIG1, - BMA400_TAP_QUIETDT_MSK, - FIELD_PREP(BMA400_TAP_QUIETDT_MSK, + BMA400_TAP_CONFIG1_REG, + BMA400_TAP_CONFIG1_QUIETDT_MASK, + FIELD_PREP(BMA400_TAP_CONFIG1_QUIETDT_MASK, raw)); default: return -EINVAL; @@ -1533,14 +1533,14 @@ static int bma400_data_rdy_trigger_set_state(struct= iio_trigger *trig, int ret; =20 ret =3D regmap_update_bits(data->regmap, BMA400_INT_CONFIG0_REG, - BMA400_INT_DRDY_MSK, - FIELD_PREP(BMA400_INT_DRDY_MSK, state)); + BMA400_INT_CONFIG0_DRDY_MASK, + FIELD_PREP(BMA400_INT_CONFIG0_DRDY_MASK, state)); if (ret) return ret; =20 return regmap_update_bits(data->regmap, BMA400_INT1_MAP_REG, - BMA400_INT_DRDY_MSK, - FIELD_PREP(BMA400_INT_DRDY_MSK, state)); + BMA400_INT_CONFIG0_DRDY_MASK, + FIELD_PREP(BMA400_INT_CONFIG0_DRDY_MASK, state)); } =20 static const unsigned long bma400_avail_scan_masks[] =3D { @@ -1578,7 +1578,7 @@ static irqreturn_t bma400_trigger_handler(int irq, vo= id *p) mutex_lock(&data->mutex); =20 /* bulk read six registers, with the base being the LSB register */ - ret =3D regmap_bulk_read(data->regmap, BMA400_X_AXIS_LSB_REG, + ret =3D regmap_bulk_read(data->regmap, BMA400_ACC_X_LSB_REG, &data->buffer.buff, sizeof(data->buffer.buff)); if (ret) goto unlock_err; @@ -1628,13 +1628,13 @@ static irqreturn_t bma400_interrupt(int irq, void *= private) * Disable all advance interrupts if interrupt engine overrun occurs. * See section 4.7 "Interrupt engine overrun" in datasheet v1.2. */ - if (FIELD_GET(BMA400_INT_ENG_OVRUN_MSK, le16_to_cpu(data->status))) { + if (FIELD_GET(BMA400_INT_STAT_ENG_OVRRUN_MASK, le16_to_cpu(data->status))= ) { bma400_disable_adv_interrupt(data); dev_err(data->dev, "Interrupt engine overrun\n"); goto unlock_err; } =20 - if (FIELD_GET(BMA400_INT_S_TAP_MSK, le16_to_cpu(data->status))) + if (FIELD_GET(BMA400_INT_STAT1_S_TAP_MASK, le16_to_cpu(data->status))) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_X_OR_Y_OR_Z, @@ -1642,7 +1642,7 @@ static irqreturn_t bma400_interrupt(int irq, void *pr= ivate) IIO_EV_DIR_SINGLETAP), timestamp); =20 - if (FIELD_GET(BMA400_INT_D_TAP_MSK, le16_to_cpu(data->status))) + if (FIELD_GET(BMA400_INT_STAT1_D_TAP_MASK, le16_to_cpu(data->status))) iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_X_OR_Y_OR_Z, @@ -1650,10 +1650,10 @@ static irqreturn_t bma400_interrupt(int irq, void *= private) IIO_EV_DIR_DOUBLETAP), timestamp); =20 - if (FIELD_GET(BMA400_INT_GEN1_MSK, le16_to_cpu(data->status))) + if (FIELD_GET(BMA400_INT_STAT0_GEN1_MASK, le16_to_cpu(data->status))) ev_dir =3D IIO_EV_DIR_RISING; =20 - if (FIELD_GET(BMA400_INT_GEN2_MSK, le16_to_cpu(data->status))) + if (FIELD_GET(BMA400_INT_STAT0_GEN2_MASK, le16_to_cpu(data->status))) ev_dir =3D IIO_EV_DIR_FALLING; =20 if (ev_dir !=3D IIO_EV_DIR_NONE) { @@ -1664,7 +1664,7 @@ static irqreturn_t bma400_interrupt(int irq, void *pr= ivate) timestamp); } =20 - if (FIELD_GET(BMA400_STEP_STAT_MASK, le16_to_cpu(data->status))) { + if (FIELD_GET(BMA400_INT_STAT1_STEP_INT_MASK, le16_to_cpu(data->status)))= { iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_STEPS, 0, IIO_NO_MOD, IIO_EV_TYPE_CHANGE, @@ -1686,7 +1686,7 @@ static irqreturn_t bma400_interrupt(int irq, void *pr= ivate) } } =20 - if (FIELD_GET(BMA400_INT_DRDY_MSK, le16_to_cpu(data->status))) { + if (FIELD_GET(BMA400_INT_STAT0_DRDY_MASK, le16_to_cpu(data->status))) { mutex_unlock(&data->mutex); iio_trigger_poll_nested(data->trig); return IRQ_HANDLED; --=20 2.43.0 From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F0E92EFDAC for ; Sun, 12 Oct 2025 18:07:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292425; cv=none; b=n/HH19fii6/OF1AmmODVUeeyFhNPyzOe+zQWy1OMLecCB5N5zM4xlhHYIlgGSCOuqG8AstC8UwFLurZEE3zBQmd3y2PM/Rz/0GsmadeEQv5vpomDhEq9Y7GQMBY4mwlPaFhuy/63wC68d36ddt0y2v90t2jJC8HghT8Uyt3+R24= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292425; c=relaxed/simple; bh=ClX01rlXMoXjKQ/J6oSs+dW0I5v1HXnoT4iu6978AV8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gdJLz0wl6ORCrxkGZyS+5U5235aJjtWeMrm5vPNPLwb99kgJb4XKGXF81o/1CPeKFSdZh6DMvYj04oj8REy5Z1OO1400bJiOUmmPtsMXC72RG36LncQ9TK+WEibq5rhML6qbi2w1OayChQNpZpH8STaGlNWaVYLeNEd/tR5Aa/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=a+hbt/Am; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="a+hbt/Am" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-7835321bc98so3364912b3a.2 for ; Sun, 12 Oct 2025 11:07:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292423; x=1760897223; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EA5A5uOGNzPpYhd/jiWtutSSlSi/Og+euueasT4P/UE=; b=a+hbt/AmpbEQR3HX8az8hr6Ahj2w+ixD8/nax/XTgY7Kr2SNz6oL1CGIQrqC7xXCFu OYtU2XVNWwcyssBmQidbjK8KjskVR9hiDwCFlu+Q9Rjt+jSnXMzTRDBnGW2udgXK2rCG h5YKektL5XXCr+WaUSC2MTtD7sliqkugF7xfW17dGAaFRsEOVTplWYvVjH28Ced40Pm9 0r6Al5vt4isFOIpXMgbXhCcoAPst9Td8E6T6yKJYKVn3DU+cEni2Gz9BMgd35auBzVHp pinqAyIMJUHNQw/dYt4MiGR8Nx5pohOiGNEEnJWTpXQ+m9ughYwka/md/JBKiPMIilOn mgaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292423; x=1760897223; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EA5A5uOGNzPpYhd/jiWtutSSlSi/Og+euueasT4P/UE=; b=mwUIzAfsVOe4zQNLlix6MFOdCjC69wt9Uuk74VgVugYXJvPEmhr8U51//s57RyTHB7 /EWDx+3sMXS3PashLKDiH6yDLji3JMB5Q9PQ6hlPCZkdYz1LFFNi0ITW7PPMRYV8izHQ nOtUOZMaNTeo2AE+KXGfp9ZYk9eTEJyaThcNMjtyVC5DjKWfaRh/AJmvF/EGCUJOqRnL NdNuWB6H3udouBgqiPUsQnhtn8S/6QNaO5SM70Ma090A95aiWi4cdAufaOpITonlUwrz /tsxmxTWYNCOSh0d+orxvxlOabBuz0dyEocZKbCMLcNuddh+32OrMCAqZr78gPL83Wq9 o6hw== X-Forwarded-Encrypted: i=1; AJvYcCXHZUqLYLptIJ5ceSipASPYRu+RFuicA97xerTnXfkItgtEarRLmPxHjjnsNfELd/8Bb6W9hVZtQpJqzh0=@vger.kernel.org X-Gm-Message-State: AOJu0YyPJFmUFdLWJa6SMpeE5o7PSJHJuscLIz1/pdiv4PiioxHBD7mC q0DVSOMGTNJDTuOVOlfVaoZfaI5RYKVqOD4XOPv8yg4Vl9o93+QGVsZpgGxEWA== X-Gm-Gg: ASbGnctR44ttK6oZj4QLiQf08pFk5bO6Z35pkwUTxx6vqsN6ZBSt5qwtog96B7C+ECV dowA+MR7biM6TrSCKOojeWp97OMhCOZXk4RNUBqqNM+HUUAAa26FKhaMAxLkByDWDfeXLBje8dV XJxCCBPrbW8WNJm+mCK1MRWPn9zIRzaNTccPRJbysJIuj2b3w3JNWn7jzJZqqon0NDuL/j5mePg fj/OzTPMm//LleC2YYpqmNMK8wWwzTtnZlCZ/0so/hIDaWQOOEItVWDx3aCNcYw9p/Rx/jY1K4e Dqy0K2jcj4YhqB124W19nti5k0BbkchgrXK7tkfgcEYSf9WyoJjUm65nNPcTp9kOkvRIJfYCt7m 7oA9Pxe/Du4g/T5p0LFgUYL2dCOV0MBC58Zhl0FwbmQN8bHV6nis= X-Google-Smtp-Source: AGHT+IFiF/Ba1DV6ZO0HpC19hA+TpwY4BxbEecfq0ewa8tmyEUIHREHyuLz2xm3GCuT7NlL4ULrsPw== X-Received: by 2002:a17:902:d588:b0:27e:f06b:ae31 with SMTP id d9443c01a7336-290273a5f2bmr234627825ad.61.1760292422854; Sun, 12 Oct 2025 11:07:02 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.06.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:07:02 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 2/6] iio: accel: bma400: Use macros for generic event configuration values Date: Sun, 12 Oct 2025 23:36:09 +0530 Message-ID: <20251012180619.195244-3-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add macros and enums for configuration values used in generic event handling for activity and inactivity detection. Replace hard-coded values in activity_event_en() with the new definitions to make the configuration explicit. No functional changes are intended. Signed-off-by: Akshay Jindal --- Changes since v3: - Assigned explicit values to reg field enums introduced. drivers/iio/accel/bma400.h | 30 ++++++++++++++++++++++++++++++ drivers/iio/accel/bma400_core.c | 14 +++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/drivers/iio/accel/bma400.h b/drivers/iio/accel/bma400.h index fcafd1fba57a..12e7bf5fe647 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -113,8 +113,38 @@ #define BMA400_GEN1INT_CONFIG0_REG 0x3f #define BMA400_GEN2INT_CONFIG0_REG 0x4A #define BMA400_GENINT_CONFIG0_HYST_MASK GENMASK(1, 0) +#define BMA400_GENINT_CONFIG0_REF_UPD_MODE_MASK GENMASK(3, 2) +#define BMA400_GENINT_CONFIG0_DATA_SRC_MASK BIT(4) +#define BMA400_GENINT_CONFIG0_X_EN_MASK BIT(5) +#define BMA400_GENINT_CONFIG0_Y_EN_MASK BIT(6) +#define BMA400_GENINT_CONFIG0_Z_EN_MASK BIT(7) + +enum bma400_accel_data_src { + ACCEL_FILT1 =3D 0x0, + ACCEL_FILT2 =3D 0x1, +}; + +enum bma400_ref_updt_mode { + BMA400_REF_MANUAL_UPDT_MODE =3D 0x0, + BMA400_REF_ONETIME_UPDT_MODE =3D 0x1, + BMA400_REF_EVERYTIME_UPDT_MODE =3D 0x2, + BMA400_REF_EVERYTIME_LP_UPDT_MODE =3D 0x3, +}; =20 #define BMA400_GEN_CONFIG1_OFF 0x01 +#define BMA400_GENINT_CONFIG1_AXES_COMB_MASK BIT(0) +#define BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK BIT(1) + +enum bma400_genintr_acceleval_axescomb { + BMA400_EVAL_X_OR_Y_OR_Z =3D 0x0, + BMA400_EVAL_X_AND_Y_AND_Z =3D 0x1, +}; + +enum bma400_detect_criterion { + BMA400_DETECT_INACTIVITY =3D 0x0, + BMA400_DETECT_ACTIVITY =3D 0x1, +}; + #define BMA400_GEN_CONFIG2_OFF 0x02 #define BMA400_GEN_CONFIG3_OFF 0x03 #define BMA400_GEN_CONFIG31_OFF 0x04 diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index 2324c4ef645c..46855073ce3a 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -1166,14 +1166,16 @@ static int bma400_activity_event_en(struct bma400_d= ata *data, case IIO_EV_DIR_RISING: reg =3D BMA400_GEN1INT_CONFIG0_REG; msk =3D BMA400_INT_CONFIG0_GEN1_MASK; - value =3D 2; + value =3D FIELD_PREP(BMA400_GENINT_CONFIG1_AXES_COMB_MASK, BMA400_EVAL_X= _OR_Y_OR_Z) | + FIELD_PREP(BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK, BMA400_DETECT_ACTIVIT= Y); set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN1_MASK, FIELD_PREP(BMA400_INT_CONFIG0_GEN1_MASK, state)); break; case IIO_EV_DIR_FALLING: reg =3D BMA400_GEN2INT_CONFIG0_REG; msk =3D BMA400_INT_CONFIG0_GEN2_MASK; - value =3D 0; + value =3D FIELD_PREP(BMA400_GENINT_CONFIG1_AXES_COMB_MASK, BMA400_EVAL_X= _OR_Y_OR_Z) | + FIELD_PREP(BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK, BMA400_DETECT_INACTIV= ITY); set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN2_MASK, FIELD_PREP(BMA400_INT_CONFIG0_GEN2_MASK, state)); break; @@ -1182,7 +1184,13 @@ static int bma400_activity_event_en(struct bma400_da= ta *data, } =20 /* Enabling all axis for interrupt evaluation */ - ret =3D regmap_write(data->regmap, reg, 0xF8); + ret =3D regmap_write(data->regmap, reg, + BMA400_GENINT_CONFIG0_X_EN_MASK | + BMA400_GENINT_CONFIG0_Y_EN_MASK | + BMA400_GENINT_CONFIG0_Z_EN_MASK| + FIELD_PREP(BMA400_GENINT_CONFIG0_DATA_SRC_MASK, ACCEL_FILT2)| + FIELD_PREP(BMA400_GENINT_CONFIG0_REF_UPD_MODE_MASK, + BMA400_REF_EVERYTIME_UPDT_MODE)); if (ret) return ret; =20 --=20 2.43.0 From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E6162EFDA2 for ; Sun, 12 Oct 2025 18:07:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292432; cv=none; b=Vtfq2cl8oT6vidX9YqYpGjggkyFxUap1sKIrRT3gz0rDMFewndUTYxKytKQpoBkVLROjMaKhyejVNa87TfY4Twpe47yJnL3U4ghyQoN93JF25k8YCRCzNBwo7VjqBuKExE8cZ9FHdiMg7aCqGiW5ew9qkwH8w08Y7uJH2thGtV8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292432; c=relaxed/simple; bh=Ak/h60vAIjf9Mp8zrf1xKvMjBdoyv7hoxMUx+IHfL94=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T6DLOqSBvrkO4j+HErhSIq12zuRb57f247y4B+MSHXJEg15u3RlRdT9WVeAvvCPbI3/YwgUUYP2xsWjb6clrO+sxN68L+AduAYfsN2ZS5zwnjlWPVKBQciBrt8tugHr/GiMHJpkb860runwa2npZ28lsYCEYKfpBsqIPvEI8NVk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=B6v9qG70; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B6v9qG70" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-28e7cd6dbc0so40322255ad.0 for ; Sun, 12 Oct 2025 11:07:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292430; x=1760897230; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=s7WBZHMqvvgEkp/pSPwrdoVC7ilzPciXVI73gEp7Ico=; b=B6v9qG70rlLWajGcl2rrghM6YPRVV9PU8j7Va9JUz9eNFX8HANw3t3AZYmWPk2A/Qj PQUfMPZJzcdtalABFN+vzZ/kjdMqsxd+aa60JLedxQsgTAl+rPw1E4WQqnbeLxvGQwrl ue2RsIJzOSXg8xqytDAiFdFjiqtF7ITr/qAWhvY0XbjLjVNjaIGg4DYaG8zPAxRA2E8s l7hSRJTKgjFiIcyEJsVmJJ6CiYLIA55w3am0Q2Oy31/KY5uq/m7mpQbnLkVEJpPb6sve LoD/zGT3ocnh4c4tZ4M+uVx3nMalhfraKfWIv01znXEgn8RIu5i1c0cgSfeB2+epPPK6 Bjlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292430; x=1760897230; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s7WBZHMqvvgEkp/pSPwrdoVC7ilzPciXVI73gEp7Ico=; b=RVEsSWKD7DYT/f6caPSDdPBKRUFLWFhGcWQ7vXAMF0MV5BNjFqzYh/hjn9Sm0rBi0U 8sFEnwaxQkq4IZjg3AIHWxKZeKl/xyWSG90968dS4SDN2GASDPLr6PJMZkv+TXm+LRYr umNu1DHPIEFn6sWIW17y17xbXnf7NtJrqNb4pWwslANiGnCHmJVUdZHYseKyBihqRWZP QYE6yc0lSsEjyg+atlCSK1VmRg6mGGlCZYL2I7+xgQ+u+a4haEU5ra8b1bux6m1YQPQV 60GHwyala1b+F9Vxn5r60PV2YhOidGSPr4JbZpvNPY62CdoKelIpnnA/IffhygnJH0ja M5Ew== X-Forwarded-Encrypted: i=1; AJvYcCWFDRUAUbkMO/a22DH+vNV4Zjiyko1L8NGzXRBR14ENeAnS7gb4Ybt3c+hqPdQP/SU3B4+/M90zhFa5t38=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1XF4vwZ4zwhj48AxVdNTl2cds+pUR/EIj+SugjBJ+gxEe/DYN F8C/0ICXBAGJYlW+lFENBnIkqFF76fheIGr7/JB8v+G/R5l7iA+AO2mg X-Gm-Gg: ASbGncvjDPYeyu7rkMpriuvHmViL8Pnb9unn5oHHw90JzKKQ0dIqELY3sqfRYzYSJUW Zgvzg/2pVBXPkDHXlx3mlZJ3kBDskH2bUNhxv1xZ18LJWWyFhf011GB28eO1jV7Xs8kWiidwHBx NrWxHO0VoRJiowMoTEBkbWIyba7PqIYnbVhInXWe6GvjklBCS7LnYsPOM+9eQ2XK7jjxahP8+yi z2Hcr3/9tIzGjSu9eS/b7LeWg/O4TT2WEdH4eTmNdN0RZwLp/9klyYZHdCkVXBfpgclqaOCDt4j oOJL+Xtwo6q0C21XkMaJlwO8C40v3b8CmnnDvBeYgBOu81T4WNG/wmC0HXfkN2AokEVYjowY198 vkji0QUVVFaV7cvbUYwqGoq76fCBsJSNIMazgSi0qAcX+kpKb+A5MRjnznLXfgijIQJaLVqX5 X-Google-Smtp-Source: AGHT+IGczUQHKhidrkrs8TNHxRnsW4Sz9rJltTBQDCS6nsP/FgIA8eKc0upOJod8ddbWAfiXF/K3/g== X-Received: by 2002:a17:902:d4ca:b0:25d:5b09:a201 with SMTP id d9443c01a7336-2902739af89mr270997285ad.27.1760292429760; Sun, 12 Oct 2025 11:07:09 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.07.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:07:09 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 3/6] iio: accel: bma400: Use index-based register addressing and lookup Date: Sun, 12 Oct 2025 23:36:10 +0530 Message-ID: <20251012180619.195244-4-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce formula-based macros to compute GEN INTR configuration register addresses from the interrupt number and register index. This reduces the need for 22 explicit register macros to three base definitions. Add a centralized lookup table keyed by IIO event direction and replace get_gen_config_reg() with a helper integrated with this table. Apply these changes across the affected callbacks to ensure consistent access to generic interrupt registers. No functional changes are intended. Signed-off-by: Akshay Jindal --- Changes since v3: - Assigned explicit values to reg field enums introduced drivers/iio/accel/bma400.h | 17 +++-- drivers/iio/accel/bma400_core.c | 131 +++++++++++++++++++------------- 2 files changed, 88 insertions(+), 60 deletions(-) diff --git a/drivers/iio/accel/bma400.h b/drivers/iio/accel/bma400.h index 12e7bf5fe647..e2832d33862d 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -98,6 +98,11 @@ #define BMA400_INT_CONFIG0_GEN2_MASK BIT(3) #define BMA400_INT_CONFIG0_DRDY_MASK BIT(7) =20 +enum bma400_generic_intr { + BMA400_GEN1_INTR =3D 0x1, + BMA400_GEN2_INTR =3D 0x2, +}; + #define BMA400_INT_CONFIG1_REG 0x20 #define BMA400_INT_CONFIG1_STEP_INT_MASK BIT(0) #define BMA400_INT_CONFIG1_S_TAP_MASK BIT(2) @@ -110,8 +115,12 @@ #define BMA400_TWO_BITS_MASK GENMASK(1, 0) =20 /* Generic interrupts register */ -#define BMA400_GEN1INT_CONFIG0_REG 0x3f -#define BMA400_GEN2INT_CONFIG0_REG 0x4A +#define BMA400_GENINT_CONFIG_REG_BASE 0x3f +#define BMA400_NUM_GENINT_CONFIG_REGS 11 +#define BMA400_GENINT_CONFIG_REG(gen_intr, config_idx) \ + (BMA400_GENINT_CONFIG_REG_BASE + \ + (gen_intr - 1) * BMA400_NUM_GENINT_CONFIG_REGS + \ + (config_idx)) #define BMA400_GENINT_CONFIG0_HYST_MASK GENMASK(1, 0) #define BMA400_GENINT_CONFIG0_REF_UPD_MODE_MASK GENMASK(3, 2) #define BMA400_GENINT_CONFIG0_DATA_SRC_MASK BIT(4) @@ -145,10 +154,6 @@ enum bma400_detect_criterion { BMA400_DETECT_ACTIVITY =3D 0x1, }; =20 -#define BMA400_GEN_CONFIG2_OFF 0x02 -#define BMA400_GEN_CONFIG3_OFF 0x03 -#define BMA400_GEN_CONFIG31_OFF 0x04 - /* TAP config registers */ #define BMA400_TAP_CONFIG_REG 0x57 #define BMA400_TAP_CONFIG_SEN_MASK GENMASK(2, 0) diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index 46855073ce3a..42cd55fa1609 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -121,6 +121,41 @@ struct bma400_data { __be16 duration; }; =20 +struct bma400_genintr_info { + enum bma400_generic_intr genintr; + unsigned int intrmask; + enum iio_event_direction dir; + enum bma400_detect_criterion detect_mode; +}; + +/* Lookup struct for determining GEN1/GEN2 based on dir */ +static const struct bma400_genintr_info bma400_genintrs[] =3D { + [IIO_EV_DIR_RISING] =3D { + .genintr =3D BMA400_GEN1_INTR, + .intrmask =3D BMA400_INT_CONFIG0_GEN1_MASK, + .dir =3D IIO_EV_DIR_RISING, + .detect_mode =3D BMA400_DETECT_ACTIVITY, + }, + [IIO_EV_DIR_FALLING] =3D { + .genintr =3D BMA400_GEN2_INTR, + .intrmask =3D BMA400_INT_CONFIG0_GEN2_MASK, + .dir =3D IIO_EV_DIR_FALLING, + .detect_mode =3D BMA400_DETECT_INACTIVITY, + } +}; + +static inline const struct bma400_genintr_info * +get_bma400_genintr_info(enum iio_event_direction dir) +{ + switch (dir) { + case IIO_EV_DIR_RISING: + case IIO_EV_DIR_FALLING: + return &bma400_genintrs[dir]; + default: + return NULL; + }; +} + static bool bma400_is_writable_reg(struct device *dev, unsigned int reg) { switch (reg) { @@ -1159,32 +1194,22 @@ static int bma400_activity_event_en(struct bma400_d= ata *data, enum iio_event_direction dir, int state) { - int ret, reg, msk, value; - int field_value =3D 0; + int ret; + unsigned int intrmask, regval; + enum bma400_generic_intr genintr; + enum bma400_detect_criterion detect_criterion; + const struct bma400_genintr_info *bma400_genintr; =20 - switch (dir) { - case IIO_EV_DIR_RISING: - reg =3D BMA400_GEN1INT_CONFIG0_REG; - msk =3D BMA400_INT_CONFIG0_GEN1_MASK; - value =3D FIELD_PREP(BMA400_GENINT_CONFIG1_AXES_COMB_MASK, BMA400_EVAL_X= _OR_Y_OR_Z) | - FIELD_PREP(BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK, BMA400_DETECT_ACTIVIT= Y); - set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN1_MASK, - FIELD_PREP(BMA400_INT_CONFIG0_GEN1_MASK, state)); - break; - case IIO_EV_DIR_FALLING: - reg =3D BMA400_GEN2INT_CONFIG0_REG; - msk =3D BMA400_INT_CONFIG0_GEN2_MASK; - value =3D FIELD_PREP(BMA400_GENINT_CONFIG1_AXES_COMB_MASK, BMA400_EVAL_X= _OR_Y_OR_Z) | - FIELD_PREP(BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK, BMA400_DETECT_INACTIV= ITY); - set_mask_bits(&field_value, BMA400_INT_CONFIG0_GEN2_MASK, - FIELD_PREP(BMA400_INT_CONFIG0_GEN2_MASK, state)); - break; - default: + bma400_genintr =3D get_bma400_genintr_info(dir); + if (!bma400_genintr) return -EINVAL; - } + + genintr =3D bma400_genintr->genintr; + detect_criterion =3D bma400_genintr->detect_mode; + intrmask =3D bma400_genintr->intrmask; =20 /* Enabling all axis for interrupt evaluation */ - ret =3D regmap_write(data->regmap, reg, + ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 0), BMA400_GENINT_CONFIG0_X_EN_MASK | BMA400_GENINT_CONFIG0_Y_EN_MASK | BMA400_GENINT_CONFIG0_Z_EN_MASK| @@ -1195,31 +1220,32 @@ static int bma400_activity_event_en(struct bma400_d= ata *data, return ret; =20 /* OR combination of all axis for interrupt evaluation */ - ret =3D regmap_write(data->regmap, reg + BMA400_GEN_CONFIG1_OFF, value); + regval =3D FIELD_PREP(BMA400_GENINT_CONFIG1_AXES_COMB_MASK, BMA400_EVAL_X= _OR_Y_OR_Z) | + FIELD_PREP(BMA400_GENINT_CONFIG1_DETCT_CRIT_MASK, detect_criterion); + ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 1), = regval); if (ret) return ret; =20 /* Initial value to avoid interrupts while enabling*/ - ret =3D regmap_write(data->regmap, reg + BMA400_GEN_CONFIG2_OFF, 0x0A); + ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 2), = 0x0A); if (ret) return ret; =20 /* Initial duration value to avoid interrupts while enabling*/ - ret =3D regmap_write(data->regmap, reg + BMA400_GEN_CONFIG31_OFF, 0x0F); + ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 4), = 0x0F); if (ret) return ret; =20 - ret =3D regmap_update_bits(data->regmap, BMA400_INT1_MAP_REG, msk, - field_value); + regval =3D state ? intrmask : 0; + ret =3D regmap_update_bits(data->regmap, BMA400_INT1_MAP_REG, intrmask, r= egval); if (ret) return ret; =20 - ret =3D regmap_update_bits(data->regmap, BMA400_INT_CONFIG0_REG, msk, - field_value); + ret =3D regmap_update_bits(data->regmap, BMA400_INT_CONFIG0_REG, intrmask= , regval); if (ret) return ret; =20 - set_mask_bits(&data->generic_event_en, msk, field_value); + set_mask_bits(&data->generic_event_en, intrmask, regval); return 0; } =20 @@ -1344,18 +1370,6 @@ static int bma400_write_event_config(struct iio_dev = *indio_dev, } } =20 -static int get_gen_config_reg(enum iio_event_direction dir) -{ - switch (dir) { - case IIO_EV_DIR_FALLING: - return BMA400_GEN2INT_CONFIG0_REG; - case IIO_EV_DIR_RISING: - return BMA400_GEN1INT_CONFIG0_REG; - default: - return -EINVAL; - } -} - static int bma400_read_event_value(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, @@ -1364,22 +1378,25 @@ static int bma400_read_event_value(struct iio_dev *= indio_dev, int *val, int *val2) { struct bma400_data *data =3D iio_priv(indio_dev); - int ret, reg, reg_val, raw; + int ret, reg_val, raw; + enum bma400_generic_intr genintr; + const struct bma400_genintr_info *bma400_genintr; =20 if (chan->type !=3D IIO_ACCEL) return -EINVAL; =20 switch (type) { case IIO_EV_TYPE_MAG: - reg =3D get_gen_config_reg(dir); - if (reg < 0) + bma400_genintr =3D get_bma400_genintr_info(dir); + if (!bma400_genintr) return -EINVAL; + genintr =3D bma400_genintr->genintr; =20 *val2 =3D 0; switch (info) { case IIO_EV_INFO_VALUE: ret =3D regmap_read(data->regmap, - reg + BMA400_GEN_CONFIG2_OFF, + BMA400_GENINT_CONFIG_REG(genintr, 2), val); if (ret) return ret; @@ -1387,7 +1404,7 @@ static int bma400_read_event_value(struct iio_dev *in= dio_dev, case IIO_EV_INFO_PERIOD: mutex_lock(&data->mutex); ret =3D regmap_bulk_read(data->regmap, - reg + BMA400_GEN_CONFIG3_OFF, + BMA400_GENINT_CONFIG_REG(genintr, 3), &data->duration, sizeof(data->duration)); if (ret) { @@ -1398,7 +1415,9 @@ static int bma400_read_event_value(struct iio_dev *in= dio_dev, mutex_unlock(&data->mutex); return IIO_VAL_INT; case IIO_EV_INFO_HYSTERESIS: - ret =3D regmap_read(data->regmap, reg, val); + ret =3D regmap_read(data->regmap, + BMA400_GENINT_CONFIG_REG(genintr, 0), + val); if (ret) return ret; *val =3D FIELD_GET(BMA400_GENINT_CONFIG0_HYST_MASK, *val); @@ -1452,16 +1471,19 @@ static int bma400_write_event_value(struct iio_dev = *indio_dev, int val, int val2) { struct bma400_data *data =3D iio_priv(indio_dev); - int reg, ret, raw; + int ret, raw; + enum bma400_generic_intr genintr; + const struct bma400_genintr_info *bma400_genintr; =20 if (chan->type !=3D IIO_ACCEL) return -EINVAL; =20 switch (type) { case IIO_EV_TYPE_MAG: - reg =3D get_gen_config_reg(dir); - if (reg < 0) + bma400_genintr =3D get_bma400_genintr_info(dir); + if (!bma400_genintr) return -EINVAL; + genintr =3D bma400_genintr->genintr; =20 switch (info) { case IIO_EV_INFO_VALUE: @@ -1469,7 +1491,7 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, return -EINVAL; =20 return regmap_write(data->regmap, - reg + BMA400_GEN_CONFIG2_OFF, + BMA400_GENINT_CONFIG_REG(genintr, 2), val); case IIO_EV_INFO_PERIOD: if (val < 1 || val > 65535) @@ -1478,7 +1500,7 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, mutex_lock(&data->mutex); put_unaligned_be16(val, &data->duration); ret =3D regmap_bulk_write(data->regmap, - reg + BMA400_GEN_CONFIG3_OFF, + BMA400_GENINT_CONFIG_REG(genintr, 3), &data->duration, sizeof(data->duration)); mutex_unlock(&data->mutex); @@ -1487,7 +1509,8 @@ static int bma400_write_event_value(struct iio_dev *i= ndio_dev, if (val < 0 || val > 3) return -EINVAL; =20 - return regmap_update_bits(data->regmap, reg, + return regmap_update_bits(data->regmap, + BMA400_GENINT_CONFIG_REG(genintr, 0), BMA400_GENINT_CONFIG0_HYST_MASK, FIELD_PREP(BMA400_GENINT_CONFIG0_HYST_MASK, val)); --=20 2.43.0 From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CD682F1FD8 for ; Sun, 12 Oct 2025 18:07:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292438; cv=none; b=fLUwJkYUIKnQVGAaRsXzwLxLnkR/ZsMlob9vs/zY4vflwVTIKda99/fjUsowqoe/W20zqudC1cbyFrDxbMOM+rQkBR1l2UQ6HbHSCZ8AHQd05TTOI4W/PW3u7M4pp2ohIk7bSf1oAMCvCVHFMN7124Y1yVBjliKpyPae5Un10qQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292438; c=relaxed/simple; bh=m7hFlCg3kCEqX/JQPFwfTWfUr39vj84qrAodgGrxjEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SeOo0S7RCPtqdB3ZhNDuYonWLjp+A8tpzNY1sO5T08X7mdVrHF7kcp7i9xmFzMtAMHxnMPyVx1PzTRMSVwHVv596Y+Itwh+oIWHJoNozch/qkvJEb3lm8x0091O+78enKGaWrXrKZOFKxOUncNKxyQAE3WI7MGGqo8yaEMD/VZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iCkPNs84; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iCkPNs84" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2680cf68265so26879665ad.2 for ; Sun, 12 Oct 2025 11:07:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292436; x=1760897236; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eu8vg3VcSANbIaWzuLj/Mw5GdPep/60laAOsGBe3Qn0=; b=iCkPNs84KLvfeibIoYujAV5PnSOgtpkF2/nxiFSgGIRgHosnrZH6TSBSTt6q4QM6Fb QjWTyYJ2ISQsQcpGZZxotSbqwWbE5VcKFmmZA8U8bWeHNFRWorIirv8pA03xjprzkN4o BifhnyWSkrIIj6zVYf3IXaIshPSTMnwUpaj8fKo/9fNm+Novr+jngFB8tlok8hfSd7BL /dDuA+SW08qT9ycrcTpKkBrT1DhqSGEMvxP8rzruw8Qk2czB9kD2zGQtu+7rlYsCOMN/ eVGczFxxoaxiqnbvtpXjLBwtgmGr/dTjzz5885f4sRUQNz9xxSPptCg5yUq607MYEKEe irQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292436; x=1760897236; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eu8vg3VcSANbIaWzuLj/Mw5GdPep/60laAOsGBe3Qn0=; b=LkpSqnlQKmNPe8ZN37NXmoDDb4zpGlNpEqEVJ1qNNb5iORqpUBkXfaRRB9u4EFm0VA FNxZ8thu0ykkg3JfhKMy6jOAI/JZdeQdFlhMSVGlGqbXlWZHgQ/qZ9sfIs+uStaEx5Zg zkpJdy4ih+811IaNwIB/sQfW199uqYir/Taiwb3g7QBkNxq3WjzJJSlD5a9jQnhvP4qS kStxU2LUJI/6qJFC5gk8EcRUcIddmEyg1dRNorW4xYV5wt5teEYoFwusqFtHhK+akDUT nKRulHq0l0mv30nRGt4IQRQEk0/sS4Ukq55OdDL3new2qKs1o0fSxjFLY3GPUv/toZVA 0Oqw== X-Forwarded-Encrypted: i=1; AJvYcCXKS/zU8baz85zSiApxmE7obXW7mdzZQ+peaJ3shZEjdZFNgN9/I5IIIqng9TJZMjkKMI8mxiTVf+uPyyc=@vger.kernel.org X-Gm-Message-State: AOJu0YxS4p109WidNtUM07Z04t6hndHd+KZSYSHMGeAXklIawhwzKH8q aWbZGrLpR79XLT9ML2BMAhNGwNHW79J+HE6+CLRw/U0qb24A+AT0Jf6D X-Gm-Gg: ASbGncs8+DFT/UqYsKr9yqcH8srCQKu8t7kQaE0ZjFBROH0v7+6rIIuT8o3RO/nqt+y QG3005Eb63ez18TemM8HmdtXFEQRaQRcUW3xycEAK+d2bqZSQa1P9XTg2VaxLiJM99H7clqyFQi U8D+sqKvmJkDVLwwzz30N2jw+i/JW9SCDH97QvC665fh/kSLElIO6tNODHHnXFGMa/DO9mqn55W crv9IMAjYJiJhfFe8WTtLVmPO5U6Ru/1/0bcEl61d1DTB1G0qU9Yd5sJ2DOhwGpMs1NbuMl9Jm+ CvVQCJiz5UQcYtXyAsC6+a99DqHfNDTjn52mEr569mZqufWsJbJNclsiTjgiucOkScHtIXOHEwS KTXiU8PJpk0p73M50MUjGMr3X1pKQZM1gspUg9HmIQMUPkRUVE+s= X-Google-Smtp-Source: AGHT+IFPZRs8NbjuxRsjqFPcahUml+X/J8bGahNqayP9NaOCV3GpwRD1Amy0L/80k/WkLGGJBDJ07g== X-Received: by 2002:a17:902:cf41:b0:267:776b:a315 with SMTP id d9443c01a7336-290272c2019mr224101645ad.32.1760292436271; Sun, 12 Oct 2025 11:07:16 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:07:15 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 4/6] iio: accel: bma400: Replace bit shifts with FIELD_PREP() and FIELD_GET() Date: Sun, 12 Oct 2025 23:36:11 +0530 Message-ID: <20251012180619.195244-5-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" set_* functions involve left shift of param values into respective register fields before writing to register. Similarly get_* functions involve right shift to extract values from the respective bit fields. Replace these explicit shifting statements with standard kernel style macros FIELD_GET() and FIELD_PREP(). Signed-off-by: Akshay Jindal --- Changes since v4: - Modified changelog of PATCH 4/6. drivers/iio/accel/bma400.h | 3 --- drivers/iio/accel/bma400_core.c | 12 ++++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/iio/accel/bma400.h b/drivers/iio/accel/bma400.h index e2832d33862d..b5f3cac51610 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -75,7 +75,6 @@ */ #define BMA400_ACC_CONFIG0_REG 0x19 #define BMA400_ACC_CONFIG0_LP_OSR_MASK GENMASK(6, 5) -#define BMA400_LP_OSR_SHIFT 5 =20 #define BMA400_ACC_CONFIG1_REG 0x1a #define BMA400_ACC_CONFIG1_ODR_MASK GENMASK(3, 0) @@ -86,9 +85,7 @@ #define BMA400_ACC_CONFIG1_ODR_MIN_WHOLE_HZ 25 #define BMA400_ACC_CONFIG1_ODR_MIN_HZ 12 #define BMA400_ACC_CONFIG1_NP_OSR_MASK GENMASK(5, 4) -#define BMA400_NP_OSR_SHIFT 4 #define BMA400_ACC_CONFIG1_ACC_RANGE_MASK GENMASK(7, 6) -#define BMA400_ACC_RANGE_SHIFT 6 =20 #define BMA400_ACC_CONFIG2_REG 0x1b =20 diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index 42cd55fa1609..cec59d409531 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -627,7 +627,7 @@ static int bma400_get_accel_oversampling_ratio(struct b= ma400_data *data) return ret; } =20 - osr =3D (val & BMA400_ACC_CONFIG0_LP_OSR_MASK) >> BMA400_LP_OSR_SHIFT; + osr =3D FIELD_GET(BMA400_ACC_CONFIG0_LP_OSR_MASK, val); =20 data->oversampling_ratio =3D osr; return 0; @@ -638,7 +638,7 @@ static int bma400_get_accel_oversampling_ratio(struct b= ma400_data *data) return ret; } =20 - osr =3D (val & BMA400_ACC_CONFIG1_NP_OSR_MASK) >> BMA400_NP_OSR_SHIFT; + osr =3D FIELD_GET(BMA400_ACC_CONFIG1_NP_OSR_MASK, val); =20 data->oversampling_ratio =3D osr; return 0; @@ -673,7 +673,7 @@ static int bma400_set_accel_oversampling_ratio(struct b= ma400_data *data, =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG0_REG, (acc_config & ~BMA400_ACC_CONFIG0_LP_OSR_MASK) | - (val << BMA400_LP_OSR_SHIFT)); + FIELD_PREP(BMA400_ACC_CONFIG0_LP_OSR_MASK, val)); if (ret) { dev_err(data->dev, "Failed to write out OSR\n"); return ret; @@ -689,7 +689,7 @@ static int bma400_set_accel_oversampling_ratio(struct b= ma400_data *data, =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG1_REG, (acc_config & ~BMA400_ACC_CONFIG1_NP_OSR_MASK) | - (val << BMA400_NP_OSR_SHIFT)); + FIELD_PREP(BMA400_ACC_CONFIG1_NP_OSR_MASK, val)); if (ret) { dev_err(data->dev, "Failed to write out OSR\n"); return ret; @@ -730,7 +730,7 @@ static int bma400_get_accel_scale(struct bma400_data *d= ata) if (ret) return ret; =20 - raw_scale =3D (val & BMA400_ACC_CONFIG1_ACC_RANGE_MASK) >> BMA400_ACC_RAN= GE_SHIFT; + raw_scale =3D FIELD_GET(BMA400_ACC_CONFIG1_ACC_RANGE_MASK, val); if (raw_scale > BMA400_TWO_BITS_MASK) return -EINVAL; =20 @@ -755,7 +755,7 @@ static int bma400_set_accel_scale(struct bma400_data *d= ata, unsigned int val) =20 ret =3D regmap_write(data->regmap, BMA400_ACC_CONFIG1_REG, (acc_config & ~BMA400_ACC_CONFIG1_ACC_RANGE_MASK) | - (raw << BMA400_ACC_RANGE_SHIFT)); + FIELD_PREP(BMA400_ACC_CONFIG1_ACC_RANGE_MASK, raw)); if (ret) return ret; =20 --=20 2.43.0 From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1FE72F1FEA for ; Sun, 12 Oct 2025 18:07:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292445; cv=none; b=MBk0Mwr7BMETrh3lEMRN5gjXTItWoZEEosAzOAezg11RIPVxXGteXYxoVCGoctYTj7HG2IvIB5JD2v8xnOMA2JsiBWqAdGiibL2OBe9WGdU/RMOyV+gDfwhYxEMeoEtcaqxzcn/mFfPuakLdxT0xFBvHRXXMHXAD8JfGf+qT2cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292445; c=relaxed/simple; bh=Sjdc9c9cEm/3+y2OeU1XtxmvhRSamRAG9x5dwh7eQPg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QP9KcvzKbiy7PfsGUfurEeN0pzBlR3pANAwLmPmmX82oVZAe6V7iVlG3QrLfBQ2IeYuj7Tc+eD+lEQ3K52qEUS1NWKrU43rGFmLMpG5GAYwmjqqrUrOJ5ZN/riw2MIejYdMD0Y5+0ClZ3aGGBHCCS0BH5kvB1yiulUX6CXVT1tg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TZZSpaYH; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TZZSpaYH" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-27d4d6b7ab5so49200665ad.2 for ; Sun, 12 Oct 2025 11:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292443; x=1760897243; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LvFPIF9bNuZ+Y63WmDwF6cX3Q3m52XgnHpWvKqcl2nc=; b=TZZSpaYHV3fKUQlyXOAKvUWgWpFnoBbJTc/CFrvrihDTuCEo58ZG1uDGeMtOtFiD8T Fjoy7DWSfkfEmQJj2inX0XDoRZmhEd8FFJOWCqZktmMesBD/HD1iTYOo/6BQPnA6rkeF 8V234hPV96vhJo0QU5uIAJ3mOMAUEpd0TgWvG4mw+nMQ+6OKcZsAVg2GPAeAT8oMErNZ 15hnNEHIdWjLxnJtxUdvDDD4O4rYtx4rtIpNhU0yQ0fBbDiiFYGhPyTce0OQUk24aFfj 1SXHZCcCm4Trhh4vFglvCLxc37oMCQE7xfs8QQ0+RZQEloDd0i9GuW2g0UlZcD/1wBqo GiGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292443; x=1760897243; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LvFPIF9bNuZ+Y63WmDwF6cX3Q3m52XgnHpWvKqcl2nc=; b=nQ+HbZJbxOde5Eliy/k9vI1gDeTnvfZwA6rsm6muk5QXNhLFKD+aYXg3H90Nmi8Ct1 dYUPi4XjKTH7iz+L1wktX6x1hlILTrKECMncOYbxIkQBNUP6H5yeAwLXijRJGZoHXuQQ FzgPEVxGeOcOyj9h1SiLXcf8XS5eUhRjpkONvsm+r18zf5Kc6X8osPl1DuHcvksxWIMU uQpF16/Twkj5kPD53WJV4edCIkGvk+nazUym33QJlS9LIHa38uTAbAE5J5knMNOmQ98R MF3s3xyBlm9wrkcEr+3kOckUSeI/yiGh6OeeDNZTYbXu5wMz7aiuMNiKPgaK3j/BIM2s ntHg== X-Forwarded-Encrypted: i=1; AJvYcCWpjumLkpLB6zghNIjayXerLcK0eCdklyjdj/mByqCLYMJTMHppvLmPIEOqalbPOaTsTKq6pPjExe6qM+U=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/gNEoK3xF70OYF8IdczZAOS0V1us10O4GFnxTDWKJOKexQ4Rz s3QRxPBW/ytA2wyzva+tnNupgtmYoG0ECZy0OqDV/hxMFZwDJKRNHr62 X-Gm-Gg: ASbGncvbaImotHDNzDbBWBPp/Rdk8pSYgTrzh0RCJG49xYxqf5Odo7az98URXwEQ/Tl K93j+4xewBj9LTNWe+7nbmy1RTmm9bmTHu7out7+fW9DcUVQf6WjPHPDFCziZqHVHnSY2TgHI3N 1i2R4SN2FSpmFBpqWHCl9GBGXz2O2+9hR1YbmX/oBuoigLamhngPiI0YFsBx+UjJGuhg1fT6FxV f8OiuOWC5xHYUQW3UiRHbQlurrG7K/aWgee5XcuL/zPANMdQhEHKF+HoBiObJ6bv083Z6E2hTxs +ZB5KPcDabKJscw4XqlpiM7SWzcLvVP2nB682R3eHqKsT/R5taIUAucYc9jMJyp16Qebh//UdYA gZCr4bygFltnbYAusCl3aI1myXL9OcT2lwd78leVTCz6U/fOFQCg= X-Google-Smtp-Source: AGHT+IHjd0uV1l69LYGgNlNACP9wHZ1xyqkn0ioMIsIHN6ZahZWRdfsUZeTPCLdDDjPYzHZ1l85u/g== X-Received: by 2002:a17:903:a90:b0:27e:f201:ec90 with SMTP id d9443c01a7336-29027264d78mr240716775ad.25.1760292442924; Sun, 12 Oct 2025 11:07:22 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.07.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:07:22 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 5/6] iio: accel: bma400: Rename activity_event_en() to generic_event_en() Date: Sun, 12 Oct 2025 23:36:12 +0530 Message-ID: <20251012180619.195244-6-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The function activity_event_en() configures the generic interrupts GEN1 and GEN2, which are used for activity and inactivity detection as per the datasheet. The existing name is misleading, since the device also provides activity change and activity recognition interrupts. Activity change interrupt is not supported yet whereas Activity recognition interrupt is configured in a different function. Rename activity_event_en() to generic_event_en() to better reflect its actual purpose. No functional changes intended. Signed-off-by: Akshay Jindal --- drivers/iio/accel/bma400_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index cec59d409531..840c4156ba60 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -1190,9 +1190,9 @@ static int bma400_steps_event_enable(struct bma400_da= ta *data, int state) return 0; } =20 -static int bma400_activity_event_en(struct bma400_data *data, - enum iio_event_direction dir, - int state) +static int bma400_generic_event_en(struct bma400_data *data, + enum iio_event_direction dir, + int state) { int ret; unsigned int intrmask, regval; @@ -1337,7 +1337,7 @@ static int bma400_write_event_config(struct iio_dev *= indio_dev, switch (type) { case IIO_EV_TYPE_MAG: mutex_lock(&data->mutex); - ret =3D bma400_activity_event_en(data, dir, state); + ret =3D bma400_generic_event_en(data, dir, state); mutex_unlock(&data->mutex); return ret; case IIO_EV_TYPE_GESTURE: --=20 2.43.0 From nobody Fri Dec 19 13:46:25 2025 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E6842F28F8 for ; Sun, 12 Oct 2025 18:07:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292450; cv=none; b=Tk1PpVeNrDWhU1C0f7yV66Y3RdAVIIqkTKiAm7/nHr4zJD9rXTMWcjZvudqxhKBo44oUybH/GABMdm4ekUlNbnOjxkYEAw8IABTo2ao28xjoYHkNjtrNpNrIGm4KJsJSj7Q/AKPHfhuJHCrCe9yJX5Wk5b3+fMKSG5xReKsDS8I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760292450; c=relaxed/simple; bh=jg2NE16emE6/A9nnGAISOkOaG4gb4wO16wIq6mM5VFU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iIIITQYaGAmFREo8q+vt91DcQgz0zMXdaystDv1ms6RN/wqS6fqyr+S1Z31s2KbVTw1k/Jwjwy78WxHYMTA6Bwrseme1LDyigAXM7VjewSznb9l0h+wpqNMIgEezafQW5Hz1PSofheFW3Tx83R5ekq2XkqKaYZ7K7NorrFLxkcM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mwIyc7OO; arc=none smtp.client-ip=209.85.215.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mwIyc7OO" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-b57bffc0248so2515685a12.0 for ; Sun, 12 Oct 2025 11:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760292449; x=1760897249; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h4ud3JfniFPXrvZXNPpGJmhJ0NKwQUht98YQCdsaH54=; b=mwIyc7OO6NJwbovsJbrCto84mwQrRL5O5ADuPoTWKtl98q4mJThs327Uo+nZyGWaBj n0UcjQjl8QvtwiBBsPWHZuXpgU6QIbdLZiwv+GEl3hNc67qkb7AbqJZHUYywoPMln/g7 2QAgSj/AKLtQRwWgUkPf3yC9qqFbSDz2okU+vrJKwSCB0nptbuA1s2ec1EnYtDNdHgxP ecBAJwlqE4ITgMO4NYXgxu9xtI0yzEvsqIsFHthyb3s+sJS4YWNnKBci9M4QMNiwvY7l K5gH5hrVbGjtFhUUkMav2YqMVR1QPDKuvL7BPeglsl4OvfUalYCEdV3Bs8qdZjR59V9f S9ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760292449; x=1760897249; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h4ud3JfniFPXrvZXNPpGJmhJ0NKwQUht98YQCdsaH54=; b=VkNEQSEn9zd+kbMMsLwwUJNtTxEVbkzE6K6YR3ZfTbMdfkQMYosJOYfHPm7cYM0gHr tZazbeHodxqSUeuwGtuzbzblW3BJURpEDye5w8rqwaHYI7IeIUkSC8GUdUShdO3c4fSc 1i4UGk3PhDt3GYWdVvsZec7AVq+Ax2s6+st7ZLoL9Tjkd70gbEdKoKO6nphm84VzOZPt wppiYFsh0g1RVcE5ThLAg7YcYg4rATVDlQHyse9Gt75FPCb5fWvKV5R/IRPddmYcNWOO zKyiipM9/ab/aENtw4M/Q3oK7iaFcQACg0KshVsFPlKxaXv4tUt1zUlXg6Evmn+Hwke/ hPtg== X-Forwarded-Encrypted: i=1; AJvYcCX/fTHQ9gcbF9H2AzvULUuvLUhqHoKukTQIY/ZVibJlcwl3ym6bOedQ59nIxboBAl9DhMjZf8H18l3B82U=@vger.kernel.org X-Gm-Message-State: AOJu0YxIzU9uQ4E3/DfmjMCZ6UBkQvBUlYtBCLRARLJe9Er7/wmt+TTI T5LTscdFkpdtaaPOkD1wEXY0lhFf9K3BRK2SodlgTN6Fu+8imygp8M2SEaO/cQ== X-Gm-Gg: ASbGnctsJQl9To6LPfffXLDFHO9XyJhgD34nwnLDG2ZOY3Mq3nmtsTvCGZVzvumvxwY MVdTnZkeypd0LF/HSqtq0USlwoUxjI/ip0GwFxsy7ibu76jvCpwk7xd7VzNYTSbm9RZG6KtuAeg t7Kzv1LvqUBSaD3mj7Kvv1aBdY6a5otJG5VEGo7Po7A3D+GevDe7RsA9Q7b8ucf3BQY3QIrZrpH l2f5eAfFkeBhmUWhrTGFRoTrBOGkPJFR13aFmmzagucR478Jh+FxPTWjKcCX2exYMJikgoiEpt4 psOQIeEORHVW9dcYBTSA/pgI1xIwdjXa1hVhNCRwO0Ylelrsz9bUZKOM2zsTuYBzpACg0ZjQ9St RJLnpWzbRNkdLOa6hEBNbpU2Jy5YHQvXBCHD814QgJbbcfTEigkDpvEIpU5Rsmg== X-Google-Smtp-Source: AGHT+IFQrrOSKTP+v5RJLdPE2qomGexJJnmalRps8ECs1c2T3X8NS+ECJAuU0t4ycD7nqvokir+lIg== X-Received: by 2002:a17:903:38c7:b0:269:aba9:ffd7 with SMTP id d9443c01a7336-28ec9cafcc7mr251834875ad.25.1760292448673; Sun, 12 Oct 2025 11:07:28 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.65.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f56c0fsm111734345ad.104.2025.10.12.11.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 11:07:28 -0700 (PDT) From: Akshay Jindal To: dan@dlrobertson.com, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: Akshay Jindal , shuah@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 6/6] iio: accel: bma400: Add detail to comments in GEN INTR configuration Date: Sun, 12 Oct 2025 23:36:13 +0530 Message-ID: <20251012180619.195244-7-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251012180619.195244-1-akshayaj.lkd@gmail.com> References: <20251012180619.195244-1-akshayaj.lkd@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Append additional information to existing comments in the generic interrupt configuration code to provide more context. Signed-off-by: Akshay Jindal --- drivers/iio/accel/bma400_core.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_cor= e.c index 840c4156ba60..05f72707f830 100644 --- a/drivers/iio/accel/bma400_core.c +++ b/drivers/iio/accel/bma400_core.c @@ -1208,7 +1208,10 @@ static int bma400_generic_event_en(struct bma400_dat= a *data, detect_criterion =3D bma400_genintr->detect_mode; intrmask =3D bma400_genintr->intrmask; =20 - /* Enabling all axis for interrupt evaluation */ + /* + * Enabling all axis for interrupt evaluation + * Acc_filt2 is recommended as data source in datasheet (Section 4.7) + */ ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 0), BMA400_GENINT_CONFIG0_X_EN_MASK | BMA400_GENINT_CONFIG0_Y_EN_MASK | @@ -1226,7 +1229,10 @@ static int bma400_generic_event_en(struct bma400_dat= a *data, if (ret) return ret; =20 - /* Initial value to avoid interrupts while enabling*/ + /* + * Initial value to avoid interrupts while enabling + * Value is in units of 8mg/lsb, i.e. effective val is val * 8mg/lsb + */ ret =3D regmap_write(data->regmap, BMA400_GENINT_CONFIG_REG(genintr, 2), = 0x0A); if (ret) return ret; --=20 2.43.0