mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
i3c: mipi-i3c-hci: add microchip sama7d65 SoC compatible with the required quirk
Add support for microchip sama7d65 SoC I3C HCI master only IP with additional clock support to enable bulk clock acquisition and apply the required quirks. Reviewed-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260525092405.1514213-4-manikandan.m@microchip.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
9092105b87
commit
efaa912ab0
|
|
@ -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>
|
||||
|
|
@ -1105,6 +1106,7 @@ static int i3c_hci_init(struct i3c_hci *hci)
|
|||
static int i3c_hci_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct mipi_i3c_hci_platform_data *pdata = pdev->dev.platform_data;
|
||||
struct clk_bulk_data *clks;
|
||||
struct i3c_hci *hci;
|
||||
int irq, ret;
|
||||
|
||||
|
|
@ -1138,6 +1140,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;
|
||||
|
|
@ -1168,6 +1175,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 *)(ulong)(HCI_QUIRK_PIO_MODE | HCI_QUIRK_OD_PP_TIMING |
|
||||
HCI_QUIRK_RESP_BUF_THLD) },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, i3c_hci_of_match);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user