From nobody Sun Jun 14 11:27:13 2026 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.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 5B6C13195FC for ; Thu, 2 Apr 2026 11:37:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775129863; cv=none; b=Bl17TBJFw7hcA2BeG0sthoPAeWFtIbJN8uV2Rn8V+UrsVb3HbUH1GBb8pYcZqlCDJYaBGdOhuEKaP4fA4A6Iso7laLBV8JkszhVnRKVBZSUce5VH2yC2ZizVvQfFHxumvenMHw0P/M7mqpG+vGam+yI/s12jXAoeHE/S+DZA2GY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775129863; c=relaxed/simple; bh=Qb+m3vyNjoLuBkv98+cG5kWyQGgKbZn8DiGZT4ttv/8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=dmW6zNyHnm8en3FqUMsMPlMtFSJ2xNSNvdRZ0Jegvu6blRgTtGIiW0zzlqtqRCSgCHwEJejU+i26bDijMSs4xY0Qey0ldLxjMDWCvva7Rm+cNDRTUHpkWtwj1YaIFlHbFHReV+HhodUQaQKYglvN6zxN+CGwIlAzztCUzWXib4U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=mechasystems.com; spf=fail smtp.mailfrom=mechasystems.com; dkim=pass (2048-bit key) header.d=mechasystems-com.20230601.gappssmtp.com header.i=@mechasystems-com.20230601.gappssmtp.com header.b=denL4CXg; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=mechasystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mechasystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mechasystems-com.20230601.gappssmtp.com header.i=@mechasystems-com.20230601.gappssmtp.com header.b="denL4CXg" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-c74f0c3fc16so265280a12.2 for ; Thu, 02 Apr 2026 04:37:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mechasystems-com.20230601.gappssmtp.com; s=20230601; t=1775129857; x=1775734657; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sS8BWqiAgjFtFWPZdqlWG6FpRpWc5TRma3EPhoLUPrc=; b=denL4CXgD9iiyH+jXrhmjcqdSNCAApJGhDpG2fbdOvFdQxjFmePCVeWwilpCX4JGlX Q0MELz0sfRuxn9Q84zrWBXd4vOIMUpeA6/umbVRnK7nHH3eAVPFVZ4sbxGhDbtQLfxLb IXbdVQ1/rl6cLje5oUdZGiSyGkRXvO+qJjC9x6WHrcLDrI4W1Y5MGxINEs6MTsB+dEyY HHGBKkw/lvNR9BYFCYBqBKY4xS38/diYn03tVTCeeV2qCfgpG91mXkTfG00MWG8vWmrh a3JzJVShi2+iYp/IgNKzxRLaeUmAQOvv9VwcooE9JQQGh20fGxLTodG1hkgicMUbw7lD yzvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775129857; x=1775734657; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sS8BWqiAgjFtFWPZdqlWG6FpRpWc5TRma3EPhoLUPrc=; b=buHg5fm6pHpYDnTlbqEq71o5sP8DNztPc1ABcQtgvFyxJ8B0IDYzxSbQ8oFLa+B1bm Ri9k6M7yjO0afbFkc//xqUaUwmllxHWBB2J193gDGzo1abKLbrHK+rJhY6FQXRW6XBX9 2nz0hdhX9ykFTuMBxN8amb1OfMkxTnIhzbVF96NZVuMQFi8nSlaW4PPTtZLiWy5PvtJ9 STIaY/QX9JwLfV/71kaXds3ngdQTAQ0HzUdrLcUtIdbYW6eOMint7e6sOmmJz6/C++7U gwT049SIJlGAGqfYNzK3GZQkEYN8Tn/pfRvuZ2Wx59EBzULQaWdaJR2bwBQDWDKA2+If +8HA== X-Forwarded-Encrypted: i=1; AJvYcCX/AZljSlQttZart7iZfV8P56zIt6qKABBzoE5W/UwDn6DwaHrN2ITy5rTuuCfEi3a+Qdu/scAia1hLReQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywtl+896TW4S5vclkiVUACK8l3YEoHJ9bEz1NRUrZNwIApo8iE/ 81iwkw23MbgnXORiEA2c0IxQHLn43NLHLVBo9Dnn9//5ininRmSQ4qk2OyBhr7hwKvM= X-Gm-Gg: ATEYQzyOy8LS2Kv7ZMPPiP2KWcU8kxnOdt/6QlaETDyddQ7cX4piHWVlORXQ9XN19RH lxOxwow3GZG+vv9OsWcy9sp4UVx+VPYRqnzFggW/3xlWJJAV6KOv0xmjKrq8ObAoWGqOIyTfONs o1BhKiNAw9W4nsPUKqBWRTzjhhjy9Ga/Tc5/EldQNBVkh8iWSouGPBi7yX1lYq+IkDeonQ5YSWU wXab8dt4TqYi0O8nnGiJhgKa1y4cv0AK5rlHqbiI9Xs3EGrj/XkwjXWaLPSy6zI3swI5q12312J wq7Lj3Lu/Fl8GR8DJ8ezlIz1YqHkaj1A13+cLZZlCS5GhYQXnVTxQA9K3mqf1NH8jOE17sl2ryr QPvtIDURsWDliQaz5OJ4e2UkuH6Y3otLcHPO7D1BXWenEXZuV7djeWRH5lSNI5KyZ6NT2guiTjt xkijbJMJdkzRWSrL3arUqv4SsctTRLRTM/GVU= X-Received: by 2002:a05:6a20:3c89:b0:39b:f026:6f7c with SMTP id adf61e73a8af0-39ef7718de9mr8049727637.49.1775129857336; Thu, 02 Apr 2026 04:37:37 -0700 (PDT) Received: from advait-work.. ([2409:40c2:104a:e006:73e0:8cc0:c3e4:586f]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c76c65a6b1esm2380598a12.32.2026.04.02.04.37.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 04:37:36 -0700 (PDT) From: Advait Dhamorikar To: jic23@kernel.org Cc: Advait Dhamorikar , dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] iio: magnetometer: st_magn: fix default DRDY pin selection for LIS2MDL Date: Thu, 2 Apr 2026 17:06:51 +0530 Message-ID: <20260402113653.212043-1-advaitd@mechasystems.com> X-Mailer: git-send-email 2.43.0 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 device tree binding for st,lis2mdl does not support st,drdy-int-pin property. However, when no platform data is provided and the property is absent, the driver falls back to default_magn_pdata which hardcodes drdy_int_pin =3D 2. This causes=20 `st_sensors_set_drdy_int_pin` to fail with -EINVAL because the LIS2MDL sensor settings have no INT2 DRDY mask defined. Fix this by checking the sensor's INT2 DRDY mask availability at probe time and selecting the appropriate default pin. Sensors that do not support INT2 DRDY will default to INT1, while all others retain the existing default of INT2. Signed-off-by: Advait Dhamorikar --- drivers/iio/magnetometer/st_magn_core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetom= eter/st_magn_core.c index ef348d316c00..64d7edd7b3e1 100644 --- a/drivers/iio/magnetometer/st_magn_core.c +++ b/drivers/iio/magnetometer/st_magn_core.c @@ -506,6 +506,11 @@ static const struct st_sensors_platform_data default_m= agn_pdata =3D { .drdy_int_pin =3D 2, }; =20 +/* LIS2MDL only supports DRDY on INT1 */ +static const struct st_sensors_platform_data alt_magn_pdata =3D { + .drdy_int_pin =3D 1, +}; + static int st_magn_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *ch, int *val, int *val2, long mask) @@ -628,8 +633,12 @@ int st_magn_common_probe(struct iio_dev *indio_dev) mdata->current_fullscale =3D &mdata->sensor_settings->fs.fs_avl[0]; mdata->odr =3D mdata->sensor_settings->odr.odr_avl[0].hz; =20 - if (!pdata) - pdata =3D (struct st_sensors_platform_data *)&default_magn_pdata; + if (!pdata) { + if (!mdata->sensor_settings->drdy_irq.int2.mask) + pdata =3D (struct st_sensors_platform_data *)&alt_magn_pdata; + else + pdata =3D (struct st_sensors_platform_data *)&default_magn_pdata; + } =20 err =3D st_sensors_init_sensor(indio_dev, pdata); if (err < 0) --=20 2.43.0