Received: by 10.213.65.68 with SMTP id h4csp1685552imn; Thu, 15 Mar 2018 06:51:50 -0700 (PDT) X-Google-Smtp-Source: AG47ELv+5H/47fwRYGgjs+IefRueKt5cnpKPCiAO4lP+dIhkH4a5+GYajtWm1Iju+yyJ+dxKXPIb X-Received: by 10.101.81.76 with SMTP id g12mr6851895pgq.88.1521121910549; Thu, 15 Mar 2018 06:51:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521121910; cv=none; d=google.com; s=arc-20160816; b=SefcHbJ7ag2D+e3a2oHgaNIHrYMUnzSXcrRCT4u4vSkNFiM/oe5VbKlbYr4xUuBJoY DptmWabHxgfqDSVLlZEK4OJ9iaUHXDIcc1bz2EcWtElbjpyIfWDlUt1fO/Qz0vTY3Wk9 fzxQ29WtojDETZpuzzK6U3mmMwnZV4JqljgS/w5f6pQvsHwLH6mScvX2UQm8wCiqEi6a xNE/pn3NnqBBYCBpX/dVrGRKAZmJkQxMmVMEoN4uVtov0VuQldM3KHBZs4pSOVq0FKp4 Dcrwd9zhBtJgKhHj2UOq9O6gRnjFbBiotZJNEQMYgHMhl6WY6LA56ZYJeFzYqIcS5a0k byMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=3gP8TLy7bUTf74rSYTNk5M1cwiQLptnXWJ68nu0s/9c=; b=fbuwbJAjap9PewxqptbkgcvVG3DZD2o+h9qxl7nWREwv/XnupOQW8lG/yAaxVtzMUI 50phO9jWGqpGciv7/ycH5em1F5aqdCoSY7UtuFG7r3OvXNiYuFYqVbCpW4Su89Ab0qnQ kmjvim6YnmostZ3kXBbT0R41/i9Fh0kxCbJQLhX+/ggGCnMCCT5p33Lng9ArfOXLDIL3 Sc3rVE7Mld5tsFKesukIFLzJxm/PfoyzqJtLcH21fa8q/RsPBegNkJ/ARd8qC5NOiLkG HzKqTNaG9Sm+6um1pX12JnEIzxJBQ3MUwEQ6TETmfnrJeR+7HiQxUsgPh7BCJ8iWi1q7 i/tw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l186si3464853pgd.174.2018.03.15.06.51.35; Thu, 15 Mar 2018 06:51:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932372AbeCONtz (ORCPT + 99 others); Thu, 15 Mar 2018 09:49:55 -0400 Received: from 212.199.177.27.static.012.net.il ([212.199.177.27]:57924 "EHLO herzl.nuvoton.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752387AbeCONtw (ORCPT ); Thu, 15 Mar 2018 09:49:52 -0400 Received: from talu34.nuvoton.co.il (ntil-fw [212.199.177.25]) by herzl.nuvoton.co.il (8.13.8/8.13.8) with ESMTP id w2FDUOqN017979; Thu, 15 Mar 2018 15:30:24 +0200 Received: by talu34.nuvoton.co.il (Postfix, from userid 20088) id 967FA5AA83; Thu, 15 Mar 2018 15:48:47 +0200 (IST) From: Tali Perry To: brendanhiggins@google.com, robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, avifishman70@gmail.com, tmaimon77@gmail.com, raltherr@google.com, mturquette@baylibre.com, sboyd@codeaurora.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, openbmc@lists.ozlabs.org, linux-clk@vger.kernel.org, Tali Perry Subject: [PATCH v11 1/2] clk: npcm750: Add binding for Nuvoton NPCM7XX clock\n Date: Thu, 15 Mar 2018 15:45:17 +0200 Message-Id: <1521121518-32217-2-git-send-email-tali.perry1@gmail.com> X-Mailer: git-send-email 1.8.3.4 In-Reply-To: <1521121518-32217-1-git-send-email-tali.perry1@gmail.com> References: <1521121518-32217-1-git-send-email-tali.perry1@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Nuvoton NPCM7XX Clock Controller Nuvoton Poleg BMC NPCM7XX contains an integrated clock controller, which generates and supplies clocks to all modules within the BMC. 10 ==> 11 update documentation. "eth" replaced with "ethernet" in use case eaxample. 2 ==> 10 update documentation. add external clocks as inputs to clk driver. fix SPDX comment. 1 ==> 2 This patch includes fix request described here: https://patchwork.kernel.org/patch/10200033/ (move fixed clocks to DT) Signed-off-by: Tali Perry --- .../bindings/clock/nuvoton,npcm750-clk.txt | 100 +++++++++++++++++++++ include/dt-bindings/clock/nuvoton,npcm7xx-clock.h | 44 +++++++++ 2 files changed, 144 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..f82064546d11 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nuvoton,npcm750-clk.txt @@ -0,0 +1,100 @@ +* 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: + + - 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>; + reg = <0xf0801000 0x1000>; + clock-names = "refclk", "sysbypck", "mcbypck"; + clocks = <&clk_refclk>, <&clk_sysbypck>, <&clk_mcbypck>; + }; + +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). + + ethernet0: ethernet@f0802000 { + compatible = "snps,dwmac"; + reg = <0xf0802000 0x2000>; + interrupts = <0 14 4>; + interrupt-names = "macirq"; + clocks = <&clk_rg1refck>, <&clk NPCM7XX_CLK_AHB>; + clock-names = "stmmaceth", "clk_gmac"; + }; 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..f21522605b94 --- /dev/null +++ b/include/dt-bindings/clock/nuvoton,npcm7xx-clock.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Nuvoton NPCM7xx Clock Generator binding + * clock binding number for all clocks supportted by nuvoton,npcm7xx-clk + * + * Copyright (C) 2018 Nuvoton Technologies tali.perry@nuvoton.com + * + */ + +#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