From nobody Sat Feb 7 06:40:06 2026 Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) (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 47BA82D592C; Mon, 27 Oct 2025 05:48:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.207.22.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544113; cv=none; b=KRym08vdn6USgjybkc3q0rK3wL8M4eTr78sw/Lp+kwHgO+9Wl9lP8WYnpwv3la1Nsnmsw2NG7xaoneHGi8NDW8sumeVUbnXt0+z6NBAov5W1AT/HOjflE0UDIyFMl1QAol8r+UEfzbb3Bw8JE4dzjekTQJ8wY/uwHPvchRDbQt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544113; c=relaxed/simple; bh=haUTX3DAFG/sDExwxhYrFG+MpFnxNHgK9T898K4DEpw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LEuyseL60fYV4KzwLL4bCFAHoTkIq169EynAb3JebYTwmhEd+uVltnmydCol0qMbzCQDX8mJ3EqgX9oQfATozjYxWd1EUTwjeW5u2QoY84IjPCqgeIr9JFpJTPyZQ2A/fXqxv3G2KzoTiD0HaY9W8h14bXAYxUpOwhqrrTSAUpE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=Fwo3grvu; arc=none smtp.client-ip=54.207.22.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="Fwo3grvu" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1761544101; bh=VUROzD2Px2X01kMjDouTVlJB/FxOGL4kiYbsA/z/bxo=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=Fwo3grvuT98lNSPL1MzzBjJNFG3IlTCFtgMUstEAnCCgu3ZblMJWIgv7u+BS9aHI8 qZNpkFcTNgt4o6oQrvsC6pNizDjdPR5EJxKrJ1/ChD6JPNr9ITrq+dzXKiSATSvW41 MVz1ovbXAW107qV+IROk3whL0E5w+wqWEqW108XU= X-QQ-mid: zesmtpsz7t1761544095t7e2c79e6 X-QQ-Originating-IP: 2YYRSz8nfBT+0rkbxFwdGXPE9OU+8C/eh6y1Zk5miKU= Received: from = ( [183.48.247.177]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Oct 2025 13:48:13 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 11408485327618603896 EX-QQ-RecipientCnt: 14 From: Troy Mitchell Date: Mon, 27 Oct 2025 13:48:05 +0800 Subject: [PATCH v2 1/4] mfd: simple-mfd-i2c: remove select I2C_K1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251027-p1-kconfig-fix-v2-1-49688f30bae8@linux.spacemit.com> References: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> In-Reply-To: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> To: Lee Jones , Yixun Lan , Alex Elder , Andi Shyti , Alexandre Belloni , Liam Girdwood , Mark Brown Cc: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-i2c@vger.kernel.org, linux-rtc@vger.kernel.org, Troy Mitchell , kernel test robot X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761544088; l=1235; i=troy.mitchell@linux.spacemit.com; s=20250710; h=from:subject:message-id; bh=haUTX3DAFG/sDExwxhYrFG+MpFnxNHgK9T898K4DEpw=; b=axT647NiGxsuB2r629BN37g+E++QCuCRTuuShun9jkeP1mUdrBRCaBuTuSlqcsYYlzjRaqazp X2VApOdw7riBC6daxcAt+BqIAk9j2LxxfeYInibW477iQkz438YsLYB X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=lQa7BzLrq8DfZnChqmwJ5qQk8fP2USmY/4xZ2/MSsXc= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpsz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: McfvTdNTSvcBdWfTJmkuzW/dW/aFrCrBB5EOnpEFm9AS1GzrZCkbkeNr +HlvbyHztmSYMWFhRGgT8hjKbYBBXsY/+oU8WO9hLa5WFz4PjKKBT8DFZ26gcfEXAtUb8Sb c14dM6riHjhnRBU1BoyMd93WwUgDftnVe0vRMBotbM9NgwnnWcSfHWZuQJoBO6zCv5Yni59 xdXIzh5dVTgReygyexLEP+XHfc25Z9Od4H4PzooAHNt2Yj9zM1/i1iLxF3EWVpNkHMtQOZ4 mBsrKG8v7NENEXN7wmTRyHocIKl432zmryPJ1xl4Qg9puvbI/1mNhMWKjvb1+l/gJDLrjcN ni94rLWSVAD9GfZIhsQ8y2ArZsIsM92J9JeWmWiCTg1FG8uWBYHvhIrNHJ4J+ad5sOs++f/ 3JAaJVvTh4RXW6pGhQo/Em+dmiXdIF6Y+IZy118/g6v8H0hfTB+h8ZWS4ulnLQYn/Ofiq/Z m/Dj0Yavz0+LKm0imfovTAmHpxzkNwUBRLKN9suVJZWz1jOJytvF72k+m2M+7vp0i7cDtUV Cwlhx/r2XB7SGxHKh0Hr9jelJICZEd+kf218KCsk8zClIO8w0cAMeOGTsqdpptGtlpAY6Ye +KdWqidnX3/DrGlneVX4L6f5or5OPQvnx/P3//mJTh82jNnI/taeOpjWz/bKi9QTEbQXzvo oUr3crl7wwkXaYjMp1zNUgYC7WsrXvheelObymhjEIaEzFtwI9l8jgwoFrrTzIDgESncw7D g9fm3iVahEkvOhYpITvzmR6F819Zrkz5YlQV7kPJLbCMCNZJ/PXzHZ0V/bpPzuXt7WeNC8J 6IvIs+ruzWPieu9lGH93IvJgm/Y/nBygKCCk8JOIz0ITkaCvFN5vJyLmqIt2W8NUm1QavNf Bo9N9x0LnMRmKoiCu6RuQLwcGUzSvlPC1xcFj+1qIFvcIAZg9Y12O9HmwDoUSkZlyzIbjID Gi17MHViNMB6QmnIxZGRY1hjIDeoBTsMNT+W3WuFjp+t2ZKvW6ehzBWrSVAl7GZ8CG76KEz wHy8rGC590VzbrYid72fOGpcpO9ETxFp66KgkPP3hgxo382ksf16Buv4h9n4kzEMJVzI6ad 8nIWp/UT2hI0mwD1OQh5z25bbYk6L1/evwu7QMoNPa7dZkaDcfHj4o1uH06aNw7QKJ3b2mj DdDZ X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= X-QQ-RECHKSPAM: 0 select will force a symbol to a specific value without considering its dependencies. As a result, the i2c-k1 driver will fail to build when OF or COMMON_CLK are disabled. The reason for removing I2C_K1 instead of adding a depends on condition is to keep the possibility for other SoCs to use this PMIC. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202510211523.sSEVqPUQ-lkp@int= el.com/ Acked-by: Alex Elder Signed-off-by: Troy Mitchell --- Changelog in v2: - nothing Link to v1: https://lore.kernel.org/all/20251022-p1-kconfig-fix-v1-1-c142d5= 1e1b08@linux.spacemit.com/ --- drivers/mfd/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 6cec1858947bf7ab5ee78beb730c95dabcb43a98..ea367c7e97f116d7585411fff5b= a6bcd36882524 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1258,7 +1258,6 @@ config MFD_SPACEMIT_P1 tristate "SpacemiT P1 PMIC" depends on ARCH_SPACEMIT || COMPILE_TEST depends on I2C - select I2C_K1 select MFD_SIMPLE_MFD_I2C help This option supports the I2C-based SpacemiT P1 PMIC, which --=20 2.51.1 From nobody Sat Feb 7 06:40:06 2026 Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) (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 91D532D63F6; Mon, 27 Oct 2025 05:48:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.194.254.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544116; cv=none; b=DEZ/im8o0HksA24Tz9vXm6Aav5o1bd1iPBNBxAdDRA0Lc48IvBgjt282hf7IgipYq+El2CN+JM9S2At/Q6rjR5OsMEGLCH7hmwGTGJLD+QJxQjZu4g2/rfhWZGtqW7RuYS0EMqk5Bb8ZrcXswBSPpwkmt45yWSg/EZXcY8QBOXo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544116; c=relaxed/simple; bh=HijjJQqixOK6zBE0X50y2zZxQHMVxg0eoVuuUv55tPo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VE3QPQaI/DvbAK0pNOtnWstUTo+0nlROKcnhMoAdqe9r1dCJq+O9Lblb8a2d+0I0+HytP+3jK78DY3MpEMkOgHItyphlZewkkOA+31M//+8wfORUeTEnAbIn1UpiGmTQwYfOi3uKnhSWKSRY5RiqbwxBj0idEjdyZUZhXVZ/c+I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=vkDEBXkE; arc=none smtp.client-ip=18.194.254.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="vkDEBXkE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1761544103; bh=osDKSxZ9iL9lXmA+A93cxMKQAyY4F8JQ8F1+RvWiVUY=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=vkDEBXkEDAG2wXmwNO8SXxpMQlLwafIEUtutzXYQi+j3QwDRAxQsJOFJJUEO8AUq5 uOc2ELscncIINGymoQLQx54DKHKt0DCq4MmsUc0gC31IpiNtIT+yMGeSXZpV9yFNZ+ 7ORc0Yqyq4AV56h/q68z/vaXlwyijHLiMdELUoow= X-QQ-mid: zesmtpsz3t1761544099tb27a8db4 X-QQ-Originating-IP: spUKjLANILR6/6GBQO/9zPxVAllQLwBv5cGfy7i5OBs= Received: from = ( [183.48.247.177]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Oct 2025 13:48:16 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 3084566462975834195 EX-QQ-RecipientCnt: 13 From: Troy Mitchell Date: Mon, 27 Oct 2025 13:48:06 +0800 Subject: [PATCH v2 2/4] i2c: spacemit: configure ILCR for accurate SCL frequency Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251027-p1-kconfig-fix-v2-2-49688f30bae8@linux.spacemit.com> References: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> In-Reply-To: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> To: Lee Jones , Yixun Lan , Alex Elder , Andi Shyti , Alexandre Belloni , Liam Girdwood , Mark Brown Cc: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-i2c@vger.kernel.org, linux-rtc@vger.kernel.org, Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761544088; l=10791; i=troy.mitchell@linux.spacemit.com; s=20250710; h=from:subject:message-id; bh=HijjJQqixOK6zBE0X50y2zZxQHMVxg0eoVuuUv55tPo=; b=VAowZPuxI66TFh/GxtVtpZBdlqiVDoplTewNQ9cNJ5A8IYasuo2Ex54rtoQH+OoCJNHM8Va3l i6opmXC0JXFBP6ncKmyc+ORF3d4iuZff8rR+DNETx0oCaAax+fX5RGW X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=lQa7BzLrq8DfZnChqmwJ5qQk8fP2USmY/4xZ2/MSsXc= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpsz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: M78WKa2q/EK4gOaJH6dlBHhbDC0QFDCHC8y5jMT9rCAgud5BzmQeWSj6 ukH1bRhjJx0OacKK/is7IfbCFvV1UqK4E9c+CqDOKtwveKcFW/18kaTX9ygNQaUDQ/U9dNC 4yxExGwNk5xJoQvwqayY511ncpYOoT19Y/r6YleHb58w329G1SVTp/xNA5LVJ2stxSArPCL H0xf5VaGlbmYrk/I3tfZ0Sd3eTgHsJ1XqoR6DdRCfNfOaC5gkbmvuj9EYpkY3Oab6fJ3gUs LEDUBbCFe/arMtsrmhSaTwP3eRbHI4yI2ZSh6bLu3TGLcRdvXKaKElbkrBd3IHzkuXVr/GE bCY/cWQxv/jVhlqthPhufPQnelYbR8sdRL2RfJ6s3vOcd3QVjIp0N74rRUNPsNWgxuqjkFf 0Y6FuBNWFSkIPA1j1Y1KgySdTwVO7G3/6ypLyp2Kp0JqKnobkPB+5yqfZNgUrjwwkzbBrNE 004Wi82iZ1cuFDcXzVWl5wtpYpx4gcaBC4fl9TQ0JNFOyL3ORF4voFzt9TUZ3MZ0jfuzftl i9S6Ev1wDu4sBq0LO233sy74xu9vb3H1J8rQtG9TMu0VKhKBDSsZiior+HO9ZbWmR4FStfB f6UAA0n/+AC8YdAFZlxJ+oBIiUVaPfJ8IxtGXbfwyJFBMKQWicdm+hntRxKWCF1+BDY94Li Nyj4D7OS0/s4aFe3sKsDcnaZG5Ht9sdZLFrD9LQQNUFcco0HZUXs0uVWLnIVhrIpPFBqyRB vUN07VL/H1PGln8ZVRGq8t6EJAqEUmsxrP4fs071vb9uFfIOGzScJlD6JBc7he5TdXZ1M0e MyCZR6hZAfxheTOzsEkk05eVc7GTx4VMjCJfN9E0io1LHiLf1Fpl6Aptm1tvJ7f3UKS+6MO Q9kIXVQX4lEdXGxC21Rowf29r+iMRg0YRSSehYeji+FrarBstJ6/uiu2pMkKiY6/zMvsacJ JYG3F9Rne8LCd4fPp1rZ7Sm5zsyn4FGipJ/0xcXlrpiKJjWI8Jtaf9ZnzvC5d2SvaD7BPHc kjnLTxXHfHDKIAtGgRS6lrHGuo6nmv0/lbQ2pnL99Ct2GEIkpidjXMCSISJCxFnISkPRhHz WtTvNTbj4lszTh1yfY1+Tfc7lXG0dp/wK+SY77mQzGreP/ExV85Cu2g0NV1c9tk4Q== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= X-QQ-RECHKSPAM: 0 The SpacemiT I2C controller's SCL (Serial Clock Line) frequency for master mode operations is determined by the ILCR (I2C Load Count Register). Previously, the driver relied on the hardware's reset default values for this register. The hardware's default ILCR values (SLV=3D0x156, FLV=3D0x5d) yield SCL frequencies lower than intended. For example, with the default 31.5 MHz input clock, these default settings result in an SCL frequency of approximately 93 kHz (standard mode) when targeting 100 kHz, and approximately 338 kHz (fast mode) when targeting 400 kHz. These frequencies are below the 100 kHz/400 kHz nominal speeds. This patch integrates the SCL frequency management into the Common Clock Framework (CCF). Specifically, the ILCR register, which acts as a frequency divider for the SCL clock, is now registered as a managed clock (scl_clk) within the CCF. This patch also cleans up unnecessary whitespace in the included header files. Reviewed-by: Yixun Lan Signed-off-by: Troy Mitchell --- This patch was affected by the P1 Kconfig, which caused the maintainer to revert it. The current commit is a direct cherry-pick and reserves the original change= log. This note is to clarify for anyone who sees the cover letter marked as v2 while the changelog entries reach v4. --- Changelog in v4: - initialize clk_init_data with {} so that init.flags is implicitly set to 0 - minor cleanup and style fixes for better readability - remove unused spacemit_i2c_scl_clk_exclusive_put() cleanup callback - replace clk_set_rate_exclusive()/clk_rate_exclusive_put() pair with clk_s= et_rate() - simplify LCR LV field macros by using FIELD_GET/FIELD_MAX helpers - Link to v3: https://lore.kernel.org/all/20250814-k1-i2c-ilcr-v3-1-317723e= 74bcd@linux.spacemit.com/ Changelog in v3: - use MASK macro in `recalc_rate` function - rename clock name - Link to v2: https://lore.kernel.org/r/20250718-k1-i2c-ilcr-v2-1-b4c68f13d= cb1@linux.spacemit.com Changelog in v2: - Align line breaks. - Check `lv` in `clk_set_rate` function. - Force fast mode when SCL frequency is illegal or unavailable. - Change "linux/bits.h" to - Kconfig: Add dependency on CCF. - Link to v1: https://lore.kernel.org/all/20250710-k1-i2c-ilcr-v1-1-188d1f4= 60c7d@linux.spacemit.com/ --- drivers/i2c/busses/Kconfig | 2 +- drivers/i2c/busses/i2c-k1.c | 159 ++++++++++++++++++++++++++++++++++++++++= ---- 2 files changed, 146 insertions(+), 15 deletions(-) diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index fd81e49638aaa161ae264a722e9e06adc7914cda..fedf5d31f9035b73a27a7f8a764= bf5c26975d0e1 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -798,7 +798,7 @@ config I2C_JZ4780 config I2C_K1 tristate "SpacemiT K1 I2C adapter" depends on ARCH_SPACEMIT || COMPILE_TEST - depends on OF + depends on OF && COMMON_CLK help This option enables support for the I2C interface on the SpacemiT K1 platform. diff --git a/drivers/i2c/busses/i2c-k1.c b/drivers/i2c/busses/i2c-k1.c index 6b918770e612e098b8ad17418f420d87c94df166..e38a0ba71734ca602854c85672d= cb61423453515 100644 --- a/drivers/i2c/busses/i2c-k1.c +++ b/drivers/i2c/busses/i2c-k1.c @@ -4,18 +4,21 @@ */ =20 #include - #include - #include - #include - #include - #include - #include +#include +#include +#include +#include +#include +#include +#include +#include =20 /* spacemit i2c registers */ #define SPACEMIT_ICR 0x0 /* Control register */ #define SPACEMIT_ISR 0x4 /* Status register */ #define SPACEMIT_IDBR 0xc /* Data buffer register */ #define SPACEMIT_IRCR 0x18 /* Reset cycle counter */ +#define SPACEMIT_ILCR 0x10 /* Load Count Register */ #define SPACEMIT_IBMR 0x1c /* Bus monitor register */ =20 /* SPACEMIT_ICR register fields */ @@ -87,6 +90,13 @@ #define SPACEMIT_BMR_SDA BIT(0) /* SDA line level */ #define SPACEMIT_BMR_SCL BIT(1) /* SCL line level */ =20 +#define SPACEMIT_LCR_LV_STANDARD_SHIFT 0 +#define SPACEMIT_LCR_LV_FAST_SHIFT 9 +#define SPACEMIT_LCR_LV_STANDARD_MASK GENMASK(8, 0) +#define SPACEMIT_LCR_LV_FAST_MASK GENMASK(17, 9) +#define SPACEMIT_LCR_LV_STANDARD_MAX_VALUE FIELD_MAX(SPACEMIT_LCR_LV_STAND= ARD_MASK) +#define SPACEMIT_LCR_LV_FAST_MAX_VALUE FIELD_MAX(SPACEMIT_LCR_LV_FAST_MAS= K) + /* i2c bus recover timeout: us */ #define SPACEMIT_I2C_BUS_BUSY_TIMEOUT 100000 =20 @@ -104,11 +114,20 @@ enum spacemit_i2c_state { SPACEMIT_STATE_WRITE, }; =20 +enum spacemit_i2c_mode { + SPACEMIT_MODE_STANDARD, + SPACEMIT_MODE_FAST +}; + /* i2c-spacemit driver's main struct */ struct spacemit_i2c_dev { struct device *dev; struct i2c_adapter adapt; =20 + struct clk_hw scl_clk_hw; + struct clk *scl_clk; + enum spacemit_i2c_mode mode; + /* hardware resources */ void __iomem *base; int irq; @@ -129,6 +148,79 @@ struct spacemit_i2c_dev { u32 status; }; =20 +static void spacemit_i2c_scl_clk_disable_unprepare(void *data) +{ + struct spacemit_i2c_dev *i2c =3D data; + + clk_disable_unprepare(i2c->scl_clk); +} + +static int spacemit_i2c_clk_set_rate(struct clk_hw *hw, unsigned long rate, + unsigned long parent_rate) +{ + struct spacemit_i2c_dev *i2c =3D container_of(hw, struct spacemit_i2c_dev= , scl_clk_hw); + u32 lv, lcr, mask, shift, max_lv; + + lv =3D DIV_ROUND_UP(parent_rate, rate); + + if (i2c->mode =3D=3D SPACEMIT_MODE_STANDARD) { + mask =3D SPACEMIT_LCR_LV_STANDARD_MASK; + shift =3D SPACEMIT_LCR_LV_STANDARD_SHIFT; + max_lv =3D SPACEMIT_LCR_LV_STANDARD_MAX_VALUE; + } else if (i2c->mode =3D=3D SPACEMIT_MODE_FAST) { + mask =3D SPACEMIT_LCR_LV_FAST_MASK; + shift =3D SPACEMIT_LCR_LV_FAST_SHIFT; + max_lv =3D SPACEMIT_LCR_LV_FAST_MAX_VALUE; + } + + if (!lv || lv > max_lv) { + dev_err(i2c->dev, "set scl clock failed: lv 0x%x", lv); + return -EINVAL; + } + + lcr =3D readl(i2c->base + SPACEMIT_ILCR); + lcr &=3D ~mask; + lcr |=3D lv << shift; + writel(lcr, i2c->base + SPACEMIT_ILCR); + + return 0; +} + +static long spacemit_i2c_clk_round_rate(struct clk_hw *hw, unsigned long r= ate, + unsigned long *parent_rate) +{ + u32 lv, freq; + + lv =3D DIV_ROUND_UP(*parent_rate, rate); + freq =3D DIV_ROUND_UP(*parent_rate, lv); + + return freq; +} + +static unsigned long spacemit_i2c_clk_recalc_rate(struct clk_hw *hw, + unsigned long parent_rate) +{ + struct spacemit_i2c_dev *i2c =3D container_of(hw, struct spacemit_i2c_dev= , scl_clk_hw); + u32 lcr, lv =3D 0; + + lcr =3D readl(i2c->base + SPACEMIT_ILCR); + + if (i2c->mode =3D=3D SPACEMIT_MODE_STANDARD) + lv =3D FIELD_GET(SPACEMIT_LCR_LV_STANDARD_MASK, lcr); + else if (i2c->mode =3D=3D SPACEMIT_MODE_FAST) + lv =3D FIELD_GET(SPACEMIT_LCR_LV_FAST_MASK, lcr); + else + return 0; + + return DIV_ROUND_UP(parent_rate, lv); +} + +static const struct clk_ops spacemit_i2c_clk_ops =3D { + .set_rate =3D spacemit_i2c_clk_set_rate, + .round_rate =3D spacemit_i2c_clk_round_rate, + .recalc_rate =3D spacemit_i2c_clk_recalc_rate, +}; + static void spacemit_i2c_enable(struct spacemit_i2c_dev *i2c) { u32 val; @@ -147,6 +239,26 @@ static void spacemit_i2c_disable(struct spacemit_i2c_d= ev *i2c) writel(val, i2c->base + SPACEMIT_ICR); } =20 +static struct clk *spacemit_i2c_register_scl_clk(struct spacemit_i2c_dev *= i2c, + struct clk *parent) +{ + struct clk_init_data init =3D {}; + char name[32]; + + snprintf(name, sizeof(name), "%s_scl_clk", dev_name(i2c->dev)); + + init.name =3D name; + init.ops =3D &spacemit_i2c_clk_ops; + init.parent_data =3D (struct clk_parent_data[]) { + { .fw_name =3D "func" }, + }; + init.num_parents =3D 1; + + i2c->scl_clk_hw.init =3D &init; + + return devm_clk_register(i2c->dev, &i2c->scl_clk_hw); +} + static void spacemit_i2c_reset(struct spacemit_i2c_dev *i2c) { writel(SPACEMIT_CR_UR, i2c->base + SPACEMIT_ICR); @@ -246,7 +358,7 @@ static void spacemit_i2c_init(struct spacemit_i2c_dev *= i2c) */ val |=3D SPACEMIT_CR_DRFIE; =20 - if (i2c->clock_freq =3D=3D SPACEMIT_I2C_MAX_FAST_MODE_FREQ) + if (i2c->mode =3D=3D SPACEMIT_MODE_FAST) val |=3D SPACEMIT_CR_MODE_FAST; =20 /* disable response to general call */ @@ -538,14 +650,15 @@ static int spacemit_i2c_probe(struct platform_device = *pdev) dev_warn(dev, "failed to read clock-frequency property: %d\n", ret); =20 /* For now, this driver doesn't support high-speed. */ - if (!i2c->clock_freq || i2c->clock_freq > SPACEMIT_I2C_MAX_FAST_MODE_FREQ= ) { - dev_warn(dev, "unsupported clock frequency %u; using %u\n", - i2c->clock_freq, SPACEMIT_I2C_MAX_FAST_MODE_FREQ); + if (i2c->clock_freq > SPACEMIT_I2C_MAX_STANDARD_MODE_FREQ && + i2c->clock_freq <=3D SPACEMIT_I2C_MAX_FAST_MODE_FREQ) { + i2c->mode =3D SPACEMIT_MODE_FAST; + } else if (i2c->clock_freq && i2c->clock_freq <=3D SPACEMIT_I2C_MAX_STAND= ARD_MODE_FREQ) { + i2c->mode =3D SPACEMIT_MODE_STANDARD; + } else { + dev_warn(i2c->dev, "invalid clock-frequency, fallback to fast mode"); + i2c->mode =3D SPACEMIT_MODE_FAST; i2c->clock_freq =3D SPACEMIT_I2C_MAX_FAST_MODE_FREQ; - } else if (i2c->clock_freq < SPACEMIT_I2C_MAX_STANDARD_MODE_FREQ) { - dev_warn(dev, "unsupported clock frequency %u; using %u\n", - i2c->clock_freq, SPACEMIT_I2C_MAX_STANDARD_MODE_FREQ); - i2c->clock_freq =3D SPACEMIT_I2C_MAX_STANDARD_MODE_FREQ; } =20 i2c->dev =3D &pdev->dev; @@ -567,10 +680,28 @@ static int spacemit_i2c_probe(struct platform_device = *pdev) if (IS_ERR(clk)) return dev_err_probe(dev, PTR_ERR(clk), "failed to enable func clock"); =20 + i2c->scl_clk =3D spacemit_i2c_register_scl_clk(i2c, clk); + if (IS_ERR(i2c->scl_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(i2c->scl_clk), + "failed to register scl clock\n"); + clk =3D devm_clk_get_enabled(dev, "bus"); if (IS_ERR(clk)) return dev_err_probe(dev, PTR_ERR(clk), "failed to enable bus clock"); =20 + ret =3D clk_set_rate(i2c->scl_clk, i2c->clock_freq); + if (ret) + return dev_err_probe(&pdev->dev, ret, "failed to set rate for SCL clock"= ); + + ret =3D clk_prepare_enable(i2c->scl_clk); + if (ret) + return dev_err_probe(&pdev->dev, ret, "failed to prepare and enable cloc= k"); + + ret =3D devm_add_action_or_reset(dev, spacemit_i2c_scl_clk_disable_unprep= are, i2c); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "failed to register cleanup action for clk disable and unprepare"= ); + spacemit_i2c_reset(i2c); =20 i2c_set_adapdata(&i2c->adapt, i2c); --=20 2.51.1 From nobody Sat Feb 7 06:40:06 2026 Received: from smtpbgsg1.qq.com (smtpbgsg1.qq.com [54.254.200.92]) (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 DF1F1200BAE; Mon, 27 Oct 2025 05:48:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.254.200.92 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544118; cv=none; b=ei2v9x8+7HWz0wk7hvq18R1gt5tt1hZO7rEwh+ZAJ14H2tth7PA1V2fSnAYOIz9skjxHMB9IcjmtbdT3yjph/Ty4glyRW0J4s/NGNUGCK/It5IjR+Ss7wMfArvxgpI95+tMH1uTn3BryI4nCxO1dfem6oGDFiYlkQEkalFGFreI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544118; c=relaxed/simple; bh=MdOH9hjjxGZsKypHF4E37v9P1dlEBgH3N1GF9QnLQ1I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HQy+06VxIXUd7VkDm9WiCtI8HbE1G0FeaVIrpcmPF6i9dh/8saUttwpaxBzabfh9WXTErdfxHso2SuxhPbzgdo8E/jGse94l7baPE3nhF4eS9RsXGp/1ZIEi9uIcXpbb7pRqt8W64JgfzNAtzDxsyW+bGdB4TFHh5/c/00lqtDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=Wm/RhQUo; arc=none smtp.client-ip=54.254.200.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="Wm/RhQUo" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1761544106; bh=eaKj1HRL8X/NaEJQudAmylwIeVJyeI2KOmMcJICZMgA=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=Wm/RhQUoGcG8PO/QByJo6fhIhuwJXpgF6DzEnIha/vZ2x+ulJCLrYrVvOeWcbw6FE 6WULhgzf2lybWiP6tfdMN9tUF6WsBRQ8bTT5GfctrVgpbh7MjcwqehHzKXSji+w3li tWYETsl7rO4+tvXVT/KFHelmkM0NY7Yw5zgNxGw8= X-QQ-mid: zesmtpsz5t1761544102t2fd12e65 X-QQ-Originating-IP: 9D8j9F1R1n69BE9ErCI2rUt3ZW+zWcbpU/HCZSqgfqY= Received: from = ( [183.48.247.177]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Oct 2025 13:48:20 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 3398915015117501572 EX-QQ-RecipientCnt: 13 From: Troy Mitchell Date: Mon, 27 Oct 2025 13:48:07 +0800 Subject: [PATCH v2 3/4] rtc: spacemit: MFD_SPACEMIT_P1 as dependencies Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251027-p1-kconfig-fix-v2-3-49688f30bae8@linux.spacemit.com> References: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> In-Reply-To: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> To: Lee Jones , Yixun Lan , Alex Elder , Andi Shyti , Alexandre Belloni , Liam Girdwood , Mark Brown Cc: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-i2c@vger.kernel.org, linux-rtc@vger.kernel.org, Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761544088; l=913; i=troy.mitchell@linux.spacemit.com; s=20250710; h=from:subject:message-id; bh=MdOH9hjjxGZsKypHF4E37v9P1dlEBgH3N1GF9QnLQ1I=; b=jzR4ZlQVr89vvMu1oyh/46l2oRBTv/PLt6B/jfaLsrCb260Lpqf76bKrPnMiKPjKCLa1IOGn7 362mPKO4nFDBUSwhqCn9Eaj+9TsjrPxs1kwQhRvjgWgBJ6flf/Hf9TG X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=lQa7BzLrq8DfZnChqmwJ5qQk8fP2USmY/4xZ2/MSsXc= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpsz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: M8w/1a60XBliYmeKU8zFG7/gdP6ko7FUsxUF4ryDR9j69xddCleJwDRZ HJRS9tFiTGjfBcrSiqFj/VhRSClFqoqydxrNR7EWQLrBXyzuVAgWcBU3rlKBRPPOuBkaGF0 Bxun3fPllqhXW2As/iv3YbZJH4yFNPSXryMMJk3VfrdFKv2OP7L2IL/R9Z07/3RHBDZaFjS ncr4M1J4aSbYdvYojZDSJDZovwiEtrye/N/YhGjBHLHb7zg7LI7s+lfixAlym1nxxN0JF0i h+/+5KNcB+z5jlDaZT87cO49ANMnEVo/OMh1bUVA9pLVvzwmBAP2OM9wWTwOhFxWQPz2ftG 2I0PhBdlLdff00hNk6x/mifq3jowWtO5I2Xpbfz1cUMOGL+VLQDvBbEM8q8QLzTIBlJlqiV on6PITEWDct8mpOChHp0A171V81TXUZvvjmwrvbPNlg/uTosBK50//5NMsbBf3YUexWlpRV yHAx97sNnVINUmSbKaBHBDNDCzxO7AOVvBnW7eeKYnLGCam3N1X5n18P9xQ3XgXBI/zrMhE L4NoFr9OYHkGcGhB1CAuYezmV1s778T+EP0e7a56vhgcQJzBWXZAHO+F+1NoslDLpCxWMwI Fqq4AWddPPxpf7n1J7xtCFU8LlbZu7FfRvBNFjzwJx9xgKA/IjeSgEMz19lHDBIOtm+OkxJ LWvUrTECCxGTGpKXl0Dqu65kUqnTsXpiK2X35Y2zzvKpFV9VQSfRpSb4d6YLPCet2lyik4n AlDkkd9HyT1lowjoG5TtEZsn7NrCwHtUYKm4QMiZURvJexqHbwpQ5Gu+KvryXEn4cSKdDBX LTNC8pisXI4DqMwNBraqxSNkVYghs/biDX6zq0hQ/a/jAPk4Wj10l/BoPAMRSgXys/DnR/J QjhR8BW/vtat/TwwSw/D6fIAYR9aqVVi8fYAnM9kEc71hTO/7iwLSdh0QDbQ+oHof+tNGSY a6I8D0nJjFdWmM4mjzV0nWAE8rysBBoirFiLf8K+CGyu1PP5/ZjIdctDRQylM5XD36FK8t0 AS1veQsODEGSlFIeniCilWFX5X0nY8MPDHOrg/ZVm+vnBfu1Thw25PNvCzWITppE0V3LUqq wAIcYNlNHvryZ5GKrgtvg50zU/bhbsr60opxkyIV9UF X-QQ-XMRINFO: NS+P29fieYNw95Bth2bWPxk= X-QQ-RECHKSPAM: 0 RTC_DRV_SPACEMIT_P1 is a subdevice of P1 and should depend on MFD_SPACEMIT_P1 rather than selecting it directly. Using 'select' does not always respect the parent's dependencies, so 'depends on' is the safer and more correct choice. Signed-off-by: Troy Mitchell --- drivers/rtc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 2933c41c77c88e60df721fe65b9c8afb995ae51e..1ea0123e386f2b140e1a63a182d= 1781f6a17e835 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -409,7 +409,7 @@ config RTC_DRV_MAX77686 config RTC_DRV_SPACEMIT_P1 tristate "SpacemiT P1 RTC" depends on ARCH_SPACEMIT || COMPILE_TEST - select MFD_SPACEMIT_P1 + depends on MFD_SPACEMIT_P1 default ARCH_SPACEMIT help Enable support for the RTC function in the SpacemiT P1 PMIC. --=20 2.51.1 From nobody Sat Feb 7 06:40:06 2026 Received: from smtpbguseast1.qq.com (smtpbguseast1.qq.com [54.204.34.129]) (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 ADAAD2D739D; Mon, 27 Oct 2025 05:48:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.204.34.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544119; cv=none; b=cHhMBgLUOGweqt5osGaQ7gBpIu7VxF9PW11UGE4hfL3vGTgkivREl08bFHB6zJcJCH5UkZ+BubEVvTXrIRqpN5K0edcwtPaLK58Bakchyz4xMDoR4ea9V2HJ4mn8EBl3exGY+EHKES7+y5E627TowyIIh+SLu+RvVYMyQpRV5Ag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761544119; c=relaxed/simple; bh=qrtsu10R5LaOPyR2BzaYp1CqzUTsNYF/L5ew05NJJUo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AWiUlAKtC/0ku3JP39NkKAcQN7AqzzQINHleqBtatfy1EMZpvH4s6/oPGkXUCI71/BU91HFe5fhNZmZ5rmcrf3Qj7ptO7TDCFN5NnbxM8pK/Qc/cHPPFSBrNXMfdxBtSTnHln3dcscMtiXkRQKBrnqobXwyJjAgD4ws7K7Al1KY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=pUYCoWci; arc=none smtp.client-ip=54.204.34.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="pUYCoWci" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1761544109; bh=8I4+vxckyTpw0x/pY85yqvUPHwDZ9K/bKl+VrKCYDIo=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=pUYCoWcii0gmSCr4rzMOnExxEfPJkmmraPZpzj+2BHeLJ5I4czMxvX7GYZGis32vn 3ZCelMt392wZF0U0NYiwMRXFfBO7p9ge1DjQV1bJeZpcv7RK5GqOnc+F2oQqgoRlH1 X75BO1vatXkRwMOkUqwHPekoJ/BgqzV4thi5o/es= X-QQ-mid: zesmtpsz3t1761544106t35d805fe X-QQ-Originating-IP: YdVZp3ZiWrpL2fgu8XYgSa+iDrxlJLKacoE9GHE4FKE= Received: from = ( [183.48.247.177]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Oct 2025 13:48:23 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 7992623468167245455 EX-QQ-RecipientCnt: 13 From: Troy Mitchell Date: Mon, 27 Oct 2025 13:48:08 +0800 Subject: [PATCH v2 4/4] regulator: spacemit: MFD_SPACEMIT_P1 as dependencies Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251027-p1-kconfig-fix-v2-4-49688f30bae8@linux.spacemit.com> References: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> In-Reply-To: <20251027-p1-kconfig-fix-v2-0-49688f30bae8@linux.spacemit.com> To: Lee Jones , Yixun Lan , Alex Elder , Andi Shyti , Alexandre Belloni , Liam Girdwood , Mark Brown Cc: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-i2c@vger.kernel.org, linux-rtc@vger.kernel.org, Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761544088; l=1089; i=troy.mitchell@linux.spacemit.com; s=20250710; h=from:subject:message-id; bh=qrtsu10R5LaOPyR2BzaYp1CqzUTsNYF/L5ew05NJJUo=; b=fllL427rT0KQnek2I4ijNMRL2nD1KYzgbDwqbJPFw7byVGjmzkjK+CbYAhRjGLBzBqGMg/HgP zDN2oRRgWXyCpl7YahtbGGmMAbR/PWEpuDyjWxNAvt5IxWAUtxeBZeC X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=lQa7BzLrq8DfZnChqmwJ5qQk8fP2USmY/4xZ2/MSsXc= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpsz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: NN5tIm2Cw++mg/sU+vivbDCQmqF2smMM0eLHJpeTAN9Xu87NjCaKBV70 4rkrUs5D5FtXTZaUJgvPNz4FlaPQQOrZ3v2IzBVnuvlFedRwam+hvPt6ZnFtY81GUn+kSHT ZSaT2jnRiSBxJ9hajpnxTvL3qd9T0B0l+Sfl1+gWRivqDqVbxrlogONZKzgLEWRalg7Mcs1 p7w+kN46zuzTlHyAB2UA/fhuJKuiaAH227vTdEGzrPCxvP9lBYRgpLnPSOqUcn7iDoHHOWU imavoxirJvg2ESCAHCOdPqS3ZMPP0vgcNFTf9e4mCRSYk0PqvvpplKki56eF2zSlyVfZo3+ pGwM3q2816M/R7OVwtpNViFyw5+1Y/cJKXwq0F9TDyy6UY3UFSSdFUDIkJGDNVyFBOBbiEC VPXHLKJKogmr+TD7TUyKOT2geYXflcgFrmJ9d4qmF33UKnZ9+d0ZAKdyBsWI4VHWdei6LFO tkORQq9YGDxrPGDQJ1Sa2huXb3VS5PWtjobyeHHe4F8TMj/UO/cn8XJat2r5TExZC2andTE QEJhkUdx8wmaKIdeYni+Fn3Ra0BN4VhE8E/AotQdlUdRT39oNht4w3fb5SlHRZpKOkZPORz WuTkhes4TsorE412XR1RLNzBzA+t7QPpB6jTMlnIPuXpijBS71pzs+Bw+kYD+8eRR7b52LF 4ETd5S/Qvamn0ABvAMECRMt46SsGTTdOMB+Day8pY3jLD77vHGbr4pbkKR2jlNgg9MKiAAa +h5Sw1zBrOrCNetvA4CEXpRINdpbFmJ6zkM0yiZ5fN8bXZaBQDVOtVDq4Wzz0fOdleFK6Hw dHzHLp3xNY01iKlsxjdBFw+yXmNB9LdGmQERgKoVWvNcaOfhbAoiRwhF/VLVhrGvZ5rdtlY +hojM9Acei4GAvIiitr0lilqS4aysTri4WEQjYsO0gChCJLo3vvgPZ5qDwzCDkESnx/+01f mfht22zvCQ719zzqpWXJ9aIBi1N4uGg51DAAiEZxSXqCyxVS3EPq4BbddHk/EcNpa58HVbU 88VVr1RLb0e7/cISnCzNz30r5Hcq3aWE/hH6ROysnhykvP5G+abY/k/u39AvREBEWZQrCap lWsnRQpZqN3XccrgovkaMeX73UAqfb1mOHmxIalYVSO3WbybOXBxr99ZtgzVM3Ncg== X-QQ-XMRINFO: NyFYKkN4Ny6FSmKK/uo/jdU= X-QQ-RECHKSPAM: 0 REGULATOR_SPACEMIT_P1 is a subdevice of P1 and should depend on MFD_SPACEMIT_P1 rather than selecting it directly. Using 'select' does not always respect the parent's dependencies, so 'depends on' is the safer and more correct choice. Since MFD_SPACEMIT_P1 already depends on I2C_K1, the dependency in REGULATOR_SPACEMIT_P1 is now redundant. Signed-off-by: Troy Mitchell Acked-by: Mark Brown --- drivers/regulator/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index d84f3d054c59d86d91d859808aa73a3b609d16d0..f5ee804077cfcb300ca5cf5d865= b6684943cd749 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -1455,8 +1455,7 @@ config REGULATOR_SLG51000 config REGULATOR_SPACEMIT_P1 tristate "SpacemiT P1 regulators" depends on ARCH_SPACEMIT || COMPILE_TEST - depends on I2C - select MFD_SPACEMIT_P1 + depends on MFD_SPACEMIT_P1 default ARCH_SPACEMIT help Enable support for regulators implemented by the SpacemiT P1 --=20 2.51.1