public inbox for linux-i3c@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Add ADI I3C Controller
@ 2025-06-18  7:16 Jorge Marques
  2025-06-18  7:16 ` [PATCH v3 1/2] dt-bindings: i3c: Add adi-i3c-master Jorge Marques
  2025-06-18  7:16 ` [PATCH v3 2/2] i3c: master: Add driver for Analog Devices I3C Controller IP Jorge Marques
  0 siblings, 2 replies; 14+ messages in thread
From: Jorge Marques @ 2025-06-18  7:16 UTC (permalink / raw)
  To: Alexandre Belloni, Frank Li, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-i3c, devicetree, linux-kernel, gastmaier, Jorge Marques

I3C Controller is subset of the I3C-basic specification to interface
peripherals through I3C and I2C. The controller RTL is FPGA
synthesizable and documentation is provided at
https://analogdevicesinc.github.io/hdl/library/i3c_controller

The main target for the I3C Controller IP is low-cost FPGAs.
In this version the driver supports IBI (only the MDB), I3C and I2C
transfers.

Signed-off-by: Jorge Marques <jorge.marques@analog.com>
---
Changes in v3:
Documentation/devicetree/bindings/i3c/adi,i3c-master.yaml:
- Small reworking of the description
- Add -1.00.a suffix to compatible

adi-i3c-master.c:
- Misspelling
- Remove REG_CMD_FIFO_0_LEN_MAX since it is a HDL parameter
- Use adapter timeout value for I2C transfers, as in
  https://lore.kernel.org/linux-i3c/aEBd%2FFIKADYr%2F631@lizhi-Precision-Tower-5810/T/#t

- Link to v2: https://lore.kernel.org/r/20250606-adi-i3c-master-v2-0-e68b9aad2630@analog.com

Changes in v2:
Documentation/devicetree/bindings/i3c/adi,i3c-master.yaml:
- Move allof
- Rename clocks to axi, i3c

adi-i3c-master.c:
- Update license year
- Rework regmap to use FIELD_GET, FIELD_PREP
- Reformat regmap to have FIELDS after REG, prefixed by reg name.
- Add overflow safeguards to cmd, tx fifos
- Fix macro related macros (mostly erroneous `| ~BITMASK`
- Use guard macros, remove goto.
- Simplify daa logic
- Replace devm_clk_get with devm_clk_get_enabled
- Solve 64bit->32bit warnings on x86_64 systems by casting to u32
- Immediate clear irq request flags, then handle it.

- Link to v1: https://lore.kernel.org/r/20250604-adi-i3c-master-v1-0-0488e80dafcb@analog.com

---
Jorge Marques (2):
      dt-bindings: i3c: Add adi-i3c-master
      i3c: master: Add driver for Analog Devices I3C Controller IP

 .../devicetree/bindings/i3c/adi,i3c-master.yaml    |   63 ++
 MAINTAINERS                                        |    6 +
 drivers/i3c/master/Kconfig                         |   11 +
 drivers/i3c/master/Makefile                        |    1 +
 drivers/i3c/master/adi-i3c-master.c                | 1026 ++++++++++++++++++++
 5 files changed, 1107 insertions(+)
---
base-commit: 00286d7d643d3c98e48d9cc3a9f471b37154f462
change-id: 20250604-adi-i3c-master-2a5148c58c47

Best regards,
-- 
Jorge Marques <jorge.marques@analog.com>


-- 
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c

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

end of thread, other threads:[~2025-06-19 18:36 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-18  7:16 [PATCH v3 0/2] Add ADI I3C Controller Jorge Marques
2025-06-18  7:16 ` [PATCH v3 1/2] dt-bindings: i3c: Add adi-i3c-master Jorge Marques
2025-06-18  8:40   ` Rob Herring (Arm)
2025-06-18  9:21   ` Krzysztof Kozlowski
2025-06-18 12:15     ` Jorge Marques
2025-06-18 15:45       ` Krzysztof Kozlowski
2025-06-18 19:55         ` Jorge Marques
2025-06-19  6:15           ` Krzysztof Kozlowski
2025-06-18  7:16 ` [PATCH v3 2/2] i3c: master: Add driver for Analog Devices I3C Controller IP Jorge Marques
2025-06-18 19:40   ` Frank Li
2025-06-18 22:17     ` Jorge Marques
2025-06-19  2:18       ` Frank Li
2025-06-19 10:32         ` Jorge Marques
2025-06-19 15:10           ` Frank Li

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