[PATCH v4 02/31] serial: mpc512x: cleanup clock API use
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Mon Aug 12 14:27:33 EDT 2013
On Tue, Aug 06, 2013 at 10:43:42PM +0200, Gerhard Sittig wrote:
> cleanup the clock API use of the UART driver which is shared among the
> MPC512x and the MPC5200 platforms
> - get, prepare, and enable the MCLK during port allocation; disable,
> unprepare and put the MCLK upon port release; hold a reference to the
> clock over the period of use; check for and propagate enable errors
> - fix a buffer overflow for clock names with two digit PSC index numbers
> - stick with the PPC_CLOCK 'psc%d_mclk' name for clock lookup, only
> switch to a fixed string later after device tree based clock lookup
> will have become available
>
> to achieve support for MPC512x which is neutral to MPC5200, the
> modification was done as follows
> - introduce "clock alloc" and "clock release" routines in addition to
> the previous "clock enable/disable" routine in the psc_ops struct
> - make the clock allocation a part of the port request (resource
> allocation), and make clock release a part of the port release, such
> that essential resources get allocated early
> - just enable/disable the clock from within the .clock() callback
> without any allocation or preparation as the former implementation
> did, since this routine is called from within the startup and shutdown
> callbacks
> - all of the above remains a NOP for the MPC5200 platform (no callbacks
> are provided on that platform)
> - implementation note: the clock gets enabled upon allocation already
> just in case the clock is not only required for bitrate generation but
> for register access as well
>
> Signed-off-by: Gerhard Sittig <gsi at denx.de>
Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
More information about the linux-arm-kernel
mailing list