* [PATCH v2 0/1] *clk: npcm750: add clock header to patch, fix typos and content in dt-binding txt @ 2018-02-15 13:39 Tali Perry 2018-02-15 13:39 ` [PATCH v2 1/1] clk: npcm750: update text with fixed clocks Tali Perry 0 siblings, 1 reply; 8+ messages in thread From: Tali Perry @ 2018-02-15 13:39 UTC (permalink / raw) To: linux-arm-kernel Add Nuvoton BMC NPCM7xx clock driver. Nuvoton BMC NPCM7xx contain integrated clock controller which generates and supplies clock to all modules within the NPCM7xx BMC 1 ==> 2 This patch includes fix request described here: https://lkml.org/lkml/2018/2/8/739 (add clock header to patch, fix typos and content in dt-binding txt) Signed-off-by: Tali Perry <tali.perry1@gmail.com> Tali Perry (1): clk: npcm750: update text with fixed clocks .../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 -- 2.14.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-15 13:39 [PATCH v2 0/1] *clk: npcm750: add clock header to patch, fix typos and content in dt-binding txt Tali Perry @ 2018-02-15 13:39 ` Tali Perry 2018-02-15 22:38 ` Brendan Higgins 2018-02-19 14:56 ` Rob Herring 0 siblings, 2 replies; 8+ messages in thread From: Tali Perry @ 2018-02-15 13:39 UTC (permalink / raw) To: linux-arm-kernel 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: + - 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 at 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 at 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 at 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 -- 2.14.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-15 13:39 ` [PATCH v2 1/1] clk: npcm750: update text with fixed clocks Tali Perry @ 2018-02-15 22:38 ` Brendan Higgins 2018-02-19 14:49 ` Rob Herring 2018-02-19 14:56 ` Rob Herring 1 sibling, 1 reply; 8+ messages in thread From: Brendan Higgins @ 2018-02-15 22:38 UTC (permalink / raw) To: linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-15 22:38 ` Brendan Higgins @ 2018-02-19 14:49 ` Rob Herring 2018-02-21 4:47 ` Brendan Higgins 0 siblings, 1 reply; 8+ messages in thread From: Rob Herring @ 2018-02-19 14:49 UTC (permalink / raw) To: linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-19 14:49 ` Rob Herring @ 2018-02-21 4:47 ` Brendan Higgins 2018-02-21 13:23 ` Rob Herring 0 siblings, 1 reply; 8+ messages in thread From: Brendan Higgins @ 2018-02-21 4:47 UTC (permalink / raw) To: linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-21 4:47 ` Brendan Higgins @ 2018-02-21 13:23 ` Rob Herring 2018-02-21 18:22 ` Brendan Higgins 0 siblings, 1 reply; 8+ messages in thread From: Rob Herring @ 2018-02-21 13:23 UTC (permalink / raw) To: linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-21 13:23 ` Rob Herring @ 2018-02-21 18:22 ` Brendan Higgins 0 siblings, 0 replies; 8+ messages in thread From: Brendan Higgins @ 2018-02-21 18:22 UTC (permalink / raw) To: linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/1] clk: npcm750: update text with fixed clocks 2018-02-15 13:39 ` [PATCH v2 1/1] clk: npcm750: update text with fixed clocks Tali Perry 2018-02-15 22:38 ` Brendan Higgins @ 2018-02-19 14:56 ` Rob Herring 1 sibling, 0 replies; 8+ messages in thread From: Rob Herring @ 2018-02-19 14:56 UTC (permalink / raw) To: linux-arm-kernel 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 at 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 at f0802000 { ethernet at ... > + 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 at 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 > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-02-21 18:22 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-02-15 13:39 [PATCH v2 0/1] *clk: npcm750: add clock header to patch, fix typos and content in dt-binding txt Tali Perry 2018-02-15 13:39 ` [PATCH v2 1/1] clk: npcm750: update text with fixed clocks Tali Perry 2018-02-15 22:38 ` Brendan Higgins 2018-02-19 14:49 ` Rob Herring 2018-02-21 4:47 ` Brendan Higgins 2018-02-21 13:23 ` Rob Herring 2018-02-21 18:22 ` Brendan Higgins 2018-02-19 14:56 ` Rob Herring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).