From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 E7377397338 for ; Tue, 16 Jun 2026 07:23:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781594598; cv=none; b=WTYRZ3QE2j0+2a4/SVdZxQljb7Z0E4XmIGXMr1Q+Eq6gDgH5p+OvQrN7LbYju9eQVJkkLvTALAW6u7IZLyb3hJMHGvd8WoCVVHBOjoPv2Ea0eLy7riyEG1a2ysqS8Uy6pqgl/BQXHpBzGWHsSTCHkQQkAZMS+SjDKiz14lL+GyI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781594598; c=relaxed/simple; bh=kM4IFxId6iI+JUfXwPMBu04c47p58k/M9UeSdYBvKXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HOCQSwfjpRjDX691nwDmX4SxfnBjxrPJbQb4/dK/+A37TZ+dddaLYYnLLaIJS821M/QF4VZbqy4Mbd650FP3NZgW9+JBMFCAF77GUpQbP1/ELILr3heY93y7St+1UwGtlN+cMRPXYz7lX8UApUYGmk4Rm7v6Ho6fBDsg5rGa4y4= 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=eOHY+R6f; arc=none smtp.client-ip=209.85.214.169 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="eOHY+R6f" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2c68190ade4so13231475ad.0 for ; Tue, 16 Jun 2026 00:23:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781594595; x=1782199395; 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=9CIevGN6UD/mncJtIR8fA4hE9qdWOxUftvaCbnwqxcM=; b=eOHY+R6fVkxRx5fi/ZnkOpPOXmdeYO3bVUiQ6BYg8yMQ6M7vmrR5Ds9QrN6DQ9tS4u 9/d8P6j1vRKMY2IGedWMp1DV3/Mj7iLT5wH/ni0sbZLADbVwpQAd6YaQfuBVJKt2h587 bLK3U430saY2vgkJJqXZ7mZfi5HV5Uxa/a3g+uwo5hkXb34wqYHRojx8Q57Voaz4EMoa mHnqE7cYiW0NQwi1KcLwEXu0hpORHXA09snqQo3GcoHEgqenDdQFXHx6Oj4g+B1aVlk+ a7MSrXbTXqdDl2b6HjhlRH7VD5FF6lXh96LL2A4d9llODKdm2qCGpjWsc6DKLJjLyGHP jjYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781594595; x=1782199395; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9CIevGN6UD/mncJtIR8fA4hE9qdWOxUftvaCbnwqxcM=; b=nH9TxM1uma2TOggXpVubwYr/R63A5u/XtHjW+We5fBqEr1QVvWLMpuRC5xuQGFxab1 RBxKcMHTw64QO5Lo8gFnnEGAj4/aWT5Yj8gEnpv7lTnhwsZMfRADAjOcNI6scglwMRek ANXiJa64WaGsseKhrieCG0D5EmACXCo7A2kLfYVD0CNM8V76v1NKY7J5W/XqnSlicE7S 8w/hPvS7NGPGVTqcN3nlGoG/1TEeFTcIo06Zqg0PI9eoGtUI12Q4siJCBdHVRB9/7OHS uaAXch3/RNMakBoGPNSXfYLMrPZa0zBfVp8O+ICp9sExJG/NQioZoGICj9m7+gsg8xwM 8r5g== X-Forwarded-Encrypted: i=1; AFNElJ/qctez4A7Pvh+rkV2eKgW3rddL4T7R5DH6fWYLL2Z7G7HxBypfRh16g6cZ/9Ncv+2mhuhAaEu9SwAt@vger.kernel.org X-Gm-Message-State: AOJu0YwzD+uIumXAi01UxpPjFmEgwPMmqJH/3DH9Ge1FHSsmVb+QUSon Xfy3KRje7jcNG0qZKDoMAaR0OBMWmuTJQzRawAIjtjUvBaH5loqcZkqA X-Gm-Gg: Acq92OGGB0lK2j7BXdhFg+LWhh56HdJU6J0BdoeS7ak/GCuQkjxccr8nHMAhIhjebsm utNxJhAgbx2yesSK1GFJXaF50UZip+3TtoC9jqb3tt/ivAQVqfGa6kTDVF0o44Jbvsl/WgevI9m 6X+x7lxcKyQqbk/E/QsgQVKhqpI5DUPlfo+apiHnYVKaTf4HvjlgMfxqroQXLTH63KLAlCk2EXn hHdBBo9YC2g4lB52ln3FjtEJCE0pGRvlcUJFwRNvAGvoqaQoKJdkmWdRzAgEEWMdQjHKxPE7Yt9 QWLV3HIgOHXpXo/cdD68YMGTnUYW8qkBXKUGru0mh1DEJANkYCjw4HDPq26DrO8SFtX8PPG7HbO jhjRvsPidIJS5hAUBoPaPCIFs8+N+zlz93bSakIDpjHKk+bsXRJH44YdAOuQgM534F92rlRUa2I SyYvcAB4CeMUTiY8TH8P+/zZ5t2aOXdEyZqdrQZWYR6oGEQYftCCXENC1SMaPz8aPGxDc9Kmyy2 K4vXYNQugLSWnmdWOxG87JnSHiwuohBCBCNqZ4= X-Received: by 2002:a17:903:38c4:b0:2bf:367b:f46f with SMTP id d9443c01a7336-2c699bc3108mr22536675ad.30.1781594595263; Tue, 16 Jun 2026 00:23:15 -0700 (PDT) Received: from DESKTOP-G3E0OSP.localdomain ([112.172.255.242]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c42f1f1014sm123513435ad.16.2026.06.16.00.23.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2026 00:23:14 -0700 (PDT) From: Jinseob Kim To: Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Jonathan Corbet , Shuah Khan , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Jinseob Kim Subject: [PATCH RFC v5 1/6] dt-bindings: iio: add Open Sensor Fusion device Date: Tue, 16 Jun 2026 16:22:37 +0900 Message-ID: <20260616072242.3942-2-kimjinseob88@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260616072242.3942-1-kimjinseob88@gmail.com> References: <20260616072242.3942-1-kimjinseob88@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add the generic Open Sensor Fusion device binding for a serdev-attached IIO sensor aggregation hub, and document the opensensorfusion vendor prefix. The opensensorfusion,osf compatible describes the generic Open Sensor Fusion host interface. OSF GREEN is not the Linux compatible identity. Likewise, OSF0 is the current wire magic and a wire-format detail, not the Linux driver identity. The fixed OSF frame header carries protocol_major and protocol_minor at fixed offsets. This driver currently supports protocol_major 0. protocol_minor changes are intended to remain backward-compatible within that fixed header layout. Incompatible wire-format changes require a new protocol_major. If a future device cannot expose compatible version discovery through the fixed header layout, it will need a different compatible. Require vcc-supply so the driver can enable device power before starting communication. Signed-off-by: Jinseob Kim --- .../bindings/iio/opensensorfusion,osf.yaml | 59 +++++++++++++++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + MAINTAINERS | 13 ++++ 3 files changed, 74 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml diff --git a/Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml b/Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml new file mode 100644 index 000000000..012a07fd6 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/opensensorfusion,osf.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Open Sensor Fusion Sensor Aggregation Hub + +maintainers: + - Jinseob Kim + +description: | + Open Sensor Fusion is a sensor aggregation hub. The hub exposes an OSF + protocol data stream over its host interface and may report capabilities and + samples for multiple sensor classes. The Linux driver discovers the actual + sensor channels from OSF capability reports instead of describing those + sensors in Device Tree. + + Open Sensor Fusion is not a generic industry standard. Public project + documentation is available at: + + https://github.com/opensensorfusion + + The compatible describes the generic Open Sensor Fusion host interface. It + is not an OSF GREEN board identity, and it does not encode the OSF0 wire + magic. OSF0, protocol_major, and protocol_minor are wire-protocol details + exchanged in OSF frames. + +allOf: + - $ref: /schemas/serial/serial-peripheral-props.yaml# + +properties: + compatible: + const: opensensorfusion,osf + + vcc-supply: + description: + Regulator supplying power to the Open Sensor Fusion device. + +required: + - compatible + - vcc-supply + +unevaluatedProperties: false + +examples: + - | + vcc_sensor: regulator-0 { + compatible = "regulator-fixed"; + regulator-name = "sensor-vcc"; + }; + + serial { + sensor { + compatible = "opensensorfusion,osf"; + vcc-supply = <&vcc_sensor>; + }; + }; +... diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 28784d66a..88172d4a4 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1237,6 +1237,8 @@ patternProperties: description: OpenPandora GmbH "^openrisc,.*": description: OpenRISC.io + "^opensensorfusion,.*": + description: Open Sensor Fusion "^openwrt,.*": description: OpenWrt "^option,.*": diff --git a/MAINTAINERS b/MAINTAINERS index c2c6d7927..2ddefc42d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20011,6 +20011,19 @@ F: Documentation/devicetree/ F: arch/*/boot/dts/ F: include/dt-bindings/ +OPEN SENSOR FUSION IIO DRIVER +M: Jinseob Kim +S: Maintained +F: Documentation/devicetree/bindings/iio/opensensorfusion,osf.yaml +F: Documentation/iio/open-sensor-fusion.rst +F: drivers/iio/opensensorfusion/Kconfig +F: drivers/iio/opensensorfusion/Makefile +F: drivers/iio/opensensorfusion/osf_core.* +F: drivers/iio/opensensorfusion/osf_iio.* +F: drivers/iio/opensensorfusion/osf_protocol.* +F: drivers/iio/opensensorfusion/osf_serdev.c +F: drivers/iio/opensensorfusion/osf_stream.* + OPENCOMPUTE PTP CLOCK DRIVER M: Vadim Fedorenko L: netdev@vger.kernel.org -- 2.43.0