[PATCH v8 4/9] davinci: McASP configuration for Omapl138-Hawkboard

Kevin Hilman khilman at deeprootsystems.com
Thu Nov 18 18:57:02 EST 2010


"Nori, Sekhar" <nsekhar at ti.com> writes:

> Hi Michael,
>
> On Wed, Nov 17, 2010 at 02:12:53, Michael Williamson wrote:
>>
>> Help me out.  Why do we need generic pin lists?
>>
>
> They might help in cases where all boards will use the same set of
> pins. For example, every one who uses I2C will most likely both the
> clock and data pins from the IP. For more complex peripherals with
> different pins options they serve a documentation purpose at best.
>
>> It seems to me that the "generic pin list" for da850.c isn't practical for most
>> (if not all) of the peripherals.  They should be done using __initdata in
>> each board file.
>
> Yes, agreed.
>
>>
>> Just a cursory glance at what's in da850.c highlights several items being set
>> up for the EVM and not generically.  For example:
>>
>> - da850_uart1_pins and da850_uart2_pins: I believe both have RTS/CTS pins which
>>   for a generic definition should be included as for UART0, but would then
>>   be unused as the EVM doesn't use these pins in this function.
>
> Yes, the generic pin list should have RTS and CTS pins defined for UART1
> and UART2. This needs fixing.
>
>>
>> - da850_mcasp_pins: if generic, must include all 16 AXR pins.  I think you'd
>>   be hard pressed to find a board configuration that would use all 16 AXR pins
>>   for the McASP.  I'm fairly sure the EVM uses the pins called out, and uses
>>   other pins for other functions.  So it's likely this structure wouldn't get used.
>
> Yes, the generic pin list should either be completed or removed
> altogether and the existing pin list da850_mcasp_pins should be
> copied into the board file and called da850_evm_mcasp_pins.
>
>>
>> - da850_mmcsd0_pins : includes 2 GPIO pins (specific to the EVM, though possible for
>>   other boards) for the card detect and write protect signals.  These pins are
>>   completely arbitrary for that particular board design. I also believe that
>>   the complete mmcsd0 port has 4 more data lines as part of it's peripheral, although
>>   the driver doesn't support using them.
>
> This is incorrect again. The generic pin list should be completed
> (or removed) and the existing list should be copied into the EVM board
> file as da850_evm_mmcsd0_pins.
>
>>
>> - da850_emif25_pins interface doesn't include the generic pins for some of
>>   the SDRAM functions.
>
> Yes, this should be completed (or removed). This list is unused anyway.
>
>>
>> - da850_cpgmac_pins defines both RMII and MII pins.  I don't think any board
>>   would want to configure both sets at the same time.  Seems like this should
>>   never get used...
>
> Agreed.
>
>>
>> It's also incomplete.  What about the uPP pin list?  Or the VPIF?  Etc.
>
> These should be added as the drivers for these devices are
> supported.
>
>>
>> I think a board file author should be familiar enough with the SoC to understand
>> what peripheral pins he should be configuring for his/her particular hardware setup
>> and explicitly specify them in the board file.
>
> Agree.
>
>>
>> If you remove the common pin-mux lists and move them to a board file, then once you
>> configure your specific platform, is there any more memory used than with
>> the common scheme?  Of course, there would be replication of pin-mux code in the board
>
> There is no memory wastage. All the pin lists are init data.
>
> I too prefer all generic pin lists which are most likely not
> going to be used at all to be removed. Unused stuff like this
> will only make code difficult to read.

FWIW, I agree.

Now, who wants to tackle it?

Kevin





More information about the linux-arm-kernel mailing list