From patchwork Mon May 6 11:37:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Farouk Bouabid X-Patchwork-Id: 795075 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2102.outbound.protection.outlook.com [40.107.13.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 10182143897; Mon, 6 May 2024 12:24:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.13.102 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714998265; cv=fail; b=Wb15w6a+BUksm46oEqMky4nqizO99HqSORJrQ6GCb/UxpKq4QTQvtJaCccIUSakVSdpUb8c2dCIvH1O6Z8eiyYsv/5rhtqphWyCAHu2PdM45ID/je0QL1HAk869NZMlK22H4wHQqmmbQ4by+lJGKp71Wzck9jczsabYF6Z+sUSg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714998265; c=relaxed/simple; bh=WO8NgWw1ZQ1CcmVR3OWPZTBaEpyYT6ZvIlT2acaWCL4=; h=From:Subject:Date:Message-Id:Content-Type:To:Cc:MIME-Version; b=Myk9Q7QOlh5JS2OWgGT8l37ptE+rECVu0cOzeUtCPYOponDRwbtWUwsACnWGHrKeL+NDrveaGXTroHvD5Mw/yngKw2U2BjJy2ybNFS0fCttu835YsJ9pkmPaW4A8qjtKwLfrdQ7pEpVwxkSXLhRhPikhJf6dC3tia7JHD/+fAv0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cherry.de; spf=pass smtp.mailfrom=cherry.de; dkim=pass (1024-bit key) header.d=cherry.de header.i=@cherry.de header.b=cVrJqxsc; arc=fail smtp.client-ip=40.107.13.102 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cherry.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cherry.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=cherry.de header.i=@cherry.de header.b="cVrJqxsc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DojoPtFl78ku7u99G1WAMoE8Es7hsWWn7g8ek9e/lBjPptdwfqjOzj/WMpUI6oUWI/a/650ZZoLEq8V3NfLCeENtVV7EXIGNd4r5WFFVSgbJWdd2I823OKoreAVZr8QAythmlVgvzWT6ywK9vuvaxlt7rBsqtYXGxIHIMDXkm3jujWHMM5UZ+10MM2YMZ7OKqVP+diMkH1Bi2dX20dbRYyugQE1UUSFki/GA8Mgf2EphPBfOp7DcxJI0CzoxmomG6BmRqPESuOm/oBa1DNRUfBzdmxi7KIRJ4U5iIalZI8Cg2Avtdty+RFfMF9Xj+GwfLTZjzyxJmo4QBTFWrub7eA== 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=4eUlbnPoN8w40E8M/dxF7d7o4jPw4X51BB6bfigs7Y0=; b=hmOCV+xGcWA8Tuq2Ur3Fww1XvcPj7DOnNPCQZUGP+K/+szRxka1OViXlhcFyaJCtJwIfiQ5ASLUWy+RlsF5FM5a16ZIRdXddik40nkAj8ulslKA318hOl+0yFCGHGeso1oCuAR3kLR9vWifvnHeXmrWT+KtaG27UxhwDpnz61DvwtCvDIyRYlGNWF8AE3DGQF2nprJu1TT1Z+6j8H44k9QF9uoGdnAxf0t9UTYR0APg9hTCNL0JyrcriZYhIe+cbU9bgM2mKmlSlxtGj6FhAgTObACxASzDQEveneU/4jWwzk9GFJADtzeKYiwI+TTQJpEjl7dJ0GgrwcMQ7mWYOtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cherry.de; dmarc=pass action=none header.from=cherry.de; dkim=pass header.d=cherry.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cherry.de; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4eUlbnPoN8w40E8M/dxF7d7o4jPw4X51BB6bfigs7Y0=; b=cVrJqxscNhPfptoFomSKoOfainQj3jwvCP4Ya1GgpkNBFHg51ofTjt2gVXBuq4qUGjOHxShgHQzoOnRXvooBAU0dXYJGhwlaSoLbCip5Y5aB5NH0bR4bB89yEdGHkpAAjos9mbhbUDJxNaUnQlJsqmi0B1uSY2S/i+axJ7YtpKA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cherry.de; Received: from VE1PR04MB6382.eurprd04.prod.outlook.com (2603:10a6:803:122::31) by AS8PR04MB9512.eurprd04.prod.outlook.com (2603:10a6:20b:40f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.41; Mon, 6 May 2024 12:24:17 +0000 Received: from VE1PR04MB6382.eurprd04.prod.outlook.com ([fe80::59d9:878d:65f0:3936]) by VE1PR04MB6382.eurprd04.prod.outlook.com ([fe80::59d9:878d:65f0:3936%4]) with mapi id 15.20.7544.029; Mon, 6 May 2024 12:24:15 +0000 From: Farouk Bouabid Subject: [PATCH v2 0/7] Add Mule I2C multiplexer support Date: Mon, 06 May 2024 13:37:51 +0200 Message-Id: <20240506-dev-mule-i2c-mux-v2-0-a91c954f65d7@cherry.de> X-B4-Tracking: v=1; b=H4sIAA/BOGYC/2WNyw6CMBBFf4XM2jHtiPhY+R+GBZSpNLHUdLCBE P7dStyZ2dxzk3tmAeHoWOBaLBA5OXFhyEC7AkzfDA9G12UGUlSqfNhxQv9+5p5MDhNetDqYjtV JkYY8e0W2btqU9zpz72QMcd4+JP1tfzKq/mVJo0JVHpvyTLaytr2NPYc2Bt+gzDKyl70JHup1X T9r0Qv9vAAAAA== To: Wolfram Sang , Peter Rosin , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Farouk Bouabid , Quentin Schulz , Heiko Stuebner , Quentin Schulz Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org X-Mailer: b4 0.13.0 X-ClientProxiedBy: VI1PR0102CA0103.eurprd01.prod.exchangelabs.com (2603:10a6:803:15::44) To VE1PR04MB6382.eurprd04.prod.outlook.com (2603:10a6:803:122::31) Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6382:EE_|AS8PR04MB9512:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a500abb-9885-41ab-7c3a-08dc6dc77155 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|366007|7416005|1800799015|52116005|376005|921011|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?h/eARn3w8nBEVr0e274LmBl686Ij3NT?= =?utf-8?q?TsTddkNJD3DFJMyt4aRK2m7kLpAS8uPAw8CI+q5EqAmTRUWC901zQmfS8l6oIprwa?= =?utf-8?q?aqKsv8VRfMeyyYGudrqUktWbmZRv/05G9BBWglWXvili2JwlnQbves32wDpqw8T8e?= =?utf-8?q?AU1JVH67MFZ+teL4owbBm1H6SFGzQUZ2l3J2lK0auE5xMtOgglo4IkC5xzLOu16zz?= =?utf-8?q?Q4mfB1yJjzix+IDZdtuotxo/YsXP8hiIR8O34pksupBTydqiCysYuhRyeyTrVE3Iq?= =?utf-8?q?oKPX74DSvrUoB0qtzsTyr79KcKaG92anh1NHM2nwPLUGZVJtXYvNGTjdw/CA7mLNP?= =?utf-8?q?h22q3a0Iph86fKEUkquFBluaxNwpZptMErRUhmo2wkiqjXgqVPLdDv63ushO+t2QI?= =?utf-8?q?yJPFv2m/evBp/sxCjDY2B8QN8LCwrRUk2536lBwoI7pmUbUwaSxkDxMnoYjganr2G?= =?utf-8?q?6S/pL6TSRCDBbRdVljG1mdf9MBkMI0evRg6UyWMT9SpTmvB1rVjBz36tESj2JD0Pd?= =?utf-8?q?tO3zoXT59n2Do1N3sevI3yZToU5P+9q+eRrMehDvizpuUDVtHlnFtrMK136T/XNCp?= =?utf-8?q?G9MIzr44jIO+5eA60+tURpGXGu71U55xlFu55OQEkHmcGqNxUbwYmndkSIRfeVmFF?= =?utf-8?q?IZ9K8Yp8CWON5HtXlhOykzzn6PpmUFB7wXnb+fF/W+DgpDbNw9PTwDARIl9vG/z6t?= =?utf-8?q?xdyNDAI4HoAQZX9nN06TYN0SwkueXhjNX08nQwUnBhF44tvvX+CQw/atZDoNWwfhr?= =?utf-8?q?SkMPYqlLqVC3s6qFYpkVLdvCsskSan9qeJHD37jFm5iL2pemFULla6Spw8+82UfP9?= =?utf-8?q?gTnoBSfqgjRTz07H1tSAJhQEN/JPIEyD0v8Ja/G3jdC+d83207WYdynVXueuHPzNx?= =?utf-8?q?txNMd4V/32k14uFVNmjsZBjzxITrzgNRqmR4p6yhdGAhVqIpyypxnKiiw3LIsY98Q?= =?utf-8?q?o68Q/M0IU+s62OzqeR1SVF+LJLsFPn3WxJPoNSuVk9SJGLqIymOdq84bu1NBufd5A?= =?utf-8?q?junKeT1+s+Eug7giPcyPURHuHZ2pf3rEM2u2mFTQT8QTTLaV4jBdyi42OESbDbomg?= =?utf-8?q?QwQKPs3/UnfPYnf80FG00rXwxBXaKTjzzMG0FgBaYncDapQEyzz/WFXp5WBwmNxT7?= =?utf-8?q?a5xHDDUyhrq02uy3VH5aJgWFMdxZ8qBx7F9jDgNlxu5Zw9+Oyp49NH2z0AAk8Z7+B?= =?utf-8?q?L4y4U2iKCY/6h0l74ghHN9kHwWyHcwKQLJI11a1+Z4nv4T4N7Ectl+OEY09sp3dHH?= =?utf-8?q?YMOLrccv+CuroO4qaIVJnFiLoHU941uEXE/UK5eKIlpUbQG0HhzVUhpY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6382.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(7416005)(1800799015)(52116005)(376005)(921011)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7k2XAUrOh9o8jhS/OuAx0770mB8u?= =?utf-8?q?vfsbwKZOza86KW7KMLmngzhx+18HpdO8U3U88vDFfnGLrIB2wyQnxtghKHk7XFTe/?= =?utf-8?q?IcLvjrgJRJ4f8SxFcILfe8Uy2hVj++ar2vtxsKGuwa4ULUuBdjk5PUE7B4OFECEig?= =?utf-8?q?xhDk1eQqO3HpuCx6kjcdTNF61RNQLZKbkMwRX5IpbZGXhDzPpcF0b1iIa355PPje+?= =?utf-8?q?3ucSRbdQtuhJQbiNZJ0RdNpssVoyoW0D64KCJqF6xRm0igmyiN1OLg1CrzEsBviiZ?= =?utf-8?q?KP+BsyN0I1TH5sumtifGKf3zapsaKauydzSRk4mQtC6XTCnPSuco3gvYep1JVaHqq?= =?utf-8?q?3WITnEIuSkH/9sHBaBex3W98F5Tw86DXDhQriF7RvcJooMAg9xQRzkhXJjjh+S9VZ?= =?utf-8?q?ChVVv0jJfq7MSiAqkD1qOYYhOImsynI+XaCd+3pR2d1J+lvGA389cKa5hsnysOuWC?= =?utf-8?q?6Gj/vRRY3d2aDsPQcVZlDyG+oHHx11pyPNr7RD5cDZpQZjvI/ZSiXKu1Mvd31qIEP?= =?utf-8?q?It3mxRqyK3zoacaxSQB5w4ZfebN8hPHsHoLxq15tG0Dwk4kEDN61phzeCmhkNoxAc?= =?utf-8?q?nz+AzL1+gV+GhmdWlRcDIBnVpkUyoFhNg/AMmFWHKscyqDJ/rf6U+dfyYMtryDJwq?= =?utf-8?q?jZav3v1x+fD3lYC5Ft1ftNePLPd2i/WMfWYo4qaT7g7DPB11MvDHNLikpxMPRYdDP?= =?utf-8?q?1jxjSKLXQAUOGieugHyFmLmj5caaZyOe5DDc4y7VS4kUQr0iPuKfiKCe2c2aIq0pk?= =?utf-8?q?UUO6IajriUNfxI58/eCLzsIQ73sqNA0fOi3OGlRktqvXMJoxmEzozWKSIgdGdAsPq?= =?utf-8?q?s76fVCZLw74KCmN1NQe2LT0om5vgrzXQNr2FgEPjJfTu+cQaIjKYvMCGStzrhMduk?= =?utf-8?q?yQR9RznMmNNYrPmYEeadsE9jTMuazxS2/rhMl+amAX6qeGILq7FnrWqF95+KI5tRw?= =?utf-8?q?rSIjvqM9qUE6KUCKpLTnF5FddjquuZE1NuOtwFkUQF9g/Ee6fIffDe5wXshZqxMMy?= =?utf-8?q?X0zgSQ4VmTc1jDNyrmkbXPLdB2WQj94mXEeT0mL98Vc7Srou+s7Yipom0lke0NSAv?= =?utf-8?q?zd7ATGf4znLMKduw08PNVMHUWV6p8ul0AXYcAMyZoH4yAt2WWCUNVFMv8Pw/CJoDv?= =?utf-8?q?xVXn8qlLUfg1Is6fjcZdl6UqNVG5H6mKIrZYjdquDy4tpPNRB++y2fd5nx8E3xBwK?= =?utf-8?q?19wSAS/7shZDwvMnMpkvVYi/y9rU//H9fTtCiLefSgDgslRGFD5wAwCAcoh56ibK1?= =?utf-8?q?MbuIF77cxJ4/xu32a9NiCDZ4p0g0G+uWPMAG63z2Kaxh8iLSFZR95a+kSj3Vwa3ly?= =?utf-8?q?pehQjWqdAUk6VTXou4SLyDSbZe1oIpTpwTAO3J0+43MfEcOVI2PrJzaDsBToNKqI7?= =?utf-8?q?lqfe3wymJTtZL4VRWLqAGu3sr1q33M/to8Ryu79NdnQhsPQEoDuvsQ6cb3IeCoPh7?= =?utf-8?q?d+yLRPMZNVKHrURwGP5+uK7nHEEnST3KkVmSdSruG4zIWjGN0SdP3rOMV7WJGL6QT?= =?utf-8?q?dAqy9ShBfbX+XrDbuqg6vHYU6CVJhfsKPg=3D=3D?= X-OriginatorOrg: cherry.de X-MS-Exchange-CrossTenant-Network-Message-Id: 5a500abb-9885-41ab-7c3a-08dc6dc77155 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6382.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2024 12:24:15.2180 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5e0e1b52-21b5-4e7b-83bb-514ec460677e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VeMBjK/v9rhofRl92gg/yJhGCKWJnYKCLBjBip9LtGOQWHQJj/5SIsD+94YqSEgMrnU4HVrEoIcHlTNOeUe7NFnEPCupJGpAgRyjhiZEt2c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB9512 Mule is an mcu that emulates a set of i2c devices which are reachable through an i2c-mux. The emulated devices share a single i2c address with the mux core itself where the requested register is what determines which logic is executed (muxing logic or device logic): 1- The devices on the mux core can be selected (muxing functionality) by writing the appropriate device number to an i2c config register (0xff) that is not used by any device logic. 2- Any access to a register other than the config register will be handled by the previously selected device. +-------------------------------------------------------+ | Mule | | +---------------+ | ----+-(1)->|Config register|-----+ | | | +---------------+ | | | | V_ | | | | \ +--------+ | | | | \-------->| dev #0 | | | | | | +--------+ | | | | M |-------->| dev #1 | | | +-----------(2)------------->| U | +--------+ | | | X |-------->| dev #2 | | | | | +--------+ | | | /-------->| dev #3 | | | |__/ +--------+ | +-------------------------------------------------------+ The current i2c-mux implementation does not allow the mux core to use the i2c address of a child device. As a workaround, A new i2c-adapter quirk is introduced to skip the check for conflict between a child device and the mux core i2c address when adding the child device. This patch-series adds support for this multiplexer. Mule is integrated as part of rk3399-puma, px30-ringneck, rk3588-tiger and rk3588-jaguar boards. To: Wolfram Sang To: Peter Rosin To: Andi Shyti To: Rob Herring To: Krzysztof Kozlowski To: Conor Dooley To: Quentin Schulz To: Heiko Stuebner To: Quentin Schulz Cc: linux-i2c@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Signed-off-by: Farouk Bouabid Changes in v2: - Add i2c-adapter quirks to skip checking for conflict between the mux core and a child device address. - Rename dt-binding to "tsd,mule-i2c-mux.yaml" - Add Mule description to kconfig - Fix indentation - Move device table after probe - Link to v1: https://lore.kernel.org/r/20240426-dev-mule-i2c-mux-v1-0-045a482f6ffb@theobroma-systems.com --- Farouk Bouabid (7): i2c: mux: add the ability to share mux core address with child nodes dt-bindings: i2c: mux: mule: add dt-bindings for mule i2c multiplexer i2c: muxes: add support for mule i2c multiplexer arm64: dts: rockchip: add mule i2c mux (0x18) on rk3399-puma arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-tiger arm64: dts: rockchip: add mule i2c mux (0x18) on px30-ringneck arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-jaguar .../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml | 80 +++++++++++ arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi | 20 ++- arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 20 ++- arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 19 ++- arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi | 19 ++- drivers/i2c/i2c-core-base.c | 6 +- drivers/i2c/i2c-mux.c | 25 +++- drivers/i2c/muxes/Kconfig | 18 +++ drivers/i2c/muxes/Makefile | 1 + drivers/i2c/muxes/i2c-mux-mule.c | 157 +++++++++++++++++++++ include/linux/i2c-mux.h | 1 + include/linux/i2c.h | 7 + 12 files changed, 361 insertions(+), 12 deletions(-) --- base-commit: 23918f4e52d072b96a4d909e91298b8dd6ad4325 change-id: 20240404-dev-mule-i2c-mux-9103cde07021 Best regards,