diff mbox

[U-Boot] gpio: mxc_gpio: enable DM gpio before relocation

Message ID 1434438521-31314-1-git-send-email-list-09_u-boot@tqsc.de
State Superseded
Delegated to: Stefano Babic
Headers show

Commit Message

Markus Niebel June 16, 2015, 7:08 a.m. UTC
From: Markus Niebel <Markus.Niebel@tq-group.com>

gpio often are needed to detect revision and variants.
Therefore gpio should be available ASAP.

Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
---
 drivers/gpio/mxc_gpio.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Simon Glass June 16, 2015, 9:44 p.m. UTC | #1
Hi Markus,

On 16 June 2015 at 01:08, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
> From: Markus Niebel <Markus.Niebel@tq-group.com>
>
> gpio often are needed to detect revision and variants.
> Therefore gpio should be available ASAP.
>
> Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
> ---
>  drivers/gpio/mxc_gpio.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
> index 2012f99..925758a 100644
> --- a/drivers/gpio/mxc_gpio.c
> +++ b/drivers/gpio/mxc_gpio.c
> @@ -330,6 +330,7 @@ U_BOOT_DRIVER(gpio_mxc) = {
>         .priv_auto_alloc_size = sizeof(struct mxc_bank_info),
>         .of_match = mxc_gpio_ids,
>         .bind   = mxc_gpio_bind,
> +       .flags  = DM_FLAG_PRE_RELOC,
>  };
>
>  #ifndef CONFIG_OF_CONTROL
> --
> 2.3.0
>

This should really be done in the device tree with the
u-boot,dm-pre-reloc property for the particular GPIO banks you need. I
don't think this should be a global setting.

Regards,
Simon
Markus Niebel June 17, 2015, 6:18 a.m. UTC | #2
Hello Simon,

Am 16.06.2015 um 23:44 schrieb Simon Glass:
> Hi Markus,
> 
> On 16 June 2015 at 01:08, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>> From: Markus Niebel <Markus.Niebel@tq-group.com>
>>
>> gpio often are needed to detect revision and variants.
>> Therefore gpio should be available ASAP.
>>
>> Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
>> ---
>>  drivers/gpio/mxc_gpio.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
>> index 2012f99..925758a 100644
>> --- a/drivers/gpio/mxc_gpio.c
>> +++ b/drivers/gpio/mxc_gpio.c
>> @@ -330,6 +330,7 @@ U_BOOT_DRIVER(gpio_mxc) = {
>>         .priv_auto_alloc_size = sizeof(struct mxc_bank_info),
>>         .of_match = mxc_gpio_ids,
>>         .bind   = mxc_gpio_bind,
>> +       .flags  = DM_FLAG_PRE_RELOC,
>>  };
>>
>>  #ifndef CONFIG_OF_CONTROL
>> --
>> 2.3.0
>>
> 
> This should really be done in the device tree with the
> u-boot,dm-pre-reloc property for the particular GPIO banks you need. I
> don't think this should be a global setting.
> 

I totally agree for the longer run - but tegra gpio does it the same way.

Regards,
Markus
Simon Glass June 17, 2015, 3:04 p.m. UTC | #3
Hi Markus,

On 17 June 2015 at 00:18, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>
> Hello Simon,
>
> Am 16.06.2015 um 23:44 schrieb Simon Glass:
> > Hi Markus,
> >
> > On 16 June 2015 at 01:08, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
> >> From: Markus Niebel <Markus.Niebel@tq-group.com>
> >>
> >> gpio often are needed to detect revision and variants.
> >> Therefore gpio should be available ASAP.
> >>
> >> Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
> >> ---
> >>  drivers/gpio/mxc_gpio.c | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
> >> index 2012f99..925758a 100644
> >> --- a/drivers/gpio/mxc_gpio.c
> >> +++ b/drivers/gpio/mxc_gpio.c
> >> @@ -330,6 +330,7 @@ U_BOOT_DRIVER(gpio_mxc) = {
> >>         .priv_auto_alloc_size = sizeof(struct mxc_bank_info),
> >>         .of_match = mxc_gpio_ids,
> >>         .bind   = mxc_gpio_bind,
> >> +       .flags  = DM_FLAG_PRE_RELOC,
> >>  };
> >>
> >>  #ifndef CONFIG_OF_CONTROL
> >> --
> >> 2.3.0
> >>
> >
> > This should really be done in the device tree with the
> > u-boot,dm-pre-reloc property for the particular GPIO banks you need. I
> > don't think this should be a global setting.
> >
>
> I totally agree for the longer run - but tegra gpio does it the same way.

That's because it currently doesn't use device tree in SPL. I'll take
a look at converting it over.

Is your GPIO driver used in SPL?

