Message ID | 1518701959-22899-2-git-send-email-tali.perry1@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Feb 15, 2018 at 5:39 AM, Tali Perry <tali.perry1@gmail.com> wrote: > > Signed-off-by: Tali Perry <tali.perry1@gmail.com> > <snip> I think this should probably be rolled into [PATCH v2 1/1] npcm750: add fixed clocks (moved from drivers/clk/clk-npcm7xx.c): https://www.spinics.net/lists/arm-kernel/msg634678.html Cheers
On Thu, Feb 15, 2018 at 02:38:12PM -0800, Brendan Higgins wrote: > On Thu, Feb 15, 2018 at 5:39 AM, Tali Perry <tali.perry1@gmail.com> wrote: > > > > Signed-off-by: Tali Perry <tali.perry1@gmail.com> > > > <snip> > > I think this should probably be rolled into [PATCH v2 1/1] npcm750: add fixed > clocks (moved from drivers/clk/clk-npcm7xx.c): > https://www.spinics.net/lists/arm-kernel/msg634678.html No, binding docs, dts files and driver code should all be separate patches. Rob
On Thu, Feb 15, 2018 at 03:39:19PM +0200, Tali Perry wrote: > > Signed-off-by: Tali Perry <tali.perry1@gmail.com> > > --- > .../bindings/clock/nuvoton,npcm750-clk.txt | 103 +++++++++++++++++++++ > include/dt-bindings/clock/nuvoton,npcm7xx-clock.h | 51 ++++++++++ > 2 files changed, 154 insertions(+) > create mode 100644 Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt > create mode 100644 include/dt-bindings/clock/nuvoton,npcm7xx-clock.h > > diff --git a/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt b/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt > new file mode 100644 > index 000000000000..5d14a8358e76 > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt > @@ -0,0 +1,103 @@ > +* Nuvoton NPCM7XX Clock Controller > + > +Nuvoton Poleg BMC NPCM7XX contains an integrated clock controller, which > +generates and supplies clocks to all modules within the BMC. > + > +External clocks: > + > +There are six fixed clocks that are generated outside the BMC. All clocks are of > +a known fixed value that cannot be changed. clk_refclk, clk_mcbypck and > +clk_sysbypck are inputs to the clock controller. > +clk_rg1refck, clk_rg2refck and clk_xin are external clocks suppling the > +network. They are set on the device tree, but not used by the clock module. The > +network devices use them directly. > +Example can be found below. > + > +All available clocks are defined as preprocessor macros in: > +dt-bindings/clock/nuvoton,npcm7xx-clock.h > +and can be reused as DT sources. > + > +Required Properties of clock controller: > + > +Clock controller node requirements: This line is redundant. > + - compatible: "nuvoton,npcm750-clk" : for clock controller of Nuvoton > + Poleg BMC NPCM750 > + > + - reg: physical base address of the clock controller and length of > + memory mapped region. > + > + - #clock-cells: should be 1. > + > +Example: Clock controller node: > + > + clk: clock-controller@f0801000 { > + compatible = "nuvoton,npcm750-clk"; > + #clock-cells = <1>; > + clock-controller; That's not a defined property. > + reg = <0xf0801000 0x1000>; No input clocks for the clock controller? > + }; > + > +Example: Required external clocks for network: > + > + /* external reference clock */ > + clk_refclk: clk-refclk { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <25000000>; > + clock-output-names = "refclk"; > + }; > + > + /* external reference clock for cpu. float in normal operation */ > + clk_sysbypck: clk-sysbypck { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <800000000>; > + clock-output-names = "sysbypck"; > + }; > + > + /* external reference clock for MC. float in normal operation */ > + clk_mcbypck: clk-mcbypck { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <800000000>; > + clock-output-names = "mcbypck"; > + }; > + > + /* external clock signal rg1refck, supplied by the phy */ > + clk_rg1refck: clk-rg1refck { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <125000000>; > + clock-output-names = "clk_rg1refck"; > + }; > + > + /* external clock signal rg2refck, supplied by the phy */ > + clk_rg2refck: clk-rg2refck { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <125000000>; > + clock-output-names = "clk_rg2refck"; > + }; > + > + clk_xin: clk-xin { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <50000000>; > + clock-output-names = "clk_xin"; > + }; > + > + > +Example: GMAC controller node that consumes two clocks: a generated clk by the > +clock controller and a fixed clock from DT (clk_rg1refck). > + > + gmac0: eth@f0802000 { ethernet@... > + device_type = "network"; device_type is deprecated (except in a few places). > + compatible = "snps,dwmac"; > + reg = <0xf0802000 0x2000>; > + interrupts = <0 14 4>; > + interrupt-names = "macirq"; > + ethernet = <0>; Not a standard property. > + clocks = <&clk_rg1refck>, <&clk NPCM7XX_CLK_AHB>; > + clock-names = "stmmaceth", "clk_gmac"; > + status = "disabled"; Don't show status in examples. > + }; > diff --git a/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h b/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h > new file mode 100644 > index 000000000000..5499783649d6 > --- /dev/null > +++ b/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h > @@ -0,0 +1,51 @@ > +/* > + * Nuvoton NPCM7xx Clock Generator > + * All the clocks are initialized by the bootloader, so this driver allow only > + * reading of current settings directly from the hardware. This comment doesn't really match what the file is. > + * > + * Copyright (C) 2018 Nuvoton Technologies tali.perry@nuvoton.com > + * > + * Released under the GPLv2 only. > + * SPDX-License-Identifier: GPL-2.0 Goes on first line as a separate comment. > + * http://www.opensource.org/licenses/gpl-license.html > + * http://www.gnu.org/copyleft/gpl.html Don't need these. > + */ > + > +#ifndef __DT_BINDINGS_CLOCK_NPCM7XX_H > +#define __DT_BINDINGS_CLOCK_NPCM7XX_H > + > + > +#define NPCM7XX_CLK_CPU 0 > +#define NPCM7XX_CLK_GFX_PIXEL 1 > +#define NPCM7XX_CLK_MC 2 > +#define NPCM7XX_CLK_ADC 3 > +#define NPCM7XX_CLK_AHB 4 > +#define NPCM7XX_CLK_TIMER 5 > +#define NPCM7XX_CLK_UART 6 > +#define NPCM7XX_CLK_MMC 7 > +#define NPCM7XX_CLK_SPI3 8 > +#define NPCM7XX_CLK_PCI 9 > +#define NPCM7XX_CLK_AXI 10 > +#define NPCM7XX_CLK_APB4 11 > +#define NPCM7XX_CLK_APB3 12 > +#define NPCM7XX_CLK_APB2 13 > +#define NPCM7XX_CLK_APB1 14 > +#define NPCM7XX_CLK_APB5 15 > +#define NPCM7XX_CLK_CLKOUT 16 > +#define NPCM7XX_CLK_GFX 17 > +#define NPCM7XX_CLK_SU 18 > +#define NPCM7XX_CLK_SU48 19 > +#define NPCM7XX_CLK_SDHC 20 > +#define NPCM7XX_CLK_SPI0 21 > +#define NPCM7XX_CLK_SPIX 22 > + > +#define NPCM7XX_CLK_REFCLK 23 > +#define NPCM7XX_CLK_SYSBYPCK 24 > +#define NPCM7XX_CLK_MCBYPCK 25 > + > + > +#define NPCM7XX_NUM_CLOCKS (NPCM7XX_CLK_MCBYPCK+1) > + > + > + > +#endif > -- > 2.14.1 >
On Mon, Feb 19, 2018 at 6:49 AM, Rob Herring <robh@kernel.org> wrote: > On Thu, Feb 15, 2018 at 02:38:12PM -0800, Brendan Higgins wrote: >> On Thu, Feb 15, 2018 at 5:39 AM, Tali Perry <tali.perry1@gmail.com> wrote: >> > >> > Signed-off-by: Tali Perry <tali.perry1@gmail.com> >> > >> <snip> >> >> I think this should probably be rolled into [PATCH v2 1/1] npcm750: add fixed >> clocks (moved from drivers/clk/clk-npcm7xx.c): >> https://www.spinics.net/lists/arm-kernel/msg634678.html > > No, binding docs, dts files and driver code should all be separate > patches. My mistake. This patch has a dt-bindings include file; should the include file go in here, with the dtsi changes, or in its own separate patch? Thanks
On Tue, Feb 20, 2018 at 10:47 PM, Brendan Higgins <brendanhiggins@google.com> wrote: > On Mon, Feb 19, 2018 at 6:49 AM, Rob Herring <robh@kernel.org> wrote: >> On Thu, Feb 15, 2018 at 02:38:12PM -0800, Brendan Higgins wrote: >>> On Thu, Feb 15, 2018 at 5:39 AM, Tali Perry <tali.perry1@gmail.com> wrote: >>> > >>> > Signed-off-by: Tali Perry <tali.perry1@gmail.com> >>> > >>> <snip> >>> >>> I think this should probably be rolled into [PATCH v2 1/1] npcm750: add fixed >>> clocks (moved from drivers/clk/clk-npcm7xx.c): >>> https://www.spinics.net/lists/arm-kernel/msg634678.html >> >> No, binding docs, dts files and driver code should all be separate >> patches. > > My mistake. This patch has a dt-bindings include file; should the include file > go in here, with the dtsi changes, or in its own separate patch? It defines the binding, so with the binding documentation. Rob
On Wed, Feb 21, 2018 at 5:23 AM, Rob Herring <robh@kernel.org> wrote: > On Tue, Feb 20, 2018 at 10:47 PM, Brendan Higgins > <brendanhiggins@google.com> wrote: >> On Mon, Feb 19, 2018 at 6:49 AM, Rob Herring <robh@kernel.org> wrote: >>> On Thu, Feb 15, 2018 at 02:38:12PM -0800, Brendan Higgins wrote: >>>> On Thu, Feb 15, 2018 at 5:39 AM, Tali Perry <tali.perry1@gmail.com> wrote: >>>> > >>>> > Signed-off-by: Tali Perry <tali.perry1@gmail.com> >>>> > >>>> <snip> >>>> >>>> I think this should probably be rolled into [PATCH v2 1/1] npcm750: add fixed >>>> clocks (moved from drivers/clk/clk-npcm7xx.c): >>>> https://www.spinics.net/lists/arm-kernel/msg634678.html >>> >>> No, binding docs, dts files and driver code should all be separate >>> patches. >> >> My mistake. This patch has a dt-bindings include file; should the include file >> go in here, with the dtsi changes, or in its own separate patch? > > It defines the binding, so with the binding documentation. > So two things, first off, the include file I was asking about is not a dtsi, but a file that defines a bunch of macros for referencing clocks. I don't know if that makes a difference. Second, the patch that I referenced above, "[PATCH v2 1/1] npcm750: add fixed clocks (moved from drivers/clk/clk-npcm7xx.c): https://www.spinics.net/lists/arm-kernel/msg634678.html", *does* contain a dtsi and nothing else, and defines these bindings, which is why I thought it went in with the binding docs. Cheers
diff --git a/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt b/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt new file mode 100644 index 000000000000..5d14a8358e76 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt @@ -0,0 +1,103 @@ +* Nuvoton NPCM7XX Clock Controller + +Nuvoton Poleg BMC NPCM7XX contains an integrated clock controller, which +generates and supplies clocks to all modules within the BMC. + +External clocks: + +There are six fixed clocks that are generated outside the BMC. All clocks are of +a known fixed value that cannot be changed. clk_refclk, clk_mcbypck and +clk_sysbypck are inputs to the clock controller. +clk_rg1refck, clk_rg2refck and clk_xin are external clocks suppling the +network. They are set on the device tree, but not used by the clock module. The +network devices use them directly. +Example can be found below. + +All available clocks are defined as preprocessor macros in: +dt-bindings/clock/nuvoton,npcm7xx-clock.h +and can be reused as DT sources. + +Required Properties of clock controller: + +Clock controller node requirements: + - compatible: "nuvoton,npcm750-clk" : for clock controller of Nuvoton + Poleg BMC NPCM750 + + - reg: physical base address of the clock controller and length of + memory mapped region. + + - #clock-cells: should be 1. + +Example: Clock controller node: + + clk: clock-controller@f0801000 { + compatible = "nuvoton,npcm750-clk"; + #clock-cells = <1>; + clock-controller; + reg = <0xf0801000 0x1000>; + }; + +Example: Required external clocks for network: + + /* external reference clock */ + clk_refclk: clk-refclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + clock-output-names = "refclk"; + }; + + /* external reference clock for cpu. float in normal operation */ + clk_sysbypck: clk-sysbypck { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <800000000>; + clock-output-names = "sysbypck"; + }; + + /* external reference clock for MC. float in normal operation */ + clk_mcbypck: clk-mcbypck { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <800000000>; + clock-output-names = "mcbypck"; + }; + + /* external clock signal rg1refck, supplied by the phy */ + clk_rg1refck: clk-rg1refck { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + clock-output-names = "clk_rg1refck"; + }; + + /* external clock signal rg2refck, supplied by the phy */ + clk_rg2refck: clk-rg2refck { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + clock-output-names = "clk_rg2refck"; + }; + + clk_xin: clk-xin { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <50000000>; + clock-output-names = "clk_xin"; + }; + + +Example: GMAC controller node that consumes two clocks: a generated clk by the +clock controller and a fixed clock from DT (clk_rg1refck). + + gmac0: eth@f0802000 { + device_type = "network"; + compatible = "snps,dwmac"; + reg = <0xf0802000 0x2000>; + interrupts = <0 14 4>; + interrupt-names = "macirq"; + ethernet = <0>; + clocks = <&clk_rg1refck>, <&clk NPCM7XX_CLK_AHB>; + clock-names = "stmmaceth", "clk_gmac"; + status = "disabled"; + }; diff --git a/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h b/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h new file mode 100644 index 000000000000..5499783649d6 --- /dev/null +++ b/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h @@ -0,0 +1,51 @@ +/* + * Nuvoton NPCM7xx Clock Generator + * All the clocks are initialized by the bootloader, so this driver allow only + * reading of current settings directly from the hardware. + * + * Copyright (C) 2018 Nuvoton Technologies tali.perry@nuvoton.com + * + * Released under the GPLv2 only. + * SPDX-License-Identifier: GPL-2.0 + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +#ifndef __DT_BINDINGS_CLOCK_NPCM7XX_H +#define __DT_BINDINGS_CLOCK_NPCM7XX_H + + +#define NPCM7XX_CLK_CPU 0 +#define NPCM7XX_CLK_GFX_PIXEL 1 +#define NPCM7XX_CLK_MC 2 +#define NPCM7XX_CLK_ADC 3 +#define NPCM7XX_CLK_AHB 4 +#define NPCM7XX_CLK_TIMER 5 +#define NPCM7XX_CLK_UART 6 +#define NPCM7XX_CLK_MMC 7 +#define NPCM7XX_CLK_SPI3 8 +#define NPCM7XX_CLK_PCI 9 +#define NPCM7XX_CLK_AXI 10 +#define NPCM7XX_CLK_APB4 11 +#define NPCM7XX_CLK_APB3 12 +#define NPCM7XX_CLK_APB2 13 +#define NPCM7XX_CLK_APB1 14 +#define NPCM7XX_CLK_APB5 15 +#define NPCM7XX_CLK_CLKOUT 16 +#define NPCM7XX_CLK_GFX 17 +#define NPCM7XX_CLK_SU 18 +#define NPCM7XX_CLK_SU48 19 +#define NPCM7XX_CLK_SDHC 20 +#define NPCM7XX_CLK_SPI0 21 +#define NPCM7XX_CLK_SPIX 22 + +#define NPCM7XX_CLK_REFCLK 23 +#define NPCM7XX_CLK_SYSBYPCK 24 +#define NPCM7XX_CLK_MCBYPCK 25 + + +#define NPCM7XX_NUM_CLOCKS (NPCM7XX_CLK_MCBYPCK+1) + + + +#endif
Signed-off-by: Tali Perry <tali.perry1@gmail.com> --- .../bindings/clock/nuvoton,npcm750-clk.txt | 103 +++++++++++++++++++++ include/dt-bindings/clock/nuvoton,npcm7xx-clock.h | 51 ++++++++++ 2 files changed, 154 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt create mode 100644 include/dt-bindings/clock/nuvoton,npcm7xx-clock.h