Hi Bhupesh, On 09/01/2010 11:01 AM, Bhupesh SHARMA wrote: > Hi Wolfgang, > >> -----Original Message----- >> From: Wolfgang Grandegger [mailto:[email protected]] >> Sent: Wednesday, September 01, 2010 12:56 PM >> To: Bhupesh SHARMA >> Cc: [email protected] >> Subject: Re: [RFC PATCH 1/4] SPEAr320 CCAN driver >> >> Hi Bhupesh, >> >> On 09/01/2010 06:40 AM, Bhupesh SHARMA wrote:
... >>> It is also particularly useful as we now have a new SPEAr1310 SoC >> which also uses the Bosch CCAN controller >>> , but the glue logic has changed from SPEAr320 and hence we can >> handle most of the platform/machine specific details >>> in SPEAr1310 driver and keep Bosch CCAN driver as it is. >> >> What has changed with the new Soc and what platform specific details >> and >> initializations do you think about? I personally do not see a lot of >> platform specific code in your spear320_can.c. Just spear320_can_read() >> and spear320_can_write() and also these functions look pretty generic. >> Also note that platform specific initialization is usually not done in >> the CAN driver but the platform code. > > In a way you are correct: mainly the spear320_can_read() and > spear320_can_write() > change from spear1310_can_read() and spear1310_can_write() implementations. Can you show us the new spear1310_can_read/write functions? I want to understand how generic they really are. >> I was thinking about a generic C_CAN platform driver similar to the >> sja1000+platform driver: >> >> http://lxr.linux.no/#linux+v2.6.35/drivers/net/can/sja1000/sja1000_plat >> form.c >> >> Don't be confused. For the SJA1000 it consists of sja1000 plus >> sja1000_platform. For the C_CAN it would be just one driver (as we do >> not need to support other interfaces). As you can see, also this driver >> supports various access methods. >> >> What we should avoid is useless code duplication, e.g.: >> >> c_can/spear320_can.c >> c_can/spear1320_can.c >> c_can/other_can.c >> ... > > I must admit that now I am more confused :) Sorry, I though my note above would help. > Let me write down what my understanding is and please correct me if you think > otherwise: > 1. sja1000_platform.c is pretty similar in implementation/purpose to > spear320_can.c/spear1310_can.c Yes, but it is a *generic* interface usable for various platforms which select the access method in their platform code. > 2. sja1000.c is pretty similar in implementation/purpose to bosch_ccan.c Yes. > In case we design one CCAN platform driver then where should the difference > in spearxxx_can_read() > and spearxxx_can_write be managed? I'm just hoping that the I/O functions are generic enough to support other platforms as well. If not, a separate interface makes sense. Wolfgang. _______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
