From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.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 61E2532573F for ; Thu, 7 May 2026 20:50:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778187047; cv=none; b=XckNR1mWyn1v3Z3WGViAgaPiRdADL5ESNpl8YgXCBfQzUtFMjwhjb4RUYplUrsGa0hpSBlJNYnULyUVekm8KY2bSZH7r+ikQiKCcQ1QDzD7x8KhOwlhQmU02O6t9gmzUGcJls4blcsg2AULjhuPlQ9RJcd+yWVwvGU4sWbmVsOU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778187047; c=relaxed/simple; bh=laYspjwNdik0wTpw0SMM5VASlnIv1utg5JkDc2Xvo4c=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=YAItWDmO9aomTDrZw4P6+4svjwCmlzxLRZdu3hm63VPY9l6scYiGoQ3SSabfIFHYXvYIAWJAWMZqLEgVx2qmg2SGlVtpE/vC7ZjhNN8lMprYdqTwBfyUSluhb2sJxGolC7fdROXxrQ6uUduiTX8NF/j2t5Qj57FAwkpp4lo3238= 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=Pw7tvB3l; arc=none smtp.client-ip=209.85.221.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="Pw7tvB3l" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-45297094718so1082485f8f.3 for ; Thu, 07 May 2026 13:50:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778187044; x=1778791844; 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=OnuO/zosxDfRrEJIngyG6XeRQW3GT6C0GQiewkPFchM=; b=Pw7tvB3l/xg1b6lA/T+RK3OIpwuYLoabXxuw7eTzPIJ4wTSmKEzz2cCaBNRDOcGESn gJl4NdwmbxicSQRKLbZzrmaRPVXW7CxswU15uB8wjtFMTmZnzBewPO0UCvwaLjc46UwQ 4Zfj5kUOF9+0fZ+WI+dXSIWC0v57vke/ugUzEggG8QoUw3oOyl/y7gAVN0aCenTQu/ws Stz31u4owSXw7Fx0EE+f2B6gdFn90HOmu6Rqb2dNU9g1Wh3Pb9HCvzm6qfh/gcN3xtIX /nuW3GtUCayJ/8OCAZRi1LH8AuS8YeIrImo2jLSENL78WS0mm9wkXS5vvff2kvLjKdkx zlmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778187044; x=1778791844; 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=OnuO/zosxDfRrEJIngyG6XeRQW3GT6C0GQiewkPFchM=; b=a2udYa+K7u9ZMyCxEaT5UGoL8ZU0SlHbwIgQnE21X2OcoAxJAdv/IIshafzjuLD9Th 5wUa6RCoBEoK1wYBMjGFNT88z2c4tkXUincmbJFQsIgQBjIps8gQq8r4d/I6SSJnsxnW hHjypenQ638lJlW+mci4GF821vSJx9I+88bkZYmWhhSPzlpTZvWWtnNcA7Q3j0HP7GNa kCjuBFVTe1dwIzhbVmz7P2lxIvFPMastqcPd/mF62lIV6rOPo/QgRRv0EvTqhxzWc3R8 XzDCvDJXxX+4eucZgkCftuuw9L4RshCi0BAmT4kyOZdSuH6Hs52JG7qo5jn1zSCfGutW adbQ== X-Forwarded-Encrypted: i=1; AFNElJ/guFApcY7CO8fnpZYtkvH2RNvWlvv10Ls+6aV1BXizWxwuqtafrA8jukx63VdrtlxN6S7mFwQtakCnqbA=@vger.kernel.org X-Gm-Message-State: AOJu0YzeOcqOE1F28bSmNa/khtXthc2k3ou2iBstbtkpORonDWXo+7tn RoP/NHA4VzNmZO7pO5Lkl1EHP/Eqr0k6zi3fPgk6ufVUddZ8ZmWNQLzo X-Gm-Gg: Acq92OG2z8ostrrnsJ8YkPufGk+7hjCz1/PbRd4Be/uUQSyy1AsefS2oOHcQWS3KcGV Pg0K+1gNvhIS6RJcpIrIZqBZ/bub+p/P7UJ0wx8rt1KBuN3CABzc9l104FA70xHO+O4u3nUln7M xosMOMiqyaolIkDTss7dqygH43v0Nta9IGBEzCCFUnX9wcH/HjdXNdT2gEyUCbA5UQy6a0xH1n1 1KT5Qw/kIuRWgM4q2crDROGB0/osYpH7u6+9ZRGf3DJN8+gtOc+vcT+ocSKqnEO6wAzH+LY7eGS hIq063BKcZgQnPWYu2GJIuMxFr5SkuAIKICwLVwieo4n0UgyWyro0BSeyzX+fmyl864/B9my07J q8Fymk5vNmSDoHVGHardbayF6Cd4F++y+Ccey8xPdegf1rsERPd1sW2Bfowu59ZjSlp3Y8wk0ZF cgWNmx5ehVFRK853Cg12fv4ES1ZGJHdrDVdsUX3JBC5GVCU+2q8BoKpwteCt6aMZDYKmb+tdefF eraZphb2TTBrcCciQU= X-Received: by 2002:a5d:64c5:0:b0:43d:70de:1c70 with SMTP id ffacd0b85a97d-4515d5c54cbmr14522135f8f.32.1778187043449; Thu, 07 May 2026 13:50:43 -0700 (PDT) Received: from ai-node.taila4f726.ts.net (89-139-15-25.bb.netvision.net.il. [89.139.15.25]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-454175f59a5sm1401635f8f.32.2026.05.07.13.50.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 13:50:42 -0700 (PDT) From: Vladislav Kulikov To: jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Vladislav Kulikov Subject: [PATCH v2 0/2] iio: magnetometer: add MEMSIC MMC5983MA driver Date: Thu, 7 May 2026 20:50:30 +0000 Message-ID: <20260507205033.951990-1-vlad.kulikov.c@gmail.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: 8bit Add an IIO driver for the MEMSIC MMC5983MA 3-axis magnetometer over I2C. The driver provides raw magnetic field readings with per-measurement SET/RESET offset cancellation, giving 18-bit output with a full-scale range of +/-8 Gauss. Tested on a Raspberry Pi 2B with the sensor on I2C-1 at 0x30. The initial driver implements the validated I2C single-measurement path. Other chip features are left for future work: - SPI transport: the binding describes SPI wiring, but driver support is left for follow-up validation of the SPI command and SET/RESET sequencing. - Temperature channel: left until the temperature output behavior is better validated. - Continuous measurement mode and Auto SET/RESET: left until the interaction between CMM, TM_M, Meas_M_Done, and SET/RESET sequencing is better understood. - Saturation/self-test bits and BW/decimation tuning: not exposed until their behavior can be described reliably through stable IIO ABI. The driver uses a conservative 500 us post-SET/RESET delay before starting the following measurement. The datasheet describes a 500 ns SET/RESET coil pulse, but testing showed that a longer software delay is needed before taking the next measurement. Changes since v1: - DT binding: - added SPI bus support, interrupts, and vddio-supply - made vdd-supply required - switched to unevaluatedProperties with spi-peripheral-props ref - Driver: - replaced scoped_guard() with guard(mutex) in a case block - added datasheet page references for timing values - changed product ID mismatch from probe failure to dev_info() - hardcoded the IIO device name - added trailing commas - added local struct device and regmap pointers in mmc5983_init() - MAINTAINERS: - split binding and driver F: entries across the relevant patches Thank you Jonathan for the review and quick response. Vladislav Kulikov (2): dt-bindings: iio: magnetometer: add MEMSIC MMC5983MA iio: magnetometer: add driver for MEMSIC MMC5983MA .../iio/magnetometer/memsic,mmc5983.yaml | 65 ++++ MAINTAINERS | 7 + drivers/iio/magnetometer/Kconfig | 11 + drivers/iio/magnetometer/Makefile | 1 + drivers/iio/magnetometer/mmc5983.c | 351 ++++++++++++++++++ 5 files changed, 435 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/magnetometer/memsic,mmc5983.yaml create mode 100644 drivers/iio/magnetometer/mmc5983.c base-commit: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32 -- 2.43.0