From patchwork Tue Mar 20 09:31:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 888124 X-Patchwork-Delegate: patchwork@peda.user.lysator.liu.se Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=axentia.se Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=axentia.se header.i=@axentia.se header.b="NZjWk6MM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4057505Jj0z9sZF for ; Tue, 20 Mar 2018 20:32:36 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752349AbeCTJce (ORCPT ); Tue, 20 Mar 2018 05:32:34 -0400 Received: from mail-ve1eur01on0105.outbound.protection.outlook.com ([104.47.1.105]:46160 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752330AbeCTJca (ORCPT ); Tue, 20 Mar 2018 05:32:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axentia.se; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=PBPQUmCZb5MTti1lKbh1VaXNf8AtBp1YQqIFSNQ+Zj0=; b=NZjWk6MMej1bDSOGHhusIWxDJqTrx3mDXvhCPSnGbWx1R8+nAWtwMjWms/vgN9GiIDvT+PAVUHJ/4kb4IyXAqaw474nYcvEZdhOxm3ett7jQb3wSuSYSiRpU1x+qxrkbcYPdxSG21BQLesP7uPK0hyw30CJ6IX/5/JmlVMOGkXc= Received: from orc.pedanet (85.226.244.23) by DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Tue, 20 Mar 2018 09:32:26 +0000 From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Guenter Roeck , Wolfram Sang , Ken Chen , joel@jms.id.au, linux-i2c@vger.kernel.org Subject: [PATCH 1/3] i2c: mux: pca9541: use the BIT macro Date: Tue, 20 Mar 2018 10:31:58 +0100 Message-Id: <20180320093200.19179-2-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180320093200.19179-1-peda@axentia.se> References: <20180320061909.5775-1-chen.kenyy@inventec.com> <20180320093200.19179-1-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: VI1PR0502CA0029.eurprd05.prod.outlook.com (2603:10a6:803:1::42) To DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6352714e-12de-492a-95a3-08d58e457eeb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020); SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 3:M5wjOmlhJv7e04ar3PlxoQVlAdRBZOq2/Ur9jbD34IQjBmVxCq+VJvKil+MDxUz0U9JymJPjWlBr+QKOtxAMT4C3zmCaQ49KLwK5qkJ2BQhE34MgLwrd7TJivW/IbvnSf7W7am5oLKPyFNDycL79Fp7GEZxZs15/DqwV4iehBrupYGI7In/m4Efz7KirArzsT/NgK/fXWorry3jQZzfFFQcEkSUa9rafkiIOGwoBRjiirwKLbZ88BK+ya5wNJpF9; 25:FlLeyC28rWM+jC8bOrMJpZS8+4T9RH3Gu0xbuSIycL2rSU1AJUCHGkrO7gYGVOflsQ/aEAJOMCtVNiPSyB2030DCpIZWnpt2lgQolCl5wbeAKgBhkqZ95x0JOLauHgQZUA8w03gWHCtuOhCdHQlNTba2SynWH+8aLTKhjB9abxAPF612egq+dQprCSTjaCg1x/D1ell2b7sBAGRctlzQCVOt8nqpLs5lqpwUdFEWay6vyCCK0NEh4VY0IVcsFbLeHf/N1H9QjF0I+BVpT4u21QTNk6PjRzHyYIr/ZGWOL83pYkO0qBYBTmQygUitR2gZj9bTeZ2FWaaPv2SSg+ha6A==; 31:ohgFJQ7p6YBtGba70l2wjSeLdlIfVe0LN+r0fa4xQl24iVo4FzjXSGhrWtap8juZMhqdfBw/VSd8hPztbGZ2KzX2WZZfEyGzqrxh7A7vjs42Z1nCtxWeh38XpTFU5AkYX7oYaQQGHNUnuTNMv87dhhsPalVUTPD6pwGt4ELvmlRSXE1K7a7U0QdJ4jKMy/P59B0A1vIMC8DidYLgS8KT+4t6A1HY3peHlA5wlacxeNU= X-MS-TrafficTypeDiagnostic: DB6PR0202MB2776: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231221)(944501309)(52105095)(3002001)(93006095)(93001095)(6041310)(2016111802025)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(6072148)(6043046)(201708071742011); SRVR:DB6PR0202MB2776; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 4:f/i1nA6dCyc+UDai3Ak+Dwl8nZ1w/RJhKvHngqgJiPHrP6THVmuZReUF6/S0COu5wSOoUeeXs/lmwmqUASwaFWE1e77U1kQchRHX2BiSB3pOLUzZml0wo27sDkzXHFRePc3QuOcAYBqYjcRTyfY34rlse+K9myRLtPEW3rsiXKdrnmxIoF/PaOvbTRA2YkypKiyI+lr4CfpZs3e+Z42s3xA+6Rzmrdg/ooeK8FICD4oPQpIL+WSWtE5WyH/6Je0mlDHgOHzW+XDqIYTfpyxJ8g== X-Forefront-PRVS: 061725F016 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(376002)(366004)(39840400004)(39380400002)(346002)(396003)(199004)(189003)(8936002)(16586007)(54906003)(478600001)(81166006)(2351001)(6346003)(3846002)(2361001)(25786009)(76176011)(106356001)(8676002)(81156014)(51416003)(86362001)(6506007)(26005)(316002)(386003)(186003)(16526019)(50226002)(53936002)(36756003)(68736007)(47776003)(4326008)(97736004)(5660300001)(66066001)(6486002)(6512007)(305945005)(50466002)(7736002)(2906002)(48376002)(1076002)(6116002)(2950100002)(6666003)(52116002)(6916009)(74482002)(105586002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0202MB2776; H:orc.pedanet; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: axentia.se does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 23:aqM/fSOaXO97zMLYXpH/uG+OmSDcHDfzfK5VvtllzaoOI8UmwrsocB3yjWmPy3kJMIs7lijNBD0umhwgCBgTtGoBhehPE5EFjOyCcE5wdkFCyfDwZT+qABGS9x4mvIKpxQ0MSY2TNTc3tcRTye+7f/tWadwuwYfntfAAR7+PIeE33mBPjhDHpFNW9/0Yf4eZcM4gbV4KAk8/ifbe5IlzEt9USHmu1fplPgQ4E0+PYoc0z8z7hc9C+Coyhg89KicRAokNMIbYv1vvp3TjV15iX3iAA0dGvczndpSudD+3ISmMCjS2xomT9mMKJTLDRUzg9WbiQy+oXXyqSUr3CvaeheMS4rcIRiXfBlMECXUMLRrXkw2QDpT6OuX5ofzCE7Oh55W+5IcgknA23CsunCSPXKhZBxZigywnkoODTwtmDDFks8aoiLmK0P/0oAADeYBTCBVyamgjiK5CHTO24Ll4ttArvLOvCLZWKQfH98bDiQ0hssl4MgFxyKHw+R6oefMFCm6TNeX0DRs9yxYSCAicGwOXuMg8To1riXXLWRPHyf/pMoN0gMMErKOScEBUCXmq7EgnUIJZnxqDsoY5J1HBC9qmEq+y8u4bWd3RqFu9K0VZo8ng61c/8BPA6AngQE1lP92X6hNunP295GyA6C5UnAfzWzwxPMxwwVT5L6CGmX9uX0L10C+TO2nhLJ/GgjuP5BvYYelZd6Fi1TAjfPePpQEHMnKYRIN5x9w2Pz1+x0bKBJlrT82xIAXNX6wZS1tn3epD+xaJXWFQDssrEFsfVvnyWp4QSEud/4APV5dqwN+ZDSkBwTCeBmjz1w1twbJ+ihA8qMflDqmSLW/9X4emNv9ErSp4ZqctLOQIpJ3ukZFuwqTLl5K896bPVFQZ3x4qF15TsC2JmSQtpb86ffmi18BCkdNl7TVd7ef4WjGURw6qit0pWR74yuK+Kb9CEWVY1Fas9De6rZJ9dzQYCMfy70G8PPSfgAg7aROwE9w/itz2zKBAqDtI/fTzGc2z8SKZyl8p9uFbAyHyuXU3hvtpTjuUPYeEga97f2dkhfgeqq0pS7G/Jxipq7yk020qiXqlcdcIATKSDi33vgTESQ/UTwd43v+Thd/2LfCcGvs5b0soPW7FdcTgncqAHXy1viZV+KEqbVYsJpN4VV8ROARILgGz+3cP2OGErBPTH6jyaxjArZ6CVa5XSorHyP4UDTPQyIhC6hj++261lTLFrvurzC4wNko+WLAi9UfLwJLaaCA= X-Microsoft-Antispam-Message-Info: yQWpoaXMOMbzj/6UzJH9EUgYfTbpoD7AkvERNFlCs8StaEl8duiyLTBzb4tH27fViMv7k95derFP9j1wfPcAW4EfqIdw35bNdzUv0hzGUePb5dzCHVM6jshOOa/ISzfq6sm4DUuy+MlzyAbuG0G3CUOhEthiVShd80eQvslefoW+YkQT5Daw6otngx/YgmGk X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 6:Wd94hAIRsbdHHh5b56BZSif9++K1TZvn8UMiadREMIp0B/abwZiqAzan26t8onqQJXMPksAEyk5l4BKlf7KooKdMTxPkgMTYyPvEJT+1dKF30kqmXvWKyMNGGiQc6fDy5ZHpUUqJ90eezyLeNbYV3AVgDdlLNXgI3vwAZn+p8yOtkETIzJOIOFJoZ9S5j1Ztm+9B+aMmb5k3ANB5ybzyqd2TG5F8slGY60xYALCXf98yEwRgLBz41KgMnxDxbQDH3WwVNlvXrOvHKsS4/MaaTAbksAqqxHRaPdZGqAjieNklYfk7LPkETr9lvDovMUnVhIXoxzStfkXnoNuhvFx0OsuoPxOaQ3cFIk8qfuHy7Lk=; 5:KoqrqQIW3DEMoQf+SEeQ1riFY9Paqm/xMpLikreVjWrgV4LwVU/H7CFhkXYEBvND/vjvQZO35XXjmPoUgQYDGa/sHPR88taPe4yBd1rM5CDUlyePYyelUfI68DQyWTJgf2PG82WFC8e26m49Hg+4riGspAQlFN0/6ISNUY0m6+U=; 24:+pCQlkfWEW4/ZOcivUifEtVxFHmWr6ZRoXHRcw/taOTUtR441NPuZuKDdMj2mYvJYdbL3tuiK8Kng68nciYhr/MtLEORES4NzEu28yV2i6s=; 7:8GOfNGjjj4onG2cQQMUwrzk/DA3tcLgHzEXRRaD9kL3/fLw3vPoHKIMKfY9/iyijnFjZwt4W15tdZh4APAaATUWGOlJKacHHi9b02f3LG1TcgYb21Z22cf3W/1j9Juq4XMmHaN0BtXFMYL7I/CU/2Zhx/IxzbNzfksrpaRueU6Gh0HUpxv0PxEp9ceEgm6E8eE2O964Ptdmcd38hGg8E4DShIqNmE4yBoI3Y3oAsrVzkwD7vEYw+dB9/EUWLUZ5F SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2018 09:32:26.2924 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6352714e-12de-492a-95a3-08d58e457eeb X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0202MB2776 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Because it looks nice! Signed-off-by: Peter Rosin Reviewed-by: Guenter Roeck Reviewed-by: Vladimir Zapolskiy --- drivers/i2c/muxes/i2c-mux-pca9541.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/i2c/muxes/i2c-mux-pca9541.c b/drivers/i2c/muxes/i2c-mux-pca9541.c index 6a39adaf433f..ad168125d23d 100644 --- a/drivers/i2c/muxes/i2c-mux-pca9541.c +++ b/drivers/i2c/muxes/i2c-mux-pca9541.c @@ -16,6 +16,7 @@ * warranty of any kind, whether express or implied. */ +#include #include #include #include @@ -43,20 +44,20 @@ #define PCA9541_CONTROL 0x01 #define PCA9541_ISTAT 0x02 -#define PCA9541_CTL_MYBUS (1 << 0) -#define PCA9541_CTL_NMYBUS (1 << 1) -#define PCA9541_CTL_BUSON (1 << 2) -#define PCA9541_CTL_NBUSON (1 << 3) -#define PCA9541_CTL_BUSINIT (1 << 4) -#define PCA9541_CTL_TESTON (1 << 6) -#define PCA9541_CTL_NTESTON (1 << 7) - -#define PCA9541_ISTAT_INTIN (1 << 0) -#define PCA9541_ISTAT_BUSINIT (1 << 1) -#define PCA9541_ISTAT_BUSOK (1 << 2) -#define PCA9541_ISTAT_BUSLOST (1 << 3) -#define PCA9541_ISTAT_MYTEST (1 << 6) -#define PCA9541_ISTAT_NMYTEST (1 << 7) +#define PCA9541_CTL_MYBUS BIT(0) +#define PCA9541_CTL_NMYBUS BIT(1) +#define PCA9541_CTL_BUSON BIT(2) +#define PCA9541_CTL_NBUSON BIT(3) +#define PCA9541_CTL_BUSINIT BIT(4) +#define PCA9541_CTL_TESTON BIT(6) +#define PCA9541_CTL_NTESTON BIT(7) + +#define PCA9541_ISTAT_INTIN BIT(0) +#define PCA9541_ISTAT_BUSINIT BIT(1) +#define PCA9541_ISTAT_BUSOK BIT(2) +#define PCA9541_ISTAT_BUSLOST BIT(3) +#define PCA9541_ISTAT_MYTEST BIT(6) +#define PCA9541_ISTAT_NMYTEST BIT(7) #define BUSON (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON) #define MYBUS (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS) From patchwork Tue Mar 20 09:31:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 888126 X-Patchwork-Delegate: patchwork@peda.user.lysator.liu.se Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=axentia.se Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=axentia.se header.i=@axentia.se header.b="LBPFqFvo"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40575d3vlqz9sZF for ; Tue, 20 Mar 2018 20:33:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752439AbeCTJcm (ORCPT ); Tue, 20 Mar 2018 05:32:42 -0400 Received: from mail-eopbgr00100.outbound.protection.outlook.com ([40.107.0.100]:45367 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752415AbeCTJch (ORCPT ); Tue, 20 Mar 2018 05:32:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axentia.se; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ct+XgNVMnOJOm91Tjd1OUBwk/mUE4fae6J5YUN+tsZA=; b=LBPFqFvogPNG/n2gKX14DHI3xV7xBTZxO0JuUvGuImaP6Seov14d1mLi8zuxtRD/EddLYzI71770/jUz/BsVg4CbdveW0KT7TFGwhjuQORotFNjWSn8hiJI52KdBXEcuOvMZooPmbvjwcfkS1JVWpvZWQs3ds50W0c/lv6G0mj4= Received: from orc.pedanet (85.226.244.23) by DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Tue, 20 Mar 2018 09:32:34 +0000 From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Guenter Roeck , Wolfram Sang , Ken Chen , joel@jms.id.au, linux-i2c@vger.kernel.org Subject: [PATCH 2/3] i2c: mux: pca9541: namespace cleanup Date: Tue, 20 Mar 2018 10:31:59 +0100 Message-Id: <20180320093200.19179-3-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180320093200.19179-1-peda@axentia.se> References: <20180320061909.5775-1-chen.kenyy@inventec.com> <20180320093200.19179-1-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: VI1PR0502CA0029.eurprd05.prod.outlook.com (2603:10a6:803:1::42) To DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d151e15-7917-4c1b-4d0d-08d58e458391 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020); SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 3:5CNW8tl2Pm38EtHK60bl0YUThjxg5jNg0pki/tmIPY73j4/j2gHrGpxnC/ekkn/a5+xYXRzC9YwGjCuCBppCRFpoWtydthZHveNQzNTEfIBVQ940cu+8tc447FCX5IUofg+01MIRZPemjS2IGJPFYpxY2PmL27dM+HogCL10uHp60bjnlZ1mH2HQmbEDaPIB+Y+eIg/uFFupX1GFeDHGeNkg96V6wUW2qf1+Remep4bjHoqQN49G9r44eu6echy9; 25:uVmkIBJa0Wf+R0MCzmzKev5ISNzOIMdzsvW7AjTo1g51PFh3IBzGQrJy4sD50hi/bWlGlKArjxpEtSnsH4d3Nf2byOnuDhtFQnq5785s1DAdczaPY2wdNhtdl2KxJhFFo0daGWIdplSgYHl3D+R81oprYfNAt5RoRqxmg3coiFq3153x2U3n8gkHsHl4pMpgTRkjZv2yi+HdoTKko1QXeJlgJ7qMIQXfoaJPSssLdJuwUlU5FoVRUBX1oFwarD7cBCHT897Kdk9oILGpIAC3Qx8Or+C/Xcruzz9uNoNGbAXiMBFGLyslEOw5dE2MMrJ6hngU3NNH00bM450A6G7ILg==; 31:M3vLpbv6kgNnH++44Wlv9uWeXkT3gUQnmRWACtazMmUZyRBN9G8ksP6SK7N9lOYRo21rWj7rcP0wzYGUfFVKPHl4eYk1/NWPK9rwU21hOL6AcEGqrorVsjodBlFBN43CHJY1gNp2aV0enExwdjwyUkfdlsNHy8ZGOKqpQuAr+DtfJmCGfmqyyIqImpc2K0MnsyySnsoehtV0xk0y1RQxPYnhgz9y+smF+HetOxLgEfI= X-MS-TrafficTypeDiagnostic: DB6PR0202MB2776: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231221)(944501309)(52105095)(3002001)(93006095)(93001095)(6041310)(2016111802025)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(6072148)(6043046)(201708071742011); SRVR:DB6PR0202MB2776; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 4:fWqGXXt9TR2sY/ASzF4MbrG374tDkh0cZ6eOqF3ztBGeQMDRi8nGfszo8Q/r1RslgEpetT4MyMascIguu3FjURQ42nPUefVLDNwdxzqd/BZ81n75npCuCxvT0cuL6twC0IOT72sTMbZCLlvMRk+IahNqoquYF/KKwyuU2FR6THGyoPEPwdZ7s6Y+wckNpXlR+0OZl5tpyY1W0i8zJ8zk3tjsA4Wp8cOUx4PwGhICgW2lFNfMGoPNRa6TV7RWroTr9dNbzGGpYhMIMyU7PzWGLGkCwk5b21/sZJfANTOLVzX975BLUtZuKMiOlfyqflWp X-Forefront-PRVS: 061725F016 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(376002)(366004)(39840400004)(39380400002)(346002)(396003)(199004)(189003)(8936002)(16586007)(54906003)(478600001)(81166006)(2351001)(6346003)(3846002)(2361001)(25786009)(76176011)(106356001)(8676002)(81156014)(51416003)(86362001)(6506007)(26005)(575784001)(316002)(386003)(186003)(16526019)(50226002)(53936002)(59450400001)(36756003)(68736007)(47776003)(4326008)(97736004)(5660300001)(66066001)(6486002)(6512007)(305945005)(50466002)(7736002)(2906002)(48376002)(1076002)(6116002)(2950100002)(6666003)(52116002)(6916009)(74482002)(105586002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0202MB2776; H:orc.pedanet; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: axentia.se does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 23:uZh3uGqI2WKUoWGO8igxIEWwyjSM/bpJkaYrOZVYjmRy5bi7kdie2OQXDwRaoVreLjSYHWMrHxGNNdUnCuUQpXEZyowMQr6XV3qITKjlp879KIxXHZ+cNE8AIM72WR9IyuLLdAyOp/1EUm1qcs10YcalLu69NBsgjw07Zgurrk8PUxOLh6+jRUofnmEOPGxc0tVbyRLJwJSE1aOf+bJMvUXmFECZvw/YlQvyYZSidJwgbE96lsK3iiCX2o4e23SKDC5rEnK1t9QOEyGTytWQe1AP1koIYpTP1GDSy6BrmwsCjbRsyusSDSbw+K8LD0PAv768XKQOZd2OmvJgqgSErzGthiZX6tprl6UorUMi9nrg/HvWkeiB0/32qovKqdJtZI2rxYM6dNOH2hcHNbG0YDFSpz3Hb9eKZVnGbMOuR5v3ASIXpFcGIYNiCxqtw5t+sMSWe8UUoizFmXBNI+phEsGq1MvJuqpALDy/8WDtIri88iDnET1WrCQVNPNsHGNShCP+Lix2xG5C6EqYn54BTfYwmBSrrtL1bmmK3fDCZW/Cx+7qCchl799stWl+tRww62Qs7g+rUF4rFaID1EZ8luV1sWmX6UExTpPHli2/h3wARclWue329DbOLzr9qp4Ki6k209sE0QPsNB/eC7JiE4gn0Fi91nQRZg3iUk8XyO2dlkLKoZ5uuak1QNK/GwRxYyGDa6OzSd9u6t215lSbtruyMM3FnBrSfkcCeZOWQbQQ3WIedkvRSIetD6HiOgF111uEq3mazGl5X6Cd4mN9NJAeaDqIdhxdWLFqK+aZxLGrerqdy3ZJqTd1slFa5rTTUgTSMZjoW0fFrkGan5FAt8NXUclrMRsVrLd8H9zEXbX0rFILzK7s3gF2IEOu+VDjOAjBYZZUQ7loap5jAC6HDdihJgh6GSRPGXA8rBG2/0s6HZOE+6FnV4EDbEe5BXqOlo5QC1phqh/g4W095rn+pAgtWsMGRbmdX/S5aInFsm993ygd8iR4QoZi4OhCgtx69rYNfBLj9V170NHJcxphgtQoY5PYT8n5HHvgl94s60px5hgQCX3fdTNTaR+LalbPFtisqa+K9+R1GTbiVj0BZudJMODKX27t+Fy9zueHNKnP4n+miqwE6b3HzxA3dIe+o2pi/73T8EESc7qtu4scGjoDKTxCv199tOwR9c89eXykiEhri47LQCEEnYjoFmQ/Woe2Ot/CuzPAv2+iMTJ4tvaLlyQAo+2JHS26EdgUsq28RttV5P6IgcfOBWvDyLWP8I8+5l3J4wNIzoAD55kQaQ== X-Microsoft-Antispam-Message-Info: gWQdZcMkxwtINHdWOMdMABY3mD433MXN9IBiT0Ok4y1TmgvtKZ8RfxeC+4hkIvSMqXGWdFo9KggAIfGmfCVyY/gNW1vv4N3W7Xy+UdgqYGU62sBpsUzBBWL2HBo1iM/RVjiPdvo1W6S5LGliiBf5jAj5I/kj+oT8Pw5NO0LUT9X6QOWUivXr4/cZNBOvW8Sj X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 6:I9k5v1PVV5IZ4Pwds1Bi0/MZy6z8VJXz8OE8ax0rD1mDo8hgbPnS2RXxVGJbgr0x7V7uZO1xXiUQhC0MvpLupEdMAChF/7gCcFn8xCRDwugxZXR+HoEf4mcZyVN6CnKnPU0ofskHX4Dixhbnm5K4zMHppmeHU9XKAqH7gR4cbydnaVnmtLrjmIWcp4yrfFp8pRttJtpSFSfr0r0iTjHpPLdMZEqAl+4hfYt/3tHVvyRI7dasw7s/E25GWvnH/n8tsX8OSOTJP976gaL6z7FXdnh8KdiJEz/To2VTixUta3nrcfY/658oMeojEBnTIId+05bvENBbpeAXi8eDLmr0D19CF2cAG0JN2594Xe53Knk=; 5:j/a956EuyyqjjOCPwt2GRzixlX1j/0osraIpeY2Cg6d8omtZov5HuPVPRgjtrLG2Eh4mfOZY8dOgTGivFEshEEEtA72NfXQmySM1neKy1t/wsgwuiw0wcetjZh2BH3FeAzLMm0ZKUA/jFVXK/R9MMn+tr8GkFgzh1NZDBMNic14=; 24:6utbib01DN41GKn8PdSt9TCvII9IJY5bXavXgMrbm5X0iMKaDWDcQJZQ6Nu6sarWMxqkw7wIytNOxM/LIpODLoMWu7Xusrba0gHRSyCbmYo=; 7:BQddYGipKyaupfru6YdTEiHFTFTFMmJGJDzmfhQ7i8V+Z8SFKjIjN1Af/Jl0axZJD1LA6suJDxzLhHFgJPRdwWjeFCpHrxQrIxe1vEL09jB9aWVBXKBruir8M6idaAi5+8K7Jk8zjMpnSE/Zk7+DChtSWGdUfo6cBGvJ8Je1/6g7peHl1S3uvrnL0AtvQqQXhUS8FgjoudqYZqTrjGsMjdS9Rclzq71pVQP8R179D1BjAyBnNPcBhfcBXfiMvMru SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2018 09:32:34.1674 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d151e15-7917-4c1b-4d0d-08d58e458391 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0202MB2776 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org In preparation for PCA9641 support, convert the mybus and busoff macros to functions, and in the process prefix them with pca9541_. Also prefix remaining chip specific macros with PCA9541_. Signed-off-by: Peter Rosin Reviewed-by: Vladimir Zapolskiy --- drivers/i2c/muxes/i2c-mux-pca9541.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/muxes/i2c-mux-pca9541.c b/drivers/i2c/muxes/i2c-mux-pca9541.c index ad168125d23d..47685eb4e0e9 100644 --- a/drivers/i2c/muxes/i2c-mux-pca9541.c +++ b/drivers/i2c/muxes/i2c-mux-pca9541.c @@ -59,10 +59,8 @@ #define PCA9541_ISTAT_MYTEST BIT(6) #define PCA9541_ISTAT_NMYTEST BIT(7) -#define BUSON (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON) -#define MYBUS (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS) -#define mybus(x) (!((x) & MYBUS) || ((x) & MYBUS) == MYBUS) -#define busoff(x) (!((x) & BUSON) || ((x) & BUSON) == BUSON) +#define PCA9541_BUSON (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON) +#define PCA9541_MYBUS (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS) /* arbitration timeouts, in jiffies */ #define ARB_TIMEOUT (HZ / 8) /* 125 ms until forcing bus ownership */ @@ -93,6 +91,20 @@ static const struct of_device_id pca9541_of_match[] = { MODULE_DEVICE_TABLE(of, pca9541_of_match); #endif +static int pca9541_mybus(int ctl) +{ + if (!(ctl & PCA9541_MYBUS)) + return 1; + return (ctl & PCA9541_MYBUS) == PCA9541_MYBUS; +} + +static int pca9541_busoff(int ctl) +{ + if (!(ctl & PCA9541_BUSON)) + return 1; + return (ctl & PCA9541_BUSON) == PCA9541_BUSON; +} + /* * Write to chip register. Don't use i2c_transfer()/i2c_smbus_xfer() * as they will try to lock the adapter a second time. @@ -181,7 +193,7 @@ static void pca9541_release_bus(struct i2c_client *client) int reg; reg = pca9541_reg_read(client, PCA9541_CONTROL); - if (reg >= 0 && !busoff(reg) && mybus(reg)) + if (reg >= 0 && !pca9541_busoff(reg) && pca9541_mybus(reg)) pca9541_reg_write(client, PCA9541_CONTROL, (reg & PCA9541_CTL_NBUSON) >> 1); } @@ -233,7 +245,7 @@ static int pca9541_arbitrate(struct i2c_client *client) if (reg < 0) return reg; - if (busoff(reg)) { + if (pca9541_busoff(reg)) { int istat; /* * Bus is off. Request ownership or turn it on unless @@ -258,7 +270,7 @@ static int pca9541_arbitrate(struct i2c_client *client) */ data->select_timeout = SELECT_DELAY_LONG * 2; } - } else if (mybus(reg)) { + } else if (pca9541_mybus(reg)) { /* * Bus is on, and we own it. We are done with acquisition. * Reset NTESTON and BUSINIT, then return success. From patchwork Tue Mar 20 09:32:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 888125 X-Patchwork-Delegate: patchwork@peda.user.lysator.liu.se Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=axentia.se Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=axentia.se header.i=@axentia.se header.b="sc0oD2jd"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40575T3tJ3z9sZN for ; Tue, 20 Mar 2018 20:33:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752474AbeCTJct (ORCPT ); Tue, 20 Mar 2018 05:32:49 -0400 Received: from mail-eopbgr00131.outbound.protection.outlook.com ([40.107.0.131]:60830 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752431AbeCTJcn (ORCPT ); Tue, 20 Mar 2018 05:32:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axentia.se; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=JFNJJPmWk2Z7sX0bOCy7JebCgaSQQ41pt8IX3anQIMQ=; b=sc0oD2jdS+Xx3rOfNlx39zpVFS7/2q9c5vPVR84jCoZcFfg08ECwoarFwwbC4TPtXrFxWekS9luISlSFvoBPIdYzVE6upGs3x0knnNWwNEgTZdljWJiBjLaW8uMOiOL2DSIkxhAbbKuk/UbzrDGLKh8HKeJoU5tMxYuF7r31Xfk= Received: from orc.pedanet (85.226.244.23) by DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Tue, 20 Mar 2018 09:32:39 +0000 From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Guenter Roeck , Wolfram Sang , Ken Chen , joel@jms.id.au, linux-i2c@vger.kernel.org Subject: [PATCH 3/3] i2c: mux: pca9541: prepare for PCA9641 support Date: Tue, 20 Mar 2018 10:32:00 +0100 Message-Id: <20180320093200.19179-4-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180320093200.19179-1-peda@axentia.se> References: <20180320061909.5775-1-chen.kenyy@inventec.com> <20180320093200.19179-1-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: VI1PR0502CA0029.eurprd05.prod.outlook.com (2603:10a6:803:1::42) To DB6PR0202MB2776.eurprd02.prod.outlook.com (2603:10a6:4:a8::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18b92142-38af-4cc3-5045-08d58e4586be X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020); SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 3:7VSC4K8X0xYOH16usYVhWLv6hobawDAyDTZtRBM2xaWGV2SyMKKrj66la6MZ2rwGqTlq/7lcl2tfcRreW1xg9cfW+mHeohakw3eWOfvl0Hn1ZXzryj81h2z5QpZaI2LCk4a3/jsOmw/brEURLS79xoPY7aobbFvaWpCeK2BlI4CAxL9OthCYW9pTHZDhcjSzb1NkLnUnhSRg6v/MrFF/82Qi0i+4g/dMNo/KLDzOl7zMCuPtdi3q4hToxUX5MqIt; 25:dmbSDFbS3kt5prbPA2/lwiiBVlNpq3TpjN3D1FXgD+h4M+jI7pWx0ytIAPAdafuAKHwLxdTg8hM28/tFDnlx7sJeRIiYj0WN8MJEC1z7IM7YSy7/E+HQowZUHvAK8S0E9PyiskeYB3i15aHHbN6aLsgsioJY8yA0Vb1XUFQr2nHCRpHwC+1iiP/OGY0Lqn4Ys2imlErc8blvA60jWstaOBp1jgTqQGGz9fbvez921YDzEknMMyt9viaM9qIkf7sWMTksgD1qQD7WyKWN8+WPLJbm3PB7E8ID31PiBoOWpwG8wFXbw/6BrxhDkbjOyJPINslVuqjZAV2h91nkgvbL2w==; 31:TUaUq+W6wyxZFAr2/JET/edMI78v+r8EssGDNYOg9NgiOEPn8hhn+4vvnW9YCoZ+TPBhDYqcD3pdrnRGxxjuqFIfyrm29O+e8Cz7NZX8eVJ5c1r7cbP7/WAwSTpMkd8BfLCWEdDJvBYmM8rEDX+lJzA1zImIhQAr6dvbE/cLGq1nwVYuWrII0VAEWUGDr90A2UBVca8jVoRQiylP5WC+Gl3L6w1HKSlyUWuxSypf/vI= X-MS-TrafficTypeDiagnostic: DB6PR0202MB2776: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231221)(944501309)(52105095)(3002001)(93006095)(93001095)(6041310)(2016111802025)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(6072148)(6043046)(201708071742011); SRVR:DB6PR0202MB2776; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0202MB2776; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 4:9MJJrCIi6yrCElLe6esqBI5zBqnLpYefa5Xlrph4uZ8cCmjniv86VxW5naBt3MdFXzuCw3f7gOZ4W66KbcBD0i3reDbwJDPF3Awf6ggfuI+aofdov4gnvGttJ+DA/iM3l22rLY7//1C4K8VLzjGIDkq8nTHap1gTPhQNNZg1QmIrICmAQKfN5FDGiXzN1ch4e7Go9JtTtvFxQ2V3wpHJU4B13Hip7THoDFPsGOLHz4mYWEHlpaVS9WkZgMIxIEdkVHdszbFx6hSI16kkSSMtNrE23/s9kHE2hlNSLbQkx/RTPaOnsGZt+gBh0TsnVQ5J X-Forefront-PRVS: 061725F016 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(376002)(366004)(39840400004)(39380400002)(346002)(396003)(199004)(189003)(8936002)(16586007)(54906003)(478600001)(81166006)(2351001)(6346003)(3846002)(2361001)(25786009)(76176011)(106356001)(8676002)(81156014)(51416003)(86362001)(6506007)(26005)(575784001)(316002)(386003)(186003)(16526019)(50226002)(53936002)(59450400001)(36756003)(68736007)(47776003)(4326008)(97736004)(5660300001)(66066001)(6486002)(6512007)(305945005)(50466002)(7736002)(2906002)(48376002)(1076002)(6116002)(2950100002)(6666003)(52116002)(6916009)(74482002)(105586002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0202MB2776; H:orc.pedanet; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: axentia.se does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 23:EyCJrXXrguiZ29uTKRXWBwbrjVTk2PnDDTXWxFmOnF5Xt4q6G67wpJWL0qugMicx+Iisb8+6IgiPBAsj1m4OtLv6HrHmez3dKa5k6yfQNpE/Kr/9sFd1VNN7pb1HiuaKGOgBp8tGdpSEfdpFzsckA+lYY1q7fKFpyaHC7ajyd8+P2j4jMD/hjS7zhjEPySpwscSiocinRv0rGRD7HFf/dVTntcMEL8y56ftiQnpyOQXxsgJAaa+TzBgM00SgWHlb94X4asPtYss/kHkO9irRiXz5ICBDkl7DPcrUy6pIfdCrnGK6diIgDUN80dmrus5kd+w7JepYylTZmZX9Vv0jFy91/Wx+vAmC+53Qwg9xBa3aESEp/v2mZDWOQKi50zNZMva//k+vuwJBKVWHBmja80obi+dQN8gdMu8cgBZPvvpvZHitxANfuRR7b1u8ZA9MbGpvkEzCMLF54xen2CM9x3Lugnx9k6Yh4RZV3cP9qphTstqdRrhh82SVUgf+FimYeIVFVUGTLK35saoe/NsCDEo+1F2qJsLtz3FiL4szNE4WXiAMjODEAejrQKQdT38C/bBfKnpCbquD/G/LLTaWu03PDuK4s9Gsc6iwyqizxP97R8brv/T1x6rK7a0zXjESa577L3O2R8/5gAxOykzBQhHxDP2z/0ga9oURphnKHQYTKEJYieNqJ1TLqCBS3ZUnkmN1Z53QwrWkPpcJS+lkxciU6wkczit5XMdDc8SKipN0kyReFHYoY62ukOWXlVoZLirytHGypcdTnGUGJMsyjH2cv1kolJfx9rlHcryYd2bqykByZUh7+kc05ebxM67um8nIU3h961Pe555byZ/eV6QrH6WieBNIqBUlaNsTv2kCkLsxcoxeT6L8Lt1Nj2gigKuQXS5xG1O1sPfEvRiDcI7blqmiFygMJVyouxqN+70YyAcHSi66wQ1YqwcZ8AofBERDo93Eb4ReRzruX0UkMXVR4dylXNdYYbdFozzdaGfatPEc2XBx6zrPfr+9C5EwKMZvL8dRAMbFvpZ3grEqSoYQRn9oIbmTbdkjYYWSieKim+/8Iem0xka4FxmYDri7Kx6kaw1IVNRxTcUVsICsbviy9e64E3ZbxNJctBENvr+Ek6ae/VSseyplhAfTnZU4jfdiGQGez+LshqoOXvw5Kl1QxyMJLf2qeAdexOl3qIKLaGMg2oteesA5xYCyNkLsuq2RgbvIZBsYrBNAuvj3uYe6cQYtYhmCLMVLcoDwKDkLPwfKoX/P4ntTXL0A72KA77utAEWVP3BkvGh50dZz0w== X-Microsoft-Antispam-Message-Info: IujXv5QWPYvq51ZHu4/tz4WFM3VYFS0StBzAeKsUr031T0NR5zn60b837h6JqZO3pdUbtXv2AHBiMPp78YAyfs/S7oi0weaCvyPdrAihbcc3IA0THvdPuKHJWkX2DxK7mdB4uSbORGsHHBdC7Sw3DIWFEIQQtY15srEW721Xofds3mrMQVuCTd+3r0cAi2Jc X-Microsoft-Exchange-Diagnostics: 1; DB6PR0202MB2776; 6:6D4C+21VwGWgCBoOv3PuDK0bfO0HGRknR9xq5uv/YJKp/YX3YbtQ8yY3udblAFdk5e3ts27ewuX1pHcDJy27H5HzNcUt4ceTA0hxhRjFGbH1XbamHelgZGiWV+TGZR7sAYE6IFvy6uUAma270NqC3w4uKRzItx5HJ1+/lqflKawVwXC8sZFyAklN1MIm/wfcAr/422Y5Xu4q72yBgbNLe3SoVvLBzB9rbxUlGW7ObXd1H3wXh3HbF44FYcsGVrXWsN283zapwzUrApTKQDTcuPRedBYjK49Iyu/1QR542+FrmuhnqZrx/yTR1LVXRBJyAB6euMk/pywd3/Nd9SbQE5MZ+Eme/d+jVwglehmuTRg=; 5:ZA2E8ormcm4tcy2vzyjDd7fRc7whpGTpn/Y3I8G1umr1D9dRdWlhoy2vYDi1RirwZNVEWW0yuWqyiQITxZPrQPNA7v3dhn4UCnXuzoU97lk69UqKu1jPb2gQbTjrnWcGztBttQAzmGpgx/l2dPTfo5/AbBiMkEFSL08ZMRO4ZFM=; 24:gO7oTDAEvoh9dP2CHl3wRGF7lUzSpXbzgYRPxul41370eOkJ7RKJT8yT7K6mc2IUzhztDn4uD1oYtU7z7gp3dzwsIT4I6Dt+P/MJakRcyzw=; 7:tbqVmJtIJa54TyvnpcFPGwstb+uB3mN/NAB0cxqC9eQCha2MatIh09a/V6+6wSf0osaw1JY2S4eJbAw+ZF5QbeAedLNOWqqscri3oHp3D3kr1JPgCcGaA2pgSLTOL1A6ZcGeeP2ZfKEyQQpmohNJDXi/PvKQoqyIsfbvPrbdb9utIqjMmkiW6t9VSvP05FpYMG6dZ44ighrcRquBDcak/MiMgecvdyQBULwJIsOaH/Im8zYM3eO6kYu3vbeQf7X9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2018 09:32:39.8706 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 18b92142-38af-4cc3-5045-08d58e4586be X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0202MB2776 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Make the arbitrate and release_bus implementation chip specific. Signed-off-by: Peter Rosin Reviewed-by: Guenter Roeck Reviewed-by: Vladimir Zapolskiy --- drivers/i2c/muxes/i2c-mux-pca9541.c | 62 +++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/drivers/i2c/muxes/i2c-mux-pca9541.c b/drivers/i2c/muxes/i2c-mux-pca9541.c index 47685eb4e0e9..cac629e36bf8 100644 --- a/drivers/i2c/muxes/i2c-mux-pca9541.c +++ b/drivers/i2c/muxes/i2c-mux-pca9541.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -70,26 +71,22 @@ #define SELECT_DELAY_SHORT 50 #define SELECT_DELAY_LONG 1000 -struct pca9541 { - struct i2c_client *client; - unsigned long select_timeout; - unsigned long arb_timeout; +enum chip_name { + pca9541, }; -static const struct i2c_device_id pca9541_id[] = { - {"pca9541", 0}, - {} +struct chip_desc { + int (*arbitrate)(struct i2c_client *client); + void (*release_bus)(struct i2c_client *client); }; -MODULE_DEVICE_TABLE(i2c, pca9541_id); +struct pca9541 { + const struct chip_desc *chip; -#ifdef CONFIG_OF -static const struct of_device_id pca9541_of_match[] = { - { .compatible = "nxp,pca9541" }, - {} + struct i2c_client *client; + unsigned long select_timeout; + unsigned long arb_timeout; }; -MODULE_DEVICE_TABLE(of, pca9541_of_match); -#endif static int pca9541_mybus(int ctl) { @@ -318,7 +315,7 @@ static int pca9541_select_chan(struct i2c_mux_core *muxc, u32 chan) /* force bus ownership after this time */ do { - ret = pca9541_arbitrate(client); + ret = data->chip->arbitrate(client); if (ret) return ret < 0 ? ret : 0; @@ -336,10 +333,32 @@ static int pca9541_release_chan(struct i2c_mux_core *muxc, u32 chan) struct pca9541 *data = i2c_mux_priv(muxc); struct i2c_client *client = data->client; - pca9541_release_bus(client); + data->chip->release_bus(client); return 0; } +static const struct chip_desc chips[] = { + [pca9541] = { + .arbitrate = pca9541_arbitrate, + .release_bus = pca9541_release_bus, + }, +}; + +static const struct i2c_device_id pca9541_id[] = { + { "pca9541", pca9541 }, + {} +}; + +MODULE_DEVICE_TABLE(i2c, pca9541_id); + +#ifdef CONFIG_OF +static const struct of_device_id pca9541_of_match[] = { + { .compatible = "nxp,pca9541", .data = &chips[pca9541] }, + {} +}; +MODULE_DEVICE_TABLE(of, pca9541_of_match); +#endif + /* * I2C init/probing/exit functions */ @@ -348,6 +367,8 @@ static int pca9541_probe(struct i2c_client *client, { struct i2c_adapter *adap = client->adapter; struct pca954x_platform_data *pdata = dev_get_platdata(&client->dev); + const struct of_device_id *match; + const struct chip_desc *chip; struct i2c_mux_core *muxc; struct pca9541 *data; int force; @@ -356,12 +377,18 @@ static int pca9541_probe(struct i2c_client *client, if (!i2c_check_functionality(adap, I2C_FUNC_SMBUS_BYTE_DATA)) return -ENODEV; + match = of_match_device(of_match_ptr(pca9541_of_match), &client->dev); + if (match) + chip = of_device_get_match_data(&client->dev); + else + chip = &chips[id->driver_data]; + /* * I2C accesses are unprotected here. * We have to lock the adapter before releasing the bus. */ i2c_lock_adapter(adap); - pca9541_release_bus(client); + chip->release_bus(client); i2c_unlock_adapter(adap); /* Create mux adapter */ @@ -376,6 +403,7 @@ static int pca9541_probe(struct i2c_client *client, return -ENOMEM; data = i2c_mux_priv(muxc); + data->chip = chip; data->client = client; i2c_set_clientdata(client, muxc);