Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752495AbdHPUvB (ORCPT ); Wed, 16 Aug 2017 16:51:01 -0400 Received: from mail-dm3nam03on0043.outbound.protection.outlook.com ([104.47.41.43]:48401 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752105AbdHPUu7 (ORCPT ); Wed, 16 Aug 2017 16:50:59 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=alex.g@adaptrum.com; Subject: Re: [PATCH v3 4/5] reset: zx2967: use the reset-simple driver To: Philipp Zabel , linux-kernel@vger.kernel.org References: <20170816094701.30678-1-p.zabel@pengutronix.de> <20170816094701.30678-5-p.zabel@pengutronix.de> Cc: Andre Przywara , Maxime Coquelin , Alexandre Torgue , Maxime Ripard , Chen-Yu Tsai , Baoyou Xie , Eugeniy Paltsev , Steffen Trumtrar , Dinh Nguyen , =?UTF-8?Q?Andreas_F=c3=a4rber?= , linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de From: Alexandru Gagniuc Message-ID: <1d7cb10e-b233-aaa9-cd33-fca33ae6627e@adaptrum.com> Date: Wed, 16 Aug 2017 13:50:51 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170816094701.30678-5-p.zabel@pengutronix.de> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [198.0.218.81] X-ClientProxiedBy: DM5PR06CA0061.namprd06.prod.outlook.com (10.168.110.151) To MWHPR04MB0849.namprd04.prod.outlook.com (10.172.168.147) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d1c52ac-2652-4251-c78a-08d4e4e87dfb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(2017082002075)(300000503095)(300135400095)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:MWHPR04MB0849; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0849;3:UmZzPzyVUnzxdPbNQxrsfAe1rQNvpC6jH0X3wdbPQNhBFrIbaU93udbUhbTS0fKj+FK9ekGXxY0axyHjkto4yRlXeOqxsvq8cnClN8EvJAlcs/O5DUcI66BHdzI2EqAbbOwEfBHydhTV7ucWAybhY+GRH8NPX0vQBzxMBFMlTnymdzbUDjPtc0fu2EfTSGT6GrsXKLlNy5ciaxGly0OMJs4sj3KXMc9jI+Q52HHKLGP7COZBcyo4Eb7Vev4hupaj;25:kljRVYe4YeKhErm/eFHJpdh19yChZcMNHt+mNg0B9f6STjV2e620ugd2L0ax/O/fFYy+qskz4iVQVIbegu9BTk4IjC2BK58tgWsu2ZR7vRIBK3XanwvHxDoOi/JmYaaT5GBnaVnFir684pO6oTPEbWXCYWapYPYsxhyx/uhYJd8CUuKagW+IjButJnO1MX4Q06EZhtK10TBEZaiRjBuPDQpi0/KmJCMF/BHthdqXwsmzTUxINkUw2VTJOP2LKQkNgsxrc+t3qNdT1ZBHdw5CDKGQOJI73PsIk5sbsHYyNXcSRQQVMNFJuqU9hKImVMZXS1icaiLJ2Pwz94+P30pi0Q==;31:3YrNOLO2p9HoPK6qj+dA79CHGfZOTzFzRK0ByIpR08Uqk2AriH/edMiE4xAiPNrpoTc7bCIRC6ipBkkCSZ7i4Wqn5Y1pM2nrOEIYRhArSYuiwGLOBqHmUj2xtFZmvHI4ILvFPOn6bOeXpcDPuthT4q6OyBIBsNO+mwbFCaS9DrxuVPGECYHCvl7bum1uRpSBo9oYasgrKAUOcLPP5XUph0GaC0ABtUc9r1V2qwrgqQc= X-MS-TrafficTypeDiagnostic: MWHPR04MB0849: X-Exchange-Antispam-Report-Test: UriScan:(258649278758335); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123560025)(20161123555025)(20161123564025)(2016111802025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6043046)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR04MB0849;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR04MB0849; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0849;4:BE1zAT6hzYxZLXSNnKpZTSe20Shilzk2mJnHJ/byMJPLdePDldLYb5ViWklAdXUSW7UZan8n1K/fn7ak6CKLPkhRF6a+ZcGmV/0PYdUtJP6vpRkUa1Xzor189pO/EwPzaWSFJVvwBJrW2u1zixfvwMlF0XmZesgbkuceyhFBqfSGAljYihq8VtD3XKkh5cQM5W2gcVjEB+j9Fpi/PxAGRT1tSZ2VZ4cMa6OsDVtS3zYA/jguhtzbLDV3A8Nuc6uQIvD5fNcqMcQOWJf27f1Dz8XbvSB9KBlYBs6nn57adK0= X-Forefront-PRVS: 0401647B7F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(199003)(24454002)(377454003)(189002)(7350300001)(6506006)(64126003)(53936002)(50986999)(229853002)(2950100002)(76176999)(5660300001)(54356999)(6246003)(6486002)(110136004)(101416001)(6666003)(6116002)(4326008)(305945005)(105586002)(42186005)(7736002)(53546010)(33646002)(106356001)(54906002)(50466002)(6512007)(81156014)(81166006)(230700001)(3846002)(8676002)(2906002)(65826007)(65806001)(86362001)(47776003)(66066001)(65956001)(31686004)(7416002)(36756003)(23746002)(4001350100001)(97736004)(189998001)(83506001)(25786009)(68736007)(31696002)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR04MB0849;H:dev2.adaptrum;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;MWHPR04MB0849;23:8CpnAI3kSTzt23QGOl2hNkSXCoS8srx4hb/zs?= =?Windows-1252?Q?LyeYiqDQLp2lZgmgmDDxCEjtNCj2Z+uKEOL6edZOdW65XOb/4FVhj5hM?= =?Windows-1252?Q?Y+c7Li9t56mKMQXX4t4AcWU+sn1dKDtdbvQKoBaUAHyCSXE64N+2VFr+?= =?Windows-1252?Q?tHDWwuQRnorXylAAR+l/Kmwh7CRqJmMDVwdiXXB71+JHNnkJv7/CiPiC?= =?Windows-1252?Q?qYoYaDU3YyTqTCO2HtzzUHaDsB0anZS2pEDpCi9rj1TZLyEx8pkm2fuk?= =?Windows-1252?Q?dtOa+mRh2LCQVKDDATLZ96zeLnTTdsLB0PInWVpyluHZxcO/p/NNDjel?= =?Windows-1252?Q?LvRPOfW68p528877txs/QObAprmKmSMo/YSQdRD+fOtzMRUWvx7fRM2J?= =?Windows-1252?Q?mqZEultMNscOsYfQP5MjdzWgf7HhnbUXt/iAJ19PwjMVYStaCw7t0wlT?= =?Windows-1252?Q?OcojxqA9CyyYCBGuW2fB7SY8ZuwhK33oaTRflhLygj7RuH7+GWvWocbH?= =?Windows-1252?Q?x04xtvlkEKgXuHOZnvtCqZ2Y68YlGcSEwueKJAw/91zcMOlfwvFf+Y/L?= =?Windows-1252?Q?9ae0M5BAjJ0EoaaEyWOQm1JBnc8smJPUuY37rR5VL5f733Cy1+UM5N0m?= =?Windows-1252?Q?aYEGkgn70ZG4VzcB5Wh5t4lXvjEadu1J4qZk8R2XGwwwggTYw8g9twbN?= =?Windows-1252?Q?dUYG0WJi2eLnlNQ6xFRI2kH6bskdh4BvjT3Vr3CDGiVOvXyZX0l85nYx?= =?Windows-1252?Q?xkXIjhqQUVsw7P+FEa3z3SoGxmATSc23vXIuBjyP+JBfORi/OmF2HU/2?= =?Windows-1252?Q?pQOwZIThDHxpGh94YPIDGRYcNOcqtXJz1Ziko6X89c1iv3+nR6IJ27OT?= =?Windows-1252?Q?Jro4CwvyxVqoODiDsOlBmPNIqsXJKI6wDpT0ZHG3F+fGlml6skxVibzD?= =?Windows-1252?Q?OLxTVE7Hbv/mbQUg26easDM9WkxsIM9wbi+jo1eu/+GIbA4j1WHZZ5w6?= =?Windows-1252?Q?AsjLC2jOmnxFUPtQskgAfhxFb/TOk93QXc6k5A1tpA4nrHhIDLC00p7p?= =?Windows-1252?Q?FQf6iNiuPWrrnon8IKKSBlza6xc/0k1MUFjYhR7sfxvFG6mBwy/RwJ63?= =?Windows-1252?Q?7xhn5aNPynC4HhLfwxhR2gDtYmnPNYo+qRBHKfaX50GR36RnEjde5WRA?= =?Windows-1252?Q?mJy19yOGC4XWwdiZhi3MlJv0/qOW/8nRAoxovKv0z/+4YXRKiGcvRgOu?= =?Windows-1252?Q?Ko6bzp8G7FPuXfRSEFn+sKfqyZyIrqqCXdh1A1ckS7Upog3sljtqmKQj?= =?Windows-1252?Q?UuiO55+KbI2TTR0SUabBie1v5KPgMkfc+9XRkd8YMHj+/uIfGWyiw8ad?= =?Windows-1252?Q?v1ODSPw0vw5ahRKjUXYR+L6EOHClZlpRzPnUXBmOOdke4F9aRqw3OOXF?= =?Windows-1252?Q?pGIvq7C4uHa8wiu01VdDq62gz795+dG//N30BecT6WAni8TqAtB/L85k?= =?Windows-1252?Q?+F2lwU=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0849;6:SV3oLH7Y+r+eRkq7G8/E2ojYY5BgqN4qj67ja3na7nFVYRi0ST0OgvXB1qlpU0PqvxC6z8PAIuSD0LCnpZG1Jbx0pwaVjQ/JIAJs0dn2liN3dDRbWz4ZQnfsyVH+wmfXENaRhU7dPY2tgbezJQ7Cg3zpOeCB4UpeQA7mCnPwHAeSuNBaGzAOJTV6gtcchWeN8lmq65FjzhnWJ8Y9mWB5GMMlhXrRAMCNWbbAviAQNKhVYb6JIDr6x33VhVqErCfHa5xiUE0NUrf7w0Y2HDVf/O7xQNJ6sT8SnzuowwEgWTCX9xFKfYZ7w6i0nG9tXPxtK+pEolegEjJRl83srXWFeA==;5:pxwRFRrZqOzUjZDPNDXyHb0V3L+NlXpCuCtARU8ZsGYhb9PgtsgIPLrxkubtpqYXGWlEONRviTJ+STBhFi6X2GyhVCX/O6RkEHNjeRW7qRuD42n19xvi2h9xGthpNMVKu+IHpfxhvp+97miwyETtBg==;24:YcS8x8RUyFs58hwMIrOl3h3uqEx+QV4DqJppCY9Iwul+4li7j6QDaoUuLSmQCFPGsvMJEyCoH+MVZi61rWHeCr4YcGEIeWh8dk7jgq/9HEA=;7:r1jhexkxYhp6ahOrnoWwRRXoPTy2KxkioulOW/EwUwAaopB8qrU3EDY9Ob+jr6vRsp2LCDRdJ0u6WFNQfAfwguVd2BYGGS98zCN0ggVU9WpIFzOc+L8JObCtcsoD5jeOa8+Aq2dPkXPjHYUjydz1rshKmEeP9eVKN+xbhYTv2D0VU3VrUoQHmwKmooWQ1Ds/7fNIcteOOAUYhPIqsENEERJL1s0SBwvdwH5etzTVEb0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: adaptrum.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2017 20:50:54.7811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0849 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6239 Lines: 194 On 08/16/2017 02:47 AM, Philipp Zabel wrote: > The reset-simple driver can be used without changes. > > Signed-off-by: Philipp Zabel Reviewed-by: Alexandru Gagniuc > --- > MAINTAINERS | 1 - > drivers/reset/Kconfig | 10 +---- > drivers/reset/Makefile | 1 - > drivers/reset/reset-simple.c | 2 + > drivers/reset/reset-zx2967.c | 99 -------------------------------------------- > 5 files changed, 4 insertions(+), 109 deletions(-) > delete mode 100644 drivers/reset/reset-zx2967.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index 57853844969bf..30af04516d8a0 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -2061,7 +2061,6 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) > S: Maintained > F: arch/arm/mach-zx/ > F: drivers/clk/zte/ > -F: drivers/reset/reset-zx2967.c > F: drivers/soc/zte/ > F: Documentation/devicetree/bindings/arm/zte.txt > F: Documentation/devicetree/bindings/clock/zx296702-clk.txt > diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig > index 29f4487c290fc..6dfea01023618 100644 > --- a/drivers/reset/Kconfig > +++ b/drivers/reset/Kconfig > @@ -70,14 +70,14 @@ config RESET_PISTACHIO > > config RESET_SIMPLE > bool "Simple Reset Controller Driver" if COMPILE_TEST > - default ARCH_SOCFPGA || ARCH_STM32 || ARCH_SUNXI > + default ARCH_SOCFPGA || ARCH_STM32 || ARCH_SUNXI || ARCH_ZX > help > This enables a simple reset controller driver for reset lines that > that can be asserted and deasserted by toggling bits in a contiguous, > exclusive register space. > > Currently this driver supports Altera SoCFPGAs, the RCC reset > - controller in STM32 MCUs, and Allwinner SoCs. > + controller in STM32 MCUs, Allwinner SoCs, and ZTE's zx2967 family. > > config RESET_SUNXI > bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI > @@ -114,12 +114,6 @@ config RESET_UNIPHIER > Say Y if you want to control reset signals provided by System Control > block, Media I/O block, Peripheral Block. > > -config RESET_ZX2967 > - bool "ZTE ZX2967 Reset Driver" > - depends on ARCH_ZX || COMPILE_TEST > - help > - This enables the reset controller driver for ZTE's zx2967 family. > - > config RESET_ZYNQ > bool "ZYNQ Reset Driver" if COMPILE_TEST > default ARCH_ZYNQ > diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile > index e8c3a032f4780..3a70c254b5ea5 100644 > --- a/drivers/reset/Makefile > +++ b/drivers/reset/Makefile > @@ -16,6 +16,5 @@ obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o > obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o > obj-$(CONFIG_RESET_TI_SYSCON) += reset-ti-syscon.o > obj-$(CONFIG_RESET_UNIPHIER) += reset-uniphier.o > -obj-$(CONFIG_RESET_ZX2967) += reset-zx2967.o > obj-$(CONFIG_RESET_ZYNQ) += reset-zynq.o > > diff --git a/drivers/reset/reset-simple.c b/drivers/reset/reset-simple.c > index e54a29b8b532d..13e7d5559acc9 100644 > --- a/drivers/reset/reset-simple.c > +++ b/drivers/reset/reset-simple.c > @@ -123,6 +123,8 @@ static const struct of_device_id reset_simple_dt_ids[] = { > { .compatible = "st,stm32-rcc", }, > { .compatible = "allwinner,sun6i-a31-clock-reset", > .data = &reset_simple_active_low }, > + { .compatible = "zte,zx296718-reset", > + .data = &reset_simple_active_low }, > { /* sentinel */ }, > }; > > diff --git a/drivers/reset/reset-zx2967.c b/drivers/reset/reset-zx2967.c > deleted file mode 100644 > index 4f319f7753d4d..0000000000000 > --- a/drivers/reset/reset-zx2967.c > +++ /dev/null > @@ -1,99 +0,0 @@ > -/* > - * ZTE's zx2967 family reset controller driver > - * > - * Copyright (C) 2017 ZTE Ltd. > - * > - * Author: Baoyou Xie > - * > - * License terms: GNU General Public License (GPL) version 2 > - */ > - > -#include > -#include > -#include > - > -struct zx2967_reset { > - void __iomem *reg_base; > - spinlock_t lock; > - struct reset_controller_dev rcdev; > -}; > - > -static int zx2967_reset_act(struct reset_controller_dev *rcdev, > - unsigned long id, bool assert) > -{ > - struct zx2967_reset *reset = NULL; > - int bank = id / 32; > - int offset = id % 32; > - u32 reg; > - unsigned long flags; > - > - reset = container_of(rcdev, struct zx2967_reset, rcdev); > - > - spin_lock_irqsave(&reset->lock, flags); > - > - reg = readl_relaxed(reset->reg_base + (bank * 4)); > - if (assert) > - reg &= ~BIT(offset); > - else > - reg |= BIT(offset); > - writel_relaxed(reg, reset->reg_base + (bank * 4)); > - > - spin_unlock_irqrestore(&reset->lock, flags); > - > - return 0; > -} > - > -static int zx2967_reset_assert(struct reset_controller_dev *rcdev, > - unsigned long id) > -{ > - return zx2967_reset_act(rcdev, id, true); > -} > - > -static int zx2967_reset_deassert(struct reset_controller_dev *rcdev, > - unsigned long id) > -{ > - return zx2967_reset_act(rcdev, id, false); > -} > - > -static const struct reset_control_ops zx2967_reset_ops = { > - .assert = zx2967_reset_assert, > - .deassert = zx2967_reset_deassert, > -}; > - > -static int zx2967_reset_probe(struct platform_device *pdev) > -{ > - struct zx2967_reset *reset; > - struct resource *res; > - > - reset = devm_kzalloc(&pdev->dev, sizeof(*reset), GFP_KERNEL); > - if (!reset) > - return -ENOMEM; > - > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - reset->reg_base = devm_ioremap_resource(&pdev->dev, res); > - if (IS_ERR(reset->reg_base)) > - return PTR_ERR(reset->reg_base); > - > - spin_lock_init(&reset->lock); > - > - reset->rcdev.owner = THIS_MODULE; > - reset->rcdev.nr_resets = resource_size(res) * 8; > - reset->rcdev.ops = &zx2967_reset_ops; > - reset->rcdev.of_node = pdev->dev.of_node; > - > - return devm_reset_controller_register(&pdev->dev, &reset->rcdev); > -} > - > -static const struct of_device_id zx2967_reset_dt_ids[] = { > - { .compatible = "zte,zx296718-reset", }, > - {}, > -}; > - > -static struct platform_driver zx2967_reset_driver = { > - .probe = zx2967_reset_probe, > - .driver = { > - .name = "zx2967-reset", > - .of_match_table = zx2967_reset_dt_ids, > - }, > -}; > -builtin_platform_driver(zx2967_reset_driver); >