[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <63306A24-3FBF-4DAA-A0B9-6005F56BB76F@kernel.crashing.org>
Date: Wed, 10 Aug 2011 11:53:15 -0500
From: Kumar Gala <galak@...nel.crashing.org>
To: Robin Holt <holt@....com>
Cc: U Bhaskar-B22300 <B22300@...escale.com>,
Wolfgang Grandegger <wg@...ndegger.com>,
Marc Kleine-Budde <mkl@...gutronix.de>,
Wood Scott-B07421 <B07421@...escale.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"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 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.
- 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