Regards,
Simon
Markus Niebel June 17, 2015, 5:12 p.m. UTC | #4
Am 17.06.2015 um 17:04 schrieb Simon Glass:
> Hi Markus,
> 
> On 17 June 2015 at 00:18, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>>
>> Hello Simon,
>>
>> Am 16.06.2015 um 23:44 schrieb Simon Glass:
>>> Hi Markus,
>>>
>>> On 16 June 2015 at 01:08, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>>>> From: Markus Niebel <Markus.Niebel@tq-group.com>
>>>>
>>>> gpio often are needed to detect revision and variants.
>>>> Therefore gpio should be available ASAP.
>>>>
>>>> Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
>>>> ---
>>>>  drivers/gpio/mxc_gpio.c | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
>>>> index 2012f99..925758a 100644
>>>> --- a/drivers/gpio/mxc_gpio.c
>>>> +++ b/drivers/gpio/mxc_gpio.c
>>>> @@ -330,6 +330,7 @@ U_BOOT_DRIVER(gpio_mxc) = {
>>>>         .priv_auto_alloc_size = sizeof(struct mxc_bank_info),
>>>>         .of_match = mxc_gpio_ids,
>>>>         .bind   = mxc_gpio_bind,
>>>> +       .flags  = DM_FLAG_PRE_RELOC,
>>>>  };
>>>>
>>>>  #ifndef CONFIG_OF_CONTROL
>>>> --
>>>> 2.3.0
>>>>
>>>
>>> This should really be done in the device tree with the
>>> u-boot,dm-pre-reloc property for the particular GPIO banks you need. I
>>> don't think this should be a global setting.
>>>
>>
>> I totally agree for the longer run - but tegra gpio does it the same way.
> 
> That's because it currently doesn't use device tree in SPL. I'll take
> a look at converting it over.
> 
> Is your GPIO driver used in SPL?
> 

As far as I understand: include/configs/imx6_spl.h defines CONFIG_SPL_GPIO_SUPPORT. So every mx6 board
using SPL includes GPIO. I2C driver for different imx SOC also uses GPIO for the bus reset logic. 
But I'm not too deep in the SPL stuff. BTW there is also no device tree support for mx6 in the moment 
in U-Boot.

Regards,
Markus
Simon Glass June 17, 2015, 5:17 p.m. UTC | #5
Hi Markus,

On 17 June 2015 at 11:12, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
> Am 17.06.2015 um 17:04 schrieb Simon Glass:
>> Hi Markus,
>>
>> On 17 June 2015 at 00:18, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>>>
>>> Hello Simon,
>>>
>>> Am 16.06.2015 um 23:44 schrieb Simon Glass:
>>>> Hi Markus,
>>>>
>>>> On 16 June 2015 at 01:08, Markus Niebel <list-09_u-boot@tqsc.de> wrote:
>>>>> From: Markus Niebel <Markus.Niebel@tq-group.com>
>>>>>
>>>>> gpio often are needed to detect revision and variants.
>>>>> Therefore gpio should be available ASAP.
>>>>>
>>>>> Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
>>>>> ---
>>>>>  drivers/gpio/mxc_gpio.c | 1 +
>>>>>  1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
>>>>> index 2012f99..925758a 100644
>>>>> --- a/drivers/gpio/mxc_gpio.c
>>>>> +++ b/drivers/gpio/mxc_gpio.c
>>>>> @@ -330,6 +330,7 @@ U_BOOT_DRIVER(gpio_mxc) = {
>>>>>         .priv_auto_alloc_size = sizeof(struct mxc_bank_info),
>>>>>         .of_match = mxc_gpio_ids,
>>>>>         .bind   = mxc_gpio_bind,
>>>>> +       .flags  = DM_FLAG_PRE_RELOC,
>>>>>  };
>>>>>
>>>>>  #ifndef CONFIG_OF_CONTROL
>>>>> --
>>>>> 2.3.0
>>>>>
>>>>
>>>> This should really be done in the device tree with the
>>>> u-boot,dm-pre-reloc property for the particular GPIO banks you need. I
>>>> don't think this should be a global setting.
>>>>
>>>
>>> I totally agree for the longer run - but tegra gpio does it the same way.
>>
>> That's because it currently doesn't use device tree in SPL. I'll take
>> a look at converting it over.
>>
>> Is your GPIO driver used in SPL?
>>
>
> As far as I understand: include/configs/imx6_spl.h defines CONFIG_SPL_GPIO_SUPPORT. So every mx6 board
> using SPL includes GPIO. I2C driver for different imx SOC also uses GPIO for the bus reset logic.
> But I'm not too deep in the SPL stuff. BTW there is also no device tree support for mx6 in the moment
> in U-Boot.

OK, so how about adding a TODO on that line to consider remove it once
device tree support is added?

But in any case it seems like you do need this line. It looks like MXC
does not have many GPIO banks so the impact should be fairly small.

Regards,
Simon
diff mbox

Patch

diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 2012f99..925758a 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -330,6 +330,7 @@  U_BOOT_DRIVER(gpio_mxc) = {
 	.priv_auto_alloc_size = sizeof(struct mxc_bank_info),
 	.of_match = mxc_gpio_ids,
 	.bind	= mxc_gpio_bind,
+	.flags  = DM_FLAG_PRE_RELOC,
 };
 
 #ifndef CONFIG_OF_CONTROL