On Wed, Aug 10, 2011 at 12:17:45PM -0500, Kumar Gala wrote: > > 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: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? > > nope
Then how does the device number get associated with a particular device and how is user-space ensured a consistent namespace? Robin _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev