[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <8C9817C6-735D-4B7C-A03B-5661C04C725A@kernel.crashing.org>
Date: Wed, 10 Aug 2011 12:17:45 -0500
From: Kumar Gala <galak@...nel.crashing.org>
To: Robin Holt <holt@....com>
Cc: Wood Scott-B07421 <B07421@...escale.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
U Bhaskar-B22300 <B22300@...escale.com>,
"socketcan-core@...ts.berlios.de" <socketcan-core@...ts.berlios.de>,
PPC list <linuxppc-dev@...ts.ozlabs.org>
Subject: Re: [PATCH v10 5/5] [powerpc] Fix up fsl-flexcan device tree binding.
On Aug 10, 2011, at 12:16 PM, Robin Holt wrote:
> On Wed, Aug 10, 2011 at 11:53:15AM -0500, Kumar Gala wrote:
>>
>> On Aug 10, 2011, at 11:00 AM, Robin Holt wrote:
>>
>>> On Wed, Aug 10, 2011 at 02:36:20PM +0000, U Bhaskar-B22300 wrote:
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Robin Holt [mailto:holt@....com]
>>>>> Sent: Wednesday, August 10, 2011 7:46 PM
>>>>> To: Wolfgang Grandegger
>>>>> Cc: Robin Holt; Marc Kleine-Budde; U Bhaskar-B22300; Wood Scott-B07421;
>>>>> netdev@...r.kernel.org; Kumar Gala; socketcan-core@...ts.berlios.de; PPC
>>>>> list
>>>>> Subject: Re: [PATCH v10 5/5] [powerpc] Fix up fsl-flexcan device tree
>>>>> binding.
>>>>>
>>>>> On Wed, Aug 10, 2011 at 03:47:43PM +0200, Wolfgang Grandegger wrote:
>>>>>> Hi Robin,
>>>>>>
>>>>>> On 08/10/2011 05:06 AM, Robin Holt wrote:
>>>>>>> In working with the socketcan developers, we have come to the
>>>>>>> conclusion the Documentation...fsl-flexcan.txt device tree
>>>>>>> documentation needs to be cleaned up. The driver does not depend
>>>>>>> upon any properties other
>>>>>>
>>>>>> Your first sentence could be misleading. Please just describe what the
>>>>>> patch does and why, something like:
>>>>>>
>>>>>> "This patch cleans up the documentation of the device-tree binding for
>>>>>> the Flexcan devices on Freescale's PowerPC and ARM cores. Extra
>>>>>> properties are not needed as the frequency of the source clock is
>>>>>> fixed..." and so on.
>>>>>
>>>>> I borrowed heavily from your message. ;)
>>>>>
>>>>>>> than the required properties so we are removing the file.
>>>>>>> Additionally, the p1010*dts* files are not following the standard
>>>>>>> for node naming in that they have a trailing -v1.0.
>>>>>>
>>>>>>> Signed-off-by: Robin Holt <holt@....com>
>>>>>>> To: Marc Kleine-Budde <mkl@...gutronix.de>,
>>>>>>> To: Wolfgang Grandegger <wg@...ndegger.com>,
>>>>>>> To: U Bhaskar-B22300 <B22300@...escale.com>
>>>>>>> To: Scott Wood <scottwood@...escale.com>
>>>>>>> Cc: socketcan-core@...ts.berlios.de,
>>>>>>> Cc: netdev@...r.kernel.org,
>>>>>>> Cc: PPC list <linuxppc-dev@...ts.ozlabs.org>
>>>>>>> Cc: Kumar Gala <galak@...nel.crashing.org>
>>>>>>> ---
>>>>>>> .../devicetree/bindings/net/can/fsl-flexcan.txt | 61 ----------
>>>>> ----------
>>>>>>> arch/powerpc/boot/dts/p1010rdb.dts | 8 ---
>>>>>>> arch/powerpc/boot/dts/p1010si.dtsi | 8 +-
>>>>>>> 3 files changed, 4 insertions(+), 73 deletions(-) delete mode
>>>>>>> 100644 Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
>>>>>>>
>>>>>>> diff --git
>>>>>>> a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
>>>>>>> b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
>>>>>>> deleted file mode 100644
>>>>>>> index 1a729f0..0000000
>>>>>>> --- a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
>>>>>>> +++ /dev/null
>>>>>>> @@ -1,61 +0,0 @@
>>>>>>> -CAN Device Tree Bindings
>>>>>>> -------------------------
>>>>>>> -2011 Freescale Semiconductor, Inc.
>>>>>>> -
>>>>>>> -fsl,flexcan-v1.0 nodes
>>>>>>> ------------------------
>>>>>>> -In addition to the required compatible-, reg- and
>>>>>>> interrupt-properties, you can -also specify which clock source shall
>>>>> be used for the controller.
>>>>>>> -
>>>>>>> -CPI Clock- Can Protocol Interface Clock
>>>>>>> - This CLK_SRC bit of CTRL(control register) selects the clock source
>>>>> to
>>>>>>> - the CAN Protocol Interface(CPI) to be either the peripheral clock
>>>>>>> - (driven by the PLL) or the crystal oscillator clock. The selected
>>>>> clock
>>>>>>> - is the one fed to the prescaler to generate the Serial Clock
>>>>> (Sclock).
>>>>>>> - The PRESDIV field of CTRL(control register) controls a prescaler
>>>>> that
>>>>>>> - generates the Serial Clock (Sclock), whose period defines the
>>>>>>> - time quantum used to compose the CAN waveform.
>>>>>>> -
>>>>>>> -Can Engine Clock Source
>>>>>>> - There are two sources for CAN clock
>>>>>>> - - Platform Clock It represents the bus clock
>>>>>>> - - Oscillator Clock
>>>>>>> -
>>>>>>> - Peripheral Clock (PLL)
>>>>>>> - --------------
>>>>>>> - |
>>>>>>> - --------- -------------
>>>>>>> - | |CPI Clock | Prescaler | Sclock
>>>>>>> - | |---------------->| (1.. 256) |------------>
>>>>>>> - --------- -------------
>>>>>>> - | |
>>>>>>> - -------------- ---------------------CLK_SRC
>>>>>>> - Oscillator Clock
>>>>>>> -
>>>>>>> -- fsl,flexcan-clock-source : CAN Engine Clock Source.This property
>>>>> selects
>>>>>>> - the peripheral clock. PLL clock is fed to the
>>>>>>> - prescaler to generate the Serial Clock (Sclock).
>>>>>>> - Valid values are "oscillator" and "platform"
>>>>>>> - "oscillator": CAN engine clock source is
>>>>> oscillator clock.
>>>>>>> - "platform" The CAN engine clock source is the bus
>>>>> clock
>>>>>>> - (platform clock).
>>>>>>> -
>>>>>>> -- fsl,flexcan-clock-divider : for the reference and system clock, an
>>>>> additional
>>>>>>> - clock divider can be specified.
>>>>>>> -- clock-frequency: frequency required to calculate the bitrate for
>>>>> FlexCAN.
>>>>>>> -
>>>>>>> -Note:
>>>>>>> - - v1.0 of flexcan-v1.0 represent the IP block version for P1010
>>>>> SOC.
>>>>>>> - - P1010 does not have oscillator as the Clock Source.So the default
>>>>>>> - Clock Source is platform clock.
>>>>>>> -Examples:
>>>>>>> -
>>>>>>> - can0@...00 {
>>>>>>> - compatible = "fsl,flexcan-v1.0";
>>>>>>> - reg = <0x1c000 0x1000>;
>>>>>>> - interrupts = <48 0x2>;
>>>>>>> - interrupt-parent = <&mpic>;
>>>>>>> - fsl,flexcan-clock-source = "platform";
>>>>>>> - fsl,flexcan-clock-divqider = <2>;
>>>>>>> - clock-frequency = <fixed by u-boot>;
>>>>>>> - };
>>>>>>
>>>>>> Do we really want to drop the documentation for that binding. I think
>>>>>> something like the following text would be still useful:
>>>>>>
>>>>>> ------------------------
>>>>>> Flexcan CAN contoller on Freescale's ARM and PowerPC processors
>>>>>>
>>>>>> Required properties:
>>>>>>
>>>>>> - compatible : Should be "fsl,flexcan" and optionally
>>>>>> "fsl,flexcan-<processor>"
>>>>>> - reg : Offset and length of the register set for this device
>>>>>> - interrupts : Interrupt tuple for this device
>>>>>>
>>>>>> Example:
>>>>>>
>>>>>> can@...00 {
>>>>>> compatible = "fsl,p1010-flexcan", "fsl,flexcan";
>>>>>> reg = <0x1c000 0x1000>;
>>>>>> interrupts = <48 0x2>;
>>>>>> interrupt-parent = <&mpic>;
>>>>>> };
>>>>>> -------------------------
>>>>>
>>>>> Done, except the
>>>>>> compatible = "fsl,p1010-flexcan", "fsl,flexcan";
>>>>>
>>>>> line is
>>>>> compatible = "fsl,flexcan", "fsl,flexcan-p1010";
>>>>>
>>>>>>
>>>>>> What do you think?
>>>>>>
>>>>>>> diff --git a/arch/powerpc/boot/dts/p1010rdb.dts
>>>>>>> b/arch/powerpc/boot/dts/p1010rdb.dts
>>>>>>> index 6b33b73..d6a0bb2 100644
>>>>>>> --- a/arch/powerpc/boot/dts/p1010rdb.dts
>>>>>>> +++ b/arch/powerpc/boot/dts/p1010rdb.dts
>>>>>>> @@ -169,14 +169,6 @@
>>>>>>> };
>>>>>>> };
>>>>>>>
>>>>>>> - can0@...00 {
>>>>>>> - fsl,flexcan-clock-source = "platform";
>>>>>>> - };
>>>>>>> -
>>>>>>> - can1@...00 {
>>>>>>> - fsl,flexcan-clock-source = "platform";
>>>>>>> - };
>>>>>>> -
>>>>>>> usb@...00 {
>>>>>>> phy_type = "utmi";
>>>>>>> };
>>>>>>> diff --git a/arch/powerpc/boot/dts/p1010si.dtsi
>>>>>>> b/arch/powerpc/boot/dts/p1010si.dtsi
>>>>>>> index 7f51104..20c396d 100644
>>>>>>> --- a/arch/powerpc/boot/dts/p1010si.dtsi
>>>>>>> +++ b/arch/powerpc/boot/dts/p1010si.dtsi
>>>>>>> @@ -141,19 +141,19 @@
>>>>>>> };
>>>>>>>
>>>>>>> can0@...00 {
>>>>>>> - compatible = "fsl,flexcan-v1.0";
>>>>>>> + compatible = "fsl,p1010-flexcan",
>>>>>>> + "fsl,flexcan";
>>>>>>
>>>>>> Does fit on one line.
>>>>>>
>>>>>>> reg = <0x1c000 0x1000>;
>>>>>>> interrupts = <48 0x2>;
>>>>>>> interrupt-parent = <&mpic>;
>>>>>>> - fsl,flexcan-clock-divider = <2>;
>>>>>>> };
>>>>>>>
>>>>>>> can1@...00 {
>>>>>>> - compatible = "fsl,flexcan-v1.0";
>>>>>>> + compatible = "fsl,p1010-flexcan",
>>>>>>> + "fsl,flexcan";
>>>>>>
>>>>>> Ditto
>>>>>>
>>>>>>> reg = <0x1d000 0x1000>;
>>>>>>> interrupts = <61 0x2>;
>>>>>>> interrupt-parent = <&mpic>;
>>>>>>> - fsl,flexcan-clock-divider = <2>;
>>>>>>> };
>>>>>>>
>>>>>>> L2: l2-cache-controller@...00 {
>>>>>>
>>>>>> Please also correct the node names (not using the number suffix).
>>>>>
>>>>> So the node names should be
>>>>> can@...00 {
>>>>> can@...00 {
>>>>> correct?
>>>>>
>>>> [Bhaskar] As there are two CAN controllers on P1010,So won't it be better
>>>> to distinguish it by can0 and can1 instead by simple "can" ?
>>>
>>> It looks like the way to do that is to assign a label to those devices
>>> and then associate the label with an alias. I have no idea how that
>>> works under the hood, but it is the way other files are set up. Take a
>>> look at arch/powerpc/boot/dts/bamboo.dts for how they define the serial
>>> interfaces.
>>>
>>> Grant or Wolfgang, is that the right way to handle the concern about
>>> names or does it have no practical effect with the Linux kernel?
>>
>> It has not effect. The label is just if you need to reference it via some other means.
>
> Does the alias have an effect?
nope
- k
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists