On Tue, Nov 16, 2010 at 3:53 PM, Victor Rodriguez <vm.ro...@gmail.com> wrote:
> 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
>>
>

Hi

Any update on this ?

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

Reply via email to