From patchwork Fri Apr 26 16:49:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Farouk Bouabid X-Patchwork-Id: 792460 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2111.outbound.protection.outlook.com [40.107.6.111]) (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 BA16D156864; Fri, 26 Apr 2024 16:50:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.6.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714150232; cv=fail; b=bum7V0WdoPqQc6lGDaC3cNy4GlseeHd0cQCu0jNt9+LzUF6OjAwRtFxzeAxzl9tWvcduvhfnsuiWsAtFDqBI1Ixmoq1hEZEa9OnVUklNamYFIPfKBHNNNvX5tbChM1NW9cgFeLH6MlyAs2XZVZ/qXfrKz+K03Vh0QD7GJKIAkTc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714150232; c=relaxed/simple; bh=UPz3MrjtfQd0nueGsYTPxR9knUuvbgyyjD++GFC1t2g=; h=From:Subject:Date:Message-Id:Content-Type:To:Cc:MIME-Version; b=o/f1VdamwFAqaEBMxWqBfL58DkU9MnZhhETo6a5WdZP99F2eE2bYDIKVR1q9LWB8O+BM91I1VbFdyZBzfvvc8ED/SiRtHfurWtiqkYRLyxkCWfWlXWs+rbmu0uLWkKHiCbz7RYnyoQC399HfQJhwL5nJXuic6ZLE6IYBx6ka4Cw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=theobroma-systems.com; spf=pass smtp.mailfrom=theobroma-systems.com; dkim=pass (2048-bit key) header.d=theobroma-systems.com header.i=@theobroma-systems.com header.b=jU5zA7w1; arc=fail smtp.client-ip=40.107.6.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=theobroma-systems.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=theobroma-systems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=theobroma-systems.com header.i=@theobroma-systems.com header.b="jU5zA7w1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZXzgGfSv2+Jz8VdUhPP2WoqVIsz0KLxCjsn4BqE3rK6Rq72nFu55BpUEx3b3be8gB3FUEWWb3a+E86AFvr72BtHUt6/tJDTOdCzDTA/Er2IFAkYbQPPQ9u0sIsGO2rB+Y45IxP0DiGZuE01y8c/xGgi7dgjk+CsLPkouVNzEfrb2Z4Zp0UjgKtAP71p42XHfZdWTqios2+Mqkniotmu8r6QthU6E3hxHE176j+QVBO2UHI3ULpsFcFnivrCcqsdC98ADugNHaHMxi5WIjmPhFcV5LX6HK5IcaqjdtojMOsWhMWntsMls4aUuotd8U0UsBqHd3dKxER6i2EnV2DJQMg== 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=vYBRW4r+i9vMVde6VQIjVU7PiC+AYrrmMIzyCRy8XdE=; b=OrnyCoCt9gIP6OJQrBQsV2SMeucAdZqI5/naEmLGDrq1f38+6E7Ua38NTx5Mub85+8iHHXtXi6YF2BtDJrGJOi+bbzAZw4zd6mVdwqTW1dBO/6jVIOd1rROIWY53QIN6TOzKDqeoBe6gMRbOCPDqxl1Tvf9nMrG2xvAHXaWdN3uMuwX5rVbZLI6VFOp00pg4d6qohHr4RCX7HBJPGn/GjH7rfg5Gfdn0No/1Pj8ouhGGaeO1IQER+3SuoQA/iv/lPCA7Cxky/i4Au1uBBnSOjt3/E1nJRZAUkuBSDyN1RKraPnXLOn890Q6inrPXygpTQwNhrj7EaPCrupzAQi+CFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=theobroma-systems.com; dmarc=pass action=none header.from=theobroma-systems.com; dkim=pass header.d=theobroma-systems.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=theobroma-systems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vYBRW4r+i9vMVde6VQIjVU7PiC+AYrrmMIzyCRy8XdE=; b=jU5zA7w16R6UF2LT+fAOOUS6nHb94xQmbS/tmGqWEJda6Id30puJuhxyAQCWyM2c5bUDZ4yB8Me2k5qsuoYZAEfSncddRvbHw4ezzqzPUnJmDudxKimW2yHODRlDcqiNSXP2V/C8n6hWi/9O2ehI88r5XJRFyRma44tAVpeD+acY7ya1pBIEFhkryRwWpWl+HgzI0CJMKUH5fyTA9dXtxxmSBg0G/nM78nGu61CtwzuxK4FsAeCK74A0itCq7fQl3Si/rCXjwTIqof6wX8tmfPjmpP2EE6EC8ieHB/qGVpp/VbKEE06aVjoZYUEmD51XiOtlzSJnckmk9zzcQhtKfw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=theobroma-systems.com; Received: from VE1PR04MB6382.eurprd04.prod.outlook.com (2603:10a6:803:122::31) by VI0PR04MB10230.eurprd04.prod.outlook.com (2603:10a6:800:240::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Fri, 26 Apr 2024 16:50:23 +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.7472.044; Fri, 26 Apr 2024 16:50:23 +0000 From: Farouk Bouabid Subject: [PATCH 0/7] Add Mule I2C multiplexer support Date: Fri, 26 Apr 2024 18:49:31 +0200 Message-Id: <20240426-dev-mule-i2c-mux-v1-0-045a482f6ffb@theobroma-systems.com> X-B4-Tracking: v=1; b=H4sIABvbK2YC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIxMDINRNSS3TzS3NAYobJQMZFbqWhgbGySmpBuYGRoZKQG0FRalpmRVgI6N ja2sBX1N6rmIAAAA= To: Wolfram Sang , Peter Rosin , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Quentin Schulz , Heiko Stuebner 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, Farouk Bouabid X-Mailer: b4 0.13.0 X-ClientProxiedBy: VI1PR08CA0261.eurprd08.prod.outlook.com (2603:10a6:803:dc::34) 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_|VI0PR04MB10230:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b96f515-648e-4859-7057-08dc6610f6de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?q?Sp09519elSaI7qJ3DhFesQfXeSqIt/1?= =?utf-8?q?zDYMlZLkM5XYPpmjM6hEq9OSgs2SaCzQDo4tutJT9rqtpl1imPUvdYQMcwjwKbLGR?= =?utf-8?q?f7O/iBWC0UclU9zmNT6/raqiGqwpFPBtAtzW73NvezzY1MlXl1EirbAwGSnjMxmLk?= =?utf-8?q?cu5bVkhrmp88ocOpm9E2c3iMO20oSLaj7Q/cuWaw6d2o8njAgV+YrCgKGvQHvYodO?= =?utf-8?q?GXelXL0VNKXRF193FWpcbIufj7EOMGY08kiquGZnu3t04+XEU2tBLzgqkbNDO12QV?= =?utf-8?q?lvmA/2glmPQPWEvrRPNMXirD3DjJ7KG0EWqetIu4D4GhpEKjCA7aYXzI40yfGtrvs?= =?utf-8?q?VtfU0ISisSe7bsSNDV8ywgFMJ05Ud8BRD47TmJDlp8kYP5nlU50lafG+T5t3C0EtX?= =?utf-8?q?ztRxzgdy+t0Y6OwMq56GuFKic9CgYMhviyFix/6E0VOe/sbH7WyI0OuXDh9nR/VWx?= =?utf-8?q?nty//YapHDFScc2Tk2AeGhqiIp0fegvK3y8Br3990U54z7hvbdyvneYrbmbQXrMH2?= =?utf-8?q?QggwIyIdbNUQiK3+su6J4QMMZ6iKu4aa8cVILVFEje5kbItNE3L54Ny7f2SaPWQoq?= =?utf-8?q?4l/YjS8xjZQGpeFmwNNrPfmsu7rX7VI2b8IgGpCiRw7E4tSs0tJgbouAm8Kk/VAAU?= =?utf-8?q?QbjBF5MJfPk5RiC2XXG4+l7UlD0syKT+I9UsL/AUri8kOFmZw/4ZraRm2jmp8skXa?= =?utf-8?q?KK8zKI1Bg8/4foJOQM6+TB3/5gbHH7nzNGqAkFGAM7fUW2/krTHim8p+dTgq5SbRn?= =?utf-8?q?YD9HBeHLxmvUWguxJ6sJV0rsoZSQjzbezfTRHTr6OxuBKGWI9LtZixDYHenNVQB+p?= =?utf-8?q?lx5Qb2zx5qVmdRjtyl1fpnTzX3aUjGUR6EpWJl8+BzX49y8EQdM/YlsMss5NJ8wr+?= =?utf-8?q?r4JTXRfBNafpj6TPBJNwZrjY2AdOg0LNzpRx2lcKHkQ3Mc9hZv4fnkPtxUOSB7ROC?= =?utf-8?q?8J6VabMjZ09pmAdb/BELz4SIC+1awTn/nhETLCyFHCmBDzf0s+/T80ridGhlwXNbu?= =?utf-8?q?6OzlAa2oU8afc3gmTkMsVXP9Oiuyv6MWoEqBgBdOvOnXR6OzEMMvmbrVMrVMtORon?= =?utf-8?q?B0vcw3KKht6a1VaLPNXJsCJIMLEqAyCdenFdBU2i8LmBwW0aI5yk/MT14dBC+hIGs?= =?utf-8?q?XCSJGpRiT36aJnS9GHZHdXc4pLUnHxpZV3EXA45IIFq+92LSVShGFQqF7/gtHSVdM?= =?utf-8?q?ywqFwj7ULywgU9Keuk15pLjKstaufoMXd9iy9ahJ9igdZvzhKNeDRuzveoep5fVte?= =?utf-8?q?spk6VQetwvlYX0rwM2UzOYCJ9Jh14b9q+kA=3D=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)(376005)(52116005)(7416005)(1800799015)(366007)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7PxGxj0sFWd6mxPAJr9Pam26QER8?= =?utf-8?q?xuaGYIwA724RHfgEhLqGgbz/i6B1LrBjs6vCID15d7Sv4ohWFWm9+AyjZ0RX+jTXA?= =?utf-8?q?Qv25TWyrkLecEzrFRCXsv69A+quoEYf1o0OdqObi15jDbVeq6mB/Yd0zSPHRzbfki?= =?utf-8?q?SGT/moT2e7bpUjQ7nr+opGxgd6OY1aLAqv/yTxuku5ovub+AAhcinMJq4//22sBb0?= =?utf-8?q?VkruIWPNmF31l4QhfHtXrdzaLKpfWsv6/Shcv7heWazaQsPB6oQVWxDWjQ0JHro3u?= =?utf-8?q?RukcgrM3YKNyakDFssJIIqkGAFWuqKiLpi01iZDGNY/bw/yPSSE9AH23nL+rCUdkE?= =?utf-8?q?LdBZyx8M7D4XQGLdRgrzf4ILzFF86C2AiRnbeRlHjoNeSC8Y/G+PSuM/Wjsz8rCM5?= =?utf-8?q?J6A9UkMm46nb8KnQ/4MdZgJnTA08+waCKpHV4xD1ayZQcpCgmQAn87hAEtFlPsbBK?= =?utf-8?q?E0dtfLyoeW1iKuf328pV6oAHwPcYubrfzOJxPRPBnXPuKYeXDHrauKus1oygC86jg?= =?utf-8?q?2/FozRgh9mi7W62kcpMHRs9uC/hXaGHeulOtC7BRd2jEuchXXPSTqZHMndQdnoNIX?= =?utf-8?q?LKVVsnDQcJAFTIlhjVZyRAAy3u6UzcK+am2aw8wfTIItVgWVrDfSftaJG0HqzB+ju?= =?utf-8?q?bRMxaWaIYS4ntPYydMCHSXiCV8P8Ewwo2P7o70DT5I74X80Z682cugNDudfjIJf81?= =?utf-8?q?NNWmlcVIou6tTT9eAH+YgntNfFXLJV0NrFDos+j7NWvidsxq8dOGASJlAhVMuxlcH?= =?utf-8?q?LJCMvF5abt/wvdS9LWa2pciy/J1rI7rA1ecL1rHhlercdv7JL0fvL5Db1lw+y+/jU?= =?utf-8?q?qxcV1KWQRDZl2+GccAP+eoAB5zM4qBLL7XLkW+Fzc27x1m8r0KsoemmDEtdpdsH63?= =?utf-8?q?15hh9osSdnDrHVGmudId8mY9T9BzzyBWLp86ufQzUXlUyGemIDWw0G81e7+Sl5jHW?= =?utf-8?q?0vo2tirrPYIbTADVp/xWqQwJjqE2NG7AoOgfCOAWVYKzqxa0sftnY/HmB0yRvoq55?= =?utf-8?q?tdXMIiGvFXewsCELP/XNfjFn/G8bHrL2GF8GMwO+GVrLaD1OUpmA3Es94Zuzxiye4?= =?utf-8?q?/aFxwV2oyaV2gUZKZpJQOcbLt3ijlUX7jg70TJOXkX/Miotd4z7i428+J3HXP+Fwi?= =?utf-8?q?nz6otRFzQuJCJ9k2qYkEOnuLHiQh1m6MFGyUFBEr2toFHg3ZGG/zTd9BmnUm5oVDh?= =?utf-8?q?DPmAYNMLKviTlOwqd3muJ/Jv5D9UiUH4W+Rq+hRAhfShRR/n3eNcgG5sHSX+l331N?= =?utf-8?q?jzYVM9xUV2ecYsgTb7wy1nBZTmAqq0XodfPX2MwFZhsLhEksuqJfiHzm979dqQfRv?= =?utf-8?q?m6ZwJatN4QuVDiEmZvKY2/XN+0imY7yrld3+0nxPLDFB1yuiGcVAOga642xN9opi0?= =?utf-8?q?HhJRm2sUiJgnyeiAN8i+s9VhFojuZ0ZIYmxgdyb0g1XuPoTJd4BsEH/uG3qJ7IR+M?= =?utf-8?q?xZp+06eqVN0OJwokJ0TExGNKPjAjOhLqc9cgBBl8p10Tf38qPhawbO2SkVayQNKAI?= =?utf-8?q?wBsYojEsTOE5lzEN0X3aBz9qM37sfOsuVc2U/sUvb6GJLGXSKlgeGBk=3D?= X-OriginatorOrg: theobroma-systems.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b96f515-648e-4859-7057-08dc6610f6de X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6382.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2024 16:50:23.2746 (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: VvvqemZ8njvqR1TvyLgM1KjNznkMp1IBBFXtdQux6Rm20IGUH59nXNtpXEsjXEtF0K3TyW4AaCKAVHzA3RgY7Lc5WImy/FaCdoOLLKqYOBXNhYjH34sGGdieonfZ5Ntx X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB10230 Mule is an mcu that emulates a set of i2c devices which are reacheable through an i2c-mux. The emulated devices share a single i2c address with the mux itself where the requested register is what determines which logic is executed (mux or device): 1- The devices on the mux can be selected (mux function) 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 to share the i2c address of a child device. As a workaround, when creating each i2c child adapter we do not assign the parent adapter to avoid the address-match with the mux. This patch-series adds support for this multiplexer. Mule is integrated as part of rk3399-puma, px30-ringneck, rk3588-tiger and rk3588-jaguar boards. Signed-off-by: Farouk Bouabid --- Farouk Bouabid (7): i2c: mux: add the ability to share mux-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/i2c-mux-mule.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-mux.c | 10 +- drivers/i2c/muxes/Kconfig | 11 ++ drivers/i2c/muxes/Makefile | 1 + drivers/i2c/muxes/i2c-mux-mule.c | 157 +++++++++++++++++++++ include/linux/i2c-mux.h | 1 + 10 files changed, 327 insertions(+), 11 deletions(-) --- base-commit: c85af715cac0a951eea97393378e84bb49384734 change-id: 20240404-dev-mule-i2c-mux-9103cde07021 Best regards,