From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 82919C43334 for ; Mon, 6 Jun 2022 08:45:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=aPpDi5q3KBLFZF3IFrmt5gGZgX06FkMUeDjE6FS0uws=; b=ntHTzATpae85g1 uxZTDmItOPlbbEZNu+SRpoQzI05HEOEZ2+eYQrGIR8UVNsheXSaQfbFu711v5reKiA3LiUTmkdZQI kZUfKa8miEhxRxJXNPPsH4x1DazWFvIPVU14FNuVDKG7F7QmLYpbqVx72bSavoVA3X/Q289NgFsEA T6Bh5duP/zO8k4quusGpPNRnxx2NIEtjisHae65QFLn8CGaj1XDMk8DlGyKZoLEmTKUPXarmr2z+/ n3F0Z3y1x3ckxU/s0psd8UqtAFZcqCSIJ1rwwMGBxmzABeQG51dF6TGER6CXc2NVfodU2x/9JmRhK pqoAO+HAJmwjf1tUtvRA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ny8Lp-000CSA-6w; Mon, 06 Jun 2022 08:44:41 +0000 Received: from esa.microchip.iphmx.com ([68.232.153.233]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ny8Lj-000CPk-J6 for linux-arm-kernel@lists.infradead.org; Mon, 06 Jun 2022 08:44:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1654505075; x=1686041075; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=8RogLV0b53HvHf3Awf97eSt4ldxDx38ejw5Q6RIzPEw=; b=hoEIcEVV58wzEtYbnbKVCjniocUxAcvtTtGFjBHFHfjJHjCWAzG9+a5Y Iwu1fP4EYkWUvWBGxzQJvNCPoaPzSRereMBfgTFXZpwb/A9qKC2yHvRqN +SmNjejh2MRuq68dK3U0hHO1pqsWqrARZgBXSxfu7Wm7Clf4d23wOs9rD 0HkTfnw8SiOdPMlOI83tl/ZbLJaWgGPLIIFcDWLuTGWzgfbe/pANrWFcy byPPlkJm0Svt7Aym6OkPv/qKyRiDF2nXuR+QnDJ0M/agnvZ8YragpGMZ5 DWSz7+AIRR8MpacKBY6WOPfw6dkX37J2NfxwQldhhlKwz4l3Z0zUgrY++ Q==; X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="176655128" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 06 Jun 2022 01:44:31 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Mon, 6 Jun 2022 01:44:31 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Mon, 6 Jun 2022 01:44:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CFsxHyPPTvaawWzDZp+gPCmXrePWAA90k7D1pFRKIFegdHpNQ7k2A0sf4RCE+kwR/1HIGPyh6hnbWVZTIEIx9zh6GhhNzPK2RsiovkWeILq4hBWi/Y4bU3QlFpHIoq21WJCA+7fQiE5mKvc6pObshbnoUfzvJZsi4Bjc41kMqpXYeHuODaeFa3Sb6v2ngyHAUo3XrfG+oyO2wjmEbxV5epNJ3mIqxND/y0K+nYwLXO0wUOja6LWn4xha/9bRy0k4lP3h4VtOTnR2vIXV+vf558RQ8z7NB5Sul9R9Dhj6y3EaRi3JZa4Cq0zvtmBP8ptMJwZ5l8V5MXWPClSAz8P2KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8RogLV0b53HvHf3Awf97eSt4ldxDx38ejw5Q6RIzPEw=; b=HpYv0o4+V7XOp5RVjcLcjZ6xi2vJjiKbxjv+DUuU3DH41Xab2pszfRU+SOlGiicXD2aSXc07XsyFEaW8ldiUyeMcprmWEutywOsAsnN8TTdnR4Xo7nivrQ8lwIGgSWkqwqlMAbKH/0j61YvwyJ2WW1ApkBCeK1ZQEbxmhW9TIS6S096yNHcH+xgsTOGzkWBLi6ZTWVZfleHTFnlfgeTEs6lSoiWb8iiwOBdiZudI0eByLxOELuuyNUmNJ8fhecXgevN+IgX3faJ/KBjvxw+/vpsnroy8NRu25lGWUx/e4uYYpdyynNwtF5SJ8qlAhygPTfcw3QA92EUBIrWhu0YU5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8RogLV0b53HvHf3Awf97eSt4ldxDx38ejw5Q6RIzPEw=; b=ZJpsQybkRVIkXO6daXyrNZXe4cHrbazpt2KfaM/NaiuEqso/ubxYfsoyCnp78PYdEEMKjIeUGJ69O9thOAWJmltMN9v4ugDR3Y5HqPJUtR1FjM+7SX4jSS5agMRXV9X1tCI/HSy2wPslmLk81EXwvpucFkBzN9Apzs1rFFHsHgk= Received: from BN6PR11MB1953.namprd11.prod.outlook.com (2603:10b6:404:105::14) by SJ1PR11MB6275.namprd11.prod.outlook.com (2603:10b6:a03:456::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Mon, 6 Jun 2022 08:44:26 +0000 Received: from BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::8dbc:9dd0:ba2:e99]) by BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::8dbc:9dd0:ba2:e99%10]) with mapi id 15.20.5314.019; Mon, 6 Jun 2022 08:44:26 +0000 From: To: , , , , , CC: , , Subject: Re: [PATCH 3/3] mfd: atmel-flexcom: Add support for lan966x flexcom chip-select configuration Thread-Topic: [PATCH 3/3] mfd: atmel-flexcom: Add support for lan966x flexcom chip-select configuration Thread-Index: AQHYeYGgK5O6CULJIkykUBP2DzYTiw== Date: Mon, 6 Jun 2022 08:44:26 +0000 Message-ID: <5f9fcc33-cc0f-c404-cf7f-cb73f60154ff@microchip.com> References: <20220603121802.30320-1-kavyasree.kotagiri@microchip.com> <20220603121802.30320-4-kavyasree.kotagiri@microchip.com> In-Reply-To: <20220603121802.30320-4-kavyasree.kotagiri@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 173f8cf0-221c-4ba1-652e-08da4798c328 x-ms-traffictypediagnostic: SJ1PR11MB6275:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eQUFkwJixPjezaY/EHYNx92/Re8tFiTKXzNHzCnyDwzzwsdjbyZF5109AE2uMu6Geq2ZpPZu5fDai5Rnz0d16f0Yzi2AxDYEH2yJSKNaPLzyc3BN4toj274fQsUjRYv2k/sN79qNU7/4Vg9NQtj3Y5hR0iulzvJi7R2qyriDEKHvShRk1bBAm0dC/4siG73dmDOT3oyXwzjiMoGNilpRrGaeQC3UQEMd55wkguWNH0Y9fV5McidWi11eYnmCbVUDyAauthkM+FK/L2g7kU31+Ax7/Aci2IIMB56iFypJiolgWLLmFcF8HY829T30Ly7G1jzQSHrp7euNthrNkKt7rRv+3upNw7QPk/mfc+cFTFYts4UbXz6mTEZrkZ5EnjsFswdJ+yKya8IBVnx7049rlk/KigNu1uxw+/nWGHSR7HfuYATRyxBzm1Z//ULqUwbxoNGlONdQ7/utXV1eUNB1hUJkIzqxvPqhL/OBHy6paJLNHOjCOEiyv794SByqYaBpypzoQ3hHILpE4i+I+kxveh1MSKcmi8KHoThIutFIeb4r87xkuim2ZHIA9kGp27h16xmKaeqTdEJhD79lBQ0JLbmbCYXG5cvuKa2p/kk/Bf8/56nEffsDEY9DzU60XaLcwmM9a9q+Y5TK5x+TOBzVQBIshIDazWxXGRdZ+nTJF/jmA9lq5JJo4SarC5yfbUCU85d+++B0c61VbMlLxeVPaiVirgrn0AcKanjUOkQSzn5f1LF2V2hndxL7OmFoz2ZwDA3RzjVxNJP+j0ra+L4Yx4teUBgtzbWpy4JK+NSpiNAUhyJfuqo4kv+bSQWQS+7Kj12ModJRoektKsPWmpA95XwKf0xP7zMyuqlGZ4f3rS0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1953.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(316002)(2616005)(66476007)(76116006)(6636002)(31696002)(31686004)(8676002)(71200400001)(54906003)(83380400001)(508600001)(5660300002)(26005)(8936002)(6512007)(66446008)(186003)(66556008)(966005)(53546011)(38070700005)(36756003)(91956017)(110136005)(6486002)(6506007)(86362001)(2906002)(122000001)(66946007)(4326008)(64756008)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WWRIM2QvN01wejlUVUlmUER2MStNUERWV1pQOUxHWmFoUndqRlYxdERaVUNx?= =?utf-8?B?M2RkWnFRNG16Yk1MSnpNTTdtTTRlakpHUFhlcHJPS0lEa3NqMWxjNjhWbW1i?= =?utf-8?B?UGxrbFhjV0NyblIrNENGNXhYUmtWbmQxbzJJOHhhWWtad2ladnlSc2hKYTFC?= =?utf-8?B?WGlacDVKSVpiK05uWkdKaGpTUWVyWlhyemwyWHp0NStMRGRjMTQ4Umx2ZEdO?= =?utf-8?B?ZDRhVXY1UE9xTkpIRzRXRUdIUFJxSSsyZ3ZQVkk1K1I3VnBJRnlLZDVMa3NR?= =?utf-8?B?TUROZzhwcnlSWFZpZUdRUHZQMU54ZmNXY1ZEZkpOdUpEdE54RUZJTldEYnJp?= =?utf-8?B?dkhUTG80M2pNNW5HNEpZaFp5bjRCZVVEdVdGNWU4a01wRkR0cUxrQjI1R0Y3?= =?utf-8?B?MUw3KytJL1NtSnNVa2kwUW51K0VjdmJMbkR3Y1lPb3UyeHRFVEhJZEZOZklM?= =?utf-8?B?S0pPR3VoZDhTbSsxUk5CWXhQSUxUVHR1YzZRNzBHcklJV3h4eEt5eWh5WHBj?= =?utf-8?B?aTQxSUFYK1hCdlNHZ05Ba0dyZnpVSkVBQ3ZBWU05MHJyTS9DWCtRbnA4OExD?= =?utf-8?B?TUpSNitiU3FyTkF5dmJJK2F2Z1g0RXdoNFo1U1hUc0s0UjNhekNuK0RZeDc1?= =?utf-8?B?STFRSFlMUlJWaCt0UEhZTW1TMTMycVlxTjJmN3J1RkpENUhOV0grSVFha2Nq?= =?utf-8?B?N2h2SEtuVS9Ob3d6bGhHQUFZNUtTTEwwRmozcVorL0cyZVUxa1U4Yk5IYlZq?= =?utf-8?B?TjY5dmd6a3pHWThpSXFNTlRoem1nUnArZHVJQjdadHBSTWQ1NUtSVjVjbGNN?= =?utf-8?B?K0s0L1lZRU5kT0ZjelRIQnAyVGo0ZFQvVWNJVjVZUXNzK1VyUVMxVDZ6YnhY?= =?utf-8?B?NG9GRG9DQjNCMG5wdjdUUUZCWjRvQXpnNVhZV1VRT0hPNU1XLzA3RVlkSi9P?= =?utf-8?B?eEZmWnllVTZLa2NKT09McE1uazV0VU5NUXNKZ3JNWFlxc3BkU1cwTEZ4YUhM?= =?utf-8?B?dzl2MVFnOHlUckI1NnQrcjhndmdiNE9BUUpQVG9paGdQTyt2TFJ0Z0tOYTJO?= =?utf-8?B?WkpCS1dVWTBaMmhkR0x0UlZsbGVsQmZhTjdJR0lrcjhBQ3hYaVhzNmd3anR5?= =?utf-8?B?WDh1WFhpVEE2aWd0TWE3Y094OWdJUUNReGpjSVBqRjJ0NmNvdjZWeWVoZWhu?= =?utf-8?B?WkdQSnBOUmRDd1VsY3pHSTErS281cWdSN2VNNUU1QlU0MWdJamZzV2lUTWNt?= =?utf-8?B?alJWVEc0bVVBWFQzemNLUU1WQ0Fic3FkR253Tnk3ajl4YzJkLzhFWC9WOFB3?= =?utf-8?B?dFYwU3YxYm1mNTVXRm1UOTdHcjh6WmhkQUExdTVmbHl5NnF6VXRaaE5idUNi?= =?utf-8?B?bzg1aS9SYkZHYlFLTFhJNk1ZTmlFZXFwRlpER2lqL2p4a3FtSUUzbW85c0tn?= =?utf-8?B?TkJYL1VzMFl1MTNzUnNudkM4aEt6UlFxUVFlS1lQd1Fmand0b1JVblRwbWZC?= =?utf-8?B?QklQZGZSTThoKy9PNm9DTGJ6NFVtSDNYRCthbFoyYUtzbXB1N0dPMGRqaDJK?= =?utf-8?B?enZka254dGNtdS9hZ2h1S1VsSWNSeUg0eEkwbHFOWTFFb24yN01Yei9wYW5a?= =?utf-8?B?RTN5eGxJa001eHFYTmVvQXFLTWxHOXgzMlhxQytzVCtVNEs0a3VHaloyeHhL?= =?utf-8?B?QUQzNGlBb2Z5OGVudlNzNC9CMzlJejkvK3lmMDdhZExOY2REV1pPTDhsK095?= =?utf-8?B?eEtFWnRJWXM1ZjREazdsZGV2NlllZEhWbHROdDdlb3ZYMGlmV1R3OE11dUsw?= =?utf-8?B?RHRxcndlUW5CWWxrQnp5d1pQTW1tbzVvM2pvMjFvZm5WMDFCelJ4dS8wY0ZS?= =?utf-8?B?bTJRa3k2WkJXRmtTMitOd0tjWnF1c01MQjJ1UU5jK0h2LzcwMDBVOVJpTFJD?= =?utf-8?B?cDU4N3ZYcW04SzFzVThUNnJOUmcrS1dNVEJxdW9nT0JyMkdicmVjUi9oaWhI?= =?utf-8?B?MFRubFdTaytPSm9iT3d3bXczT1BXa2QrVzlBaktYUGxGc2lOMTdnYjJ1YmpP?= =?utf-8?B?elNVcU5ESUF2Si92blBsVmhic2tockdvSTVvSXVYVUdDQ2VKQ3VxaXVuMUw3?= =?utf-8?B?K2pqM2h2Y0F5R0VESStSVlJ1YUZPb0xieE1mTzJXWFNXZFBlWXNvQ2hvRTRx?= =?utf-8?B?N3ErdVJHVmpRN3QycmcvNEljdnRvcWo4RE9hYzkraXpUNEVYYnVPRkpLdGEz?= =?utf-8?B?Z0VXYU5HMDdDWktBMlJFa1VMMXFncUV6OWc3M0N5WWM0bDgrYnhkL2lkaEFz?= =?utf-8?B?eHN3MlkrMU04a0R1TEdVMEc4MXRQZVNpMktDdCsrVGZOOUIyZXVKNFVGRWho?= =?utf-8?Q?WSWtAeb+JCU+Pnjk=3D?= Content-ID: <9B10F9D35F45A749B21F5CF4E988325B@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 173f8cf0-221c-4ba1-652e-08da4798c328 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2022 08:44:26.0839 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AQcxJ1eej2n5iO30YN7ZHQfcLoH5vGEYDD/Lb9DU73uUlEVRqI05gzCBqojDYJqcBw0LoFURhkIKTOeNr6bBunfMvys5oidz+n+w1xet1x4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR11MB6275 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220606_014435_945873_EA3C6510 X-CRM114-Status: GOOD ( 29.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 03.06.2022 15:18, Kavyasree Kotagiri wrote: > LAN966x SoC have 5 flexcoms. Each flexcom has 2 chip-selects. > For each chip select of each flexcom there is a configuration > register FLEXCOM_SHARED[0-4]:SS_MASK[0-1]. The width of > configuration register is 21 because there are 21 shared pins > on each of which the chip select can be mapped. Each bit of the > register represents a different FLEXCOM_SHARED pin. > > Signed-off-by: Kavyasree Kotagiri > --- > drivers/mfd/atmel-flexcom.c | 86 ++++++++++++++++++++++++++++++++++++- > 1 file changed, 84 insertions(+), 2 deletions(-) > > diff --git a/drivers/mfd/atmel-flexcom.c b/drivers/mfd/atmel-flexcom.c > index 33caa4fba6af..f87ee3606eb0 100644 > --- a/drivers/mfd/atmel-flexcom.c > +++ b/drivers/mfd/atmel-flexcom.c > @@ -28,15 +28,64 @@ > #define FLEX_MR_OPMODE(opmode) (((opmode) << FLEX_MR_OPMODE_OFFSET) & \ > FLEX_MR_OPMODE_MASK) > > +/* LAN966x flexcom shared register offsets */ > +#define FLEX_SHRD_SS_MASK_0 0x0 > +#define FLEX_SHRD_SS_MASK_1 0x4 > +#define FLEX_SHRD_MASK 0x1FFFFF GENMASK() ? > + > +struct atmel_flex_caps { > + bool has_flx_cs; > +}; > + > struct atmel_flexcom { > - void __iomem *base; > + void __iomem *base, *flexcom_shared_base; Add a new line with: void __iomem *flexcom_shared_base; > u32 opmode; > struct clk *clk; > }; > > +static int atmel_flexcom_lan966x_cs_config(struct platform_device *pdev) > +{ > + struct atmel_flexcom *ddata = dev_get_drvdata(&pdev->dev); > + struct device_node *np = pdev->dev.of_node; > + u32 flx_shrd_pins[2], val; > + int err, i, count; > + > + count = of_property_count_u32_elems(np, "microchip,flx-shrd-pins"); > + if (count <= 0 || count > 2) { > + dev_err(&pdev->dev, "Invalid %s property (%d)\n", "flx-shrd-pins", > + count); > + return -EINVAL; > + } > + > + err = of_property_read_u32_array(np, "microchip,flx-shrd-pins", flx_shrd_pins, count); > + if (err) > + return err; > + > + for (i = 0; i < count; i++) { > + const char *flx_cs; > + > + if (flx_shrd_pins[i] > 20) Could you use a macro for 20? > + return -EINVAL; > + > + val = ~(1 << flx_shrd_pins[i]) & FLEX_SHRD_MASK; > + > + err = of_property_read_string_index(np, "microchip,flx-cs", i, &flx_cs); Wouldn't it be better to have plain u32 constants instead of strings here? > + if (err) > + return err; > + > + if (!strcmp(flx_cs, "cs0") || !strcmp(flx_cs, "cts")) > + writel(val, ddata->flexcom_shared_base + FLEX_SHRD_SS_MASK_0); > + else if (!strcmp(flx_cs, "cs1") || !strcmp(flx_cs, "rts")) > + writel(val, ddata->flexcom_shared_base + FLEX_SHRD_SS_MASK_1); I may miss something but I don't see here the approach you introduced in [1]: + err = mux_control_select(flx_mux, args.args[0]); + if (!err) { + mux_control_deselect(flx_mux); > + } > + > + return 0; > +} > + > static int atmel_flexcom_probe(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > + const struct atmel_flex_caps *caps; > struct resource *res; > struct atmel_flexcom *ddata; > int err; > @@ -76,13 +125,46 @@ static int atmel_flexcom_probe(struct platform_device *pdev) > */ > writel(FLEX_MR_OPMODE(ddata->opmode), ddata->base + FLEX_MR); > > + caps = of_device_get_match_data(&pdev->dev); > + if (!caps) { > + dev_err(&pdev->dev, "Could not retrieve flexcom caps\n"); > + return -EINVAL; As I already said on [1]: you return here but the clock remain enabled. Please take care to undo previous operations. > + } > + > + if (caps->has_flx_cs) { > + ddata->flexcom_shared_base = devm_platform_get_and_ioremap_resource(pdev, 1, NULL); > + if (IS_ERR(ddata->flexcom_shared_base)) > + return dev_err_probe(&pdev->dev, > + PTR_ERR(ddata->flexcom_shared_base), > + "failed to get flexcom shared base address\n"); Ditto > + > + err = atmel_flexcom_lan966x_cs_config(pdev); > + if (err) > + return err; Ditto [1] https://lore.kernel.org/lkml/20220509084920.14529-5-kavyasree.kotagiri@microchip.com/ > + } > + > clk_disable_unprepare(ddata->clk); > > return devm_of_platform_populate(&pdev->dev); > } > > +static const struct atmel_flex_caps atmel_flexcom_caps = {}; > + > +static const struct atmel_flex_caps lan966x_flexcom_caps = { > + .has_flx_cs = true, > +}; > + > static const struct of_device_id atmel_flexcom_of_match[] = { > - { .compatible = "atmel,sama5d2-flexcom" }, > + { > + .compatible = "atmel,sama5d2-flexcom", > + .data = &atmel_flexcom_caps, > + }, > + > + { > + .compatible = "microchip,lan966x-flexcom", > + .data = &lan966x_flexcom_caps, > + }, > + > { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(of, atmel_flexcom_of_match); _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel