[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <542AB9FC.6060705@pengutronix.de>
Date: Tue, 30 Sep 2014 16:11:08 +0200
From: Marc Kleine-Budde <mkl@...gutronix.de>
To: Roger Quadros <rogerq@...com>, Wolfram Sang <wsa@...-dreams.de>
CC: wg@...ndegger.com, tony@...mide.com, tglx@...utronix.de,
mugunthanvnm@...com, george.cherian@...com, balbi@...com,
nsekhar@...com, nm@...com, sergei.shtylyov@...entembedded.com,
linux-omap@...r.kernel.org, linux-can@...r.kernel.org,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH v2 2/3] net: can: c_can: Add syscon/regmap RAMINIT mechanism
On 09/30/2014 04:02 PM, Roger Quadros wrote:
> On 09/30/2014 04:45 PM, Marc Kleine-Budde wrote:
>> On 09/30/2014 03:26 PM, Wolfram Sang wrote:
>>> On Tue, Sep 09, 2014 at 05:31:09PM +0300, Roger Quadros wrote:
>>>> Some TI SoCs like DRA7 have a RAMINIT register specification
>>>> different from the other AMxx SoCs and as expected by the
>>>> existing driver.
>>>>
>>>> To add more insanity, this register is shared with other
>>>> IPs like DSS, PCIe and PWM.
>>>>
>>>> Provides a more generic mechanism to specify the RAMINIT
>>>> register location and START/DONE bit position and use the
>>>> syscon/regmap framework to access the register.
>>>>
>>>> Signed-off-by: Roger Quadros <rogerq@...com>
>>>> ---
>>>> .../devicetree/bindings/net/can/c_can.txt | 7 ++
>>>> drivers/net/can/c_can/c_can.h | 11 ++-
>>>> drivers/net/can/c_can/c_can_platform.c | 109 +++++++++++++++------
>>>> 3 files changed, 95 insertions(+), 32 deletions(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/net/can/c_can.txt b/Documentation/devicetree/bindings/net/can/c_can.txt
>>>> index 8f1ae81..e12d1a1 100644
>>>> --- a/Documentation/devicetree/bindings/net/can/c_can.txt
>>>> +++ b/Documentation/devicetree/bindings/net/can/c_can.txt
>>>> @@ -13,6 +13,13 @@ Optional properties:
>>>> - ti,hwmods : Must be "d_can<n>" or "c_can<n>", n being the
>>>> instance number
>>>>
>>>> +- ti,raminit-syscon : Handle to system control region that contains the
>>>> + RAMINIT register. If specified, the second memory resource
>>>> + in the reg property must index into the RAMINIT
>>>> + register within the syscon region
>>>
>>> There seems to be a simple "syscon" property these days.
>>>
>>>> +- ti,raminit-start-bit : Bit posistion of START bit in the RAMINIT register
>>>> +- ti,raminit-done-bit : Bit position of DONE bit in the RAMINIT register
>>>
>>> This should not be encoded in DT! This is not describing hardware setup.
>>> The driver should know where the bits are for the syscon phandle,
>>> depending on which SoC it runs...
>>
>> Is the register shared by more than one core? If so the information has
>> to go somewhere. Using an alias in the DT is probably the wrong approach.
>
> In case of the DRA7xx Soc, this syscon register is shared by multiple cores. (CAN, Display, etc), sigh!!
> For AM335x and AM43xx SoCs, the register is used only for DCAN. but shared by 2 DCAN instances.
>
> Shouldn't the information for the CAN specific bits lie in the CAN driver?
As there are more than one DCAN instance on the same SOC the information
which DCAN instance uses which bits in the register has to go somewhere.
We might add these bits as the 3rd and 4th parameter to the syscon phandle.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Download attachment "signature.asc" of type "application/pgp-signature" (182 bytes)
Powered by blists - more mailing lists