From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032063AbdAHV4v (ORCPT ); Sun, 8 Jan 2017 16:56:51 -0500 Received: from mail-eopbgr40134.outbound.protection.outlook.com ([40.107.4.134]:60220 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753501AbdAHVzP (ORCPT ); Sun, 8 Jan 2017 16:55:15 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Subject: Re: [PATCH v7 03/12] mux: minimal mux subsystem and gpio-based mux controller To: Jonathan Cameron , linux-kernel@vger.kernel.org References: <1483532187-28494-1-git-send-email-peda@axentia.se> <1483532187-28494-4-git-send-email-peda@axentia.se> <9e4ee54f-f781-8d3b-1c46-1549392a9f2f@kernel.org> Cc: Wolfram Sang , Rob Herring , Mark Rutland , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Jonathan Corbet , Arnd Bergmann , Greg Kroah-Hartman , linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-iio@vger.kernel.org, linux-doc@vger.kernel.org From: Peter Rosin Organization: Axentia Technologies AB Message-ID: <68e4cb7d-989d-3935-88b5-ea2c6213dc31@axentia.se> Date: Sun, 8 Jan 2017 22:55:03 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <9e4ee54f-f781-8d3b-1c46-1549392a9f2f@kernel.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: DB5PR08CA0062.eurprd08.prod.outlook.com (10.166.166.158) To AM5PR0201MB2308.eurprd02.prod.outlook.com (10.169.243.7) X-MS-Office365-Filtering-Correlation-Id: b66975a7-79d9-42d0-002e-08d438110497 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0201MB2308; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;3:3y0/Nv/8DNWZnh7Sx8ftQfaI0ZAhNjjPOqA3cC8xn6nV8IJfFLviBOIWXcgK9XpCRsWBZ1w4h5TyixXfHTLp3qvja6E73NtjKSJGE1e8gZadJleeYUy/qSRpq2l8icUsqhcSVY/ZFXlMtvH/s11WGW/PvMVcBYBgoGxvjR12l3mOIhLWNe0PM4PMHiByLUm+9SSvgDqe9Uf+lDnsAoVi0ML9noOPjkQ86Cev9wg8zPJGVjgHiNhKYbzXdEY16s9kg7r5ybFDDd1s/CH+1WmcGg== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;25:1PfE0cAVUimFut4hCGRR40xVDhO1U7MribKwQHl8vv8uiEgUDVR0r4GpbUI03ypDB+nsWyUYBG+fhEL0bAfAQPaSPWmPaNwQa9F1/7vYT5B+E8C9svYZNJWcFmJ9lX1XQe5JnGOe1+CJfFtSjkvOEA69l3pjTLhmjyF3TsVfDE92lOzEXg4dHikH6PbnqPyAntWqgmtsbO7/6Ax0XM1ZBQzp+mfqJKs26aFScG8/4+7iE4Uzdk7Q9n1hBY80AwPmI1LjAVTTp/yT7ZT46rzexycm9/jDgjfMsTxX/95UNdM3ZLu7RKlyOsmKIpwa8nG8wTGS9iSh4kIAarv1J3vy28bTXsfJw4iAy9tCjmcXWP6RwxtnNo53A1/yyszORM0Tv7wxMhBO6zi72HshHHiwiGObYfVZvjzCnnyCYPSnhvxzW29GR500KfA/a9aEPaw6UkjnAg01LAEgACsu9tAa/9L14qmwwdri88EbvJE2mffqj0cTyULn8ZlCVFldMSRVtuTTixJI/SfJIMx5hmdnSAGudixNS7E2lOG+C0ht3lgT8t1ym8DInAHsEmAzGBhzgvweUptrU8xT+l1Aw2KWrS1ZW13kZNK1cEFibUyLx4pXzBh+3+bRamNVzMfSHV1gUdvsnaLDl62ktOPhJ//fZzh3dCTa5Yj5JzFzIPAhZUiy9MQJciM4ZEnxRpeRzWdHpxHIyLBT3P9tlQvA3Q8NPYieVjZPCZRluAYT88V5vNCOXsI5sFAqjJxh7qHlO/tU X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;31:PLh7WJPCwYio4Yal1I7LLNCObbnEBgLWVPRi3GtcJzCF55Duv4gxw2tBnEyL0w8uphotiEQL16ZnkbjOZdmYOr+S9KKow9YXjDcVRWjiVvZJrW5itLI/Qlpjoo+HwAA2r3ZeAvlZFnrP4Tz+VqJ6GdkFe6QeVO1vIvaEy8zryo8BFXrWXRwp5j/wFMbqgDHXqyMz3OSWVkwye9fTJFHDWjx/6ahEAl7hTqXDfitpbh96RbnxpDvPO86NT3kfl/LnfXh8J2bWaIz5SSSAxaGsWA==;4:oZ5KvoanVkMTfIHGcRGboSdC/mky9WSLvR+OsV2fN2mvgO3I7FZYAkA8/J0yY5SD8jJcFBd0OmC9/QeaWpc9Xphw1hXW66r1uf7Z9jveLjh7AEGwPMXLj7TSwE4sP9sEYLoB1VcA1kNhRx0ro0WFWXSQ4J3Jow6cknXSeYyUXmFm/vkeEyTLcpW0h3ywAS3xN20Fq3e0uct3miZBFWz30nvnyWdNOCJ0/SPKR9dpLTMQMUqvlgJmNSDLzowPOezyKvhkHnsvmn1iCUxzowtcn/n3DqLFQRFZUG7gZt09TXCnTje6ADAs/5fF7zru/DrOfyuGDFpuwnlxQUic1zINn4ys+my2+qojwk6sA9AZWHENpjI7LMJ+8pEbBxcHZPaTFunBrOyb6g7gILk6+WfDjy8XuqUhwm2r/bgYRKixqBc114E1k9oWK3SkXJYzFPozwbjOhdMuuv2pX0DD6wNFt3uW+LsQ25ggVWsygNJNCu8VaN9DDxmq8bh2Yqf87HF+lpjrpCbT8/mU6D4K0JGSlb9Z3yrHJPbrhRCheY9syVz6AfVYAtpjFQvbjMspBEAVWZ8VI3DRH2Z/1XcsPG+2i9MEFvKcViNIb+gNQVA9aZj+EMIG/QUrdjxc/F1qq1Ty X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(11668515415152); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148);SRVR:AM5PR0201MB2308;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0201MB2308; X-Forefront-PRVS: 0181F4652A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(24454002)(189002)(199003)(377424004)(69224002)(66066001)(65956001)(8676002)(6116002)(65806001)(25786008)(106356001)(2950100002)(76176999)(54356999)(50986999)(3846002)(68736007)(97736004)(31696002)(81156014)(81166006)(64126003)(74482002)(33646002)(305945005)(101416001)(230700001)(83506001)(38730400001)(8666007)(90366009)(6666003)(5660300001)(7736002)(110136003)(47776003)(54906002)(77096006)(65826007)(105586002)(31686004)(86362001)(7416002)(117156001)(6486002)(50466002)(4001350100001)(229853002)(189998001)(2906002)(36756003)(4326007)(42186005)(23746002)(92566002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0201MB2308;H:[192.168.0.125];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AM5PR0201MB2308;23:j/8nmrS2HgUh6bdweD3WQOzuaWN6y2c/efJ?= =?Windows-1252?Q?gPsJVmcj2UTz1PAJFgy0SmBX+fxXkCLAnPDjiXJCy9RkTKHF1XIzm8Yv?= =?Windows-1252?Q?S/yX9jq9uftW9nNGQ/KeIQMKCMlSZ46cHLuecr/apONd1yN3sJpqjLCs?= =?Windows-1252?Q?aEQBR0veD5oHxogxrZoIdn9qy9pOgVHkY3QPLJlH73JtkTDMwHjLn9rb?= =?Windows-1252?Q?6pxm9yR4n2uZspGKH/1nvqm5/UsqnUiJIXHU+7IQH3VVqtqGoCns+xs4?= =?Windows-1252?Q?NJBUE/jJSKKzED8tbIyFVnRdTEeVRR5P73XBrytZ9j7iEoG2NwpclLSO?= =?Windows-1252?Q?Ava0mqUgYB3q5GJoC1i6CKcoB+LkpMuVyCI+srG1I6RX/nXaIlHDrjIY?= =?Windows-1252?Q?TaLb6cvDiQIudUE/BxA7R/o8Bql/evKDrFuzKWF6JW3Yu/usfstneMeR?= =?Windows-1252?Q?5+IgThbYCzHInx2X1i6jh8RvVP9MPLQjUpKOWDwfHcP8acq0tW6Vl1W4?= =?Windows-1252?Q?+qII0bncgbz8J22NMnJDhXtQP3hsKzXeJsihcWD1FwN+IH8ye/1vZs9a?= =?Windows-1252?Q?eOPJQa3wPXQzphtcplMP585YiSFVU4PCWKQ6tMNYQ0xun0JjwlXQe4DI?= =?Windows-1252?Q?7oI4uWq+PT3MOGoFWX8Kv98XRHJEG/U1uzIjp/MHvodadxVeMAolGi4x?= =?Windows-1252?Q?wVohA23/pWv4GakJHLi+PyRcf4xZgW/ICCgE4OMz1OpwNezBDHndLRUJ?= =?Windows-1252?Q?r2y6RFJKC1Cz5cmKkraZVb7Cz459eGIwmR5p4O+K7h8xwNS0SZxbv7/2?= =?Windows-1252?Q?gxiq3ZUeZ6ULnFF/x/ko5uGEosVBo1ISZ1a59+drM1qWEy0ONyVA6xqo?= =?Windows-1252?Q?Z9aiXqfuqSd7153VPduLxOzoP2hoJPlsTRR558H+Gs+z7IbtmpD/moS7?= =?Windows-1252?Q?yKy+by6XdERgz7+0aFkTvHYYoSFgHz4811I4wSYuk4jZ8vwhQV5DBuWH?= =?Windows-1252?Q?hJSm6hrxNvE88FWVNC+Doq1ko1XPNiQwtsLzEdFP2o7JER+K1xRgMzDy?= =?Windows-1252?Q?akzuBSXvhrdoOz/nPPPVdHmkrgm39CaH5SkYw2tRO9Ib2cffEHTIEp42?= =?Windows-1252?Q?sKMfqvPufHwgkashz/anGIP1S7W2H+bL/jqfHX+iMjM9N0S00JcASCbM?= =?Windows-1252?Q?KRolMjX9zI5BSwuFxV0kMmkxwBvNsMXzL1sjZDdXCVw2sK9Dur9xG6VX?= =?Windows-1252?Q?Nh2/jhb9rJqhZkDmI99fQ85wrQobstKdg0UaMfa3YwGe/ZBRVFTknpoK?= =?Windows-1252?Q?bGObvYI7mmffTiOgtM+QigTDWYpD7WhWP4gsShGyD9XhAbO02uP6nMY7?= =?Windows-1252?Q?ps64LnXeC8mX3m47gArabffiwgjNlHj5Z5oW7a1k/w1S3J3yFLoCETAn?= =?Windows-1252?Q?onsY3iM1IyuI302InumfkJq2+pg4AWv5UFruNadlydtH7lMgCH8bItbU?= =?Windows-1252?Q?UmdYBJnYFfJoRONSXyjU2ZLszJ/NI0HdN/AmBnqZLraHg/dZZHfrSwWd?= =?Windows-1252?Q?QVj4DTEkskIncKhkXjggl+RxLOBwRC/zEkpol?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;6:bV7NX1YzNVxCTxDlYbt9aecmQATurtI+7/mFMKcurBKl5RRxLVSp8QZv3s/K+qheMZ4KJqq8z4l6RUxsIemjX52eluXhtNh3lF2u2Tcp+CCvllk4gaUM0zf8x+J9KF6U17CoqpAivc0ebwL1x0jRNlT9q7k0qsbPVxxlBrj8wcl2p0LfamviJgtPXLKj2tSTu7gxVEeqaeGD63Zdj9XGd1jxkIVpGi+x1zc8bwOUbmwUWcUmokB92Xg0EUO0mXsK2K+f3NlRq/+2hxLosCRxyNf5ekfkasTUfK18gBt9BS8sSrmICRPfP3yPdmnXZsuVeEM412S7CuarxaLsbLRo673r4xuU9i7ZB4FKJTgmlMUrOubIkngeNRDr6CbSXR5A0YMTuv/L5+O6B7AUb329D8fANTHDw9nBMSwcg47ZhTA=;5:mNHQyk1QZqtjuBNQt1x9nmgdXrLko0y9THp/0OhSVmcVY6/IljPZ5lh5yp7uyjIIqWrdRKrjb4EBqITPDXyswKbW0+AsIMr4/LgA8f/iZvXIbAnT43KY1f/1S7oK1NbNiuj/CAQK3tRKngYjN4iRsA==;24:V3CfSojqwhFYcrmaXAVhORtw1Mtd0ZzlEPyac7rrSEFOGOAbIpLbw0Z147gs+17shpkPGUs/pHQvtB8DG54sQouZIt6FxJAmkthli2UkuWM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;7:8VTleZf1d/KV+dJxmOzzV6CksI3Rr6zs6xh2lnpKouKR0f99x3VUZdZndC/E+NIUuEUy+tkRs2ddLm4bchCRedIk5nMIcbbL+XNIZMDcQW1MHaUIjj/xWInYJM5+Q/lF1db2STKsrGdMDXgB1RoppOXyeLEP57xoAdQXACYUUS3KOiWPWeJYTjmaZyYmaKQ0t2hJTY3Lguqjd+puCpap3dckSxCCQASSXOzSMboILgwIB5YXqV2tTyUVgoUZO/7ewNIrSq+RbKZv6+xAnTghyEFFfjxdBQc1DO9Ed8N/vTpxgoOtZZLS59c/vSBDmCxvCMtyxveyR/3ms3mJ2V+NfcJcxji27Idyi2VoNq83Szr01nOcstUXmuPkPhD4FLyv2laZTeFYd0pParWgnFIbQfP9N+VUKyPDP+x9mvkOXoxb9km36jvEEmu91kduip4viDyjfRUMx4NlqcTfUdew6g== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2017 21:55:07.7480 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0201MB2308 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017-01-08 11:23, Jonathan Cameron wrote: > On 04/01/17 12:16, Peter Rosin wrote: >> Add a new minimalistic subsystem that handles multiplexer controllers. >> When multiplexers are used in various places in the kernel, and the >> same multiplexer controller can be used for several independent things, >> there should be one place to implement support for said multiplexer >> controller. >> >> A single multiplexer controller can also be used to control several >> parallel multiplexers, that are in turn used by different subsystems >> in the kernel, leading to a need to coordinate multiplexer accesses. >> The multiplexer subsystem handles this coordination. >> >> This new mux controller subsystem initially comes with a single backend >> driver that controls gpio based multiplexers. Even though not needed by >> this initial driver, the mux controller subsystem is prepared to handle >> chips with multiple (independent) mux controllers. >> >> Signed-off-by: Peter Rosin > Reviewed-by: Jonathan Cameron >> --- >> Documentation/driver-model/devres.txt | 8 + >> MAINTAINERS | 2 + >> drivers/Kconfig | 2 + >> drivers/Makefile | 1 + >> drivers/mux/Kconfig | 33 +++ >> drivers/mux/Makefile | 6 + >> drivers/mux/mux-core.c | 398 ++++++++++++++++++++++++++++++++++ >> drivers/mux/mux-gpio.c | 120 ++++++++++ >> include/linux/mux.h | 244 +++++++++++++++++++++ >> 9 files changed, 814 insertions(+) >> create mode 100644 drivers/mux/Kconfig >> create mode 100644 drivers/mux/Makefile >> create mode 100644 drivers/mux/mux-core.c >> create mode 100644 drivers/mux/mux-gpio.c >> create mode 100644 include/linux/mux.h >> >> diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt >> index dc51fb024190..1e9ae701a587 100644 >> --- a/Documentation/driver-model/devres.txt >> +++ b/Documentation/driver-model/devres.txt >> @@ -332,6 +332,14 @@ MEM >> MFD >> devm_mfd_add_devices() >> >> +MUX >> + devm_mux_chip_alloc() >> + devm_mux_chip_free() >> + devm_mux_chip_register() >> + devm_mux_chip_unregister() >> + devm_mux_control_get() >> + devm_mux_control_put() >> + >> PER-CPU MEM >> devm_alloc_percpu() >> devm_free_percpu() >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 32abef2b6d05..ebe96f3e25a0 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -8442,6 +8442,8 @@ MULTIPLEXER SUBSYSTEM >> M: Peter Rosin >> S: Maintained >> F: Documentation/devicetree/bindings/mux/ >> +F: include/linux/mux.h >> +F: drivers/mux/ >> >> MULTISOUND SOUND DRIVER >> M: Andrew Veliath >> diff --git a/drivers/Kconfig b/drivers/Kconfig >> index e1e2066cecdb..993aeb65affa 100644 >> --- a/drivers/Kconfig >> +++ b/drivers/Kconfig >> @@ -76,6 +76,8 @@ source "drivers/hwmon/Kconfig" >> >> source "drivers/thermal/Kconfig" >> >> +source "drivers/mux/Kconfig" >> + > > Why this location in the list? I think the convention for new subystems is > to just go last in the list. Oh. I'll move it to the end... Thanks for all your acks/reviews! Cheers, peda