Re: [PATCH v2 1/2] i3c: master: svc: Add amlogic a9 support
From: Junyi Zhao
Date: Wed Nov 04 2026 - 00:19:17 EST
Hi Frank,
thanks for your detail.
On 04/11/2026 11:19, Frank Li wrote:
[ EXTERNAL EMAIL ]
On Wed, Nov 04, 2026 at 10:44:59AM +0800, Junyi Zhao wrote:
Hi Frank,...
Thanks for the review.
On 03/11/2026 06:10, Frank Li wrote:
[ EXTERNAL EMAIL ]
On Mon, Nov 02, 2026 at 07:05:39PM +0800, Junyi Zhao wrote:
Amlogic a9 SoCs integrate the Silvaco I3C IP, and their peripheral
clocks vary from the vanilla implementation:
- The EE-domain controller (amlogic,a9-i3c) takes two clocks,
"pclk" and "fast_clk", and the fast clock rate must be
programmed before the controller can be used.
- The AO-domain controller (amlogic,a9-ao-i3c) exposes only "pclk":
its bus clock is generated by an internal divider located in the
controller's own register space.
Add a vendor_init callback to handle this clock setup.
Add a vendor_quirks field to describe AO-specific behavior.
Signed-off-by: Junyi Zhao <junyi.zhao@xxxxxxxxxxx>
---
+ int (*vendor_init)(struct svc_i3c_master *master);
+};
+
why need move this struct
because callback need param struct svc_i3c_master *master, and if not,
compile error. undefined.
Most likely svc_i3c_master need save a point for drvdata in future.
You add forward declear before drvdata
struct svc_i3c_drvdata;
will do.
...
will change order:+static int aml_ao_i3c_tail_clocks(struct svc_i3c_master *master, struct clk *parent)
+{
+ struct device *dev = master->dev;
+ struct aml_i3c_ao_clk *ao;
+ struct clk_init_data init = {};
+ char name[64];
+ int ret;
+ struct clk_bulk_data *new_clks;
+ struct clk *fclk;
keep revise Chemistry order
struct aml_i3c_ao_clk *ao;
struct clk *fclk;
struct clk_bulk_data *new_clks;
struct device *dev = master->dev;
struct clk_init_data init = {};
char name[64];
int ret;
longest is first
struct device *dev = master->dev;
struct clk_bulk_data *new_clks;
struct clk_init_data init = {};
struct aml_i3c_ao_clk *ao;
struct clk *fclk;
char name[64];
int ret;
will do. thanks the detail.
Frank