[PATCH 00/10] pinctrl: mvebu: remove hard-coded addresses from Dove pinctrl

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Tue Feb 25 15:34:01 EST 2014


On 02/25/2014 09:04 PM, Jason Cooper wrote:
> Sebastian,
>
> On Tue, Feb 25, 2014 at 08:23:35PM +0100, Sebastian Hesselbarth wrote:
>> [Cooked down Cc list to relevant people and added Ezequiel who agreed
>> to test on Armada 375/38x.]
>>
>> On 02/25/2014 04:43 PM, Jason Cooper wrote:
>>> On Tue, Feb 25, 2014 at 04:30:45PM +0100, Sebastian Hesselbarth wrote:
>>>> On 02/25/14 16:16, Jason Cooper wrote:
>>>>> On Tue, Feb 25, 2014 at 10:36:54AM +0100, Linus Walleij wrote:
>>>>>> On Mon, Feb 24, 2014 at 7:10 PM, Jason Cooper <jason at lakedaemon.net> wrote:
>>>>>>> I've now created mvebu/pinctrl-dove for this series.  It's based on
>>>>>>> v3.14-rc1, and depends on mvebu/pinctrl (which depends on
>>>>>>> mvebu/pinctrl-3xx).
>>>>>>>
>>>>>>> I've kept this series in a separate branch in case we encounter an
>>>>>>> unforeseen problem with something in here.  Then this branch can be
>>>>>>> dropped, and /pinctrl-3xx and /pinctrl will still make it in.
>>>>>>>
>>>>>>> So, all patches except 3 and 4 are in mvebu/pinctrl-dove.  3 and 4 are
>>>>>>> in mvebu/dt.
>>>>>>
>>>>>> OK so what should I be pulling in first now?
>>>>>
>>>>> Of course I woke up this morning not happy with this :-/  Here's what it
>>>>> looks like currently:
>>>>>
>>>>>    /v3.14-rc1
>>>>>    |
>>>>> --+---+---+---+---+ mvebu/pinctrl-3xx
>>>>>    |               \
>>>>>    |---+---+---+---+---+---+---+ mvebu/pinctrl
>>>>>    \                           \
>>>>>     \---------------------------+---+---+---+ mvebu/pinctrl-dove
>>>>>
>>>>> Not to scale.
>>>>>
>>>>>
>>>>> I would prefer to do:
>>>>>
>>>>>    /v3.14-rc1
>>>>>    |
>>>>> --+---+---+---+---+ mvebu/pinctrl-cleanup
>>>>>    |               \
>>>>>    |----------------+--+---+---+ mvebu/pinctrl-3xx
>>>>>    \                \
>>>>>     \----------------+---+---+--+---+---+---+ mvebu/pinctrl-dove
>>>>>
>>>>> But this would mean moving some patches to branches other than what they
>>>>> were sent with.  The advantage is that /pinctrl-3xx and /pinctrl-dove
>>>>> don't depend on each other, and only depend on -cleanup.  Which is great
>>>>> if there is something wrong in either branch.
>>>>>
>>>>> Sebastian, I can cherry-pick the patches around, but you know the code
>>>>> better than any of us, do you foresee any problems with this scenario?
>>>>
>>>> If Thomas agrees, I can rework Armada 375/38x pinctrl stubs to fit on
>>>> mvebu/pinctrl. That should allow you to have mvebu/pinctrl-dove
>>>> independent of mvebu/pinctrl-3xx.
>>>>
>>>> Not a big deal, I'd just pick 375/38x patches from mvebu/pinctrl and
>>>> squash them into mvebu/pinctrl-3xx. The only "issue" is that DT
>>>> documentation update patches from mvebu/pinctrl-dove have to be split
>>>> too.
>>>>
>>>> I'll prepare the three new branches for you and Thomas to look at
>>>> today.
>>>
>>> Ok, great.  Thanks Sebastian!
>>
>> Ok, branches based on v3.14-rc1 with above dependencies can be found on:
>>
>> https://github.com/shesselba/linux-dove.git for-mvebu/pinctrl-cleanup
>> https://github.com/shesselba/linux-dove.git for-mvebu/pinctrl-3xx
>> https://github.com/shesselba/linux-dove.git for-mvebu/pinctrl-dove
>>
>> and an a-i-o branch to ease testing:
>>
>> https://github.com/shesselba/linux-dove.git for-mvebu/all-merged-in
>>
>> @Jason: I guess we should resend all three branches as individual
>> patches on list somehow.
>
> Damn!  So close!
>
> $ git diff mvebu/pinctrl-dove shesselba/for-mvebu/all-merged-in
> diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
> index 2b76524f4aa7..eeb08edb67ac 100644
> --- a/arch/arm/boot/dts/dove.dtsi
> +++ b/arch/arm/boot/dts/dove.dtsi
> @@ -390,7 +390,9 @@
>
>   			pinctrl: pin-ctrl at d0200 {
>   				compatible = "marvell,dove-pinctrl";
> -				reg = <0xd0200 0x10>;
> +				reg = <0xd0200 0x14>,
> +				      <0xd0440 0x04>,
> +				      <0xd802c 0x08>;
>   				clocks = <&gate_clk 22>;
>
>   				pmx_gpio_0: pmx-gpio-0 {
> @@ -614,6 +616,12 @@
>   				interrupts = <5>;
>   			};
>
> +			gconf: global-config at e802c {
> +				compatible = "marvell,dove-global-config",
> +				             "syscon";
> +				reg = <0xe802c 0x14>;
> +			};
> +
>   			gpio2: gpio-ctrl at e8400 {
>   				compatible = "marvell,orion-gpio";
>   				#gpio-cells = <2>;
> diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-38x.c b/drivers/pinctrl/mvebu/pinctrl-armada-38x.c
> index 322ca8cb63eb..1049f82fb62f 100644
> --- a/drivers/pinctrl/mvebu/pinctrl-armada-38x.c
> +++ b/drivers/pinctrl/mvebu/pinctrl-armada-38x.c
> @@ -428,7 +428,6 @@ static int armada_38x_pinctrl_probe(struct platform_device *pdev)
>   		return PTR_ERR(mpp_base);
>
>   	soc->variant = (unsigned) match->data & 0xff;
> -
>   	soc->controls = armada_38x_mpp_controls;
>   	soc->ncontrols = ARRAY_SIZE(armada_38x_mpp_controls);
>   	soc->gpioranges = armada_38x_mpp_gpio_ranges;
>
>
> If you can drop the dtsi changes (I have them in mvebu/dt), and fix the
> whitespace change, then we can merge them as is.

Done.

> Thanks a ton for handling this!

No problem, thanks for resolving the dependencies :)

Sebastian



More information about the linux-arm-kernel mailing list