[PATCH] can: flexcan: add 2nd clock to support imx53 and newer
Lothar Waßmann
LW at KARO-electronics.de
Wed Jul 18 05:05:23 EDT 2012
Hi,
Marc Kleine-Budde writes:
> On 07/18/2012 04:12 AM, Hui Wang wrote:
> > Marc Kleine-Budde wrote:
> >> From: Steffen Trumtrar <s.trumtrar at pengutronix.de>
> >>
> >> This patch add support for a second clock to the flexcan driver. On
> >> modern
> >> freescale ARM cores like the imx53 and imx6q two clocks ("ipg" and "per")
> >> must be enabled in order to access the CAN core.
> >> - clock_freq = clk_get_rate(clk);
> >> }
> >>
> >> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >> @@ -1039,7 +1052,8 @@ static int __devinit flexcan_probe(struct
> >> platform_device *pdev)
> >> CAN_CTRLMODE_BERR_REPORTING;
> >> priv->base = base;
> >> priv->dev = dev;
> >> - priv->clk = clk;
> >> + priv->clk_ipg = clk_ipg;
> >> + priv->clk_per = clk_per;
> >> priv->pdata = pdev->dev.platform_data;
> >> priv->devtype_data = devtype_data;
> >>
> >> @@ -1067,9 +1081,11 @@ static int __devinit flexcan_probe(struct
> >> platform_device *pdev)
> >> failed_map:
> >> release_mem_region(mem->start, mem_size);
> >> failed_get:
> >> - if (clk)
> >> - clk_put(clk);
> >> failed_clock:
> >> + if (clk_per)
> >>
> > Use if (!IS_ERR(clk_per))
>
> Yes, good catch.
>
> Is it allowed to call clk_put with a NULL pointer? Both clocks can be
> NULL, if the frequency is defined via the device tree, this is case for
> powerpc.
>
This has been discussed here already several times. Everything
returned by clk_get() that does not satisfy the IS_ERR() check, is a
valid clk cookie and can be used for the clk API calls.
Lothar Waßmann
--
___________________________________________________________
Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________
More information about the linux-arm-kernel
mailing list