From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 A1044360ECB for ; Sun, 24 May 2026 08:53:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779612818; cv=none; b=hGcuoU2WSGLRqACdiqS50J8+ROg0MaupldUajvcFlI10kvz48GUCSVgYyEO9aW+h+b93WS5MnFb15lL5SuNXykVcbra3uSGfurNTn6wo78AXqyfqZmFEGTiS+0swIdpcecEseqbUbk2Whs2/T9HXO6OBLZYvtTQ2BxeaD+rUrWo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779612818; c=relaxed/simple; bh=c6CmS2PsElbd14byoasEvR7Kwc0TKu6y36ZmXrs+kBg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=nOl0WPJ1WpBY7Mp1lPaTncI2yFfwtP5S9YG6Au7Bv3H6oqc3POXufgOfEpRBloy7VQwKk2OHdblhdDs/2LG/eSSFmLHL/repZOZ3pL1WMrd4Uo/G0qZm9C8LSt3hP2Tj0HWJ0NJtWhIak5limClwgmopv/RwIPBOm34VsI5gf7o= 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=pqcZ4VzN; arc=none smtp.client-ip=209.85.210.170 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="pqcZ4VzN" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-835386ff122so8917551b3a.3 for ; Sun, 24 May 2026 01:53:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779612817; x=1780217617; 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=LLgoBL/zLcvxr6bj3saZaEcREqHREuQoofVTcPdITuo=; b=pqcZ4VzNEgajWghYCVMf2nQ7fzuQIPZW7zkgIimyU5gfpsKWm3okoeLzCgmu1iBDr0 HKKGcMOucpzgxLUnNz2sV/p6FLI0XCBmN7sImcjLKIqIfEPBfSs//bI6BHgKjLVaCqBb YJfb00+94BIozZOu5COL0bMLJgwOoVhlBMzyJgdzVW1hCJkbxrtA4aOxRaL9BWmLVvB3 g0pOkpkKJ0avRB+4eKWrwgKIkOHY437YZiGPi4Bky4xzkWGtCfcVoLBPD4z8f/9YDY5I Bo2UqOh5mB4w/aWyp3VeAU6gOSsGt42IduQ0WaD4EiP3CUb9f1CPnel3AOYQDx3LveOl ja0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779612817; x=1780217617; 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=LLgoBL/zLcvxr6bj3saZaEcREqHREuQoofVTcPdITuo=; b=IPw2gY7e229Vhyi5OQWxMdAF4b4kIDS9Vf5o04Oh4dgo6UbcKZdm3Eu5u1HynXjPQE fgc+k5yDrs9YAWdOm6h3Gn3N0807EqWsyyxkJAounM1rS5pJ4MHaJt4ztU39TGanzqzE e4IWxgHxNKu4237VayQgjiaDdVF0Q+jq33aGn4Rjk8qzyleZ+Krs8LAxG+ADGK3lbpDh haoBQ9aND44I5dy6E41nBK5Dh/XGtaXfsE489pL2LvsVm/jSjZp98sPZMgSByLtfU97Y UsAJfAm1AUQyud5/3g1TIHuYxfzlihnHJLDgm+h6v5GQ4cuZ8vK8KijamtKVfY1jAktP h2JA== X-Forwarded-Encrypted: i=1; AFNElJ+4RvTlPz2ULpZr5ksmgrVE8mRTd1C8DEQM9NXeNRWlvZksg7wwIVT5Oi1vPyAvMxza6K1uhsGwRjrEUoU=@vger.kernel.org X-Gm-Message-State: AOJu0YwRJCT2bCLezQdPnICXbQL2d/OYdi8YHudQWCkz0hpIytPwuWML 713kASyQ2C2kNgWpzEuaLcvN0jE8C7NTNPJJg4SuEPS4vn3qfCfVs6xC X-Gm-Gg: Acq92OFACM2JCHGQn+/pVNLssHijSZnDpAq8cjQ3eHexQefVVlE3t2SWyrOruTScVDE SGLzpLw+HGmM/SYAsR6jFYSjNjdG6pLdpoM0xjJKLdEIs/0RvnqJqafkKIcN/LeY6QvBI+sPdUz Ss9EiUVpW4o8BMePZ3XuBlYILVKC5lQxBu8F2PV2bZGhrKmKgQWBaktU5U0fS9SNElPbCYsvN/q sKjuLsIEU3I+BG800tMn0llnutkw3a80WI7FVrJ92/l3NOm03hoEpS/pDJMswQi25RUoqMi3koC IT90jaqeJNi/0mryK5rqpe3RFazToQoqrdJ3TSYjqoYzGii8zQ5IDCoYH+kbQl5MJiHQdbKcsak PVJqp31XrEBtpZQjDU62DI2IwPJKv+I3zfmr3YrwVEGEnPM1anPdSCtiYXTB7m8x8IvGyFGAD6b pP8DJpbQ6+wVDNFokwPuzc9FwFBCMDwUJWXFldu9nfhU1fmzbUEfXvkqnuvcDS5pEpRHLjlVUvK ItPdX3CAO0j1Qbut9IHIh8XuS8sZv5VB0biTA== X-Received: by 2002:a05:6a00:3003:b0:82c:d986:e917 with SMTP id d2e1a72fcca58-8415f56374bmr9672521b3a.22.1779612817004; Sun, 24 May 2026 01:53:37 -0700 (PDT) Received: from DESKTOP-G3E0OSP.localdomain ([112.172.255.242]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84164ea4de4sm6353116b3a.35.2026.05.24.01.53.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 May 2026 01:53:36 -0700 (PDT) From: Jinseob Kim To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Jinseob Kim Subject: [PATCH RFC v2 0/7] iio: add Open Sensor Fusion UART driver Date: Sun, 24 May 2026 17:53:05 +0900 Message-ID: <20260524085312.15369-1-kimjinseob88@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 This series adds an IIO driver for a UART-attached sensor aggregation device. The device sends OSF0 binary frames over serdev UART. The driver uses capability reports to register IIO devices for supported sensors. v2 preparation changes: - split the previous RFC driver patch into smaller patches - add a Device Tree binding - add an OSF0 protocol reference - use get_unaligned_le16/32/64() for wire fields - use IIO timestamp handling for buffered samples - push decoded samples directly to registered IIO devices Tested path: - STM32F405 OSF0 UART stream - Raspberry Pi 4 serdev - kernel 6.12.75+rpt-rpi-v8 - IIO devices: osf-accel, osf-gyro, osf-magn, osf-temp - raw reads from accel, gyro, magn, and temp - buffer reads from accel, gyro, magn, and temp No OSF oops, panic, or call trace was observed in the Raspberry Pi runtime smoke. Jinseob Kim (7): dt-bindings: iio: add Open Sensor Fusion UART device Documentation: iio: add Open Sensor Fusion protocol v0 reference iio: osf: add protocol v0 decoding iio: osf: add stream parser iio: osf: add UART serdev transport iio: osf: register IIO devices from capabilities MAINTAINERS: add Open Sensor Fusion IIO driver .../iio/imu/opensensorfusion,osf-uart.yaml | 33 ++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + .../iio/open-sensor-fusion-protocol-v0.rst | 267 +++++++++++++++ MAINTAINERS | 9 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/opensensorfusion/Kconfig | 15 + drivers/iio/opensensorfusion/Makefile | 6 + drivers/iio/opensensorfusion/osf_core.c | 311 ++++++++++++++++++ drivers/iio/opensensorfusion/osf_core.h | 67 ++++ drivers/iio/opensensorfusion/osf_iio.c | 288 ++++++++++++++++ drivers/iio/opensensorfusion/osf_iio.h | 22 ++ drivers/iio/opensensorfusion/osf_protocol.c | 220 +++++++++++++ drivers/iio/opensensorfusion/osf_protocol.h | 100 ++++++ drivers/iio/opensensorfusion/osf_serdev.c | 111 +++++++ drivers/iio/opensensorfusion/osf_stream.c | 207 ++++++++++++ drivers/iio/opensensorfusion/osf_stream.h | 31 ++ 17 files changed, 1691 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/imu/opensensorfusion,osf-uart.yaml create mode 100644 Documentation/iio/open-sensor-fusion-protocol-v0.rst create mode 100644 drivers/iio/opensensorfusion/Kconfig create mode 100644 drivers/iio/opensensorfusion/Makefile create mode 100644 drivers/iio/opensensorfusion/osf_core.c create mode 100644 drivers/iio/opensensorfusion/osf_core.h create mode 100644 drivers/iio/opensensorfusion/osf_iio.c create mode 100644 drivers/iio/opensensorfusion/osf_iio.h create mode 100644 drivers/iio/opensensorfusion/osf_protocol.c create mode 100644 drivers/iio/opensensorfusion/osf_protocol.h create mode 100644 drivers/iio/opensensorfusion/osf_serdev.c create mode 100644 drivers/iio/opensensorfusion/osf_stream.c create mode 100644 drivers/iio/opensensorfusion/osf_stream.h -- 2.43.0