From: Ahmad Byagowi <ahmadexp@gmail.com>
To: Lee Jones <lee@kernel.org>, Pavel Machek <pavel@kernel.org>,
Richard Cochran <richardcochran@gmail.com>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Andi Shyti <andi.shyti@kernel.org>,
Peter Rosin <peda@lysator.liu.se>
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
davem@davemloft.net, Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
linux-leds@vger.kernel.org, devicetree@vger.kernel.org,
linux-i2c@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, Ahmad Byagowi <ahmadexp@gmail.com>
Subject: [RFC net-next 0/4] ptp: ocp: Add R4006 I2C peripheral support
Date: Sun, 2 Aug 2026 08:46:16 -0700 [thread overview]
Message-ID: <cover.1785684064.git.ahmadexp@gmail.com> (raw)
The R4006 Time Card places a PCA9546 I2C mux behind the FPGA XIIC
controller. Its downstream buses contain temperature, humidity, and
pressure sensors, an 18-channel LED controller, and a BNO08x inertial
sensor. The current ptp_ocp driver exposes the root bus but does not
describe these peripherals.
This RFC adds the generic infrastructure and board description needed to
let existing subsystem drivers bind to the R4006 devices:
1. A binding for the Lumissil IS32FL3207 LED controller.
2. A generic IS32FL3207 LED class driver with individual and multicolor
LED support and per-output current limits.
3. Software-node propagation from an I2C mux to its channel adapters.
4. EEPROM-based R4006 detection and a per-card software-node topology
in ptp_ocp.
The BNO08x is intentionally not instantiated because there is no upstream
driver for it. LED status policy is also left to userspace. The kernel
exports one multicolor LED class device for GNSS and one for each SMA
connector.
The zero-based IS32FL3207 output mapping, confirmed on production
hardware, is:
red green blue
GNSS 13 12 14
SMA1 7 6 8
SMA2 10 9 11
SMA3 1 0 2
SMA4 4 3 5
Questions for this RFC:
- Should IS32FL3207 remain a standalone multicolor driver, or should
support be integrated into the older is31fl32xx driver?
- Is assigning software-node children in the generic I2C mux core the
preferred way to describe PCI-card mux topologies?
- Which tree should carry the cross-subsystem series once the LED and
I2C changes are reviewed?
Validation performed:
- dt_binding_check, including schema lint and example compilation
- ARM64 and x86-64 W=1 builds of all three modified driver objects
- x86-64 sparse C=2 checks with endian checking enabled
- strict checkpatch and git diff --check
- I2C addresses and LED channel mapping validated on an R4006 using the
existing downstream implementation
The complete upstream series has not yet been boot-tested on the card.
One portability limitation is that the ICP10100 has a fixed 1.8 V board
rail but its driver requires a vdd regulator. ACPI server systems provide
the dummy regulator used by this PCI target; an ACPI-disabled system may
leave the pressure sensor unbound. Feedback on whether that supply needs
an explicit representation before v1 would be useful.
Ahmad Byagowi (4):
dt-bindings: leds: Add IS32FL3207 controller
leds: rgb: Add IS32FL3207 controller driver
i2c: mux: Propagate software nodes to channel adapters
ptp: ocp: Add R4006 I2C peripheral topology
.../bindings/leds/issi,is32fl3207.yaml | 204 +++++++
MAINTAINERS | 7 +
drivers/i2c/i2c-mux.c | 55 ++
drivers/leds/rgb/Kconfig | 11 +
drivers/leds/rgb/Makefile | 1 +
drivers/leds/rgb/leds-is32fl3207.c | 541 ++++++++++++++++++
drivers/ptp/ptp_ocp.c | 485 +++++++++++++++-
7 files changed, 1278 insertions(+), 26 deletions(-)
create mode 100644 Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml
create mode 100644 drivers/leds/rgb/leds-is32fl3207.c
base-commit: 69963a0678a347d57c4ac8b16939dba216eb95ce
--
2.50.1 (Apple Git-155)
next reply other threads:[~2026-08-02 15:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 15:46 Ahmad Byagowi [this message]
2026-08-02 15:46 ` [RFC net-next 1/4] dt-bindings: leds: Add IS32FL3207 controller Ahmad Byagowi
2026-08-02 15:46 ` [RFC net-next 2/4] leds: rgb: Add IS32FL3207 controller driver Ahmad Byagowi
2026-08-02 15:46 ` [RFC net-next 3/4] i2c: mux: Propagate software nodes to channel adapters Ahmad Byagowi
2026-08-02 15:46 ` [RFC net-next 4/4] ptp: ocp: Add R4006 I2C peripheral topology Ahmad Byagowi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1785684064.git.ahmadexp@gmail.com \
--to=ahmadexp@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavel@kernel.org \
--cc=peda@lysator.liu.se \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=vadim.fedorenko@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox