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:h...@sgi.com] > >>> Sent: Wednesday, August 10, 2011 7:46 PM > >>> To: Wolfgang Grandegger > >>> Cc: Robin Holt; Marc Kleine-Budde; U Bhaskar-B22300; Wood Scott-B07421; > >>> net...@vger.kernel.org; Kumar Gala; socketcan-c...@lists.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 <h...@sgi.com> > >>>>> To: Marc Kleine-Budde <m...@pengutronix.de>, > >>>>> To: Wolfgang Grandegger <w...@grandegger.com>, > >>>>> To: U Bhaskar-B22300 <b22...@freescale.com> > >>>>> To: Scott Wood <scottw...@freescale.com> > >>>>> Cc: socketcan-c...@lists.berlios.de, > >>>>> Cc: net...@vger.kernel.org, > >>>>> Cc: PPC list <linuxppc-dev@lists.ozlabs.org> > >>>>> Cc: Kumar Gala <ga...@kernel.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@1c000 { > >>>>> - 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@1c000 { > >>>> 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@1c000 { > >>>>> - fsl,flexcan-clock-source = "platform"; > >>>>> - }; > >>>>> - > >>>>> - can1@1d000 { > >>>>> - fsl,flexcan-clock-source = "platform"; > >>>>> - }; > >>>>> - > >>>>> usb@22000 { > >>>>> 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@1c000 { > >>>>> - 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@1d000 { > >>>>> - 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@20000 { > >>>> > >>>> Please also correct the node names (not using the number suffix). > >>> > >>> So the node names should be > >>> can@1c000 { > >>> can@1d000 { > >>> 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? Robin _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev