On Tue, Nov 16, 2010 at 3:21 PM, Victor Rodriguez <vm.ro...@gmail.com> wrote:
> On Tue, Nov 16, 2010 at 2:42 PM, Michael Williamson
> <michael.william...@criticallink.com> wrote:
>> On 11/16/2010 11:37 AM, Nori, Sekhar wrote:
>>
>>> On Tue, Nov 16, 2010 at 21:34:03, Sergei Shtylyov wrote:
>>>
>>>>
>>>>> HI Sergei and Sekhar
>>>>
>>>>> Thanks for check the patch
>>>>
>>>>> What I can do if you agree with this change is to leave da850.c as it
>>>>> is,
>>>>
>>>> No, please don't.
>>>>
>>>>> and declare
>>>>
>>>>> static short hawk_mcasp_pins[] __initdata = {
>>>>> DA850_AHCLKX, DA850_ACLKX, DA850_AFSX,
>>>>> DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE,
>>>>> DA850_AXR_11, DA850_AXR_12, DA850_AXR_13, DA850_AXR_14,
>>>>> -1
>>>>> };
>>>>
>>>>> on the hawkboard file and call it insted of da850_mcasp_pins.
>>>>
>>>>> ret = davinci_cfg_reg_list(hawk_mcasp_pins);
>>>>> if (ret)
>>>>> pr_warning("%s: mcasp mux setup failed: %d\n", __func__, ret);
>>>>
>>>>> Please tell me if you agree with this change, I think is better
>>>>> because I do not touch any other file besides my board file.
>>>>
>>>> No, it's not really better. The generic list in da850.c should be more
>>>> complete, regardless... Ideally, you should go thru the DA850 manual and
>>>> put in
>>>> that list all McASP pins that aren't already there. Then you can use your
>>>> own
>>>> pin list if that *complete* pin list can't be used on your board.
>>>
>>> That will cause a bunch of pin conflicts on the EVM so it will need
>>> its own list too.
>>>
>>
>>
>> Help me out. Why do we need generic pin lists?
>>
>> 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.
>>
>> 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.
>>
>> - 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.
>>
>> - 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.
>>
>> - da850_emif25_pins interface doesn't include the generic pins for some of
>> the SDRAM functions.
>>
>> - 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...
>>
>> It's also incomplete. What about the uPP pin list? Or the VPIF? Etc.
>>
>> 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.
>>
>> 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
>> files that had identical configurations. Is that the driver for the current
>> implementation?
>>
>> Is there a thread that hashes through the decisions on this that I should be
>> googling?
>>
>> Thanks for any insight.
>>
>> -Mike
>>
>>
>>
>>
>>
>>
>>
>
>
> Hi Mike thanks for the comments I agree with the part of replication
>
> So do you recommend that the best way to solve this problem is to make
> a pin list that has all the 16 pins on da850.c ?
>
> I have checked and on the file
>
> arch/arm/mach-davinci/include/mach/mux.h
>
> are declared
>
> /* McASP function */
> DA850_ACLKR,
> DA850_ACLKX,
> DA850_AFSR,
> DA850_AFSX,
> DA850_AHCLKR,
> DA850_AHCLKX,
> DA850_AMUTE,
> DA850_AXR_15,
> DA850_AXR_14,
> DA850_AXR_13,
> DA850_AXR_12,
> DA850_AXR_11,
> DA850_AXR_10,
> DA850_AXR_9,
> DA850_AXR_8,
> DA850_AXR_7,
> DA850_AXR_6,
> DA850_AXR_5,
> DA850_AXR_4,
> DA850_AXR_3,
> DA850_AXR_2,
> DA850_AXR_1,
> DA850_AXR_0,
>
> I have changed the pin list to
>
>
> const short da850_mcasp_pins[] __initdata = {
> DA850_AHCLKX, DA850_ACLKX, DA850_AFSX,
> DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE,
> DA850_AXR_11, DA850_AXR_12,DA850_AXR_13, DA850_AXR_14, DA850_AXR_15,
> -1
> };
>
> and after checked with the hawk board it works fine
>
> I have put on the list all the available pins for McASP even if
> hawkboard does not need the last one DA850_AXR_15 , and is still
> working
>
> Please tell me which way do you recommend me
>
> Regards
>
> Victor Rodriguez
>
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source