Linux I2C development
 help / color / mirror / Atom feed
* [RFC net-next 0/4] ptp: ocp: Add R4006 I2C peripheral support
@ 2026-08-02 15:46 Ahmad Byagowi
  2026-08-02 15:46 ` [RFC net-next 1/4] dt-bindings: leds: Add IS32FL3207 controller Ahmad Byagowi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ahmad Byagowi @ 2026-08-02 15:46 UTC (permalink / raw)
  To: Lee Jones, Pavel Machek, Richard Cochran, Vadim Fedorenko,
	Andi Shyti, Peter Rosin
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	davem, Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-leds,
	devicetree, linux-i2c, netdev, linux-kernel, Ahmad Byagowi

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)

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-02 15:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-02 15:46 [RFC net-next 0/4] ptp: ocp: Add R4006 I2C peripheral support Ahmad Byagowi
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox