From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751803AbdLLIqr (ORCPT ); Tue, 12 Dec 2017 03:46:47 -0500 Received: from mail-he1eur01on0115.outbound.protection.outlook.com ([104.47.0.115]:26207 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750715AbdLLIqo (ORCPT ); Tue, 12 Dec 2017 03:46:44 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Jonathan Corbet , linux-doc@vger.kernel.org Subject: [PATCH v2 1/2] mux: core: add a brief overview of the subsystem Date: Tue, 12 Dec 2017 09:46:32 +0100 Message-Id: <20171212084633.532-2-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171212084633.532-1-peda@axentia.se> References: <20171212084633.532-1-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: AM4PR0202CA0017.eurprd02.prod.outlook.com (2603:10a6:200:89::27) To AM5PR0202MB2545.eurprd02.prod.outlook.com (2603:10a6:203:6c::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9807170-8cdd-42c1-d473-08d5413cddb2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(4603075)(4627115)(201702281549075)(5600026)(4604075)(2017052603307);SRVR:AM5PR0202MB2545; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2545;3:x/mj949MDMJCKCWKRxCrC5n/UrjSjvXwduuSiVElgEb9gJjt0O09ldpD1hEMPVflGFN5rQqwmw/pYG4dE52oQ0sWa+C3MARub1nwItVlt16Jhq3X/f/BQUXNyYghIEr86QtQMP0tvTkj6dz7ZW2k4t/LVe401k2RuL6T3tVUxyIHd8Vxqvu9Cd+4TTStIsoXq9ZLSF/Pf4WO/q5CndmvtU60XgGsOAKG1KDJ14lTIbf0R7OJlz4uhHPUJHjQfbaz;25:7kpgyBgndpDQn4urSyjbi0VKxpdpFxF0Sj66RSkQJnQcTzZiDz3MCy1QYTwbI6DcphChkuL+gdDBUeJhckjm+LN+tXr89QAuwyb87qbtwVXNd4+PkPVxiwrwS+aJWRiozjEHe7tbSrvfYW9vFttOgyZwsVFa+DT2vWfwmOZ1cSgr1SBYrBAia/vMj5Ueg3CC8W863ETQbQq2szqssQN73C0DRER4OMKButyNY7wI/s9O+E50v2AOznsoOCilcBxPWOx6SaCIJe0Cafysk6uo2YIdS+y0u++Gb6KMhxh3gUVSxLLkIC4Zk2vrXf3UraqgPR3rlrQvjIPsBfL+1D+PTA==;31:+Ox5aBNe47ltsVpVZVFt+BzqeQHnhxmTlpHwBSaa4ukaXRviomAnhhVJ7L+CRp+wBasSb0DfdWXb+T3TvFEW1zRKoj2o4DxRIo1LUxl3Y9Wn+sQ57GRYSvWp7Fgur/xcvPSXaEAGT6GwVPbKuCvvnEdUAEK2Py5r02my0QyiLmmumrnd1h+VWUnwBJ0+U8fcxuzQQDCMmde596y9lqJPFidKIkHspZUN7iK6ISmnVlA= X-MS-TrafficTypeDiagnostic: AM5PR0202MB2545: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231023)(6041248)(2016111802025)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(6072148)(6043046)(201708071742011);SRVR:AM5PR0202MB2545;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM5PR0202MB2545; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2545;4:mbdhmWM3/QAG4boMv8jsu2bBV5TcM7/7t6vzz1K2IuqmgLRTxNy3ZE3zHqEhWSCB6aGEEZ+7T3mYibUAn22ajgB3CP3X6Vq55fDwBfXG30Is6dHfQOgY6nc8BpYLRs4FW7zVgkwO0qvn8qO0zduwUFPsRAhwu3mamGpHz8Bq19NZKOhIkZTJTFMJAiW4Z5/J+4/p7QQ2WwZla4b9YBAV0Ce+prec7Qwd340m17TTBhlq08+/7L9hQHRh321JTyS/xUwZ4KsIkV2i8sPnRfPYAg== X-Forefront-PRVS: 051900244E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(366004)(39830400002)(346002)(376002)(199004)(189003)(16526018)(53936002)(74482002)(50466002)(6512007)(105586002)(8936002)(25786009)(2950100002)(76176011)(2906002)(52116002)(51416003)(6486002)(6506006)(5660300001)(478600001)(106356001)(6666003)(6916009)(54906003)(4326008)(7736002)(86362001)(305945005)(16586007)(3846002)(6116002)(36756003)(8676002)(97736004)(81166006)(66066001)(316002)(2361001)(68736007)(47776003)(2351001)(1076002)(81156014)(48376002)(50226002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0202MB2545;H:orc.pedanet;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0202MB2545;23:bzvLDszgFvHJ/WDd4dELotrkybYVDeQieup5/9X?= =?us-ascii?Q?HtmcZPTtdyOpFXYssdS3TEStbHd+ff3a9sF7dUEpsQdnL4yfKeP4JezLaezK?= =?us-ascii?Q?e1B0PNXUgx2qnCzSxR6kdzWzFQ5h66MDp5Wxiw+tcg3hAhwOQfuomDprJIkf?= =?us-ascii?Q?71Jm/GbbgjrScb3z82sBe23ApGUzMDo4CoLTIzLjGjcytmCcAzcur5EcP6Yd?= =?us-ascii?Q?1AE8acuRWK2myrXoEpNb5MfrYaoAmKQWkorcGC1osB1tYrtHmoRUItFIYyXK?= =?us-ascii?Q?NxKw4c9IbjOxmHhWVbCUeIyScCxppKUOyo/BRj9IX1ua1pU/86jcqW9Rbkfu?= =?us-ascii?Q?Ah0T+NdLupXU5+DNavwRZcRCoBnVu4PWW3xnRLA9gffVmZbN5Fb6izRvahJu?= =?us-ascii?Q?VqSBh0gKfNP528sQLbPnPQWGG2YS4YljU3tdtrTaTOiOmQbBuSh88emw73+V?= =?us-ascii?Q?bfpeseSHLT54dxM37G0FU8+zUVsf2GFZHLlgvhWLKXsfmv09ZgwzUu9nGBGl?= =?us-ascii?Q?PbrcuFfDNnYicYxmp2iTLmvoZ8SX1W95FHVaSv4NxBl47voYYXcGheVJwoTQ?= =?us-ascii?Q?iMwWaijSaJLIOEk8cRPgdkxwbz4Y6TkxdF8Vssyrdd5BmPS7Q4yFeK2yeT74?= =?us-ascii?Q?S0yBfiKGTAByVKlW1IjYrSN/kPPOmInklCo+UN9IQFvtaxKc7nNPjf9F1rmH?= =?us-ascii?Q?FqsWg1wUFin/DaNWAsJy1iprXeaBYQ+dhXPifQhA/+c4BEyysXD38sMPToC/?= =?us-ascii?Q?TmG1E1nj5y4W/Kcej5dUF85MXABFnGV62n4QtrN5fefwvwEHK6w3kYm3jF5W?= =?us-ascii?Q?W3NPshbBiTb3VKQg0/r76dxoMamd+2WnFrZPdk4rihTzMkOfPna/fMKOKpcB?= =?us-ascii?Q?d9tHwqq0JkIsewwsXw/oE/83zlqCix0iqYxUCttSQqmtAYFnOSdmid8JoqH6?= =?us-ascii?Q?YdiUnpmFFWzbs2WjgiUIDfy+B9K7ApTQ/7tAGXf66JP0JIS2X88WqVamQEbk?= =?us-ascii?Q?FfIs1qNGmgE0sc2fQgdGJV3RgIWvZQoCsldaTx7cEAnGbua2PgTj2Td/BtqZ?= =?us-ascii?Q?vwE6Hw56JOr9xSonObhaxm5U0SV+Ag1b/cXRx0tB9Io4jt8eH/TFMTl+PqjD?= =?us-ascii?Q?b8Sj/UC9obO/E9a9+Gl5Sy2aV8P2Pvoeb?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2545;6:JJ+k+dSpu+Z4CpNHlWRdbxE2Tc3QcS7p2y8gBGgFHH9d1kUL8NqEQh41A32rYfkatrahftV/PssVCN9yRu0FkTj6aQjMVfJ6p2/K6G6tL7j9s6dGKzG7ZbHxfA1GsQa4B9pwWh3xFFvnQqTz+lmgKkjtbdxvTEHXKCHnEeLXmuO6pcw81YZ/iV88vrFi/PLivLcIYAcXwNK3grQESPw1VgtrzdUkjGgFlP+blMPpKqAGcqxHSADfpk94U7rJsZb/Lw/Y01culDG7Agrs/PQLXf4kBQjlVVkhBeDHwdYHCyn+loD7nO0M/hDklZD4xNCMRECae6doGwsq1sRt2DMqvCsF/veg+ed2r1NgEjOb79Q=;5:F55iKgo2Vu+bJTmpVnDEkxA6Y4gqtvdQ1kljYPbHDUoDy517CnVH7wrxf8dN4HnRbTKdJfhLG2WQ23uW1NT4/ln4NRQTHHlo+sloT1ZR5SV1MaKY5H7nDD76QUSpO7RCTmkPQXcr7fU6A/gX3u86xDHq2giJaifUjLyvPraVKlY=;24:HOoBizqkWZo0i3lLiR7ZQaF64n3EU61DBYvtRUSw52BuGK8TA11nH7LHFGnx3XYOBUkLGsnfEXqNpa0CqfBRDpFHWOqrLQPFgsdQQfyHumA=;7:4VWBKmRRTdQM+hR8BfryBNKzHfj7TnmewN3wELAv81u3PFLLVaH6HDdzmkgLEj8L4A4PT0+GVkfw0moiuHqme/5vApEuIXQKADHe8HeQkTCCay6KuCPqrZtkJ5aBdwav9Z0hLjgfZCHIag6yX7KnrOV7vHhkQ91KxQjYALbtKnfWBi+lcXNLnG2WTuNYbHnQ5CARvUK3k7IHxrT8mYu4FNk8zgUXT0fd/Xdkx/Hug+1HzQG3O7lTbZx2tRQbz5Wg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2017 08:46:41.4402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e9807170-8cdd-42c1-d473-08d5413cddb2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0202MB2545 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Preparation for adding the mux subsystem to the driver-api documenation. Signed-off-by: Peter Rosin --- drivers/mux/core.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/mux/core.c b/drivers/mux/core.c index d1271c1ee23c..ccb5479f8a39 100644 --- a/drivers/mux/core.c +++ b/drivers/mux/core.c @@ -7,6 +7,43 @@ * Author: Peter Rosin */ +/** + * DOC: overview + * + * The multiplexer subsystem uses the following naming: + * + * - Multiplexer controller: the piece of hardware that changes the + * state of a hardware multiplexer (or indeed, several parallel + * multiplexers). + * + * - Multiplexer chip: a collection of multiplexer controllers, in a chip. + * + * - Multiplexer driver: the device driver that interacts with and handles the + * above hardware. The driver has structures representing a mux chip and mux + * controllers. + * + * - Multiplexer consumer: the driver that needs to manipulate the hardware + * multiplexer. + * + * The mux subsystem provides a framework for multiplexer drivers that can + * be used by other consumer drivers. It has two primary purposes. + * + * First, when a consumer driver can be used with one of several multiplexers, + * depending on hardware configuration, the actual multiplexer is abstracted + * away in the mux drivers. The multiplexer consumer driver can be neater + * this way. + * + * Second, when two consumers -- possibly from different subsystems -- compete + * for the same mux controller, i.e. when one mux controller muxes more than + * one signal, the mux framework provides locking. + * + * If the mux driver is so special that it will only ever have a single + * consumer, and that consumer can really only work with that one mux driver, + * the mux framework is not really providing much benefit. It might be a better + * idea to simply manipulate the mux hardware directly from the consumer + * driver. + */ + #define pr_fmt(fmt) "mux-core: " fmt #include -- 2.11.0