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

Reply via email to