[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250923154551.2112388-1-manikanta.guntupalli@amd.com>
Date: Tue, 23 Sep 2025 21:15:47 +0530
From: Manikanta Guntupalli <manikanta.guntupalli@....com>
To: <git@....com>, <michal.simek@....com>, <alexandre.belloni@...tlin.com>,
<Frank.Li@....com>, <robh@...nel.org>, <krzk+dt@...nel.org>,
<conor+dt@...nel.org>, <pgaj@...ence.com>,
<wsa+renesas@...g-engineering.com>, <tommaso.merciai.xr@...renesas.com>,
<arnd@...db.de>, <quic_msavaliy@...cinc.com>, <Shyam-sundar.S-k@....com>,
<sakari.ailus@...ux.intel.com>, <billy_tsai@...eedtech.com>,
<kees@...nel.org>, <gustavoars@...nel.org>, <jarkko.nikula@...ux.intel.com>,
<jorge.marques@...log.com>, <linux-i3c@...ts.infradead.org>,
<devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-arch@...r.kernel.org>, <linux-hardening@...r.kernel.org>
CC: <radhey.shyam.pandey@....com>, <srinivas.goud@....com>,
<shubhrajyoti.datta@....com>, <manion05gk@...il.com>, Manikanta Guntupalli
<manikanta.guntupalli@....com>
Subject: [PATCH V7 0/4] Add AMD I3C master controller driver and bindings
This patch series introduces support for the AMD I3C master controller,
including the device tree binding and driver implementation.
In addition, the series adds big-endian MMIO accessors and extends
i3c_readl_fifo() and i3c_writel_fifo() helpers with endianness support.
Changes for V2:
Updated commit subject and description.
Moved allOf to after required.
Removed xlnx,num-targets property.
Added mixed mode support with clock configuration.
Converted smaller functions into inline functions.
Used FIELD_GET() in xi3c_get_response().
Updated xi3c_master_rd_from_rx_fifo() to use cmd->rx_buf.
Used parity8() for address parity calculation.
Added guards for locks.
Dropped num_targets and updated xi3c_master_do_daa().
Used __free(kfree) in xi3c_master_send_bdcast_ccc_cmd().
Dropped PM runtime support.
Updated xi3c_master_read() and xi3c_master_write() with
xi3c_is_resp_available() check.
Created separate functions: xi3c_master_init() and xi3c_master_reinit().
Used xi3c_master_init() in bus initialization and xi3c_master_reinit()
in error paths.
Added DAA structure to xi3c_master structure.
Changes for V3:
Updated commit description.
Corrected the order of properties and removed resets property.
Added compatible to required list.
Added interrupts to example.
Resolved merge conflicts.
Changes for V4:
Added h/w documentation details.
Updated timeout macros.
Removed type casting for xi3c_is_resp_available() macro.
Used ioread32() and iowrite32() instead of readl() and writel()
to keep consistency.
Read XI3C_RESET_OFFSET reg before udelay().
Removed xi3c_master_free_xfer() and directly used kfree().
Skipped checking return value of i3c_master_add_i3c_dev_locked().
Used devm_mutex_init() instead of mutex_init().
Changes for V5:
Renamed the xlnx,axi-i3c.yaml file into xlnx,axi-i3c-1.0.yaml.
Used GENMASK_ULL for PID mask as it's 64bit mask.
Changes for V6:
Corrected the $id in the YAML file to match the filename and fix
the dtschema warning.
Removed typecast for xi3c_getrevisionnumber(), xi3c_wrfifolevel(),
and xi3c_rdfifolevel().
Replaced dynamic allocation with a static variable for pid_bcr_dcr.
Fixed sparse warning in do_daa by typecasting the address parity value
to u8.
Fixed sparse warning in xi3c_master_bus_init by typecasting the pid value
to u64 in info.pid calculation.
Changes for V7:
Added i3c controller version details to commit description.
Added Reviewed-by tag to binding patch [1/4].
Added big-endian MMIO accessors [2/4].
Added endianness support for i3c_readl_fifo() and i3c_writel_fifo() [3/4].
Updated timeout macro name.
Updated xi3c_master_wr_to_tx_fifo() and xi3c_master_rd_from_rx_fifo()
to use i3c_writel_fifo() and i3c_readl_fifo().
Manikanta Guntupalli (4):
dt-bindings: i3c: Add AMD I3C master controller support
asm-generic/io.h: Add big-endian MMIO accessors
i3c: master: Add endianness support for i3c_readl_fifo() and
i3c_writel_fifo()
i3c: master: Add AMD I3C bus controller driver
.../bindings/i3c/xlnx,axi-i3c-1.0.yaml | 55 +
MAINTAINERS | 7 +
drivers/i3c/internals.h | 35 +-
drivers/i3c/master/Kconfig | 16 +
drivers/i3c/master/Makefile | 1 +
drivers/i3c/master/amd-i3c-master.c | 1012 +++++++++++++++++
drivers/i3c/master/dw-i3c-master.c | 9 +-
drivers/i3c/master/i3c-master-cdns.c | 9 +-
drivers/i3c/master/renesas-i3c.c | 12 +-
include/asm-generic/io.h | 202 ++++
10 files changed, 1342 insertions(+), 16 deletions(-)
create mode 100644 Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
create mode 100644 drivers/i3c/master/amd-i3c-master.c
--
2.34.1
Powered by blists - more mailing lists