[U-Boot] [PATCH] fdt: Include arch specific gpio.h

Simon Glass sjg at chromium.org
Thu Jul 12 07:38:07 CEST 2012


Hi Michal,

On Thu, Jul 12, 2012 at 7:33 AM, Michal Simek <monstr at monstr.eu> wrote:
> On 07/11/2012 11:02 PM, Joe Hershberger wrote:
>>
>> Hi Michal,
>>
>> On Wed, Jul 11, 2012 at 7:21 AM, Michal Simek<monstr at monstr.eu>  wrote:
>>>
>>> On 07/11/2012 02:00 PM, Simon Glass wrote:
>>>>
>>>>
>>>> Hi Michal,
>>>>
>>>>
>>>> On Wed, Jul 11, 2012 at 1:21 PM, Michal Simek<monstr at monstr.eu
>>>> <mailto:monstr at monstr.eu>>  wrote:
>>>>
>>>>      On 07/11/2012 12:59 PM, Simon Glass wrote:
>>
>>
>> Please use text only email.  your email is causing this ugly,
>> hard-to-follow formatting.
>
>
> Will look at it. Thanks for pointing to it. I probably used gmail
> for my reply. I believe that Thunderbird will be fine.

It might have been me, sorry.

>
>
>>>>
>>>>                                 ---
>>>>                                   lib/fdtdec.c |    1 +
>>>>                                   1 files changed, 1 insertions(+), 0
>>>> deletions(-)
>>>>
>>>>                                 diff --git a/lib/fdtdec.c b/lib/fdtdec.c
>>>>                                 index cc09e06..b12eb77 100644
>>>>                                 --- a/lib/fdtdec.c
>>>>                                 +++ b/lib/fdtdec.c
>>>>                                 @@ -25,6 +25,7 @@
>>>>                                   #include<fdtdec.h>
>>>>
>>>>                                   /* we need the generic GPIO interface
>>>> here */
>>>>                                 +#include<asm/gpio.h>
>>>>
>>>>
>>>>                            Can you not instead support the generic
>>>> functions? What are you missing from from there that fdtdec.c needs?
>>>>
>>>>
>>>>                        OK. The problem is with fdtdec_setup_gpio
>>>> function
>>>> where you called gpio_request which
>>>>                        is gpio specific function which you haven't
>>>> included.
>>>>
>>>>                        The most archs have this defined in
>>>> arch/<cpuname>/include/asm/______gpio.h.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>                   This is there in my tree. Please see commit:
>>>>
>>>>                   5f533aeb gpio: Modify common gpio.h to more closely
>>>> match
>>>> Linux
>>>>
>>>>
>>>>               This is generic gpio cleanup but I don't think this is the
>>>> same thing.
>>>>               I think you should get some warnings for fdtdec
>>>> compilation
>>>> around missing gpio_request
>>>>               declaration or you include gpio.h in any other header file
>>>> which is in fdtdec.c/h.
>>>>
>>>>
>>>>          Sorry I don't really understand that. For me fdtdec.c has
>>>> #include
>>>> <asm-generic/gpio.h>  and that is enough to get gpio_request(). Can you
>>>> please advise what warning you see and for what board?
>>>>
>>>>
>>>>      Microblaze:
>>>>      lib/libgeneric.o: In function `fdtdec_setup_gpio':
>>>>      /mnt/projects/u-boot/lib/__fdtdec.c:477: undefined reference to
>>>> `gpio_request'
>>>>
>>>>
>>>>      The same error will be for nios2, openrisc and blackfin because
>>>> they
>>>> define
>>>>      gpio_request as static inline function in
>>>> arch/<arch>/include/asm/gpio.h
>>>>
>>>>      Because I think there should be asm/gpio.h included which can
>>>> include
>>>> asm-generic/gpio.h
>>>>      (this is arm case).
>>>>
>>>>
>>>> OK I see, that makes sense.
>>>>
>>
>> It seems to me that those platforms simply haven't been updated to use
>> the generic gpio.h and should be changed.
>>
>
> That can be truth but on the other hand I think that including
> asm-generic is not the best.
>
> Also in connection to this issue that code in fdtdec should be used
> when any CONFIG_GPIO config is enabled.

Well that highlights that we probably need a CONFIG to tell use when
the gpio layer is available. We can't be checking all the different
arch-specific options to find this out. Since, including
asm-generic/gpio.h is a reasonable solution in the fdtdec.c case for
most archs with -ffunction-sections (except ARM unless we apply
Charles Mannings' patch), since if no one actually calls those
functions we won't get a link error.

>
> Thanks
>
> Michal
>
>
> --
> Michal Simek, Ing. (M.Eng)
> w: www.monstr.eu p: +42-0-721842854
> Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
> Microblaze U-BOOT custodian


More information about the U-Boot mailing list