[U-Boot] [PATCH v5 02/41] pinctrl: Add the concept of peripheral IDs

Simon Glass sjg at chromium.org
Thu Sep 3 19:57:53 CEST 2015


On 30 August 2015 at 16:55, Simon Glass <sjg at chromium.org> wrote:
> My original pinctrl patch operating using a peripheral ID enum. This was
> shared between pinmux and clock and provides an easy way to specify a device
> that needs to be controlled, even it is does not (yet) have a driver within
> driver model.
>
> Masahiro's new simple pinctrl gets around this by providing a
> set_state_simple() pinctrl method. By passing a device to that call the
> peripheral ID becomes unnecessary. If the driver needs it, it can calculate
> it itself and use it internally.
>
> However this does not solve the problem for peripheral clocks. The 'pure'
> solution would be to pass a driver to the clock uclass also. But this
> requires that all devices should have a driver, and a struct udevide. Also
> a key optimisation of the clock uclass is allowing a peripheral clock to
> be set even when there is no device for that clock.
>
> There may be a better way to achive the same goal, but for now it seems
> expedient to add in peripheral ID to the pinctrl uclass. Two methods are
> added - one to get the peripheral ID and one to select it. The existing
> set_state_simple() is effectively the union of these.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v5:
> - Rebase on top of Masahiro's v5 series
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  drivers/pinctrl/pinctrl-uclass.c | 40 +++++++++++++++++++++------
>  include/dm/pinctrl.h             | 60 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 91 insertions(+), 9 deletions(-)

Applied to u-boot-rockchip.


More information about the U-Boot mailing list