From nobody Sun Feb 8 05:35:20 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 69A492236E0 for ; Tue, 7 Oct 2025 05:55:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816531; cv=none; b=O44Qc9s+67JHGz7BDvpEzqpAyDxfVWtO3yWYrgAr3w3fEW2sELCEUEQnDjiM7w4FpcFApF9M0MkigCRC7zQSUycVqRr5ZAJzaRNMQUDQIr7bnyxDmMpct4aF1L/kpsJUCBPIxmy6bZNJa+EZDHDVBovQ+U7EwtBEwn5zP+yl/zM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816531; c=relaxed/simple; bh=uN0/Osr1oyFn4mzHg77jsE3UwiQcSspVPgEqR4FAYEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LEjG9jcW8cujZFbvA4KNB8ScfX9Kh6A/2SBWyCSENtrAD/lmyxH1HRf8wJQc5Lf/j7RLq8lUCd39ljRMlEyIqqDIqiWG0zeurXofJmSvF10uwNJMaaMYXodINy389vZ6aNfxOtBjCWRHvh+WWuBWTu78t7ZfsKm8/f3hAjfxHXY= 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=RGRo4CJB; arc=none smtp.client-ip=209.85.216.51 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="RGRo4CJB" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-3306d3ab2e4so6864097a91.3 for ; Mon, 06 Oct 2025 22:55:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816529; x=1760421329; 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=GaapfISAKd+MIReLhndo1piHFwvjOUQGdV27T6AdMYA=; b=RGRo4CJB+8PmEVtCZXOBibttYj2UZg7fN0ZifhLcajakjAR6MNSiloGFOp6yACBHq7 uIg+IWq3MFLlz0mWVt5g+okHV8SOjLLzr7S2HhY44rfnSiMU0OAjIr3IOs7gRB+4q6Oq 4oU1c3/mvT9BsWelk6q66a//mhT/bUWOEPZqqmrCwsOOFc6xe5ALlNMkRPt1TokTvBhX ZhwK1cxaVWMCr9+JXc4wsyl1A5LqIepDr8dZboaHTvNiEk4YVk/g2PGe7ff2n63ZteeO yf5E2ALD4my0Xcss5Vj3hDeu7zNQsYTwQniSKVvek+1Svm5XbX7kWs9AMI6JN9xYMozD v8sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816529; x=1760421329; 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=GaapfISAKd+MIReLhndo1piHFwvjOUQGdV27T6AdMYA=; b=fQ4nKPtRJy+KAWbpK8Hanmpib/LL8WflQgkNhi9HxdDk62La/xAOjFR3XvMWrQCWDq gM4kE2OxMWiIhx6AQSBJXuifzpLjuMBJFhKgPDrz7CEQYfdThSxJ1p93PhyDGUkTOJSo AYUfvYxGYEMI3HFDao6zmCD7DIA6BtQ2vrsKidG+xM2hRrdmIdF08PPo54eFlceZYXvR CdGrAJtGANBh7suCTDDy1F3iWfbGcSot0s4SLB8ppxyPtHMzxdhNTejtnN9afn2nSvn4 9B8JMUq6V4IsVsNk4hsQc5fMtt0RqKZ9QPkP+eXM9jrRx+0udzKknlIBxDY+lomwX5LN O9Cg== X-Forwarded-Encrypted: i=1; AJvYcCVVdzuXidE3d6OhX7luKKdSqR77XJwrwmDcq/CI+cPyJFrtohGWTz24RH3cqy0yc9X4KYtbezBTaN2MKso=@vger.kernel.org X-Gm-Message-State: AOJu0Yws/HCZXgwzjpUVlchwSW2Dj/EOj2KpHzzT6CLnwnfuq/yEuX1H U4/ognb/02acVDinW4tczjyDiSWnHcx0educwRBmNA/gs7lcVbZJ26BD X-Gm-Gg: ASbGnctnArimxCX9oBOPCVbOMd/G4Y2OS1oo+fQXumKNnhJXCFaf/nrJkB6A9Jmafei YsHjePmaAYGLHZ5xKOQ/M5v5ExPbis+9OW9E1Tq5YF3hV0iQ97SV90Ef/RjRsnTU0I9pGtwNoBO lCBMJDKiXAsKrG70aC1e+ZYpI4UX4PSmtbwzQ25bxK9nzhUdwW3xQ7kEPJdO+rSTfwnPlDRGTQq cgRbdx88phdfjhoULuqljkOUXuqM5pDEQCw3q2d66hb0KigMgCUTnqvrzasRAMxRlAAwLiYFChi q4LplBOTvd8ul0lxMKj5HhGAr51FUASEMFC7I2fgpZYr8ppuhBCc2SR+iWvINBCMa/ArK5asqUW +YaQcIl2vv2htgNhKfu4RhnWrARij0zsTMK8rXGbomDoDi9YNRtdji6mN X-Google-Smtp-Source: AGHT+IHUq2ZcYG0yGuBvXa3Xm1jhL3La1iRjIFXHB5+CxYilBDyYGys09XE/d/fMcK7BtvhklvpM7A== X-Received: by 2002:a17:90b:4ac9:b0:338:2ef8:14af with SMTP id 98e67ed59e1d1-339c27bf738mr20031254a91.37.1759816528427; Mon, 06 Oct 2025 22:55:28 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:27 -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 v4 1/6] iio: accel: bma400: Reorganize and rename register and field macros Date: Tue, 7 Oct 2025 11:25:01 +0530 Message-ID: <20251007055511.108984-2-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 No functional changes are intended. Signed-off-by: Akshay Jindal --- drivers/iio/accel/bma400.h | 110 +++++++++-------- drivers/iio/accel/bma400_core.c | 212 ++++++++++++++++---------------- 2 files changed, 163 insertions(+), 159 deletions(-) diff --git a/drivers/iio/accel/bma400.h b/drivers/iio/accel/bma400.h index 932358b45f17..ae3411c090c9 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -16,31 +16,37 @@ * 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_STAT1_REG 0x0f #define BMA400_INT_STAT2_REG 0x10 -#define BMA400_INT12_MAP_REG 0x23 -#define BMA400_INT_ENG_OVRUN_MSK BIT(4) +#define BMA400_ENG_OVRUN_INT_STAT_MASK BIT(4) +#define BMA400_STEP_INT_STAT_MASK GENMASK(9, 8) +#define BMA400_S_TAP_INT_STAT_MASK BIT(10) +#define BMA400_D_TAP_INT_STAT_MASK BIT(11) =20 /* Temperature register */ #define BMA400_TEMP_DATA_REG 0x11 @@ -55,70 +61,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 +142,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..35d2b90425f8 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_ENG_OVRUN_INT_STAT_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_S_TAP_INT_STAT_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_D_TAP_INT_STAT_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_CONFIG0_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_CONFIG0_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_STEP_INT_STAT_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_CONFIG0_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 Sun Feb 8 05:35:20 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 9456D214A79 for ; Tue, 7 Oct 2025 05:55:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816536; cv=none; b=D/wx7z7rWa8WWERCruJpGqJaysR2eehJnFy9lAoSxX6xC92CCXfyI26bPKkDxDbZT4/PWsycdUzWAe+O6yfdGYrd+ArQs8h6m6u5M0Uo2vsMF/J28JN8nlW/T2XIcOHaV0P4a6Mg/1+zTVDeiuDaDop2cpDQTDpOpQixzo++TYE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816536; c=relaxed/simple; bh=ZeuZdARXiHTymxE1JlTUOp5nSPhm3AOcEAYBoYJnaes=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J0UhrcG/UW1PhgD1RymjfIdwtBe7wQSZVGHwsEd+TGnaDtQNdJlS6mekFs0vXqSPl6sLVJmNrotyll0xF2otOUPteEzPCwoSf/CBkkU9rtKU7dYqs/ABfa5CDNUFHEJ1GRHLpm52u5JnEACxawPz8mmtiZ5b8z+lKeYH82qAb0g= 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=jZsIoFUA; arc=none smtp.client-ip=209.85.210.179 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="jZsIoFUA" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-77f1f29a551so7373594b3a.3 for ; Mon, 06 Oct 2025 22:55:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816534; x=1760421334; 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=0X1+1j7EZByUZ/MjMj/zCkGEHjVnb1pL8CqUc0voxw4=; b=jZsIoFUAzHrvZbS9/rDo1YhiW4EggRtba6uCUYnrVRkayym4mDqZOeRhTOATOWJboz I7gIweixT93Aa7ybwFdfFx5EDTEnvoMg4RQDSeiPvGqNnNXQ7WvWY93hZKh3puzEZJ41 iFe3iqn62dzoM6fojc/i56EjL3ryMy5piP+6Phxh2K7ocVRP8ya5PGCUH4ABmB63xz7Y DbNK0pirzIUAK1OAoL9wYdgVzVh+6SOgqL5zT6ITZd/ccijx8OljPw92NFUm9v3K8rXl I8eEKvJGVfr61ZjvzWt34Z5TQRRLIBFUck2wkjRDIWFgCZO07iSfUZOve0bACrobnsie 1vrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816534; x=1760421334; 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=0X1+1j7EZByUZ/MjMj/zCkGEHjVnb1pL8CqUc0voxw4=; b=oGtz3UmzY0kabcmj2WSUI/KnBYly0tX0rlgKXPrU+kZdBzrc+JCTpxSuwvOR6+FiCy s4Zz6/8slNOTo32QajmxCleQQe13/1OIPblnzSOXpOCZt05VAFPvWOS5ImW8mvpRzwU+ uNYVit79+esrJuM5UBLmX7LpTN50P4/8AQ6Ph0qf6MNoKkwhdC+hdqOamhP4GN1I4NY2 iZpxoI/p4/By/4TT3qkCOLhRcPlLI8CRGoOKZz2H1ldM23UaglxdpI0d+eNIWlUhkLCe hd4OyTvKNYOx3PejYGajmIIFvZ2MMxnKDTk5xoo+tWhWz/GqDUGtpvdxdNns58hzr8xy N1iw== X-Forwarded-Encrypted: i=1; AJvYcCUHgYJJN54hVQAB0yNk3K60FRwptIn+YgMQ7qNqa7ykP682EDl8KEwi4QgCs75oBV7z/sgpc7CM8YS46UQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzQy5Tq+IRFT7/0eqNtaiSwo9vJN1A+BG3KW9uSZWnhyY1O9t96 CgpsJiRKTFQSImG28HYPfneBzjFFUb5tjZ+7IpPKdP8oIcdeVNmKKntG X-Gm-Gg: ASbGncvY9So2VcHocwf2pmhP4Dkg7l5iKatFG0aqcVHAjGz3PGlKuMUfCqK46qGVHTU Nuic1B41kbKTV4BPYTNyAIoTwxiY6VFFnJIGlDsvsge3IhjJWsoQ8edrEitZen0mAvds5qIeX0g ZqDi7iRCWq9JmBqWqtKGGLSZKXAhV1NpAyXIDDxpFCuzcCJaCSl6TWmgubBTcTkJTzmxt3JM1F+ /Tw83ecXi2gXrmShZp55If2+mjEgeWWYcXUKbv2pS/wvu9gw9/qUgC2QEj3cHjl0hHb98ygOj/N r/EYncivabDFk2AOL3SnNaCmstbPt2jF2Crg9AVkibHYozYCA3wh2ATmAZJYcENZMpbdTIgUuaj eLYiZmtlDLh/yfkI99VbhBkdFamHn2ZaWPcXKSOXRpV6orFv8X1CPvS7E X-Google-Smtp-Source: AGHT+IHSS//6jn631H9SIMTuLsvPZlhi2waQ0tfsUdXJNWA75Dgnd2jEdLw04ZD5wYBDEl3kfzmYmg== X-Received: by 2002:a05:6a21:e083:b0:253:1e04:4e8 with SMTP id adf61e73a8af0-32b62107fcdmr20491457637.56.1759816533863; Mon, 06 Oct 2025 22:55:33 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:33 -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 v4 2/6] iio: accel: bma400: Use macros for generic event configuration values Date: Tue, 7 Oct 2025 11:25:02 +0530 Message-ID: <20251007055511.108984-3-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 ae3411c090c9..60fc323958f3 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -106,8 +106,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 35d2b90425f8..58c378ba9931 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 Sun Feb 8 05:35:20 2026 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (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 011FA221FDC for ; Tue, 7 Oct 2025 05:55:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816541; cv=none; b=nqpkbL3cp/N1AOTdzxVsdgIyT3TZ+M9BPaPcKBIAATj3GH0lPM3SMTcoQPHOoZHx2J4mHqAJk5a0T4pKULAL4qipHZRMYPgHCYz41QZD68f7q4iTcV7qLf82/nfb7QXdVTlNQ6jeXFzl0x7M3QmfCI19fU/Y9/x+W74fSdgjBBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816541; c=relaxed/simple; bh=N1hoppWvFWdMHgHPGR3fy/OrxavXhpIhCQkkPMNM7zQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RIyGXQyw/aDzGjyI3EbruVrj/aZ69yXPCQBO+1M8bYaqkgdjwxBoFY5NcFe/0LUn9Me6ZI0xCUnvnMkeBbESDYBC9Q4UchwPRZZTThHSlzwcspkcyPQC1N6ac4EWvpCMTl9/0LjXptJ4unREjzrTUH2r3jW4SZI+2q+fYclrriM= 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=P+aq2zNh; arc=none smtp.client-ip=209.85.216.41 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="P+aq2zNh" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-3369dcfef12so6454097a91.2 for ; Mon, 06 Oct 2025 22:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816539; x=1760421339; 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=/ev+lPBLOT3f1ol4vy53Jgd0ENs8ZOWt2KgWh8zRfjk=; b=P+aq2zNhEdqvMtcnMSpbA4aR2yMXlNep9fV7j3+MHFRv7sSPE5EW8Ceu9oVvGQOJc9 soQL/ITEE4Gtdo2XXK9MoQLrsy1FI+aatVW7gQxTGpSExyXdtCKsYVY6xXeLDX+8IHD0 5ZxnxGAGTaD9pV3Cynp/xAul1G/Ijf/z2m/ojNKKwE6PKpWKsG78noztLRgzMGgxUGBK JWJm/FGVskHp2yJmo3Uuwen6DTM5j9Bb/sEvtdDMegfC8mx2gLI5aCM0cDtQH25yrnvi b7bdZ7rUV5aymm1wy+RT8wvvq9Al9ATVBy5pWPeIriKIPw2NF6eiwzZQlReEyOL0CKxx bHVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816539; x=1760421339; 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=/ev+lPBLOT3f1ol4vy53Jgd0ENs8ZOWt2KgWh8zRfjk=; b=vCPbBiQtzFy64HZlsSbLkR4VJH1Hy+KBO4RlxjSsxuUQAiOI1GQvr/Qq+BgL5iU5qw DIh1DLIrvAmDPXW2072TOfzjbP3etI0kucbRkmUfI+kRJTbE4x6X4xv6XVDZR8rgF0mS j2aBrUm1haM0MBPpcWlKYmqkpcU7AEYtvvxqNJmjXRwYIeZzTj2IQZBpgazWAjnV95xb j4gyTEsxjtgWbhM1JK+YzLqLNvAc82kYdyMOTpGkuXjVCzJk4lUthKp4dJvgZxbfU2yB 5mgyLaNuwzKBHaqYa900iTsF6cLpJFpf21RSrfvcLPTThoyI3qT7ZRMgyhEMkkk9yDRz zu4w== X-Forwarded-Encrypted: i=1; AJvYcCXjTmdgdNXXXCL+EjT421aecp4p38HgphdXNi+Apm58Bbyommj1T5ds24hL74HtMdNzoytWWsf2C++XXR4=@vger.kernel.org X-Gm-Message-State: AOJu0YyfK11/YmyO13qQdBdeWqQPk0usJE746v953QtXeawNSb8twa8t 4Yrwl1Bl6/6ENNxuKt8nlhvfBBTV+R9rgQbkF7xmX+8Gokvgoe2yy5sv X-Gm-Gg: ASbGncu31YnfEvQZiTKf3tA9TfXBLNUVfN3OfMl/XAqxU11QSAhkEO2wJ3IugrNC23S CbOaH/eCJtk5aAEtk4sviDBznOU3kPNfNV27yGCYXaHKYtUwfXm6lweG7/ZDPI6qpntX/P+6EIt LWgiWn0YiS3on1Z5913F/Q4LpsqlGfzUowxVXuixkfRcx4ApDm6sXelpUWh46ynDn2xQp/5fc3E O6KikLz79e7YACkE2u3kpwrN6N4/H2W6D4BYLNp2cDXeXrJcfY9kfY94KWz5IhqmQOhwFfNjGp0 5z47B6tlAeAAkIngOTVkBl2HvML9k/tZfc6GaDy++10SWtfKM2xu/4Yt0UN00JvTBwGem9U2WvQ Yb8qN5RYB+nM4iaNpfcxnkHm2CVBQWondKl66gizPciKPvcSjvUSlgT3f X-Google-Smtp-Source: AGHT+IEUgQb04MZx6gU9pgrqckuEVzh7bdmcSUp1295wCV/EDqkCFkQgvaU7/ATYvOGFOpySWnos5w== X-Received: by 2002:a17:90b:2544:b0:339:d03e:2a11 with SMTP id 98e67ed59e1d1-339d03e2c14mr13510320a91.14.1759816538908; Mon, 06 Oct 2025 22:55:38 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:38 -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 v4 3/6] iio: accel: bma400: Use index-based register addressing and lookup Date: Tue, 7 Oct 2025 11:25:03 +0530 Message-ID: <20251007055511.108984-4-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 60fc323958f3..12836111710e 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -91,6 +91,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) @@ -103,8 +108,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) @@ -138,10 +147,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 58c378ba9931..a0e994f9882b 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 Sun Feb 8 05:35:20 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (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 2164D2253EE for ; Tue, 7 Oct 2025 05:55:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816546; cv=none; b=mdivB9WqrEkCI9MOXQB0XBMMo5clppvIg+gd2fpIDOODKigXipmRHwkyByaxwGNMnp+jB4pkR0mHjdjRrtDZWW1hIWIt7+lJrGBSiB/udYEByiLAzF8o+1aVShsOX0CHEg1UlMnqzm9Phmbt0zxuQbqR/fOq/Wcxsau7bVHd6Ws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816546; c=relaxed/simple; bh=Hsm386edsEgo2dKwST7fj8bp3dCE8dDU900XM/na56Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sS3Ms9bpV0FqDohMfKkRbchmbkoaDpiC6wt/A5x1uL/TwZHTPrfaFHUlVnMapX5zP4iPugwglrbJzLQ6lq8P4JRRFAmS8X8k2DJi+ogUDpRfnGiQN5TB6LoKWXek79zqlfnCyuVsN4AM3vcEKrjTEKfX2mQwoiFSpx1AAIiuGhs= 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=YCOOXfhc; arc=none smtp.client-ip=209.85.216.43 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="YCOOXfhc" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-3352018e051so6876252a91.0 for ; Mon, 06 Oct 2025 22:55:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816544; x=1760421344; 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=X4w/nd5rmbgVq820HXsBhd3BuutmUjq9o+AodC2L7+g=; b=YCOOXfhcydVWmXB4bmq6Id/SXSdvLtRre55JTKwAKSEfVg8T6IhuUkVFCiMfs2nyno AX3+1lJPRnCfkts3Cao6z3+80ogYbGlw+x5+zAiPf2Lpyz9bqmtk5gib3tkI/cRt42Gw 59eFzid6JiSbBDt97jh76SaORwF9EvV0nq1VjGDDFerEnyk3EkXW9Bptt7hv4M8+Qaib Tm6eOmL+20LqCdp28aVLy7Xyd15pfS19G87x05veNfcu/Adflpj3SvErA3T7LdARzhUr wVtGTaYLvULo3jv46Gsrnq6jRAbKY4CcGjenTt7vpKLf/bBg8gHT/IPKJxurvk5trAmf 23Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816544; x=1760421344; 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=X4w/nd5rmbgVq820HXsBhd3BuutmUjq9o+AodC2L7+g=; b=WtZB+5SwgLwiGCeQ1pPUD57ilXAMIQB6DAhgrikwT5E3ZeGTiFXwiFPqNP8AgBTgbY Boar8ci8F0A1o8W/m/9UaGQrWSy5ejJbWUtpJzSDZCRetlXFlZoe+eYP3qtfa+yYsTJe 9LQ9VJ5be7SldAQD/3SaXVL1BxthDwPa7Xke1iAE8xUObVn2cjQ091/bU/jb2JprBdkF dUOeEfFBKxELVxC2pITsrAcQlH8hVbJGeoZTBEt0U3qz+3nE/uyhTQ/YIzuHSKn4g7r/ Wzbh6KBWfWx9H26KFcrMhRA8eBieqQEZmYmBtkeq3gySGBnjOdSK4DfU9LNCTUaHsNJj Qadw== X-Forwarded-Encrypted: i=1; AJvYcCUoSw0MA6Nfpp7NCKV+CWw34ws5ZRjjG8D08RhwAz3ig34NG367CiPgGPUfBILf51/vvSFc3ncz90LTHYQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxcNsb7GgX/9RmJWDPq/JU/5bJHiMT393hwo1ePjLgLnt2kQhqK RGJjS9VlJ85G0skC2aB1LBngxCQtCLsWG0v53w1vAqrDmNfdaz+NMIKo X-Gm-Gg: ASbGncvNCM6sV5gHGw3EQ2nEefZUGykiV3y2GVtR/WJD1QNHdfg4NMXMA/7+fhAQFAy 5H5LMZ4hvG3CF5iFsdND0IhH3vVogRolRzRgfatr0GYyNJI3bw5ff/bENY18m3nhkYpS+poVwh7 W8F/0vWVBbOfnvAZq967DMjvk8zNR5Uu/bkzvN9abSNrMb3zuR2PWXhFEQd1CyEc615zweAy793 GDZrKKFj04K39ZUw1VMzwkTCtv3MtWNwYmdJtGZBj6aF97hrxH4n1+NZvSOR/lQcRrmJW02aQSv HcL3yrHyu5jNB/U98oT1KTx2lbYi4i6XnRkCJnE7XFcQ86x0rhSA2KlGwqM+T2afZ2da9+mnU3Y x0IBYSg7cePt7TSLs/UILz18CGELPjB4UhPpuRQ6zR90K1CxXfU4qWP0YRt3UGSvcFu8= X-Google-Smtp-Source: AGHT+IHGq5lnEao3EPpA/kkYQkTWiqahXKnLIaznnb1YAy69hlrybXkT66SGtfHrZHLstajCPK/4qA== X-Received: by 2002:a17:90a:e7c2:b0:32e:9a24:2df9 with SMTP id 98e67ed59e1d1-339c2720c8amr21600122a91.14.1759816544072; Mon, 06 Oct 2025 22:55:44 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:43 -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 v4 4/6] iio: accel: bma400: Replace bit shifts with FIELD_PREP and FIELD_GET Date: Tue, 7 Oct 2025 11:25:04 +0530 Message-ID: <20251007055511.108984-5-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 --- 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 12836111710e..d0e91481c799 100644 --- a/drivers/iio/accel/bma400.h +++ b/drivers/iio/accel/bma400.h @@ -68,7 +68,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) @@ -79,9 +78,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 a0e994f9882b..665c8df93008 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 Sun Feb 8 05:35:20 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (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 547CE23312D for ; Tue, 7 Oct 2025 05:55:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816552; cv=none; b=jtsXLntvDR1zsbJh+amppKsxWZq6ypGEjeTPi/cDQy74kGaGlIWcWCLZm7J2UzXzwlaNFz1UvkC6UC1l//SITrYKmA11sm5AkyIc2w/BV0FGZui6O3gV4tScFZCL9WH6DclpF0Q6dR2Ghe/k8OSajVnPAa6uWdn2U+JJQx6TN1c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816552; c=relaxed/simple; bh=Coxv9LkBZ+56ZqgTTagylAjun+Rfk90LFEZcv328N2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r0ixwBOZR+rlkA9hD/9zEBOGL2JHLNDN0oMMxfA5zRYi/1nTMtY8tMXcysRiMfphA5lJ3JdGGPGkQ5PQL7MmV89XblfpP4OYWHogJE2qNhpPbIFH9EGN6QCNI68Fkano+QfVo+9NzrMHWi2SaupyPVraEbjGFQyXLkM0ev5C0i0= 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=NymTIX3z; arc=none smtp.client-ip=209.85.216.44 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="NymTIX3z" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-339d53f4960so2901379a91.3 for ; Mon, 06 Oct 2025 22:55:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816550; x=1760421350; 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=ZQsI6ooSHKXCcKpweqSzinWozKmIkvvbAPQL3qXw8Wo=; b=NymTIX3zD0fNRDQHo6ItemKgH+0Y0tYA4jAC4jCYJcWUWKbfTlfm1yo9OkDtEWFBjx XJCCbcd58iwKAtFzcH8lJO1+rWNGZmaXjOScSxkzdZr/I8nluXvTKIS5ABSQ173q6ul9 2nM7EcJzuWZfgugkOeBSVO/AzP8zLAlTKwOw7DrmIz1L6706vJtC3rj35jCc6G87y/e5 3d8YYbpE1jCxSLmrDOZuwZv01WObPJCyThGVOqqOiirGA4RlAM4x/Z4O9SXRxrR2WZDT IavmOnA8HjGG90LvXHmng2EPnWHOzZxeRLSRBWLsSzz3i7y5K7euXnVrl0nWr3uj6EPG PArA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816550; x=1760421350; 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=ZQsI6ooSHKXCcKpweqSzinWozKmIkvvbAPQL3qXw8Wo=; b=SBvcfMG2Hdeq9INa6JaLvxfC2Kokx6gIJ9R3hln3nMX+YA7ctwTrqvU1XFQZAptGxF dDA75jNQ1Q9xmvLCh4ognwFaCSLI5Q7qYQi64lgknXR5wCtLhIELBVx+hUBqLI0E17AY /aVTLk3uqwUny2mltP1KAAxz5SC2LpkNaGUL/DWOkWs1RqfprFKziLerwjewHtupz/yO GqARJ17s2Ru41QBRdX4AuOk+vCwJzCkejGFGWk1ORa1d4YM7Ke7/UlMOLw40qWTGO4if dPZFccggFgpmRZhx46aoG2aj9b30ohbmEsQD8P8PmIfrRx04R6fsNXi1nS4ygGUEF8eW CnQA== X-Forwarded-Encrypted: i=1; AJvYcCX7GQYH1iy564bTUXd5lt3R89u4+5+73+VTvGYsOK+EYQ5cGSyIe/vIvNCVWE72Ot6tFJksA87x8YIlwDg=@vger.kernel.org X-Gm-Message-State: AOJu0YxreDdLeJpgugtAwYA/byIIKlNExQSkarcITcOlOkIQEcgOljXB 0jfQoTuZaXriwe0dTDF5AIYj0hgl/RHIPAuaQwffvGzh0hnTvM/jh/yK X-Gm-Gg: ASbGncv0VGwZWXasSON3+isLDwItvub1ou4faLwCRqD9S+3LYcG27EItGl9tDwstMdw sBKlS9i311aJjzZ80DNRJc/e6MVPSi2oaTRT3kKTUlSEfJ1nZZYv/T7QtjNyQYl6erWsf4azeNh A3xf0sl3mG584oaK83SNb6DCEGh6qiuTxkQfx/XW22zrcy5EQCztmhEESk+hI34wJWFNOziEiQg pAJX0X6RmD1N+DKHuOanH2bwISGzkPYAorqu/+HHgHRsYs7RO11y2J6t4f5bFFcummcAAAukiSv 4rrx5Gzxfzox46qo8OQFRNv9ur0vW8IVFwynoNu7CkVyaLZ8G+KNAPBqZuAMUuVw1CQWLqSDRLv HGOpeWTw+1aUhOsXMX7J0HED8vkMPpshTf/pEE8M/tpG3D87I+u/G1E/I X-Google-Smtp-Source: AGHT+IHsJvBTZEKlMhO1eJwhW9FQ6KIKqanMRbgrxxnbVroNK28u90EbOtkZsfIwow+uPANEcbt0jg== X-Received: by 2002:a17:90b:4f48:b0:330:4604:3ae8 with SMTP id 98e67ed59e1d1-339c2786737mr16896516a91.21.1759816549427; Mon, 06 Oct 2025 22:55:49 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:48 -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 v4 5/6] iio: accel: bma400: Rename activity_event_en() to generic_event_en() Date: Tue, 7 Oct 2025 11:25:05 +0530 Message-ID: <20251007055511.108984-6-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 665c8df93008..1900965a1048 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 Sun Feb 8 05:35:20 2026 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (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 3170B223715 for ; Tue, 7 Oct 2025 05:55:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816556; cv=none; b=S8zWsyRB0NHGSkEO5p8owfECka4qiy14krqUcQ5T4nNXXaxVOh/z+NK1YctwzXanFNnw1Wt6ddWevgtDpbMzUvF8Rljlhnk125eq1iAI8244PZMXugFA83g6q52VSZCtWpciG33+8qGQDoI7uhkgjgtXam29hIVT9FfNdqiTGq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759816556; c=relaxed/simple; bh=w5Dx5aQDOiYbAA5Gt08UwsESWokWabq7fndMaReOSrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dNFRWAMFe0NvaTgxMoHD8cWCjaNDAVT6qOpw2Ma1vX0FJPY1LhK3JeyltHC2igqxGkfNX4IUGXzfuX5UeGhMyfIYh/47ZQ1fPeZXbcKI0JI0WCG3vcf8AQFECYEuVx40P5DXhQuFo3TdVZXmCrmprshgVXSEeG+AfRXMkkYfSj4= 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=aw7CWrtv; arc=none smtp.client-ip=209.85.216.45 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="aw7CWrtv" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-33082aed31dso6619182a91.3 for ; Mon, 06 Oct 2025 22:55:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759816554; x=1760421354; 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=Ug8n5s9iNQfFCXhW68LT+padmCh+3CgLtza9G1u1odc=; b=aw7CWrtvQ6r6l19naYGuSs7YcpSq1UZ9PQ+TCQBubwYiUrUKrBhhWuUL3Lzsj7JP6V Le3qEOAdCcN0ORmPzOGZlPlqOvfhReoeBgmnijnsT6cnG9RmtaCZwinqJeqX0rexx0P7 FPqIvGYeWHV7I2Z5kjTxujNny9h8h+kUNZZd46ckGpIKkPeCDIqynAmMz6f1G5XcPXTs Ou8d+cfaTZdZqS4bSQ7kNzJsUIZWlOh41fysGtAkiLS2DJYX6lM+HeHQG92I8dUM5Tne 2/Nz1eYikWt3dcivhPhR9q7zuB4S93YwdbUc8qTbKHbB3/cDYN7Oh0OyIhBBuCyG1K1J npMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759816554; x=1760421354; 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=Ug8n5s9iNQfFCXhW68LT+padmCh+3CgLtza9G1u1odc=; b=TXzca8P+1oZZFAcEUk5RV4vr/KtsUImu07/e5yjbXSY+uKlKtXyOofHL0vV5+Vr/xp osa1nU3lFkm8Ahqq7I/jYDzUs44zFPZA4CCHx9i7NdbgJHSSNHwxCYti7j67JLEEgaKb BqiDjrCrdPd5sdsItyq2vCge4HSvTCL+Ljg3mlUStrMhiDLZjA3pGS2TucwoDO9++boK MFP8zlpaA8M7UNzS6Vdl1/sYhs9eXgt/LVB+JAm/+z0qgSZtVOFrAIQib77/OfmU/W8A XLz/e4Ci6rBdslKB9dd5SU6rVpHjv2u1sYExkGTq6Cp+idCyNqtxDFl2ArJRZRniwixk UzQw== X-Forwarded-Encrypted: i=1; AJvYcCWZGkleQMZbCw0TaFmRTagxOZDlKDeUAum2G4Ky4W7pMZhPLITbipLI/QVavWi2h2IMufEb8wPNqOfWSf0=@vger.kernel.org X-Gm-Message-State: AOJu0YxPka1qcLszgF/Y2LJ1yHmwnIMnuVRafoXQkFUV+ydXg8ait61x yqtKWPlKcc8tOKCEnSVUuP77dKMjzfWW1T8SG0h6tR91sn2TraQfPF6C X-Gm-Gg: ASbGnct8/q57T+ODKecz/teDevV2a/0aPqTnVd+NBKu8ffSJ9epvh7IVlzULtnJgjdf gfepuePB9pPPKA9seWNgB+cYSCOO4ecia7PoUJo4wlbrtzkfWiFUOHd0mePZnWpwXai4Rx7jzvd dLZunfTBB1M0Nhj1S04nmhYklW3QbJSWfzvRtb/UIXn6rFIg6rCWIZlxr9ZOU6w79/MN26BXaQA dVYwX212mOwVkKdhHUoaNBwgBSXDLBi+rMwxTmel6BoeP1WJa/2Ev/p4gaHPyoaUgVRyFwVJ/Jz /VE5xwkkt2B21NuDFMnLtTxbVBoF1ijn/OgE8nLm0E5OA0vMymo56z5YCq9RdC9qyn0wnJW4H/a 32iNysP0iE9Io4jdzaA+dHIMN8iyJrZGaeRPaMjZrnECL0+3tKlncKaAuDrTRBz3L15c= X-Google-Smtp-Source: AGHT+IERCfgtjRUaQBMD0KBknY+xzV3Iu/Li7bGycfY5eWzpW/y9WlGITA+yMPag9fx+AvTtiDypuw== X-Received: by 2002:a17:90b:3b50:b0:32e:a10b:ce33 with SMTP id 98e67ed59e1d1-339c278e512mr17819240a91.21.1759816554339; Mon, 06 Oct 2025 22:55:54 -0700 (PDT) Received: from akshayaj-lenovo.. ([223.233.78.22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-339c4a1a9e8sm12983829a91.11.2025.10.06.22.55.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Oct 2025 22:55:53 -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 v4 6/6] iio: accel: bma400: Add detail to comments in GEN INTR configuration Date: Tue, 7 Oct 2025 11:25:06 +0530 Message-ID: <20251007055511.108984-7-akshayaj.lkd@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251007055511.108984-1-akshayaj.lkd@gmail.com> References: <20251007055511.108984-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 1900965a1048..cf7d3951462e 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