Messages in this thread |  | | Date | Tue, 5 May 2026 16:19:09 +0300 | | Subject | Re: [PATCH v5 3/5] i3c: mipi-i3c-hci: add microchip sama7d65 SoC compatible with the required quirk | | From | Adrian Hunter <> |
| |
On 05/05/2026 10:13, Manikandan Muralidharan wrote: > Add support for microchip sama7d65 SoC I3C HCI master only IP > with additional clock support to enable bulk clock acquisition > > Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
One minor cosmetic comment below, nevertheless:
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
> --- > Changes in v5: > - Remove HCI_QUIRK_CLK_SUPPORT quirk and call > devm_clk_bulk_get_all_enabled unconditionally > > Changes in v4: > - Remove the clock index variable MCHP_I3C_CLK_IDX > > Changes in v3: > - Make use of existing HCI_QUIRK_* code base > - Introduce HCI_QUIRK_CLK_SUPPORT to handle/enable the required Peripheral > and system generic clk in bulk > > Changes in v2: > - Platform specific changes are integrated in the existing mipi-i3c-hci > driver by introducing separate MCHP_HCI_QUIRK_* quirks and vendor > specific quirk files > --- > drivers/i3c/master/mipi-i3c-hci/core.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c > index b781dbed2165..20d32a9eb62c 100644 > --- a/drivers/i3c/master/mipi-i3c-hci/core.c > +++ b/drivers/i3c/master/mipi-i3c-hci/core.c > @@ -8,6 +8,7 @@ > */ > > #include <linux/bitfield.h> > +#include <linux/clk.h> > #include <linux/device.h> > #include <linux/errno.h> > #include <linux/i3c/master.h> > @@ -970,6 +971,7 @@ static int i3c_hci_probe(struct platform_device *pdev) > { > const struct mipi_i3c_hci_platform_data *pdata = pdev->dev.platform_data; > struct i3c_hci *hci; > + struct clk_bulk_data *clks;
If you roll a new version of this patch, prefer to arrange local variable definitions in descending order of line length e.g.
const struct mipi_i3c_hci_platform_data *pdata = pdev->dev.platform_data; struct clk_bulk_data *clks; struct i3c_hci *hci;
> int irq, ret; > > hci = devm_kzalloc(&pdev->dev, sizeof(*hci), GFP_KERNEL); > @@ -1001,6 +1003,11 @@ static int i3c_hci_probe(struct platform_device *pdev) > if (!hci->quirks && platform_get_device_id(pdev)) > hci->quirks = platform_get_device_id(pdev)->driver_data; > > + ret = devm_clk_bulk_get_all_enabled(&pdev->dev, &clks); > + if (ret < 0) > + return dev_err_probe(&pdev->dev, ret, > + "Failed to get clocks\n"); > + > ret = i3c_hci_init(hci); > if (ret) > return ret; > @@ -1031,6 +1038,9 @@ static void i3c_hci_remove(struct platform_device *pdev) > > static const __maybe_unused struct of_device_id i3c_hci_of_match[] = { > { .compatible = "mipi-i3c-hci", }, > + { .compatible = "microchip,sama7d65-i3c-hci", > + .data = (void *)(HCI_QUIRK_PIO_MODE | HCI_QUIRK_OD_PP_TIMING | > + HCI_QUIRK_RESP_BUF_THLD) }, > {}, > }; > MODULE_DEVICE_TABLE(of, i3c_hci_of_match);
|  |