Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752046AbdHKAQ0 (ORCPT ); Thu, 10 Aug 2017 20:16:26 -0400 Received: from mail-bl2nam02on0043.outbound.protection.outlook.com ([104.47.38.43]:65082 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751373AbdHKAQY (ORCPT ); Thu, 10 Aug 2017 20:16:24 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=alex.g@adaptrum.com; To: p.zabel@pengutronix.de From: Alexandru Gagniuc Subject: simple-reset to de-duplicate reset drivers Cc: linux-kernel@vger.kernel.org, Michal Simek , soren.brinkmann@xilinx.com, linux-arm-kernel@lists.infradead.org, jun.nie@linaro.org, baoyou.xie@linaro.org, maxime.ripard@free-electrons.com, wens@csie.org, mcoquelin.stm32@gmail.com, Alexandre TORGUE , narmstrong@baylibre.com, carlo@caione.org, khilman@baylibre.com Message-ID: Date: Thu, 10 Aug 2017 17:16:12 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [198.0.218.81] X-ClientProxiedBy: MWHPR2201CA0006.namprd22.prod.outlook.com (10.174.164.19) To MWHPR04MB0847.namprd04.prod.outlook.com (10.172.168.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ca1c908e-094a-4517-6954-08d4e04e2f5c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(2017082002075)(300000503095)(300135400095)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:MWHPR04MB0847; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0847;3:D2/TnuD+T6fq1dHH67ZvlxTsxjnC80C0zRsrGssZ+f7GxvIFUleNT9VNsIeWbG0zoSBvB58vk0AYiqjqEksnTQTxQndCRQqxo5gzW7t/wQq8CJ113GKjN+q+i84zRhWm5ZzF1nQJBamz50K01/FtglGvdoRsO+aCxkts7UqzMBlGpI/6dkXwmvYnzimH8+dHIcyV18Y/1UXipr7qqKnSKiz8vwVxs0WlWWqP3z9NLcXokdG6YvEuL/1UYeOm8b4A;25:bMPq5hefCoSmDqZcQi9tcqYAAdhnanD8JasHDYCvigckYWhZCkp/E65P17B5/4dLWi2fXDQ8XY9MR/DyjM5bynX7iJCPm92qo0T8FkEqZp8UPK9zd4FWEvJiGF/vHq7Va/KhYPHJPAofOR5PXJ0X2YSxsVtXQkdmRuj6lPolfk1kPS2buO5ZxqWmC45iew7kfKOJNY81+QHtsU1GpqM5DEnFhpQ6cJiWzij1H605M0vuXX6yeSN3mPouwY+CKH7JHRCpy0cHOBToRjU+XFisl7ncG++6YL+yhtuO6dxKFDP07WOy2SKg5U7GEbxKZGZXiYKTM37SKT9KRNY6wcqejg==;31:GQUq1+97XgecKKslt1fgrVsHhKDBTgCDBCqfBdnW5aEYfoLX2/4H0aVnpqSO1ZtLgS1pp7LK2zRQRZRG/1lQMKsQQ/IJwO/euVHWMGsWOceYIfMS5DDbOmHFq8oplXyRx/tr1GAgepJ6j1SvV3H4dmZx2eAeQX33E/wSqYjvbMVq6XlhSCyuXpxQKuM0QrUennvIFfGb23rssmcRrJnQei7oKPF8ZtRD/V3EM/SkDYk= X-MS-TrafficTypeDiagnostic: MWHPR04MB0847: X-Exchange-Antispam-Report-Test: UriScan:; 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)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(2016111802025)(6072148)(6043046)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR04MB0847;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR04MB0847; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0847;4:g0mk2pdWEwxSx4byVLBGNFFi5kwM8speh/ijJPnXNpT0CNefSEFCCzFp8aDVTVocMeXDqDgba9I7Ecw75EOyZ7C+61NM9Lcnmjs51gh0E7EsqJo6J99nEH8yuWL9cVZFynC+hns9G/klGD+zUVsTyguVtvFtt33DAQhL70jW1NHrXSAsrLvDO22z5+URFGbalv+FfSuPK45wOr13NjkgpgpjdLKiA9w7AsaglQz0f6hd/9BG7RQL1um5Je86VuRT X-Forefront-PRVS: 03965EFC76 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6009001)(39830400002)(189002)(199003)(31686004)(230700001)(2361001)(7350300001)(101416001)(6666003)(6506006)(2351001)(8676002)(33646002)(305945005)(6916009)(7736002)(42186005)(105586002)(97736004)(8656003)(8666007)(189998001)(106356001)(68736007)(478600001)(6116002)(6512007)(6486002)(3846002)(53936002)(54356999)(50986999)(54906002)(2906002)(81156014)(110136004)(81166006)(83506001)(50466002)(47776003)(86362001)(7416002)(66066001)(65956001)(65806001)(25786009)(31696002)(4326008)(5660300001)(65826007)(4001350100001)(36756003)(64126003)(23676002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR04MB0847;H:dev2.adaptrum;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjA0TUIwODQ3OzIzOnhRUGw1emg5cCtTODhvTXVXYnRmK0NxQzdR?= =?utf-8?B?TUMzemZFUnVIRkd1RnlDdmVPYUZiZ1MzRmpVY0w0cWpHZDhNaEV3bHhGR3VC?= =?utf-8?B?Tmo5Y3RxU3c4V1VXQnBjMFNhNEs0clhlRXY5YmhlSkV6NlNTY0dhUTB5RDVr?= =?utf-8?B?YVhJallyOXF5Q1REYmpnNFNEUFZ0YWlVZHlqN1NKNzRCbytnWmpKbU5pditR?= =?utf-8?B?bWpObFVFa04zbGFqSDIyZ2xHeEh3RTc3TzBXMzhnUE12TndZeVVmTk5hSWFw?= =?utf-8?B?Y1FoL2lLalFOVzkxM09yU2VqMStwakt5RnpDQVFtNXVsSlBmNGRjUUgybFZG?= =?utf-8?B?WDFjWmtteUFCQnd6Q1A3a2ZVNlgzZnpLcFpRbzU3U0V0dVBjOVBKZ1Z5Yld4?= =?utf-8?B?Qnl6VW9jbjdBbU5MMjR0ZVQ1bjhWdWc3WEJ3VVg4dkIzSEllTzlFU2xTamFB?= =?utf-8?B?UEp3U2VVODBzZzdnTHEzM2RldVFBRWZwVGNRWHJ2ZFF0WU45WEJqbXU4eTVx?= =?utf-8?B?ZHpYNGh6dEFXT1RYSjVDR21NNThmTldIWVVjY2YrZTZSL25NZDgzYUJoZGhx?= =?utf-8?B?TjhwL09tcHVLZkJnSGMrT29OVnBBcUZ3T092K0ozRWtHQUw1ZjM2MmJEUTBB?= =?utf-8?B?UzhIUHVVM0gySWR1TEpNS0Q0aytLQ0ZRWDNVUzQrRjU4WXppdGxGd3dDV0JT?= =?utf-8?B?NUQwVHJLOXdnYk42WnlpV1E5Y1h3Y29kUkJ1YUY3Um0zRWNsN3NIVEx5WjRw?= =?utf-8?B?YkN6U3YzM3FWVm5VNEgrZlQ4VXI4MDR0REIvOGs2bWxrQU1LVGl4Q2t5YWdQ?= =?utf-8?B?RUhrL2hQb1dvNCtFWEovaVJ3cnRJc2RIYW5uSmpMTlYyYnZ2eFFaVHJ1SnFY?= =?utf-8?B?RzVJM2UxVGI3QmZZSzlWaE1YY0h2U1BsWmsyVjVwTVJlSUNIc3FZQXJJMmdG?= =?utf-8?B?eDloNTQ4TVIxYnFtVUMyMksrNmlBWmdQaFNsdTZnWldQUHFsVlYyeWV2eld0?= =?utf-8?B?Ri9oTTRYbkZqUnZCUW9udnlYN1MwM3ZYem53WFBqUFkyWUE0ZnJLYzNycldF?= =?utf-8?B?STEzenpNcFZFZUhjWmkycE0vTHdxbktXMExuZ0ZKSDlTbjJPVEFhc2hRTytv?= =?utf-8?B?bmhZeUtVajh6VGE0cTZ3bllBNjlyS1hmbitDZVFXN3pydnUyTUhhOTl5Q3pR?= =?utf-8?B?OUl3ODZpaWVDaXM3SDY1bEtGR1BiTlFSeCsxS055V2xKVWdOSVRVZ0xmZmNp?= =?utf-8?B?R2NzcHVROWR3SEczOXZZMXhTQjlxM0FTQXFVSWNsbDczblFpcVVya1VoSUdi?= =?utf-8?B?ZmU2andQaVBEOTV5K0Y3UDhiUGpaLzdyRmhmS1YvV1hFdzZQaEVMU2NIWElk?= =?utf-8?B?Zk45Sy9nSlgzTVhpZDIxUi9SaW0xZkFqWlJybTlsM2RLWEtUVmZxeGRjLzRU?= =?utf-8?B?VjZyOHJFZDZjY3BkaHM1S0J2dW9UL1ZYLzdnZ3dDdTZBQndVUTdzd3RsYVRw?= =?utf-8?B?S3pnMlJ2L3NlVnFQYXFNbFA4MnlwbFA0QTNLaEJVc2lsQkhnTmZPNHFxZkhO?= =?utf-8?B?RFN1YnFVK2dqOWt2UDdLNU1ENVNMeUx1SWIvMTZXOTcySTVxWC9iTlZDenF4?= =?utf-8?B?RzhYc2xUZ0tnSXZPSVlVUU1uc1Z4OWRkSCtVNGJhbDhZVGE0UUxUY1pSbysz?= =?utf-8?B?ckNpLzdQYUJEVDgydGJXRlZZMUJFekgybld1anhvdGVybFFNdmtib1BMYzA1?= =?utf-8?B?TTVlaW1nQUE4OE1OdXNreWxiS2s2dXpsdTl2K24rRld4ZkMxOFVFQ1hIeU01?= =?utf-8?B?VXVjU1FXTnJKOUUvUzBLOTgvQU9QVEpSN1l2UEVxMWtMNUE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0847;6:LgN5Em85+27N9ArA8h3VrTNky9LSVK0X7X+wFD409Aw4kyztYCWe9EhPJrouGki0nGD0cNeJq/1p4hbd5yFevKppkFwh+GTLQDgHprqWw0iCCsFInjMiKer0MaNMuIzjXP3o+0FAY5yr7PgDCc/zLUS1+7naE6LT1LyOyCiUY3myEWIu8gqBjhH5X/+J6zFk1RpnJ/p/1B4bUX+8f9MeOxedHZgfspzdFZDuA2KDv/Q4TO/2dFi9+8GnoLwVUJDKO6raqWqxtO4ZIZEnph9dmGiANZwhPpsQ7VzRccdBghLP2sp553ew0r2J+hG2rcRMrIxxYLsACQoslb+cVdz9Fg==;5:W7ChkkcsTaqcIod9xTbFAVCv/N/pMuyjeNEnLv1i7iDZSiE+MS/BGHj/bqcbDMCCkME72OAi3UTxh+vlVm/9Ty9+AdB/ggJJBsqe/cQQjTmj5jIDsfWB2+/IcNMVTuM2THIXc45VswTPDViNpgHakQ==;24:3jE93js7e33BM1QWWrjp128db84uNE58HHZvZ+qK+uJCUkcornmXfvn3xNNZRiBZ4dihDqXOf/nP2WKZO76mY9VWXYtEbuLXrdjmfZpvLuc=;7:9NX9gWsfscb2NostAc6OG8Wv+LuQ9Eknq6GuA67FVqP2Ow8pty0BjGbzhETJT3fChveQOJzEgY5pLSeHAHCeh26dqyaIK30gzce13rHufoQPnvSxf+mEpAs6KsfMVnxtH4O4qTOPVI9Of+uD+MShWr61MSt3kHpRy+de6YBjT95bYQ53V+zWKgj90/ghEmWkA9P7BcpZt7UJdsyPCESRexuxz603+CiT2zqTDP6wk6A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: adaptrum.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2017 00:16:16.6645 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0847 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1286 Lines: 42 Hi, I was looking at implementing a reset driver for our in-house SoC. It's essentially a long bitfield, each bit controlling one sort of reset. That seems to be surprisingly common. I've identified the following drivers which control a very similar reset: * reset-zynq * reset-zx2967 * reset-sunxi * reset-stm32 * reset-socfpga * reset-oxynas * reset-meson * reset-berlin All of these have in common some form of another of: int bank = id / BITS_PER_LONG; int offset = id % BITS_PER_LONG; It doesn't make sense to me why all these would be duplicated for every reset controller. I think it would make sense to have a common driver to handle these simple resets -- call it "simple-reset". I'm thinking of something similar to drivers/tty/serial/8250, where the following parameters can be specified: - reg-offset - reg-shift - reg-io-width I think a generic "simple-reset" driver which is configurable by a similar set of parameters would be a suitable replacement for all the aforementioned drivers. As far as our SoC goes, I've just added compatible = "st,stm32-rcc"; to our devicetree, and I already have a fully-working reset driver. Do you think we should proceed in the direction of "simple-reset", and what other features do you estimate we'll need? Alex