[{"id":1798133,"web_url":"http://patchwork.ozlabs.org/comment/1798133/","msgid":"<5625af45-a071-4abf-88ed-f167abff1b73@arm.com>","list_archive_url":null,"date":"2017-11-02T17:45:50","subject":"Re: [PATCH V3 04/11] clk: sprd: add gate clock support","submitter":{"id":72256,"url":"http://patchwork.ozlabs.org/api/people/72256/","name":"Julien Thierry","email":"julien.thierry@arm.com"},"content":"Hi,\n\nOn 02/11/17 06:56, Chunyan Zhang wrote:\n> Some clocks on the Spreadtrum's SoCs are just simple gates. Add\n> support for those clocks.\n> \n> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> ---\n>   drivers/clk/sprd/Makefile |   1 +\n>   drivers/clk/sprd/gate.c   | 106 ++++++++++++++++++++++++++++++++++++++++++++++\n>   drivers/clk/sprd/gate.h   |  54 +++++++++++++++++++++++\n>   3 files changed, 161 insertions(+)\n>   create mode 100644 drivers/clk/sprd/gate.c\n>   create mode 100644 drivers/clk/sprd/gate.h\n> \n> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n> index 74f4b80..8cd5592 100644\n> --- a/drivers/clk/sprd/Makefile\n> +++ b/drivers/clk/sprd/Makefile\n> @@ -1,3 +1,4 @@\n>   obj-$(CONFIG_SPRD_COMMON_CLK)\t+= clk-sprd.o\n>   \n>   clk-sprd-y\t+= common.o\n> +clk-sprd-y\t+= gate.o\n> diff --git a/drivers/clk/sprd/gate.c b/drivers/clk/sprd/gate.c\n> new file mode 100644\n> index 0000000..831ef81\n> --- /dev/null\n> +++ b/drivers/clk/sprd/gate.c\n> @@ -0,0 +1,106 @@\n> +/*\n> + * Spreadtrum gate clock driver\n> + *\n> + * Copyright (C) 2017 Spreadtrum, Inc.\n> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> + *\n> + * SPDX-License-Identifier: GPL-2.0\n> + */\n> +\n> +#include <linux/clk-provider.h>\n> +#include <linux/regmap.h>\n> +\n> +#include \"gate.h\"\n> +\n> +DEFINE_SPINLOCK(sprd_gate_lock);\n> +EXPORT_SYMBOL_GPL(sprd_gate_lock);\n> +\n> +static void sprd_gate_endisable(const struct sprd_gate *sg, u32 en)\n> +{\n> +\tconst struct sprd_clk_common *common = &sg->common;\n> +\tunsigned long flags = 0;\n> +\tunsigned int reg;\n> +\tint set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0;\n> +\n> +\tset ^= en;\n> +\n> +\tspin_lock_irqsave(common->lock, flags);\n> +\n> +\tsprd_regmap_read(common->regmap, common->reg, &reg);\n> +\n> +\tif (set)\n> +\t\treg |= sg->op_bit;\n> +\telse\n> +\t\treg &= ~sg->op_bit;\n> +\n> +\tsprd_regmap_write(common->regmap, common->reg, reg);\n> +\n> +\tspin_unlock_irqrestore(common->lock, flags);\n> +}\n> +\n> +static void clk_sc_gate_endisable(const struct sprd_gate *sg, u32 en)\n> +{\n> +\tconst struct sprd_clk_common *common = &sg->common;\n> +\tunsigned long flags = 0;\n> +\tint set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0;\n> +\tunsigned int offset;\n> +\n> +\tset ^= en;\n> +\n> +\t/*\n> +\t * Each set/clear gate clock has three registers:\n> +\t * common->reg\t\t\t- base register\n> +\t * common->reg + offset\t\t- set register\n> +\t * common->reg + 2 * offset\t- clear register\n> +\t */\n> +\toffset = set ? sg->sc_offset : sg->sc_offset * 2;\n> +\n> +\tspin_lock_irqsave(common->lock, flags);\n> +\tsprd_regmap_write(common->regmap, common->reg + offset, sg->op_bit);\n> +\tspin_unlock_irqrestore(common->lock, flags);\n> +}\n> +\n> +static void sprd_gate_disable(struct clk_hw *hw)\n> +{\n> +\tstruct sprd_gate *sg = hw_to_sprd_gate(hw);\n> +\n> +\tif (sg->sc_offset)\n> +\t\tclk_sc_gate_endisable(sg, 0);\n> +\telse\n> +\t\tsprd_gate_endisable(sg, 0);\n> +}\n> +\n> +static int sprd_gate_enable(struct clk_hw *hw)\n> +{\n> +\tstruct sprd_gate *sg = hw_to_sprd_gate(hw);\n> +\n> +\tif (sg->sc_offset)\n> +\t\tclk_sc_gate_endisable(sg, 1);\n> +\telse\n> +\t\tsprd_gate_endisable(sg, 1);\n> +\n> +\treturn 0;\n> +}\n> +\n> +static int sprd_gate_is_enabled(struct clk_hw *hw)\n> +{\n> +\tstruct sprd_gate *sg = hw_to_sprd_gate(hw);\n> +\tstruct sprd_clk_common *common = &sg->common;\n> +\tunsigned int reg;\n> +\n> +\tsprd_regmap_read(common->regmap, common->reg, &reg);\n> +\n> +\tif (sg->flags & CLK_GATE_SET_TO_DISABLE)\n> +\t\treg ^= sg->op_bit;\n> +\n> +\treg &= sg->op_bit;\n> +\n> +\treturn reg ? 1 : 0;\n> +}\n> +\n> +const struct clk_ops sprd_gate_ops = {\n> +\t.disable\t= sprd_gate_disable,\n> +\t.enable\t\t= sprd_gate_enable,\n> +\t.is_enabled\t= sprd_gate_is_enabled,\n> +};\n> +EXPORT_SYMBOL_GPL(sprd_gate_ops);\n\nI think it would be better to have a set of ops for each mode,\nsprd_gate_ops and sprd_sc_gate_ops rather than have each function decide \nwhether it should use set/clear registers or the base registers.\n\nSo you can have a macro SPRD_GATE_CLK that doesn't take an sc_offet and \nselects the sprd_gate_ops and another one that SPRD_SC_GATE_CLK using \nsprd_sc_gate_ops that takes the sc_offset as parameter.\n\nAlso, I feel keeping enable/disable function separate would be nicer \ninstead of having \"endisable\" functions.\n\nCheers,\n\n> diff --git a/drivers/clk/sprd/gate.h b/drivers/clk/sprd/gate.h\n> new file mode 100644\n> index 0000000..5aeb53c\n> --- /dev/null\n> +++ b/drivers/clk/sprd/gate.h\n> @@ -0,0 +1,54 @@\n> +/*\n> + * Spreadtrum gate clock driver\n> + *\n> + * Copyright (C) 2017 Spreadtrum, Inc.\n> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> + *\n> + * SPDX-License-Identifier: GPL-2.0\n> + */\n> +\n> +#ifndef _SPRD_GATE_H_\n> +#define _SPRD_GATE_H_\n> +\n> +#include \"common.h\"\n> +\n> +struct sprd_gate {\n> +\tu32\t\t\top_bit;\n> +\tu16\t\t\tflags;\n> +\tu16\t\t\tsc_offset;\n> +\n> +\tstruct sprd_clk_common\tcommon;\n> +};\n> +\n> +#define SPRD_GATE_CLK(_struct, _name, _parent, _reg, _sc_offset,\t\\\n> +\t\t      _op_bit, _flags, _gate_flags)\t\t\t\\\n> +\tstruct sprd_gate _struct = {\t\t\t\t\t\\\n> +\t\t.op_bit\t\t= _op_bit,\t\t\t\t\\\n> +\t\t.sc_offset\t= _sc_offset,\t\t\t\t\\\n> +\t\t.flags\t\t= _gate_flags,\t\t\t\t\\\n> +\t\t.common\t= {\t\t\t\t\t\t\\\n> +\t\t\t.regmap\t\t= NULL,\t\t\t\t\\\n> +\t\t\t.reg\t\t= _reg,\t\t\t\t\\\n> +\t\t\t.lock\t\t= &sprd_gate_lock,\t\t\\\n> +\t\t\t.hw.init\t= CLK_HW_INIT(_name,\t\t\\\n> +\t\t\t\t\t\t      _parent,\t\t\\\n> +\t\t\t\t\t\t      &sprd_gate_ops,\t\\\n> +\t\t\t\t\t\t      _flags),\t\t\\\n> +\t\t}\t\t\t\t\t\t\t\\\n> +\t}\n> +\n> +static inline struct sprd_gate *hw_to_sprd_gate(const struct clk_hw *hw)\n> +{\n> +\tstruct sprd_clk_common *common = hw_to_sprd_clk_common(hw);\n> +\n> +\treturn container_of(common, struct sprd_gate, common);\n> +}\n> +\n> +void sprd_gate_helper_disable(struct sprd_clk_common *common, u32 gate);\n> +int sprd_gate_helper_enable(struct sprd_clk_common *common, u32 gate);\n> +int sprd_gate_helper_is_enabled(struct sprd_clk_common *common, u32 gate);\n> +\n> +extern const struct clk_ops sprd_gate_ops;\n> +extern spinlock_t sprd_gate_lock;\n> +\n> +#endif /* _SPRD_GATE_H_ */\n>","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"uoIYP361\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ySXZV408Rz9t2Q\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 04:46:23 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAJZK-0000LH-T0; Thu, 02 Nov 2017 17:46:18 +0000","from foss.arm.com ([217.140.101.70])\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAJZG-0000Di-QY for linux-arm-kernel@lists.infradead.org;\n\tThu, 02 Nov 2017 17:46:16 +0000","from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 66CE01435;\n\tThu,  2 Nov 2017 10:45:54 -0700 (PDT)","from [10.1.207.56] (e112298-lin.cambridge.arm.com [10.1.207.56])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n\tA84133F3E1; Thu,  2 Nov 2017 10:45:51 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From:\n\tReferences:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;\n\tbh=WIsUG7Wia2hRcaGtkDpoJRxc6CvG3eBxtmvNz+tCs8U=;\n\tb=uoIYP361NM62UlcR+y3d86/Xk\n\t+IcuwPpTtUG0uTLxmjVijr7xfh98NofXgBhOTi8iJI1Ul3Bf82xIVf36zMuDDBX7YmXaipgkj3IPe\n\t48/BSMjxC9+f94FkHjIebQIXs3pyO5YGus5vh6scGdzy/H0e7hesNWFrL/jfysQh6k/xJXDhO1ufP\n\tXvM1WxVzhjgIIpCBlAcHOOQ0dlY006KVHgj6CC1noAcvlJ6mvA3tj0Du2DYkZ0Abhxz9KvS6L6vak\n\tEshQMO16+qd3kWez1dgGFjUOFrwrkt9iwB0t4FpjJ0tz/7SOcC+SXdt8TSspCsdUq9CSDc1ZScWLY\n\t3CdSzzN4A==;","Subject":"Re: [PATCH V3 04/11] clk: sprd: add gate clock support","To":"Chunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tStephen Boyd <sboyd@codeaurora.org>,\n\tMichael Turquette <mturquette@baylibre.com>, Rob Herring\n\t<robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-5-chunyan.zhang@spreadtrum.com>","From":"Julien Thierry <julien.thierry@arm.com>","Message-ID":"<5625af45-a071-4abf-88ed-f167abff1b73@arm.com>","Date":"Thu, 2 Nov 2017 17:45:50 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<20171102065626.21835-5-chunyan.zhang@spreadtrum.com>","Content-Language":"en-US","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171102_104614_933658_213DD50C ","X-CRM114-Status":"GOOD (  19.07  )","X-Spam-Score":"-6.9 (------)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-6.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/,\n\thigh trust [217.140.101.70 listed in list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"devicetree@vger.kernel.org, Orson Zhai <orson.zhai@spreadtrum.com>,\n\tArnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tBen Li <ben.li@spreadtrum.com>, Will Deacon <will.deacon@arm.com>,\n\tlinux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,\n\tChunyan Zhang <zhang.lyra@gmail.com>, linux-clk@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1798159,"web_url":"http://patchwork.ozlabs.org/comment/1798159/","msgid":"<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","list_archive_url":null,"date":"2017-11-02T18:11:05","subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","submitter":{"id":72256,"url":"http://patchwork.ozlabs.org/api/people/72256/","name":"Julien Thierry","email":"julien.thierry@arm.com"},"content":"Hi,\n\nOn 02/11/17 06:56, Chunyan Zhang wrote:\n> This patch adds clock multiplexor support for Spreadtrum platforms,\n> the mux clocks also can be found in sprd composite clocks, so\n> provides two helpers that can be reused later on.\n> \n> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> ---\n>   drivers/clk/sprd/Makefile |  1 +\n>   drivers/clk/sprd/mux.c    | 89 +++++++++++++++++++++++++++++++++++++++++++++++\n>   drivers/clk/sprd/mux.h    | 65 ++++++++++++++++++++++++++++++++++\n>   3 files changed, 155 insertions(+)\n>   create mode 100644 drivers/clk/sprd/mux.c\n>   create mode 100644 drivers/clk/sprd/mux.h\n> \n> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n> index 8cd5592..cee36b5 100644\n> --- a/drivers/clk/sprd/Makefile\n> +++ b/drivers/clk/sprd/Makefile\n> @@ -2,3 +2,4 @@ obj-$(CONFIG_SPRD_COMMON_CLK)\t+= clk-sprd.o\n>   \n>   clk-sprd-y\t+= common.o\n>   clk-sprd-y\t+= gate.o\n> +clk-sprd-y\t+= mux.o\n> diff --git a/drivers/clk/sprd/mux.c b/drivers/clk/sprd/mux.c\n> new file mode 100644\n> index 0000000..5a344e0\n> --- /dev/null\n> +++ b/drivers/clk/sprd/mux.c\n> @@ -0,0 +1,89 @@\n> +/*\n> + * Spreadtrum multiplexer clock driver\n> + *\n> + * Copyright (C) 2017 Spreadtrum, Inc.\n> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> + *\n> + * SPDX-License-Identifier: GPL-2.0\n> + */\n> +\n> +#include <linux/clk.h>\n> +#include <linux/clk-provider.h>\n> +#include <linux/regmap.h>\n> +\n> +#include \"mux.h\"\n> +\n> +DEFINE_SPINLOCK(sprd_mux_lock);\n> +EXPORT_SYMBOL_GPL(sprd_mux_lock);\n> +\n> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n> +\t\t\t      const struct sprd_mux_internal *mux)\n> +{\n> +\tunsigned int reg;\n> +\tu8 parent;\n> +\tint num_parents;\n> +\tint i;\n> +\n> +\tsprd_regmap_read(common->regmap, common->reg, &reg);\n> +\tparent = reg >> mux->shift;\n> +\tparent &= (1 << mux->width) - 1;\n> +\n> +\tif (mux->table) {\n> +\t\tnum_parents = clk_hw_get_num_parents(&common->hw);\n> +\n> +\t\tfor (i = 0; i < num_parents; i++)\n> +\t\t\tif (parent == mux->table[i] ||\n> +\t\t\t    (i < (num_parents - 1) && parent > mux->table[i] &&\n> +\t\t\t     parent < mux->table[i + 1]))\n> +\t\t\t\treturn i;\n> +\t\tif (i == num_parents)\n> +\t\t\treturn i - 1;\n\nThe if branch is not necessary since you only get there when the loop \nhas finished, so the condition is always true. And the loop can be \nsimplified to:\n\nfor (i = 0; i < num_parents - 1; i++)\n\tif (parent >= mux->table[i] &&  parent < mux->table[i + 1])\n\t\treturn i;\n\nreturn num_parents;\n\n\n> +\t}\n> +\n> +\treturn parent;\n> +}\n> +EXPORT_SYMBOL_GPL(sprd_mux_helper_get_parent);\n> +\n> +static u8 sprd_mux_get_parent(struct clk_hw *hw)\n> +{\n> +\tstruct sprd_mux *cm = hw_to_sprd_mux(hw);\n> +\n> +\treturn sprd_mux_helper_get_parent(&cm->common, &cm->mux);\n> +}\n> +\n> +int sprd_mux_helper_set_parent(const struct sprd_clk_common *common,\n> +\t\t\t       const struct sprd_mux_internal *mux,\n> +\t\t\t       u8 index)\n> +{\n> +\tunsigned long flags = 0;\n> +\tunsigned int reg;\n> +\n> +\tif (mux->table)\n> +\t\tindex = mux->table[index];\n> +\n> +\tspin_lock_irqsave(common->lock, flags);\n> +\n> +\tsprd_regmap_read(common->regmap, common->reg, &reg);\n> +\treg &= ~GENMASK(mux->width + mux->shift - 1, mux->shift);\n> +\tsprd_regmap_write(common->regmap, common->reg,\n> +\t\t\t  reg | (index << mux->shift));\n> +\n> +\tspin_unlock_irqrestore(common->lock, flags);\n> +\n> +\treturn 0;\n> +}\n> +EXPORT_SYMBOL_GPL(sprd_mux_helper_set_parent);\n> +\n> +static int sprd_mux_set_parent(struct clk_hw *hw, u8 index)\n> +{\n> +\tstruct sprd_mux *cm = hw_to_sprd_mux(hw);\n> +\n> +\treturn sprd_mux_helper_set_parent(&cm->common, &cm->mux, index);\n> +}\n> +\n> +const struct clk_ops sprd_mux_ops = {\n> +\t.get_parent = sprd_mux_get_parent,\n> +\t.set_parent = sprd_mux_set_parent,\n> +\t.determine_rate = __clk_mux_determine_rate,\n> +};\n> +EXPORT_SYMBOL_GPL(sprd_mux_ops);\n\nSame as with the other patch, I'd recommend have one set of ops for \ndirect mux and another one for a mux using a table to map the parents. \nKeeping functions for both modes separate.\n\nCheers,\n\n> diff --git a/drivers/clk/sprd/mux.h b/drivers/clk/sprd/mux.h\n> new file mode 100644\n> index 0000000..148ca8c\n> --- /dev/null\n> +++ b/drivers/clk/sprd/mux.h\n> @@ -0,0 +1,65 @@\n> +/*\n> + * Spreadtrum multiplexer clock driver\n> + *\n> + * Copyright (C) 2017 Spreadtrum, Inc.\n> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> + *\n> + * SPDX-License-Identifier: GPL-2.0\n> + */\n> +\n> +#ifndef _SPRD_MUX_H_\n> +#define _SPRD_MUX_H_\n> +\n> +#include \"common.h\"\n> +\n> +struct sprd_mux_internal {\n> +\tu8\t\tshift;\n> +\tu8\t\twidth;\n> +\tconst u8\t*table;\n> +};\n> +\n> +struct sprd_mux {\n> +\tstruct sprd_mux_internal mux;\n> +\tstruct sprd_clk_common\tcommon;\n> +};\n> +\n> +#define _SPRD_MUX_CLK(_shift, _width, _table)\t\t\\\n> +\t{\t\t\t\t\t\t\\\n> +\t\t.shift\t= _shift,\t\t\t\\\n> +\t\t.width\t= _width,\t\t\t\\\n> +\t\t.table\t= _table,\t\t\t\\\n> +\t}\n> +\n> +#define SPRD_MUX_CLK(_struct, _name, _parents, _table,\t\t\t\\\n> +\t\t\t\t     _reg, _shift, _width,\t\t\\\n> +\t\t\t\t     _flags)\t\t\t\t\\\n> +\tstruct sprd_mux _struct = {\t\t\t\t\t\\\n> +\t\t.mux\t= _SPRD_MUX_CLK(_shift, _width, _table),\t\\\n> +\t\t.common\t= {\t\t\t\t\t\t\\\n> +\t\t\t.regmap\t\t= NULL,\t\t\t\t\\\n> +\t\t\t.reg\t\t= _reg,\t\t\t\t\\\n> +\t\t\t.lock\t\t= &sprd_mux_lock,\t\t\\\n> +\t\t\t.hw.init = CLK_HW_INIT_PARENTS(_name,\t\t\\\n> +\t\t\t\t\t\t       _parents,\t\\\n> +\t\t\t\t\t\t       &sprd_mux_ops,\t\\\n> +\t\t\t\t\t\t       _flags),\t\t\\\n> +\t\t}\t\t\t\t\t\t\t\\\n> +\t}\n> +\n> +static inline struct sprd_mux *hw_to_sprd_mux(const struct clk_hw *hw)\n> +{\n> +\tstruct sprd_clk_common *common = hw_to_sprd_clk_common(hw);\n> +\n> +\treturn container_of(common, struct sprd_mux, common);\n> +}\n> +\n> +extern const struct clk_ops sprd_mux_ops;\n> +extern spinlock_t sprd_mux_lock;\n> +\n> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n> +\t\t\t      const struct sprd_mux_internal *mux);\n> +int sprd_mux_helper_set_parent(const struct sprd_clk_common *common,\n> +\t\t\t       const struct sprd_mux_internal *mux,\n> +\t\t\t       u8 index);\n> +\n> +#endif /* _SPRD_MUX_H_ */\n>","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"ofP2kiaQ\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ySY8B2l3tz9sNd\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 05:12:08 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAJyF-0005II-5T; Thu, 02 Nov 2017 18:12:03 +0000","from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]\n\thelo=foss.arm.com)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAJxp-0005GP-Hn for linux-arm-kernel@lists.infradead.org;\n\tThu, 02 Nov 2017 18:11:39 +0000","from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 856541435;\n\tThu,  2 Nov 2017 11:11:09 -0700 (PDT)","from [10.1.207.56] (e112298-lin.cambridge.arm.com [10.1.207.56])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n\tAF3813F3E1; Thu,  2 Nov 2017 11:11:06 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From:\n\tReferences:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;\n\tbh=eVIZk3L+bQmy3++mnqZjrK/7VdZzVGFo3f54hoN9g/Y=;\n\tb=ofP2kiaQAnAPI+xiMzFC3VNBK\n\tfJkzYJA60Ph9wOXnYdGKrZqFRP2VDQCmdMPGnVlLkrhgIRcZwDKqOcOqbPgcqSM1HwB4lfRAbCEXx\n\tkpfQzL5kn43ctmu4zNYiazdfJYjCK6b342e0Izt5RJri7JTcV2+xeQT2KofDm05U7f4T3LSBpohDD\n\tq7gYuah75Se5/e2tSidjSQLkfxCaF5BbORxSNEiq/93DqBkJ+VJsZoR/Q8Lu7Rte7oPF0pFh1VbxW\n\tuvAv/cIywCmjQDZ1gM6HXX3VurpoqXHO4jiK70C5rn4H3ZqoH5K0z2Uu6x2kIk1mwnUgOEeIoRNDq\n\tL5o8spwEw==;","Subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","To":"Chunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tStephen Boyd <sboyd@codeaurora.org>,\n\tMichael Turquette <mturquette@baylibre.com>, Rob Herring\n\t<robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-6-chunyan.zhang@spreadtrum.com>","From":"Julien Thierry <julien.thierry@arm.com>","Message-ID":"<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","Date":"Thu, 2 Nov 2017 18:11:05 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<20171102065626.21835-6-chunyan.zhang@spreadtrum.com>","Content-Language":"en-US","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171102_111137_609870_56CCEF8C ","X-CRM114-Status":"GOOD (  19.58  )","X-Spam-Score":"-6.9 (------)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-6.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/,\n\thigh trust [217.140.101.70 listed in list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"devicetree@vger.kernel.org, Orson Zhai <orson.zhai@spreadtrum.com>,\n\tArnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tBen Li <ben.li@spreadtrum.com>, Will Deacon <will.deacon@arm.com>,\n\tlinux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,\n\tChunyan Zhang <zhang.lyra@gmail.com>, linux-clk@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1798170,"web_url":"http://patchwork.ozlabs.org/comment/1798170/","msgid":"<ba6366af-ecae-5f8b-f48b-6f93fbe833c0@arm.com>","list_archive_url":null,"date":"2017-11-02T18:22:22","subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","submitter":{"id":72256,"url":"http://patchwork.ozlabs.org/api/people/72256/","name":"Julien Thierry","email":"julien.thierry@arm.com"},"content":"On 02/11/17 18:11, Julien Thierry wrote:\n> Hi,\n> \n> On 02/11/17 06:56, Chunyan Zhang wrote:\n>> This patch adds clock multiplexor support for Spreadtrum platforms,\n>> the mux clocks also can be found in sprd composite clocks, so\n>> provides two helpers that can be reused later on.\n>>\n>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> ---\n>>   drivers/clk/sprd/Makefile |  1 +\n>>   drivers/clk/sprd/mux.c    | 89 \n>> +++++++++++++++++++++++++++++++++++++++++++++++\n>>   drivers/clk/sprd/mux.h    | 65 ++++++++++++++++++++++++++++++++++\n>>   3 files changed, 155 insertions(+)\n>>   create mode 100644 drivers/clk/sprd/mux.c\n>>   create mode 100644 drivers/clk/sprd/mux.h\n>>\n>> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n>> index 8cd5592..cee36b5 100644\n>> --- a/drivers/clk/sprd/Makefile\n>> +++ b/drivers/clk/sprd/Makefile\n>> @@ -2,3 +2,4 @@ obj-$(CONFIG_SPRD_COMMON_CLK)    += clk-sprd.o\n>>   clk-sprd-y    += common.o\n>>   clk-sprd-y    += gate.o\n>> +clk-sprd-y    += mux.o\n>> diff --git a/drivers/clk/sprd/mux.c b/drivers/clk/sprd/mux.c\n>> new file mode 100644\n>> index 0000000..5a344e0\n>> --- /dev/null\n>> +++ b/drivers/clk/sprd/mux.c\n>> @@ -0,0 +1,89 @@\n>> +/*\n>> + * Spreadtrum multiplexer clock driver\n>> + *\n>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> + *\n>> + * SPDX-License-Identifier: GPL-2.0\n>> + */\n>> +\n>> +#include <linux/clk.h>\n>> +#include <linux/clk-provider.h>\n>> +#include <linux/regmap.h>\n>> +\n>> +#include \"mux.h\"\n>> +\n>> +DEFINE_SPINLOCK(sprd_mux_lock);\n>> +EXPORT_SYMBOL_GPL(sprd_mux_lock);\n>> +\n>> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n>> +                  const struct sprd_mux_internal *mux)\n>> +{\n>> +    unsigned int reg;\n>> +    u8 parent;\n>> +    int num_parents;\n>> +    int i;\n>> +\n>> +    sprd_regmap_read(common->regmap, common->reg, &reg);\n>> +    parent = reg >> mux->shift;\n>> +    parent &= (1 << mux->width) - 1;\n>> +\n>> +    if (mux->table) {\n>> +        num_parents = clk_hw_get_num_parents(&common->hw);\n>> +\n>> +        for (i = 0; i < num_parents; i++)\n>> +            if (parent == mux->table[i] ||\n>> +                (i < (num_parents - 1) && parent > mux->table[i] &&\n>> +                 parent < mux->table[i + 1]))\n>> +                return i;\n>> +        if (i == num_parents)\n>> +            return i - 1;\n> \n> The if branch is not necessary since you only get there when the loop \n> has finished, so the condition is always true. And the loop can be \n> simplified to:\n> \n> for (i = 0; i < num_parents - 1; i++)\n>      if (parent >= mux->table[i] &&  parent < mux->table[i + 1])\n>          return i;\n> \n> return num_parents;\n\nOops, meant to say \"return num_parents - 1;\" on that last line.","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"Lw4Erxi1\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ySYNg4fvWz9sNd\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 05:22:59 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAK8j-0004gD-4E; Thu, 02 Nov 2017 18:22:53 +0000","from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]\n\thelo=foss.arm.com)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAK8d-0004RQ-LN for linux-arm-kernel@lists.infradead.org;\n\tThu, 02 Nov 2017 18:22:50 +0000","from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 304081435;\n\tThu,  2 Nov 2017 11:22:27 -0700 (PDT)","from [10.1.207.56] (e112298-lin.cambridge.arm.com [10.1.207.56])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n\t4993F3F3E1; Thu,  2 Nov 2017 11:22:24 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References:\n\tTo:From:Subject:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;\n\tbh=WWd1zLq3zUfdUt2s7hfMFZM37kevMZviTgwq4S6Y8AA=;\n\tb=Lw4Erxi1bZamA6Hw5Iz/kjMMg\n\tP4AB4i1m8pyZpeddYrcqjzE4YisE5g8DWAT+khNivmDn2952JBZhc8DBXmRUx2+HIatgq3E6nlRRT\n\tYGYKFg6Sf3jqpsJ1ZY4xJ03ZtGN+KVHMAr6OSGXxEJOukvIjdtizyQE0kzJU2mz0+hMlw1gD6LlU/\n\t+uJ+o2i3k8txnBLcy9a2UtW80HxoHYWN77gk4IAQj6jVmQi69imglDEBYl9MVlbq5RXFKcLwkXIus\n\tHE88D30/2Q1kAiwoRN/urSA/JezrU6O0X1+ukzl63avMnhbdvD1P9dAadQBg45zFNXRzffn4VNLbL\n\t2+2euYa7Q==;","Subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","From":"Julien Thierry <julien.thierry@arm.com>","To":"Chunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tStephen Boyd <sboyd@codeaurora.org>,\n\tMichael Turquette <mturquette@baylibre.com>, Rob Herring\n\t<robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-6-chunyan.zhang@spreadtrum.com>\n\t<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","Message-ID":"<ba6366af-ecae-5f8b-f48b-6f93fbe833c0@arm.com>","Date":"Thu, 2 Nov 2017 18:22:22 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","Content-Language":"en-US","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171102_112247_856812_44088F0D ","X-CRM114-Status":"GOOD (  16.15  )","X-Spam-Score":"-6.9 (------)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-6.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/,\n\thigh trust [217.140.101.70 listed in list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"devicetree@vger.kernel.org, Orson Zhai <orson.zhai@spreadtrum.com>,\n\tArnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tBen Li <ben.li@spreadtrum.com>, Will Deacon <will.deacon@arm.com>,\n\tlinux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,\n\tChunyan Zhang <zhang.lyra@gmail.com>, linux-clk@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1798568,"web_url":"http://patchwork.ozlabs.org/comment/1798568/","msgid":"<CAAfSe-tUF1YiDf_y4-GXBKTjiVCkL-y627mUjss6CZ6jr0CPTg@mail.gmail.com>","list_archive_url":null,"date":"2017-11-03T12:12:35","subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","submitter":{"id":64876,"url":"http://patchwork.ozlabs.org/api/people/64876/","name":"Chunyan Zhang","email":"zhang.lyra@gmail.com"},"content":"Hi Julien,\n\nOn 3 November 2017 at 02:11, Julien Thierry <julien.thierry@arm.com> wrote:\n> Hi,\n>\n>\n> On 02/11/17 06:56, Chunyan Zhang wrote:\n>>\n>> This patch adds clock multiplexor support for Spreadtrum platforms,\n>> the mux clocks also can be found in sprd composite clocks, so\n>> provides two helpers that can be reused later on.\n>>\n>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> ---\n>>   drivers/clk/sprd/Makefile |  1 +\n>>   drivers/clk/sprd/mux.c    | 89\n>> +++++++++++++++++++++++++++++++++++++++++++++++\n>>   drivers/clk/sprd/mux.h    | 65 ++++++++++++++++++++++++++++++++++\n>>   3 files changed, 155 insertions(+)\n>>   create mode 100644 drivers/clk/sprd/mux.c\n>>   create mode 100644 drivers/clk/sprd/mux.h\n>>\n>> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n>> index 8cd5592..cee36b5 100644\n>> --- a/drivers/clk/sprd/Makefile\n>> +++ b/drivers/clk/sprd/Makefile\n>> @@ -2,3 +2,4 @@ obj-$(CONFIG_SPRD_COMMON_CLK)   += clk-sprd.o\n>>     clk-sprd-y  += common.o\n>>   clk-sprd-y    += gate.o\n>> +clk-sprd-y     += mux.o\n>> diff --git a/drivers/clk/sprd/mux.c b/drivers/clk/sprd/mux.c\n>> new file mode 100644\n>> index 0000000..5a344e0\n>> --- /dev/null\n>> +++ b/drivers/clk/sprd/mux.c\n>> @@ -0,0 +1,89 @@\n>> +/*\n>> + * Spreadtrum multiplexer clock driver\n>> + *\n>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> + *\n>> + * SPDX-License-Identifier: GPL-2.0\n>> + */\n>> +\n>> +#include <linux/clk.h>\n>> +#include <linux/clk-provider.h>\n>> +#include <linux/regmap.h>\n>> +\n>> +#include \"mux.h\"\n>> +\n>> +DEFINE_SPINLOCK(sprd_mux_lock);\n>> +EXPORT_SYMBOL_GPL(sprd_mux_lock);\n>> +\n>> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n>> +                             const struct sprd_mux_internal *mux)\n>> +{\n>> +       unsigned int reg;\n>> +       u8 parent;\n>> +       int num_parents;\n>> +       int i;\n>> +\n>> +       sprd_regmap_read(common->regmap, common->reg, &reg);\n>> +       parent = reg >> mux->shift;\n>> +       parent &= (1 << mux->width) - 1;\n>> +\n>> +       if (mux->table) {\n>> +               num_parents = clk_hw_get_num_parents(&common->hw);\n>> +\n>> +               for (i = 0; i < num_parents; i++)\n>> +                       if (parent == mux->table[i] ||\n>> +                           (i < (num_parents - 1) && parent >\n>> mux->table[i] &&\n>> +                            parent < mux->table[i + 1]))\n>> +                               return i;\n>> +               if (i == num_parents)\n>> +                       return i - 1;\n>\n>\n> The if branch is not necessary since you only get there when the loop has\n> finished, so the condition is always true. And the loop can be simplified\n> to:\n>\n> for (i = 0; i < num_parents - 1; i++)\n>         if (parent >= mux->table[i] &&  parent < mux->table[i + 1])\n>                 return i;\n>\n> return num_parents;\n>\n>\n>\n>> +       }\n>> +\n>> +       return parent;\n>> +}\n>> +EXPORT_SYMBOL_GPL(sprd_mux_helper_get_parent);\n>> +\n>> +static u8 sprd_mux_get_parent(struct clk_hw *hw)\n>> +{\n>> +       struct sprd_mux *cm = hw_to_sprd_mux(hw);\n>> +\n>> +       return sprd_mux_helper_get_parent(&cm->common, &cm->mux);\n>> +}\n>> +\n>> +int sprd_mux_helper_set_parent(const struct sprd_clk_common *common,\n>> +                              const struct sprd_mux_internal *mux,\n>> +                              u8 index)\n>> +{\n>> +       unsigned long flags = 0;\n>> +       unsigned int reg;\n>> +\n>> +       if (mux->table)\n>> +               index = mux->table[index];\n>> +\n>> +       spin_lock_irqsave(common->lock, flags);\n>> +\n>> +       sprd_regmap_read(common->regmap, common->reg, &reg);\n>> +       reg &= ~GENMASK(mux->width + mux->shift - 1, mux->shift);\n>> +       sprd_regmap_write(common->regmap, common->reg,\n>> +                         reg | (index << mux->shift));\n>> +\n>> +       spin_unlock_irqrestore(common->lock, flags);\n>> +\n>> +       return 0;\n>> +}\n>> +EXPORT_SYMBOL_GPL(sprd_mux_helper_set_parent);\n>> +\n>> +static int sprd_mux_set_parent(struct clk_hw *hw, u8 index)\n>> +{\n>> +       struct sprd_mux *cm = hw_to_sprd_mux(hw);\n>> +\n>> +       return sprd_mux_helper_set_parent(&cm->common, &cm->mux, index);\n>> +}\n>> +\n>> +const struct clk_ops sprd_mux_ops = {\n>> +       .get_parent = sprd_mux_get_parent,\n>> +       .set_parent = sprd_mux_set_parent,\n>> +       .determine_rate = __clk_mux_determine_rate,\n>> +};\n>> +EXPORT_SYMBOL_GPL(sprd_mux_ops);\n>\n>\n> Same as with the other patch, I'd recommend have one set of ops for direct\n> mux and another one for a mux using a table to map the parents. Keeping\n> functions for both modes separate.\n>\n\nI might prefer to keep them together, since separating them will\nincrease many lines of code for maintaining :)\nAnd will export double of these functions, not only for mux driver but\nalso for composite driver.\nAnd I think the name like \"sprd_mux_helper_set_parent_table\" is a little long.\n\nThanks,\nChunyan\n\n> Cheers,\n>\n>\n>> diff --git a/drivers/clk/sprd/mux.h b/drivers/clk/sprd/mux.h\n>> new file mode 100644\n>> index 0000000..148ca8c\n>> --- /dev/null\n>> +++ b/drivers/clk/sprd/mux.h\n>> @@ -0,0 +1,65 @@\n>> +/*\n>> + * Spreadtrum multiplexer clock driver\n>> + *\n>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> + *\n>> + * SPDX-License-Identifier: GPL-2.0\n>> + */\n>> +\n>> +#ifndef _SPRD_MUX_H_\n>> +#define _SPRD_MUX_H_\n>> +\n>> +#include \"common.h\"\n>> +\n>> +struct sprd_mux_internal {\n>> +       u8              shift;\n>> +       u8              width;\n>> +       const u8        *table;\n>> +};\n>> +\n>> +struct sprd_mux {\n>> +       struct sprd_mux_internal mux;\n>> +       struct sprd_clk_common  common;\n>> +};\n>> +\n>> +#define _SPRD_MUX_CLK(_shift, _width, _table)          \\\n>> +       {                                               \\\n>> +               .shift  = _shift,                       \\\n>> +               .width  = _width,                       \\\n>> +               .table  = _table,                       \\\n>> +       }\n>> +\n>> +#define SPRD_MUX_CLK(_struct, _name, _parents, _table,                 \\\n>> +                                    _reg, _shift, _width,              \\\n>> +                                    _flags)                            \\\n>> +       struct sprd_mux _struct = {                                     \\\n>> +               .mux    = _SPRD_MUX_CLK(_shift, _width, _table),        \\\n>> +               .common = {                                             \\\n>> +                       .regmap         = NULL,                         \\\n>> +                       .reg            = _reg,                         \\\n>> +                       .lock           = &sprd_mux_lock,               \\\n>> +                       .hw.init = CLK_HW_INIT_PARENTS(_name,           \\\n>> +                                                      _parents,        \\\n>> +                                                      &sprd_mux_ops,   \\\n>> +                                                      _flags),         \\\n>> +               }                                                       \\\n>> +       }\n>> +\n>> +static inline struct sprd_mux *hw_to_sprd_mux(const struct clk_hw *hw)\n>> +{\n>> +       struct sprd_clk_common *common = hw_to_sprd_clk_common(hw);\n>> +\n>> +       return container_of(common, struct sprd_mux, common);\n>> +}\n>> +\n>> +extern const struct clk_ops sprd_mux_ops;\n>> +extern spinlock_t sprd_mux_lock;\n>> +\n>> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n>> +                             const struct sprd_mux_internal *mux);\n>> +int sprd_mux_helper_set_parent(const struct sprd_clk_common *common,\n>> +                              const struct sprd_mux_internal *mux,\n>> +                              u8 index);\n>> +\n>> +#endif /* _SPRD_MUX_H_ */\n>>\n>\n> --\n> Julien Thierry","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"Z6vIlrIX\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"go7lOVkB\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yT18C4X6Nz9s5L\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 23:13:47 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAar2-00018F-4V; Fri, 03 Nov 2017 12:13:44 +0000","from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAaqx-0000ol-O2 for linux-arm-kernel@lists.infradead.org;\n\tFri, 03 Nov 2017 12:13:42 +0000","by mail-lf0-x242.google.com with SMTP id a2so2896900lfh.11\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tFri, 03 Nov 2017 05:13:17 -0700 (PDT)","by 10.179.65.130 with HTTP; Fri, 3 Nov 2017 05:12:35 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=SrnOBCI6R5+Qxz63t8FHPBR5270kt2EeaUNtWh5dKlM=;\n\tb=Z6vIlrIXo0T2CK\n\tyYrXZzhWhYIPkxXd9Y+gGwwd+C4P6DS1NqBihfIuYdQ380QGjP3SWRPwogtE3QItKJOFraZSBDCOE\n\tDpebXw7VuhWUzLBBNlG/sj2+D7PTx84sRB7yvBmhMGqcadZ37RXc1kiS04x9bJmBK15q92rba7Fad\n\tbLspuLUQxENTMBLHVbSlwDTNerxqSYYV94RIPdlgGssrgCH4fe+sumByUe0l7URhuMiXjb1dB5WnK\n\ttmVRfBBgVd6lu9/EzHvjxMnHcz1zuQKtrEcADECE6kr7tZk99xM7wkscTtAwfbhZdUYdaefHtbt8n\n\t4I6n6rUtCtPJt/+oSnPQ==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=mEXSBrjxWAD6ViY7bgXCe+BKELUcL/K7t/0cr/mt4wc=;\n\tb=go7lOVkB2IKpcO/LmJ8YsLc9S1IdhZlxe3oIGQXL6idimI0Ee7RkeO54hxucdSb6V2\n\t76RB6yeCa05Bv3HD0RXqMdjdQmAi9urYpmjccwOvnvveF71sQQB7SwrkqWe3ILKEDRub\n\t6MjTqfa82WJmHFSqu7A/SXXWeeVwDMrT1q3wMZr+eHykw3C3/ugKKS5dlVyhxiraZrk3\n\thwqB5pfsNZ1AnPBul5Rl0kGhFDha+nyR3e+KwWgX17ugvND/tinIAVQZlIbkCGvIQUAC\n\thE7OO5//jgNjcix4xyZX3yay8YZ8Lz6/bYBWJZUt31SfBu/uCickH7NONLWrOZw/FA2L\n\tvUaw=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=mEXSBrjxWAD6ViY7bgXCe+BKELUcL/K7t/0cr/mt4wc=;\n\tb=ObkxLtveuS/IF5apsL7qrV5Rp1EkGyFrjo0nPBVigwK8kmBUkfV/FtuSlTZj9W6qOq\n\t24nOlG16JFWh4W50Q13cne2+mYLL6YBvkAOi6yrM7ROevt4J5xckhry4U5PB7Xok9cOc\n\tVf+NwgVWnrLGZAY8BByJoH6rf9TFdlEkL/toSy1qGxJbcRhGVxeBZEBy4iDel17TDne7\n\tOpvEJFjUqKgz9vet0eIcovt66ueA+95ZXEAdZdw5OnO6nPEncA0ahJU2GuyfBHGFMG+v\n\tRcd4/AwSD1dvm1d/m6FxT7hoO8QoaRXSThNrweUk0ZA0oF934lJ4FVyo/xx0YMQvAx2T\n\trhPw==","X-Gm-Message-State":"AJaThX6p2tpZJUZ0RgZBil8uyO7jIq6WYutIxPLp9gdlcReB7xekmsKY\n\tvh3IriFsLjkssOg8COErBnsF+nBG2BlszVSXbcM=","X-Google-Smtp-Source":"ABhQp+RtE0XHPwX/4whLlgxCWT9z5txrGBAO79mQzWWKnn983DQUSSjGlxLWBluZhxZosc4GjhNLJIc9d+eUlXeogGo=","X-Received":"by 10.25.155.5 with SMTP id d5mr1998820lfe.181.1509711195449;\n\tFri, 03 Nov 2017 05:13:15 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-6-chunyan.zhang@spreadtrum.com>\n\t<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>","From":"Chunyan Zhang <zhang.lyra@gmail.com>","Date":"Fri, 3 Nov 2017 20:12:35 +0800","Message-ID":"<CAAfSe-tUF1YiDf_y4-GXBKTjiVCkL-y627mUjss6CZ6jr0CPTg@mail.gmail.com>","Subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","To":"Julien Thierry <julien.thierry@arm.com>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171103_051340_180904_1CDAD101 ","X-CRM114-Status":"GOOD (  22.40  )","X-Spam-Score":"-2.7 (--)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-2.7 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/,\n\tlow\n\ttrust [2a00:1450:4010:c07:0:0:0:242 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (zhang.lyra[at]gmail.com)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tWill Deacon <will.deacon@arm.com>, Rob Herring <robh+dt@kernel.org>, \n\tMark Brown <broonie@kernel.org>,\n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>, \n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1798572,"web_url":"http://patchwork.ozlabs.org/comment/1798572/","msgid":"<CAAfSe-uM+xWH3+TcRRO8hSJ6GL9MwSmns9SNTCYSDzVd+5ww8Q@mail.gmail.com>","list_archive_url":null,"date":"2017-11-03T12:12:51","subject":"Re: [PATCH V3 04/11] clk: sprd: add gate clock support","submitter":{"id":64876,"url":"http://patchwork.ozlabs.org/api/people/64876/","name":"Chunyan Zhang","email":"zhang.lyra@gmail.com"},"content":"Hi Julien,\n\nOn 3 November 2017 at 01:45, Julien Thierry <julien.thierry@arm.com> wrote:\n> Hi,\n>\n>\n> On 02/11/17 06:56, Chunyan Zhang wrote:\n>>\n>> Some clocks on the Spreadtrum's SoCs are just simple gates. Add\n>> support for those clocks.\n>>\n>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> ---\n>>   drivers/clk/sprd/Makefile |   1 +\n>>   drivers/clk/sprd/gate.c   | 106\n>> ++++++++++++++++++++++++++++++++++++++++++++++\n>>   drivers/clk/sprd/gate.h   |  54 +++++++++++++++++++++++\n>>   3 files changed, 161 insertions(+)\n>>   create mode 100644 drivers/clk/sprd/gate.c\n>>   create mode 100644 drivers/clk/sprd/gate.h\n>>\n>> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n>> index 74f4b80..8cd5592 100644\n>> --- a/drivers/clk/sprd/Makefile\n>> +++ b/drivers/clk/sprd/Makefile\n>> @@ -1,3 +1,4 @@\n>>   obj-$(CONFIG_SPRD_COMMON_CLK) += clk-sprd.o\n>>     clk-sprd-y  += common.o\n>> +clk-sprd-y     += gate.o\n>> diff --git a/drivers/clk/sprd/gate.c b/drivers/clk/sprd/gate.c\n>> new file mode 100644\n>> index 0000000..831ef81\n>> --- /dev/null\n>> +++ b/drivers/clk/sprd/gate.c\n>> @@ -0,0 +1,106 @@\n>> +/*\n>> + * Spreadtrum gate clock driver\n>> + *\n>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> + *\n>> + * SPDX-License-Identifier: GPL-2.0\n>> + */\n>> +\n>> +#include <linux/clk-provider.h>\n>> +#include <linux/regmap.h>\n>> +\n>> +#include \"gate.h\"\n>> +\n>> +DEFINE_SPINLOCK(sprd_gate_lock);\n>> +EXPORT_SYMBOL_GPL(sprd_gate_lock);\n>> +\n>> +static void sprd_gate_endisable(const struct sprd_gate *sg, u32 en)\n>> +{\n>> +       const struct sprd_clk_common *common = &sg->common;\n>> +       unsigned long flags = 0;\n>> +       unsigned int reg;\n>> +       int set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0;\n>> +\n>> +       set ^= en;\n>> +\n>> +       spin_lock_irqsave(common->lock, flags);\n>> +\n>> +       sprd_regmap_read(common->regmap, common->reg, &reg);\n>> +\n>> +       if (set)\n>> +               reg |= sg->op_bit;\n>> +       else\n>> +               reg &= ~sg->op_bit;\n>> +\n>> +       sprd_regmap_write(common->regmap, common->reg, reg);\n>> +\n>> +       spin_unlock_irqrestore(common->lock, flags);\n>> +}\n>> +\n>> +static void clk_sc_gate_endisable(const struct sprd_gate *sg, u32 en)\n>> +{\n>> +       const struct sprd_clk_common *common = &sg->common;\n>> +       unsigned long flags = 0;\n>> +       int set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0;\n>> +       unsigned int offset;\n>> +\n>> +       set ^= en;\n>> +\n>> +       /*\n>> +        * Each set/clear gate clock has three registers:\n>> +        * common->reg                  - base register\n>> +        * common->reg + offset         - set register\n>> +        * common->reg + 2 * offset     - clear register\n>> +        */\n>> +       offset = set ? sg->sc_offset : sg->sc_offset * 2;\n>> +\n>> +       spin_lock_irqsave(common->lock, flags);\n>> +       sprd_regmap_write(common->regmap, common->reg + offset,\n>> sg->op_bit);\n>> +       spin_unlock_irqrestore(common->lock, flags);\n>> +}\n>> +\n>> +static void sprd_gate_disable(struct clk_hw *hw)\n>> +{\n>> +       struct sprd_gate *sg = hw_to_sprd_gate(hw);\n>> +\n>> +       if (sg->sc_offset)\n>> +               clk_sc_gate_endisable(sg, 0);\n>> +       else\n>> +               sprd_gate_endisable(sg, 0);\n>> +}\n>> +\n>> +static int sprd_gate_enable(struct clk_hw *hw)\n>> +{\n>> +       struct sprd_gate *sg = hw_to_sprd_gate(hw);\n>> +\n>> +       if (sg->sc_offset)\n>> +               clk_sc_gate_endisable(sg, 1);\n>> +       else\n>> +               sprd_gate_endisable(sg, 1);\n>> +\n>> +       return 0;\n>> +}\n>> +\n>> +static int sprd_gate_is_enabled(struct clk_hw *hw)\n>> +{\n>> +       struct sprd_gate *sg = hw_to_sprd_gate(hw);\n>> +       struct sprd_clk_common *common = &sg->common;\n>> +       unsigned int reg;\n>> +\n>> +       sprd_regmap_read(common->regmap, common->reg, &reg);\n>> +\n>> +       if (sg->flags & CLK_GATE_SET_TO_DISABLE)\n>> +               reg ^= sg->op_bit;\n>> +\n>> +       reg &= sg->op_bit;\n>> +\n>> +       return reg ? 1 : 0;\n>> +}\n>> +\n>> +const struct clk_ops sprd_gate_ops = {\n>> +       .disable        = sprd_gate_disable,\n>> +       .enable         = sprd_gate_enable,\n>> +       .is_enabled     = sprd_gate_is_enabled,\n>> +};\n>> +EXPORT_SYMBOL_GPL(sprd_gate_ops);\n>\n>\n> I think it would be better to have a set of ops for each mode,\n> sprd_gate_ops and sprd_sc_gate_ops rather than have each function decide\n> whether it should use set/clear registers or the base registers.\n>\n> So you can have a macro SPRD_GATE_CLK that doesn't take an sc_offet and\n> selects the sprd_gate_ops and another one that SPRD_SC_GATE_CLK using\n> sprd_sc_gate_ops that takes the sc_offset as parameter.\n>\n\nThat makes more sense, I will revise in the next version.\n\n> Also, I feel keeping enable/disable function separate would be nicer instead\n> of having \"endisable\" functions.\n\nTo avoid duplicate code, I prefer to keep the enable and disable\nfunctions together, but I agree that 'endisable' is indeed not good\nname for the function, I will revise the name to 'toggle' which I saw\nqcom clk drivers use, it might make more sense.\n\nThanks,\nChunyan\n\n>\n> Cheers,\n>\n>\n>> diff --git a/drivers/clk/sprd/gate.h b/drivers/clk/sprd/gate.h\n>> new file mode 100644\n>> index 0000000..5aeb53c\n>> --- /dev/null\n>> +++ b/drivers/clk/sprd/gate.h\n>> @@ -0,0 +1,54 @@\n>> +/*\n>> + * Spreadtrum gate clock driver\n>> + *\n>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> + *\n>> + * SPDX-License-Identifier: GPL-2.0\n>> + */\n>> +\n>> +#ifndef _SPRD_GATE_H_\n>> +#define _SPRD_GATE_H_\n>> +\n>> +#include \"common.h\"\n>> +\n>> +struct sprd_gate {\n>> +       u32                     op_bit;\n>> +       u16                     flags;\n>> +       u16                     sc_offset;\n>> +\n>> +       struct sprd_clk_common  common;\n>> +};\n>> +\n>> +#define SPRD_GATE_CLK(_struct, _name, _parent, _reg, _sc_offset,       \\\n>> +                     _op_bit, _flags, _gate_flags)                     \\\n>> +       struct sprd_gate _struct = {                                    \\\n>> +               .op_bit         = _op_bit,                              \\\n>> +               .sc_offset      = _sc_offset,                           \\\n>> +               .flags          = _gate_flags,                          \\\n>> +               .common = {                                             \\\n>> +                       .regmap         = NULL,                         \\\n>> +                       .reg            = _reg,                         \\\n>> +                       .lock           = &sprd_gate_lock,              \\\n>> +                       .hw.init        = CLK_HW_INIT(_name,            \\\n>> +                                                     _parent,          \\\n>> +                                                     &sprd_gate_ops,   \\\n>> +                                                     _flags),          \\\n>> +               }                                                       \\\n>> +       }\n>> +\n>> +static inline struct sprd_gate *hw_to_sprd_gate(const struct clk_hw *hw)\n>> +{\n>> +       struct sprd_clk_common *common = hw_to_sprd_clk_common(hw);\n>> +\n>> +       return container_of(common, struct sprd_gate, common);\n>> +}\n>> +\n>> +void sprd_gate_helper_disable(struct sprd_clk_common *common, u32 gate);\n>> +int sprd_gate_helper_enable(struct sprd_clk_common *common, u32 gate);\n>> +int sprd_gate_helper_is_enabled(struct sprd_clk_common *common, u32\n>> gate);\n>> +\n>> +extern const struct clk_ops sprd_gate_ops;\n>> +extern spinlock_t sprd_gate_lock;\n>> +\n>> +#endif /* _SPRD_GATE_H_ */\n>>\n>\n> --\n> Julien Thierry","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"L/vC5N7o\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"SXTmxPc6\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yT192467Yz9s5L\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 23:14:30 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAarf-0001jq-E7; Fri, 03 Nov 2017 12:14:23 +0000","from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAarC-00016l-3e for linux-arm-kernel@lists.infradead.org;\n\tFri, 03 Nov 2017 12:14:04 +0000","by mail-lf0-x244.google.com with SMTP id a132so2905234lfa.7\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tFri, 03 Nov 2017 05:13:33 -0700 (PDT)","by 10.179.65.130 with HTTP; Fri, 3 Nov 2017 05:12:51 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=+8tBzQQDNphUPffPDuxuy8BWrjFKAqAA6nQC1A0WQ00=;\n\tb=L/vC5N7oZDiwDJ\n\tLFOEXkvlyVWBA9qi0LS0qn7P7ceUVI2H2W7fU3tDlW78N8nL/xLYsoEsrGx3Cx3XZcrQQl3bfXRB8\n\tfcHxOhlEVCyFmyvCFQHuyWu/tnOltkGTEz7iMY4pUtXNoetDtcbZ2iqg2Hg2UIsO+Y4MokfVphf3B\n\tn+PSZJo7FzGhDeCLWtE/rrC93S428FdQMqPyPkPx+6xV4iM6GbAIJhmPF1Krc9SWPmmBrPJapITfr\n\to+8x9qRJ0e4JmVyYIZZZrBUleNt6iHOtBRoP7jA4d1RsqpkeD0spktPrs5/O+gADCnJ9t4UQrqf1n\n\tzix+UA2JHor4Wa4JEgAQ==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=GB0GMFSukT+Md1xJ7T+X0B21rzTlymtIEE/Sk8r1+Yo=;\n\tb=SXTmxPc6FcToVbVPB6TPTTwtNAKFiyxjFjU8qQ5sSavrBwRfnP91E0aaJXbH+FVBdz\n\tyfKZJFy/x1pnTk75W4k9J/psrceTkFwaCJHb2qzY3WW5KRNXpAuMXczqAoJXCdpHz7y7\n\tRny7NMake8Jxbr5k+WShnfYaVijd1TZrZDAR9NU2gMVGaAG8uJT9aDY1tC5nKS7UxoS7\n\tMOGlu1bCutl4bOkYnVZs2Yg+Fj9niS5yoRLiy8Mm8n4GghlGZ1vR7UowHkf6PmvYcdmy\n\thQBfB90XVjr1HpbUIir4+FL39hntiaYvgYSGo+nTPUtz4PmrO7s1n7Fley24Rck0bbVJ\n\tjmCQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=GB0GMFSukT+Md1xJ7T+X0B21rzTlymtIEE/Sk8r1+Yo=;\n\tb=nwugofT0CKz4CeZYMtsVpOdVq4eUYav0vIbTyMj5YG4zKls2uviTRol8U52zcPNwsL\n\t++SjrO0jHOoQWhhtj6jtW6GoGmuTT0X0Whm0pac6xdklR8NMgJif7xxxukV/1QfyQPQA\n\temPJ8K+pPJ52mFp56CV2tatR7gNALixqHX0vCZ9AOLbby3LdEjX7bQUSpZCYhNunfkvc\n\t//csmUlTO95yHdqbkQnG4n8emye2iBwcGy6hIEk6x2HtxPdK25zLGiRg9tli3fE353+U\n\trVFvORuIumlFMZNYwMWooDAZn7+UK6+0CCx9Bdx0x+2xodTnZUfrAhw2TO5VRZ5VEWlz\n\t6erw==","X-Gm-Message-State":"AMCzsaV3OeIfGq6Glms1P/9mLadaimPsqWLGfxKZak9S+vU1aLPcbxYO\n\tADR3gOW/ZGxKHjkcdl0uAuMvxREMgRG/q0LFFFI=","X-Google-Smtp-Source":"ABhQp+Tydq1/2/hhXF10WguVcmB63ntOPJXwR3bjN9UeDrTMhD5nzJIfXx+yg9w2lsbge7r5unMTxQYOo0JAm+ROFJY=","X-Received":"by 10.46.71.77 with SMTP id u74mr3035010lja.79.1509711212191;\n\tFri, 03 Nov 2017 05:13:32 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<5625af45-a071-4abf-88ed-f167abff1b73@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-5-chunyan.zhang@spreadtrum.com>\n\t<5625af45-a071-4abf-88ed-f167abff1b73@arm.com>","From":"Chunyan Zhang <zhang.lyra@gmail.com>","Date":"Fri, 3 Nov 2017 20:12:51 +0800","Message-ID":"<CAAfSe-uM+xWH3+TcRRO8hSJ6GL9MwSmns9SNTCYSDzVd+5ww8Q@mail.gmail.com>","Subject":"Re: [PATCH V3 04/11] clk: sprd: add gate clock support","To":"Julien Thierry <julien.thierry@arm.com>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171103_051355_431834_30EFB978 ","X-CRM114-Status":"GOOD (  20.35  )","X-Spam-Score":"-2.0 (--)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-2.0 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,\n\tno\n\ttrust [2a00:1450:4010:c07:0:0:0:244 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (zhang.lyra[at]gmail.com)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tWill Deacon <will.deacon@arm.com>, Rob Herring <robh+dt@kernel.org>, \n\tMark Brown <broonie@kernel.org>,\n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>, \n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1798576,"web_url":"http://patchwork.ozlabs.org/comment/1798576/","msgid":"<CAAfSe-tt==o2ZDq=C=pa_oAsA-xG1XMO=Nvd5qbHRTVgPaLBsw@mail.gmail.com>","list_archive_url":null,"date":"2017-11-03T12:12:42","subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","submitter":{"id":64876,"url":"http://patchwork.ozlabs.org/api/people/64876/","name":"Chunyan Zhang","email":"zhang.lyra@gmail.com"},"content":"On 3 November 2017 at 02:22, Julien Thierry <julien.thierry@arm.com> wrote:\n>\n>\n> On 02/11/17 18:11, Julien Thierry wrote:\n>>\n>> Hi,\n>>\n>> On 02/11/17 06:56, Chunyan Zhang wrote:\n>>>\n>>> This patch adds clock multiplexor support for Spreadtrum platforms,\n>>> the mux clocks also can be found in sprd composite clocks, so\n>>> provides two helpers that can be reused later on.\n>>>\n>>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>>> ---\n>>>   drivers/clk/sprd/Makefile |  1 +\n>>>   drivers/clk/sprd/mux.c    | 89\n>>> +++++++++++++++++++++++++++++++++++++++++++++++\n>>>   drivers/clk/sprd/mux.h    | 65 ++++++++++++++++++++++++++++++++++\n>>>   3 files changed, 155 insertions(+)\n>>>   create mode 100644 drivers/clk/sprd/mux.c\n>>>   create mode 100644 drivers/clk/sprd/mux.h\n>>>\n>>> diff --git a/drivers/clk/sprd/Makefile b/drivers/clk/sprd/Makefile\n>>> index 8cd5592..cee36b5 100644\n>>> --- a/drivers/clk/sprd/Makefile\n>>> +++ b/drivers/clk/sprd/Makefile\n>>> @@ -2,3 +2,4 @@ obj-$(CONFIG_SPRD_COMMON_CLK)    += clk-sprd.o\n>>>   clk-sprd-y    += common.o\n>>>   clk-sprd-y    += gate.o\n>>> +clk-sprd-y    += mux.o\n>>> diff --git a/drivers/clk/sprd/mux.c b/drivers/clk/sprd/mux.c\n>>> new file mode 100644\n>>> index 0000000..5a344e0\n>>> --- /dev/null\n>>> +++ b/drivers/clk/sprd/mux.c\n>>> @@ -0,0 +1,89 @@\n>>> +/*\n>>> + * Spreadtrum multiplexer clock driver\n>>> + *\n>>> + * Copyright (C) 2017 Spreadtrum, Inc.\n>>> + * Author: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>>> + *\n>>> + * SPDX-License-Identifier: GPL-2.0\n>>> + */\n>>> +\n>>> +#include <linux/clk.h>\n>>> +#include <linux/clk-provider.h>\n>>> +#include <linux/regmap.h>\n>>> +\n>>> +#include \"mux.h\"\n>>> +\n>>> +DEFINE_SPINLOCK(sprd_mux_lock);\n>>> +EXPORT_SYMBOL_GPL(sprd_mux_lock);\n>>> +\n>>> +u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,\n>>> +                  const struct sprd_mux_internal *mux)\n>>> +{\n>>> +    unsigned int reg;\n>>> +    u8 parent;\n>>> +    int num_parents;\n>>> +    int i;\n>>> +\n>>> +    sprd_regmap_read(common->regmap, common->reg, &reg);\n>>> +    parent = reg >> mux->shift;\n>>> +    parent &= (1 << mux->width) - 1;\n>>> +\n>>> +    if (mux->table) {\n>>> +        num_parents = clk_hw_get_num_parents(&common->hw);\n>>> +\n>>> +        for (i = 0; i < num_parents; i++)\n>>> +            if (parent == mux->table[i] ||\n>>> +                (i < (num_parents - 1) && parent > mux->table[i] &&\n>>> +                 parent < mux->table[i + 1]))\n>>> +                return i;\n>>> +        if (i == num_parents)\n>>> +            return i - 1;\n>>\n>>\n>> The if branch is not necessary since you only get there when the loop has\n>> finished, so the condition is always true. And the loop can be simplified\n>> to:\n>>\n>> for (i = 0; i < num_parents - 1; i++)\n>>      if (parent >= mux->table[i] &&  parent < mux->table[i + 1])\n>>          return i;\n>>\n>> return num_parents;\n>\n>\n> Oops, meant to say \"return num_parents - 1;\" on that last line.\n\nYes, that makes the code nicer, and thanks to your reminder, I even\nmake it more clean by moving the check for 'mux->table' up.\n\n\nThanks,\nChunyan\n\n>\n> --\n> Julien Thierry","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"Cp7DRVoL\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"U1pSb7iT\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yT1Hv4nKRz9s7M\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 23:20:27 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAaxV-0006Zj-AM; Fri, 03 Nov 2017 12:20:25 +0000","from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eAar0-00012P-FZ for linux-arm-kernel@lists.infradead.org;\n\tFri, 03 Nov 2017 12:13:44 +0000","by mail-lf0-x242.google.com with SMTP id w21so2906951lfc.6\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tFri, 03 Nov 2017 05:13:24 -0700 (PDT)","by 10.179.65.130 with HTTP; Fri, 3 Nov 2017 05:12:42 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=Dxn/JlQvb9TYDtAMePp899EUyt6bkPZWVy9S/GI0Myc=;\n\tb=Cp7DRVoLxAZB3f\n\tAaXjwwQ3dXxVpaeURKWYqBL474dxfNHiVpTvk21fvk4ax5TF575w6SABcBypiZ55bTUCAH861nDxX\n\tcUZ6vRBNmM5Ctm2/j+E2qDZmVGIy3t1APaOO3Ntes+GveMx5QNGGtLOky1o22xZ0Z/wsxKlPQ9fMd\n\t8izwiCrXsP4gQC1ED+jFxpyERYtk7GJr9mK1l8oQ612+oftfwlE9Yxso8aZ+5tyE/5sQf4GiWrbDi\n\t6rSFuUBliD25qBUO9NPf2BDbCtt51HQ8wSXgHN8GfnlBOKZoOjL26t4SqF7NWTepB5A9DjPPoxKmE\n\tLNvP/MQtXiLN4xHBUmgw==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=B1MD/hw4aJp6t1LK4ME1dhSwQ40p+29L3SCgRbz9RJU=;\n\tb=U1pSb7iTHWcjvZqiBaMUOlVx9Co11yN/wQ3YSv6XHVOVoopnz+m+UMMZ8APaVO1kDh\n\tYwSEym/nndBiabfoy+URbEaYphQ6Lv47Orw6FP19XmmS1nX10HplMH0YEUJhX7Qfxuk5\n\tnJPkGG4o2jOvWMCH4FeVem7CkBoHCuMPa0PeNrZc1VcRykwqBYqEcY/GKsjKyhOGEspU\n\t5nlbCjs53O5qtNafoy6fr4kzQxfe6R4qYvlO2jUaQmw1cKvcEKzAfsQF0SWJv+LIG3/u\n\teOOX+9qe+qfDv0JUL7Se1S5W7QduHq7zWMzIRBiDeSWdSa4swJBi5WvJlmDSATXMWcA0\n\tYUcg=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=B1MD/hw4aJp6t1LK4ME1dhSwQ40p+29L3SCgRbz9RJU=;\n\tb=JjWrdnD7oMlbtOD/S4HJjCHXp82kS47pkEZrqi2bEx2OK1UR+1q2oPWr4sKOhH3Qf+\n\tQto7aoHZ/5eM7ng4TVCSsa6Y5UWlvEcKVGip3n/GEKdHzVJGCR/O6a9xHfrcPCxqJJpa\n\tOqM/+6VxAoid62/HqMjaPKry2FvCsL5KLf4c4ZbpTpHhMesW67vroQTG42xdtaZDoagj\n\tCqbkHqcFhZkVeG95da+PZsWf5n7UqI777uifKPWNxgESsiCpUKioT6zU0JX8LILrPJsD\n\tMV7rdZeAuocwsxiA7wD++KJihuZqtkhyljFfOHDY7HxbXclTaczKo92lShsVMVraAB8n\n\ta46g==","X-Gm-Message-State":"AJaThX7GFJ9QaViJ1mVnGpM7gpAB+uGcy9eQwaDoRAujOlXNUqY5SiDQ\n\tX4cTZDdK+yTtqUahOwhKdlhJJ24vrgTqrvZcCsI=","X-Google-Smtp-Source":"ABhQp+T0U2EK2wUGCK2oEUPDMJchu8/tj+fOUGfflwL2a8qoDh4gweg/UVaTKe2K3K2AM+4QYsYzqmKpjEn+nyNqRxs=","X-Received":"by 10.25.167.19 with SMTP id q19mr2024755lfe.12.1509711203079;\n\tFri, 03 Nov 2017 05:13:23 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<ba6366af-ecae-5f8b-f48b-6f93fbe833c0@arm.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-6-chunyan.zhang@spreadtrum.com>\n\t<532aed43-03bf-ea26-bdc2-d7deb1093f53@arm.com>\n\t<ba6366af-ecae-5f8b-f48b-6f93fbe833c0@arm.com>","From":"Chunyan Zhang <zhang.lyra@gmail.com>","Date":"Fri, 3 Nov 2017 20:12:42 +0800","Message-ID":"<CAAfSe-tt==o2ZDq=C=pa_oAsA-xG1XMO=Nvd5qbHRTVgPaLBsw@mail.gmail.com>","Subject":"Re: [PATCH V3 05/11] clk: sprd: add mux clock support","To":"Julien Thierry <julien.thierry@arm.com>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171103_051342_705194_35A1790F ","X-CRM114-Status":"GOOD (  16.59  )","X-Spam-Score":"-2.7 (--)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-2.7 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/,\n\tlow\n\ttrust [2a00:1450:4010:c07:0:0:0:242 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (zhang.lyra[at]gmail.com)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>,\n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tWill Deacon <will.deacon@arm.com>, Rob Herring <robh+dt@kernel.org>, \n\tMark Brown <broonie@kernel.org>,\n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>, \n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1799850,"web_url":"http://patchwork.ozlabs.org/comment/1799850/","msgid":"<20171106171519.xomnca72adqtzm2n@rob-hp-laptop>","list_archive_url":null,"date":"2017-11-06T17:15:19","subject":"Re: [PATCH V3 02/11] dt-bindings: Add Spreadtrum clock binding\n\tdocumentation","submitter":{"id":62529,"url":"http://patchwork.ozlabs.org/api/people/62529/","name":"Rob Herring (Arm)","email":"robh@kernel.org"},"content":"On Thu, Nov 02, 2017 at 02:56:17PM +0800, Chunyan Zhang wrote:\n> Introduce a new binding with its documentation for Spreadtrum clock\n> sub-framework.\n> \n> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> ---\n>  Documentation/devicetree/bindings/clock/sprd.txt | 55 ++++++++++++++++++++++++\n>  1 file changed, 55 insertions(+)\n>  create mode 100644 Documentation/devicetree/bindings/clock/sprd.txt\n> \n> diff --git a/Documentation/devicetree/bindings/clock/sprd.txt b/Documentation/devicetree/bindings/clock/sprd.txt\n> new file mode 100644\n> index 0000000..5c09529\n> --- /dev/null\n> +++ b/Documentation/devicetree/bindings/clock/sprd.txt\n> @@ -0,0 +1,55 @@\n> +Spreadtrum Clock Binding\n> +------------------------\n> +\n> +Required properties:\n> +- compatible: should contain the following compatible strings:\n> +\t- \"sprd,sc9860-pmu-gate\"\n> +\t- \"sprd,sc9860-pll\"\n> +\t- \"sprd,sc9860-ap-clk\"\n> +\t- \"sprd,sc9860-aon-prediv\"\n> +\t- \"sprd,sc9860-apahb-gate\"\n> +\t- \"sprd,sc9860-aon-gate\"\n> +\t- \"sprd,sc9860-aonsecure-clk\"\n> +\t- \"sprd,sc9860-agcp-gate\"\n> +\t- \"sprd,sc9860-gpu-clk\"\n> +\t- \"sprd,sc9860-vsp-clk\"\n> +\t- \"sprd,sc9860-vsp-gate\"\n> +\t- \"sprd,sc9860-cam-clk\"\n> +\t- \"sprd,sc9860-cam-gate\"\n> +\t- \"sprd,sc9860-disp-clk\"\n> +\t- \"sprd,sc9860-disp-gate\"\n> +\t- \"sprd,sc9860-apapb-gate\"\n> +\n> +- #clock-cells: must be 1\n> +\n> +- clocks : shall be the input parent clock(s) phandle for the clock.\n\nYou need to document how many clocks for each block.\n\n> +\n> +Optional properties:\n> +\n> +- reg:\tContain the registers base address and length. It must be configured only if no 'sprd,syscon' under the node.\n> +\n> +- sprd,syscon: phandle to the syscon which is in the same address area with the clock.\n> +\n> +Example:\n> +\n> +\tpmu_gate: pmu-gate {\n> +\t\tcompatible = \"sprd,sc9860-pmu-gate\";\n> +\t\tsprd,syscon = <&pmu_apb>;\n\nIdeally, the pmu-gate node would be a child of pmu_apb and use the reg \nproperty if clock registers are a contiguous range. Then you don't need \nthis phandle.\n\n> +\t\tclocks = <&ext_26m>;\n> +\t\t#clock-cells = <1>;\n> +\t};\n> +\n> +\tpll: pll {\n> +\t\tcompatible = \"sprd,sc9860-pll\";\n> +\t\tsprd,syscon = <&ana_apb>;\n\nSame here.\n\n> +\t\tclocks = <&pmu_gate 0>;\n> +\t\t#clock-cells = <1>;\n> +\t};\n> +\n> +\tap_clk: clock-controller@20000000 {\n> +\t\tcompatible = \"sprd,sc9860-ap-clk\";\n> +\t\treg = <0 0x20000000 0 0x400>;\n> +\t\tclocks = <&ext_26m>, <&pll 0>,\n> +\t\t\t <&pmu_gate 0>;\n> +\t\t#clock-cells = <1>;\n> +\t};\n> -- \n> 2.7.4\n>","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"NNC8MrVs\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yVzjK3xy5z9s7C\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tTue,  7 Nov 2017 04:15:49 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBkzz-0007NM-Ob; Mon, 06 Nov 2017 17:15:47 +0000","from mail-ot0-f193.google.com ([74.125.82.193])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBkzv-0006kH-Br for linux-arm-kernel@lists.infradead.org;\n\tMon, 06 Nov 2017 17:15:45 +0000","by mail-ot0-f193.google.com with SMTP id n74so9619588ota.8\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tMon, 06 Nov 2017 09:15:21 -0800 (PST)","from localhost (216-188-254-6.dyn.grandenetworks.net.\n\t[216.188.254.6]) by smtp.gmail.com with ESMTPSA id\n\te6sm6312976otd.1.2017.11.06.09.15.19\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tMon, 06 Nov 2017 09:15:20 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:\n\tMessage-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=g7NOs3jYFEnvYhpbIxT3eBvb9q1/0LFg4jXJxrVkXMM=;\n\tb=NNC8MrVss7EMmr\n\tt4y0SdnRTkCLFycaJxI3vSes+MIek0RlGJKry3YJCAvEs/rfAvjXW+FjWmifT2fb9JZ1L6MrvG/aA\n\tTBJ7IDzzEsUw3GOn4fliuxHwAQ+I5f6m8aBoWohDskvBVRuuTfyJ4ia4sQ6QDxidpIgfZtpkwSyZg\n\tUwQBbP6AmYZDjPQuuJvxMwKF/jep3tXOnVhjA9CUAYEEFZohDK3ID2QoP4/ZjSOgjfZiMb/UCwfF6\n\tCjgTjbBkduUc1Nk4EE1Lv6MRXyYO+hJNPDg6T51Zg03Gky92nII+NfcI/7IM125P1A7lgVnjg1AkR\n\tDNAFKcz6fCf3QpXvpTCQ==;","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=Am7fpYFxyzfHm7X3gFPcjnY8lc4XpLOVIwtLo1RCvHE=;\n\tb=jSXoPeXyEG9NClSN892jWIOtco73fTNyhaxVF09lWzKNhD83mXaTNMs6LUHLZ5HdVq\n\tjzeaxLFmQvbfmT/7yDnw/oHv2xBTOcwbVTDpG1QuwDVOoYB7H3Hcyu/hUcyQHVKsbzYV\n\t3XCWB9TxNjSwsh2yrn2aoWIautgmysgtF6s+pUVzP40Un4b7rKcBL3ssxq6YUUxk7VUe\n\tu6qzHMP4C8wCqDR+DOarlbzlzX7YArmIsDZ1nv9PGFFI7GlupRNOVqpk9oRzOQRkb6L0\n\tyDerQP+EgL1IwMhco+plSJTV7lN4IO5u+Axtt26Tt1bM3eCiu/UbGdB6B/PS8UyQjCFj\n\tnIag==","X-Gm-Message-State":"AJaThX743Wx+wG22SXTQeyHxI1X5PzOLJuiySAofhU1xIKtsPaLD8bm+\n\tkTlc5DrXijp1RtfJcjoYbw==","X-Google-Smtp-Source":"ABhQp+QumlSDDVwgk+YibvtteyZSoNPn7cU4opEGGZXhxx4/Y8WyzSILYbIYm3SvBCpt0w7D2yRJrA==","X-Received":"by 10.157.22.187 with SMTP id c56mr10465764ote.364.1509988520738;\n\tMon, 06 Nov 2017 09:15:20 -0800 (PST)","Date":"Mon, 6 Nov 2017 11:15:19 -0600","From":"Rob Herring <robh@kernel.org>","To":"Chunyan Zhang <chunyan.zhang@spreadtrum.com>","Subject":"Re: [PATCH V3 02/11] dt-bindings: Add Spreadtrum clock binding\n\tdocumentation","Message-ID":"<20171106171519.xomnca72adqtzm2n@rob-hp-laptop>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-3-chunyan.zhang@spreadtrum.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20171102065626.21835-3-chunyan.zhang@spreadtrum.com>","User-Agent":"NeoMutt/20170609 (1.8.3)","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171106_091543_463223_57054287 ","X-CRM114-Status":"GOOD (  14.99  )","X-Spam-Score":"-1.0 (-)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-1.0 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t0.5 RCVD_IN_SORBS_SPAM     RBL: SORBS: sender is a spam source\n\t[74.125.82.193 listed in dnsbl.sorbs.net]\n\t-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,\n\tno trust [74.125.82.193 listed in list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends\n\tin digit (robherring2[at]gmail.com)\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (robherring2[at]gmail.com)\n\t0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level\n\tmail domains are different\n\t-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)\n\t[74.125.82.193 listed in wl.mailspike.net]\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders\n\t0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and\n\tEnvelopeFrom freemail headers are different","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tBen Li <ben.li@spreadtrum.com>, \n\tStephen Boyd <sboyd@codeaurora.org>, linux-kernel@vger.kernel.org,\n\tWill Deacon <will.deacon@arm.com>, Mark Brown <broonie@kernel.org>,\n\tChunyan Zhang <zhang.lyra@gmail.com>, linux-clk@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1800022,"web_url":"http://patchwork.ozlabs.org/comment/1800022/","msgid":"<20171106214335.qvuvcwahemnpwftt@rob-hp-laptop>","list_archive_url":null,"date":"2017-11-06T21:43:35","subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","submitter":{"id":62529,"url":"http://patchwork.ozlabs.org/api/people/62529/","name":"Rob Herring (Arm)","email":"robh@kernel.org"},"content":"On Thu, Nov 02, 2017 at 02:56:24PM +0800, Chunyan Zhang wrote:\n> This patch added the list of clocks for Spreadtrum's SC9860 SoC,\n> together with clock initialization code.\n> \n> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n> ---\n>  drivers/clk/sprd/Kconfig                    |   10 +\n>  drivers/clk/sprd/Makefile                   |    3 +\n>  drivers/clk/sprd/sc9860-clk.c               | 1987 +++++++++++++++++++++++++++\n>  include/dt-bindings/clock/sprd,sc9860-clk.h |  408 ++++++\n\nThis belongs in the binding doc patch.\n\nRob","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"RWbX4v9a\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yW5fv1XZtz9ryv\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tTue,  7 Nov 2017 08:44:07 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBpBa-0002xY-LQ; Mon, 06 Nov 2017 21:44:02 +0000","from mail-oi0-f66.google.com ([209.85.218.66])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBpBV-0002AZ-Tu for linux-arm-kernel@lists.infradead.org;\n\tMon, 06 Nov 2017 21:43:59 +0000","by mail-oi0-f66.google.com with SMTP id h200so8667377oib.4\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tMon, 06 Nov 2017 13:43:37 -0800 (PST)","from localhost (216-188-254-6.dyn.grandenetworks.net.\n\t[216.188.254.6]) by smtp.gmail.com with ESMTPSA id\n\tl207sm5888049oih.24.2017.11.06.13.43.35\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tMon, 06 Nov 2017 13:43:36 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:\n\tMessage-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=T9qpQIwRXwI5VpAQxxWG1xsY5lGZf1X1Hl07nQyIuqM=;\n\tb=RWbX4v9a8vGBa8\n\tikL7IxZUfFvPPkpNPxhoXAxYLb9FPbhiHZRDwenpwLuEKEzRPu59I1rep/XjPsSx6bqt6QLzoH1kX\n\tUlXkPog6VjPcL9fw0kS4miA6Z1TWjbfghA7/2fiBf4FhEKABOEn9+xiQu7dZ5o9b/Kp+IP/TfvEGK\n\taU+F8hLg4mMNQJGwX0pc5smdtzsg3D67teULzyEjI43PxMFSXV3hl/gX1SD5640cXUZKam14yrRIb\n\t8qtOZkGi5SufQYM1rKbv79ePtxEEE/MTRu1eOWzHiyZ6QITN8SDx0NBTVrGihjXNtPpnVpeHSvH4/\n\t8knfhKsnhOrr3lyWLsdg==;","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=0yeJ0FVxGxy5wZMFKOOmMTJbjETDteFJBoqGr2HYzx4=;\n\tb=D+DNkk2XpZBmbV5mM2ZQApzN94MSVEB+U+T/MgWdb7jVlnOwyPJqVcWHi7nH8/VfeI\n\trXXSQKelL6ltnByqD3i+rtOkaTBfLHD5AMJUKotlMXuzLMw3wScg/MDulvtn+M/1Ima0\n\tTmQm/BtyK8SnUpV9vHyhFUvYdfzwyUDBkhYZSLObSAIOqk0KzviF6iLuiv/Mung+fWHz\n\thzBgu/716snf8z91j23jQZ0mYwuUaRCZzHQrSTIfQUcJ0e8rMSetDQ1JPOjVr/2/EApL\n\toNAjRuw9mkB9vq4qNM0pb3B/CVSnqyZrucXVAj+RIBvl8JPyg6tirGnXuKEN6bo2pVtu\n\t7bqg==","X-Gm-Message-State":"AMCzsaUZtpuPiOVQcqoD4bTby4iNWTojh2Fl4lTLwu2VLszY1ZvQjll7\n\tIukoMMB15RpmflzzlMuEUQ==","X-Google-Smtp-Source":"ABhQp+SaLKgeYbzQRwgR1zpXV2Fi7bbrrer7qlPWKvRYNinE1cxou6mS4LEwLStkYvnI+t4RihKr1Q==","X-Received":"by 10.202.212.206 with SMTP id\n\tl197mr9132413oig.360.1510004616735; \n\tMon, 06 Nov 2017 13:43:36 -0800 (PST)","Date":"Mon, 6 Nov 2017 15:43:35 -0600","From":"Rob Herring <robh@kernel.org>","To":"Chunyan Zhang <chunyan.zhang@spreadtrum.com>","Subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","Message-ID":"<20171106214335.qvuvcwahemnpwftt@rob-hp-laptop>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-10-chunyan.zhang@spreadtrum.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20171102065626.21835-10-chunyan.zhang@spreadtrum.com>","User-Agent":"NeoMutt/20170609 (1.8.3)","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171106_134358_035723_B257F8A5 ","X-CRM114-Status":"GOOD (  10.43  )","X-Spam-Score":"-1.0 (-)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-1.0 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t0.5 RCVD_IN_SORBS_SPAM     RBL: SORBS: sender is a spam source\n\t[209.85.218.66 listed in dnsbl.sorbs.net]\n\t-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,\n\tno trust [209.85.218.66 listed in list.dnswl.org]\n\t-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)\n\t[209.85.218.66 listed in wl.mailspike.net]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends\n\tin digit (robherring2[at]gmail.com)\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (robherring2[at]gmail.com)\n\t0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level\n\tmail domains are different\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders\n\t0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and\n\tEnvelopeFrom freemail headers are different","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tCatalin Marinas <catalin.marinas@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tBen Li <ben.li@spreadtrum.com>, \n\tStephen Boyd <sboyd@codeaurora.org>, linux-kernel@vger.kernel.org,\n\tWill Deacon <will.deacon@arm.com>, Mark Brown <broonie@kernel.org>,\n\tChunyan Zhang <zhang.lyra@gmail.com>, linux-clk@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1800263,"web_url":"http://patchwork.ozlabs.org/comment/1800263/","msgid":"<CAAfSe-s=uF6j2T2cePbAT3q4BxY6RcvktwZVs+PjnkQYozvrWQ@mail.gmail.com>","list_archive_url":null,"date":"2017-11-07T07:01:09","subject":"Re: [PATCH V3 02/11] dt-bindings: Add Spreadtrum clock binding\n\tdocumentation","submitter":{"id":64876,"url":"http://patchwork.ozlabs.org/api/people/64876/","name":"Chunyan Zhang","email":"zhang.lyra@gmail.com"},"content":"Hi Rob,\n\nOn 7 November 2017 at 01:15, Rob Herring <robh@kernel.org> wrote:\n> On Thu, Nov 02, 2017 at 02:56:17PM +0800, Chunyan Zhang wrote:\n>> Introduce a new binding with its documentation for Spreadtrum clock\n>> sub-framework.\n>>\n>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> ---\n>>  Documentation/devicetree/bindings/clock/sprd.txt | 55 ++++++++++++++++++++++++\n>>  1 file changed, 55 insertions(+)\n>>  create mode 100644 Documentation/devicetree/bindings/clock/sprd.txt\n>>\n>> diff --git a/Documentation/devicetree/bindings/clock/sprd.txt b/Documentation/devicetree/bindings/clock/sprd.txt\n>> new file mode 100644\n>> index 0000000..5c09529\n>> --- /dev/null\n>> +++ b/Documentation/devicetree/bindings/clock/sprd.txt\n>> @@ -0,0 +1,55 @@\n>> +Spreadtrum Clock Binding\n>> +------------------------\n>> +\n>> +Required properties:\n>> +- compatible: should contain the following compatible strings:\n>> +     - \"sprd,sc9860-pmu-gate\"\n>> +     - \"sprd,sc9860-pll\"\n>> +     - \"sprd,sc9860-ap-clk\"\n>> +     - \"sprd,sc9860-aon-prediv\"\n>> +     - \"sprd,sc9860-apahb-gate\"\n>> +     - \"sprd,sc9860-aon-gate\"\n>> +     - \"sprd,sc9860-aonsecure-clk\"\n>> +     - \"sprd,sc9860-agcp-gate\"\n>> +     - \"sprd,sc9860-gpu-clk\"\n>> +     - \"sprd,sc9860-vsp-clk\"\n>> +     - \"sprd,sc9860-vsp-gate\"\n>> +     - \"sprd,sc9860-cam-clk\"\n>> +     - \"sprd,sc9860-cam-gate\"\n>> +     - \"sprd,sc9860-disp-clk\"\n>> +     - \"sprd,sc9860-disp-gate\"\n>> +     - \"sprd,sc9860-apapb-gate\"\n>> +\n>> +- #clock-cells: must be 1\n>> +\n>> +- clocks : shall be the input parent clock(s) phandle for the clock.\n>\n> You need to document how many clocks for each block.\n\nIt depends, \"clocks\" property here just simply shows which clock group\nthe clock's parents are in.\nThe detailed dependency relationship (i.e. how many parents and which\nare the parents) are implemented in driver code.\n\nOk, I should address more, will do in the next version.\n\n>\n>> +\n>> +Optional properties:\n>> +\n>> +- reg:       Contain the registers base address and length. It must be configured only if no 'sprd,syscon' under the node.\n>> +\n>> +- sprd,syscon: phandle to the syscon which is in the same address area with the clock.\n>> +\n>> +Example:\n>> +\n>> +     pmu_gate: pmu-gate {\n>> +             compatible = \"sprd,sc9860-pmu-gate\";\n>> +             sprd,syscon = <&pmu_apb>;\n>\n> Ideally, the pmu-gate node would be a child of pmu_apb and use the reg\n> property if clock registers are a contiguous range. Then you don't need\n> this phandle.\n\nThe pmu-gate is actually a clock independent from the 'pmu_apb' syscon\ndevice, using a reference to syscon node instead of a reg property is\njust to avoid mapping the same address areas repeatedly.  Spreadtrum's\nclock h/w design is a little complicated, after discussing with Arnd\nand Stephen, I then chose to implement in this way.\n\nI guess the name of 'pmu_apb' might be confused, it's actually not a\nbus, but a global address area stored a lot of registers shared by a\nfew devices including some clocks.  I think I'd better use another\nname instead of pmu_apb :)\n\nPlease let me know if I'm missing something here.\n\nThanks,\nChunyan\n\n>\n>> +             clocks = <&ext_26m>;\n>> +             #clock-cells = <1>;\n>> +     };\n>> +\n>> +     pll: pll {\n>> +             compatible = \"sprd,sc9860-pll\";\n>> +             sprd,syscon = <&ana_apb>;\n>\n> Same here.\n>\n>> +             clocks = <&pmu_gate 0>;\n>> +             #clock-cells = <1>;\n>> +     };\n>> +\n>> +     ap_clk: clock-controller@20000000 {\n>> +             compatible = \"sprd,sc9860-ap-clk\";\n>> +             reg = <0 0x20000000 0 0x400>;\n>> +             clocks = <&ext_26m>, <&pll 0>,\n>> +                      <&pmu_gate 0>;\n>> +             #clock-cells = <1>;\n>> +     };\n>> --\n>> 2.7.4\n>>","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"SPLviYzH\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"j8tD3Wyh\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yWL364Dx4z9t3Z\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tTue,  7 Nov 2017 18:02:26 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBxtq-0004GC-8B; Tue, 07 Nov 2017 07:02:18 +0000","from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eBxtk-00045W-KQ for linux-arm-kernel@lists.infradead.org;\n\tTue, 07 Nov 2017 07:02:16 +0000","by mail-lf0-x241.google.com with SMTP id n69so13250404lfn.2\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tMon, 06 Nov 2017 23:01:51 -0800 (PST)","by 10.179.65.130 with HTTP; Mon, 6 Nov 2017 23:01:09 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=UWYeofwSut+cgjvPpBnQdSqKzXPXf9ZJYKppTUMxA9U=;\n\tb=SPLviYzHXz9Flb\n\tWjHp0uMPf8KHwRw4eo4uD+RyRje8SIIOEJNf7gRjHTJ+tu7P8keSeFxTkswmPrxwqDqJI8vuLylsR\n\tSraDeHqjB4+j9oF3WTbdhBTs4+N+aP65jH0OokNDPIJHMVOERDRv+NKPtvdgVwe8oqBICQRaZ6s/j\n\tsRyJNsucbW17Uy3IqGKqm16kWxvi+rItIKEG5QdPI1lLAKtmoDc5JIobXJRZGj6JTaB0oWrjvVbm2\n\tvjiUFKyVJsiA5AkhlIQe3RkjsazmRrKv6985AXj3858W7A5B03rLwJH+pLyzYGwdW5goaAUIyv9HN\n\tXZ892HozcvW++3mjEBYw==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=bHhgvXJ9X+P9p+qcAXO89OcNQgwoSIDSsGVpJE3L+Ug=;\n\tb=j8tD3WyhCMQ2wtzCdn7H9ap/5hFkCFMZCnmyQCYN7pvB5LDI7qqjmvsaqa6rrsyCql\n\tmXxzaRPe7eYl+Q/vhyliWAmPtw7Hpm+jXz+G+eYncDhAb66VTTydeTHhivCEi9xSN7P0\n\tEDgcuSCh8aPtyT53nEWaO2qp3IAJqhiDAxm0eTwNbDKBYiJ8+31hYXN58pTJQuREwk5w\n\tOOwkVKbtjfah8voZPOjEjMd0zp7nJ3AD+KboaLcHZduNtJzCy7Me22ptG8tpZ4mCYFGC\n\t84x632tMwU9nXNzV/3jchuH9tT92dQf0GLVoAkUG35qdUzVg39zWNoppfzIWKweJy9Qf\n\t708A=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=bHhgvXJ9X+P9p+qcAXO89OcNQgwoSIDSsGVpJE3L+Ug=;\n\tb=m30wFwdZPMafKMWTIpjbI0atwiG16SLRfPoIJ3Rc+UIp+niYrImdnlKNS+w3O+pSfl\n\tsEL5hROrl1DnD0NSkE+QWwBwsKzTUhR+S3Vy+1kJC9+5NpEb9eni3b7h4G4fltpqy5H1\n\tFx96R2NaUvUZusWbSJ2aYKvTklSyhmssWM9xaGhseco4MH5yoEN8r25B9wg8/EkgFWcs\n\tL+Uz6WJXyAiCMiS4ZwDbufY5WZiVF1W4SWmm0DzICiHjzk/E2suOmouJWWOrI1NSwnKn\n\td/el9vA1TFrTOgdgEOSp+01AHUQNHlNigeof1PFJBmAwx8NCCn24Y1RGcF1+E7poEd+a\n\ty2bg==","X-Gm-Message-State":"AMCzsaWH0GhZNt/m8u7w5SP++a8ERzCKT4sNs13KHygRIHy7fY1EuFQP\n\t5Rq0lA7jePvz/kTf5eyDIPyj5GdoSjZpo7EsObY=","X-Google-Smtp-Source":"ABhQp+Rs36i06ppVxXAFRe+n0Z/d7R8pa+uyqE5ulZ2auQaS6VUl5HWO6flEtT8Rl3VVVZDNK1OAi3/l6dPSNUVAYYc=","X-Received":"by 10.46.43.69 with SMTP id q66mr6735445lje.104.1510038109867;\n\tMon, 06 Nov 2017 23:01:49 -0800 (PST)","MIME-Version":"1.0","In-Reply-To":"<20171106171519.xomnca72adqtzm2n@rob-hp-laptop>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-3-chunyan.zhang@spreadtrum.com>\n\t<20171106171519.xomnca72adqtzm2n@rob-hp-laptop>","From":"Chunyan Zhang <zhang.lyra@gmail.com>","Date":"Tue, 7 Nov 2017 15:01:09 +0800","Message-ID":"<CAAfSe-s=uF6j2T2cePbAT3q4BxY6RcvktwZVs+PjnkQYozvrWQ@mail.gmail.com>","Subject":"Re: [PATCH V3 02/11] dt-bindings: Add Spreadtrum clock binding\n\tdocumentation","To":"Rob Herring <robh@kernel.org>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171106_230212_881566_DBBCA7FC ","X-CRM114-Status":"GOOD (  18.51  )","X-Spam-Score":"-2.0 (--)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-2.0 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,\n\tno\n\ttrust [2a00:1450:4010:c07:0:0:0:241 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (zhang.lyra[at]gmail.com)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tWill Deacon <will.deacon@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>, \n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tMark Brown <broonie@kernel.org>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1801963,"web_url":"http://patchwork.ozlabs.org/comment/1801963/","msgid":"<CAAfSe-tadvpgJ0OC00Ccc+y+84t90dArfAu9ASOG77Hnw9Z=RA@mail.gmail.com>","list_archive_url":null,"date":"2017-11-09T08:18:48","subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","submitter":{"id":64876,"url":"http://patchwork.ozlabs.org/api/people/64876/","name":"Chunyan Zhang","email":"zhang.lyra@gmail.com"},"content":"Hi Rob and Stephen,\n\nOn 7 November 2017 at 05:43, Rob Herring <robh@kernel.org> wrote:\n> On Thu, Nov 02, 2017 at 02:56:24PM +0800, Chunyan Zhang wrote:\n>> This patch added the list of clocks for Spreadtrum's SC9860 SoC,\n>> together with clock initialization code.\n>>\n>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>> ---\n>>  drivers/clk/sprd/Kconfig                    |   10 +\n>>  drivers/clk/sprd/Makefile                   |    3 +\n>>  drivers/clk/sprd/sc9860-clk.c               | 1987 +++++++++++++++++++++++++++\n>>  include/dt-bindings/clock/sprd,sc9860-clk.h |  408 ++++++\n>\n> This belongs in the binding doc patch.\n\nI noticed that this kind of files were submitted in driver patch\nbefore when adding a new driver, how about I just put it into a single\npatch in the next version?\n\nThanks,\nChunyan\n\n>\n> Rob","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org header.b=\"R8tIW98D\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"nyWDZcUa\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yXbgd1wLbz9t3x\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tThu,  9 Nov 2017 19:19:57 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eCi43-0003O3-GX; Thu, 09 Nov 2017 08:19:55 +0000","from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eCi3z-0003IS-1o for linux-arm-kernel@lists.infradead.org;\n\tThu, 09 Nov 2017 08:19:53 +0000","by mail-lf0-x241.google.com with SMTP id a132so6156678lfa.7\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tThu, 09 Nov 2017 00:19:30 -0800 (PST)","by 10.179.65.130 with HTTP; Thu, 9 Nov 2017 00:18:48 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=IpTFYOwRzty78R4M0WDCR+ZL4hkMVbWnDHUvWnmN1Tw=;\n\tb=R8tIW98D4royCB\n\t/rq+q7N9P3vfIzqo3iTYHc2q07MOG76yt0JKvrdI0BwiJRjI4rgx0d8boyRlGEspYTfd0pQpMSBFf\n\tUN4fhI9qW78Lndd87cfA/sBm3SQX/BQr9AjEb4ML0iIQFv/QdiiD5lf0BINvY/LfTSiahlO+XnUob\n\tbN4Q9X511cY/tWzMXNDSP71cJwwLUNFW7o62ho7u73wxo1HF3re2eGO7i7FLMIaFTzn2qjlQx1Wzx\n\tulEnrNG/ZBoVUxieG4Od1Uj1G6Y2cK8zBjTQHUjQzogPCitXdIBitBSGhfrdiL0q2qTtnqm1resZi\n\tZklH3BKRS0OrhXsxHnKg==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=dqhcxYngTwJRxM5E/ajCQV5F6bk5eZ4tUdxK6H4oopI=;\n\tb=nyWDZcUaGVr2FzYZUvIFLTLXXpWLNKMgHxsa6hsdwOIu2qXbZcOBghhQie9Mc6UZCT\n\t7ZMb0SXzCC6RUV8QQ/WLmRcfmN4UA+gJnF9MQ7BMZlQ5ZtFQSLMQRFRmQE7eYRkPVwYv\n\tC03PMUzLFVjBGDzBJnTbJ9Oe6YjBUy6dEg8JQ48zY8mHFzbzZ0Np983uxlQtE0Z3PRt5\n\tSqtXW4vMi4Oiz1AiRs+06ZPV6fpPTPRH50R9HtQF/fFBYTNMEWo9zkmWPOwVZXuoiD2W\n\tZ0bjyRsU6jGr5fa7qupKb4c940tR25XhhBHW743cLVRcN3tlf7UjX8A5wmM7kKX7RbN+\n\tLryQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=dqhcxYngTwJRxM5E/ajCQV5F6bk5eZ4tUdxK6H4oopI=;\n\tb=dHaiMrE+PP76obrusVLvp55t9wlbDzzVXHjwo2jjTc9IcN38Vj0Xgw+5RVArYrR3U2\n\tUZr2GGUAep5ziFohKG6gM6x6Z5S5ddIpPx8EXmO7NZbs/RoNDHt79U8K46IU9+L0wWaf\n\tp3OJq10iBIskiML233QtQD+WDWFJwKbN/VMvqPgEQZaFcw6GPwrb5IBJDa3sx4vUcbYG\n\tlsUe4la3sLJcL07T6OneAKufIuy/TiGLCn73rQrap/hrS/qDvmpebqUGDhbVaPFNQWQi\n\tJxb+ZXc8UeQhBuKjVZ61fLqou95zfP1cFIYjGj9sxY6mE17cNFwndy1a6vJ+Zx2r/TmV\n\tEPhQ==","X-Gm-Message-State":"AJaThX4vljJkMIXYo+G3bD8G1RTsdjRA2oO5ruKgoMkOIbX4zfshQVrI\n\tYBpDucdbNuPlXItWdEZzwUB34LWgUKhG+iuxMtI=","X-Google-Smtp-Source":"ABhQp+R3cHPTwj7zWDbycdC/FBkmimL13zo88S9FzzSSgXAeurKDc8tmwXgPxRAedtPLOHozWD2YTfHp/B2IJZGjis4=","X-Received":"by 10.46.43.69 with SMTP id q66mr1287784lje.104.1510215568682;\n\tThu, 09 Nov 2017 00:19:28 -0800 (PST)","MIME-Version":"1.0","In-Reply-To":"<20171106214335.qvuvcwahemnpwftt@rob-hp-laptop>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-10-chunyan.zhang@spreadtrum.com>\n\t<20171106214335.qvuvcwahemnpwftt@rob-hp-laptop>","From":"Chunyan Zhang <zhang.lyra@gmail.com>","Date":"Thu, 9 Nov 2017 16:18:48 +0800","Message-ID":"<CAAfSe-tadvpgJ0OC00Ccc+y+84t90dArfAu9ASOG77Hnw9Z=RA@mail.gmail.com>","Subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","To":"Rob Herring <robh@kernel.org>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171109_001951_396336_523E2149 ","X-CRM114-Status":"GOOD (  10.70  )","X-Spam-Score":"-2.0 (--)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-2.0 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,\n\tno\n\ttrust [2a00:1450:4010:c07:0:0:0:241 listed in] [list.dnswl.org]\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\n\tprovider (zhang.lyra[at]gmail.com)\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]\n\t-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature\n\t0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n\tnot necessarily valid\n\t-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n\tauthor's domain","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tWill Deacon <will.deacon@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>, \n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tMark Brown <broonie@kernel.org>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}},{"id":1802958,"web_url":"http://patchwork.ozlabs.org/comment/1802958/","msgid":"<CAL_Jsq+3wuzCPh1Pkbq79t9zkef-Gvg9AW4pgrKvwOuRJJyn1Q@mail.gmail.com>","list_archive_url":null,"date":"2017-11-10T21:10:24","subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","submitter":{"id":62529,"url":"http://patchwork.ozlabs.org/api/people/62529/","name":"Rob Herring (Arm)","email":"robh@kernel.org"},"content":"On Thu, Nov 9, 2017 at 2:18 AM, Chunyan Zhang <zhang.lyra@gmail.com> wrote:\n> Hi Rob and Stephen,\n>\n> On 7 November 2017 at 05:43, Rob Herring <robh@kernel.org> wrote:\n>> On Thu, Nov 02, 2017 at 02:56:24PM +0800, Chunyan Zhang wrote:\n>>> This patch added the list of clocks for Spreadtrum's SC9860 SoC,\n>>> together with clock initialization code.\n>>>\n>>> Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>\n>>> ---\n>>>  drivers/clk/sprd/Kconfig                    |   10 +\n>>>  drivers/clk/sprd/Makefile                   |    3 +\n>>>  drivers/clk/sprd/sc9860-clk.c               | 1987 +++++++++++++++++++++++++++\n>>>  include/dt-bindings/clock/sprd,sc9860-clk.h |  408 ++++++\n>>\n>> This belongs in the binding doc patch.\n>\n> I noticed that this kind of files were submitted in driver patch\n> before when adding a new driver, how about I just put it into a single\n> patch in the next version?\n\nIt's been done all ways, but the correct way is as I told you. Binding\ndoc and header in one, driver in another patch.\n\nRob","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"YN68anIL\"; dkim-atps=neutral","mail.kernel.org;\n\tdmarc=none (p=none dis=none) header.from=kernel.org","mail.kernel.org;\n\tspf=none smtp.mailfrom=robh@kernel.org"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yYXlK4MmRz9t2Z\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tSat, 11 Nov 2017 08:11:20 +1100 (AEDT)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eDGZz-0002Ei-Ni; Fri, 10 Nov 2017 21:11:11 +0000","from mail.kernel.org ([198.145.29.99])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1eDGZu-0001Zn-R7 for linux-arm-kernel@lists.infradead.org;\n\tFri, 10 Nov 2017 21:11:08 +0000","from mail-qk0-f180.google.com (mail-qk0-f180.google.com\n\t[209.85.220.180])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby mail.kernel.org (Postfix) with ESMTPSA id C929221987\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tFri, 10 Nov 2017 21:10:45 +0000 (UTC)","by mail-qk0-f180.google.com with SMTP id x195so13490482qkb.12\n\tfor <linux-arm-kernel@lists.infradead.org>;\n\tFri, 10 Nov 2017 13:10:45 -0800 (PST)","by 10.12.188.144 with HTTP; Fri, 10 Nov 2017 13:10:24 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:\n\tReferences:In-Reply-To:MIME-Version:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=6H3Z6SXcgZ1U+3jFKZxl2njtgJSeRTU16E4+2LXSznw=;\n\tb=YN68anILwAMq8O\n\tr962CZ9/xVr/awVPOHv32ucJMA9dY7E7oOQB6VRkyK2Ruf55YDEEPvfGUHMO+g0hBJW7gVaCrycCk\n\tv9usS1a7IVmDabZQDZvA+ZbTfRyNzCnS9Y9rKnbMkNEtZCk+2AHyjepmtKG9dk6iloLtOXi+KZyoE\n\tIZoBaJUdNSU9zZkDNYRzwrF6zFQ8PQgmKlva/Q+1EhwgUrNp+jqRyM+KrHXu6s63T4/zyYULESpx3\n\tfUC1CEU5CIh4BGqNfSALOdNgijdUawDbl3dQYxvVMlKJacoFuwMY5HiUcFtOcrbRiLGhqYHDum43i\n\tmO2En2oELwupBwPE2wzA==;","DMARC-Filter":"OpenDMARC Filter v1.3.2 mail.kernel.org C929221987","X-Gm-Message-State":"AJaThX5dOC3mkJpgptp9TW7gJbAFALUQqHdhAUs4rw0FHEYOFeyP6XFl\n\tgQn3bgJVQp0/s8+9vzj1EzLOMWQr6ZyEQjBeKA==","X-Google-Smtp-Source":"AGs4zMZ9lWJHwa6z1eYKyUKnU9ol18D4Ib2RAV4OrjJc0m7Y1FRUc/D2N20T7V56dH6w7H4OsqciTdroPueTVkCXjns=","X-Received":"by 10.55.50.135 with SMTP id y129mr2802890qky.71.1510348244886; \n\tFri, 10 Nov 2017 13:10:44 -0800 (PST)","MIME-Version":"1.0","In-Reply-To":"<CAAfSe-tadvpgJ0OC00Ccc+y+84t90dArfAu9ASOG77Hnw9Z=RA@mail.gmail.com>","References":"<20171102065626.21835-1-chunyan.zhang@spreadtrum.com>\n\t<20171102065626.21835-10-chunyan.zhang@spreadtrum.com>\n\t<20171106214335.qvuvcwahemnpwftt@rob-hp-laptop>\n\t<CAAfSe-tadvpgJ0OC00Ccc+y+84t90dArfAu9ASOG77Hnw9Z=RA@mail.gmail.com>","From":"Rob Herring <robh@kernel.org>","Date":"Fri, 10 Nov 2017 15:10:24 -0600","X-Gmail-Original-Message-ID":"<CAL_Jsq+3wuzCPh1Pkbq79t9zkef-Gvg9AW4pgrKvwOuRJJyn1Q@mail.gmail.com>","Message-ID":"<CAL_Jsq+3wuzCPh1Pkbq79t9zkef-Gvg9AW4pgrKvwOuRJJyn1Q@mail.gmail.com>","Subject":"Re: [PATCH V3 09/11] clk: sprd: add clocks support for SC9860","To":"Chunyan Zhang <zhang.lyra@gmail.com>","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20171110_131106_944740_66D74F50 ","X-CRM114-Status":"GOOD (  13.23  )","X-Spam-Score":"-6.9 (------)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-6.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/,\n\thigh trust [198.145.29.99 listed in list.dnswl.org]\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"Mark Rutland <mark.rutland@arm.com>,\n\t\"devicetree@vger.kernel.org\" <devicetree@vger.kernel.org>,\n\tOrson Zhai <orson.zhai@spreadtrum.com>, Arnd Bergmann <arnd@arndb.de>,\n\tWill Deacon <will.deacon@arm.com>,\n\tMichael Turquette <mturquette@baylibre.com>, \n\tBen Li <ben.li@spreadtrum.com>, Stephen Boyd <sboyd@codeaurora.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\tMark Brown <broonie@kernel.org>,\n\tCatalin Marinas <catalin.marinas@arm.com>, \n\tChunyan Zhang <chunyan.zhang@spreadtrum.com>,\n\tlinux-clk <linux-clk@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\"\n\t<linux-arm-kernel@lists.infradead.org>, \n\tXiaolong Zhang <xiaolong.zhang@spreadtrum.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"}}]