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