[PATCH v1 3/4] usb: cdns3: Add CIX Sky1 glue driver
Philipp Zabel
p.zabel at pengutronix.de
Mon Aug 31 01:57:31 PDT 2026
On Mo, 2026-08-31 at 16:23 +0800, Hongliang Yang wrote:
> Add glue layer for the Cadence USBSSP DRD controller on CIX Sky1
> SoCs. The glue driver handles platform-specific initialization
> including clocks, resets, and PHY configuration.
>
> Signed-off-by: Hongliang Yang <hongliang.yang at cixtech.com>
> Reviewed-by: Gary Yang <gary.yang at cixtech.com>
> ---
> drivers/usb/cdns3/Kconfig | 13 +
> drivers/usb/cdns3/Makefile | 1 +
> drivers/usb/cdns3/cdnsp-sky1.c | 682 +++++++++++++++++++++++++++++++++
> drivers/usb/cdns3/cdnsp-sky1.h | 127 ++++++
> 4 files changed, 823 insertions(+)
> create mode 100644 drivers/usb/cdns3/cdnsp-sky1.c
> create mode 100644 drivers/usb/cdns3/cdnsp-sky1.h
>
[...]
> diff --git a/drivers/usb/cdns3/cdnsp-sky1.c b/drivers/usb/cdns3/cdnsp-sky1.c
> new file mode 100644
> index 000000000000..3dd20451569e
> --- /dev/null
> +++ b/drivers/usb/cdns3/cdnsp-sky1.c
> @@ -0,0 +1,682 @@
[...]
> +static int cdnsp_sky1_probe(struct platform_device *pdev)
> +{
> + struct device *dev = &pdev->dev;
> + struct device_node *node = dev->of_node;
> + struct cdnsp_sky1 *data;
> + int ret = 0;
> + struct cdns3_platform_data *cdns_sky1_pdata;
> +
> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> + data->axi_base = devm_platform_ioremap_resource_byname(pdev, "axi_property");
> + if (IS_ERR(data->axi_base)) {
> + dev_err(dev, "can't map IOMEM resource\n");
> + return PTR_ERR(data->axi_base);
> + }
> + data->ctst_base = devm_platform_ioremap_resource_byname(pdev, "controller_status");
> + if (IS_ERR(data->ctst_base)) {
> + dev_err(dev, "can't map IOMEM resource\n");
> + return PTR_ERR(data->ctst_base);
> + }
> + data->reset = devm_reset_control_get(&pdev->dev, "usb_reset");
Please use devm_reset_control_get_exclusive() directly.
regards
Philipp
More information about the linux-arm-kernel
mailing list