From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 585D930102C for ; Mon, 25 Aug 2025 17:21:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142467; cv=none; b=b9hjCJlAX0FjI2M6m7l8ywl9czy1hFqZsETZC26PX9ks4gZvxho/rJ+y2ykak1+ew6TPlck6nLgz5D09nsSe27a5ahTcz7RL2/I67w5kUWzohGVGdkcGi9T+Nq2S4dmGTkdIxDpSegj1VqlTZxSTnOvRJy4AIndch42tUahoFm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142467; c=relaxed/simple; bh=aevVzKjUd0a80xeiBDUHuCUKYX/2tnRSDd9e11O0KpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tilGFMprxY1Z0K1lUNQfGnjzdzw5k+ng0mreJBK49U/1zzpUNsGNryJzfvKgBboM804Gx3U8fcFd6I3jbpFUJnFk0zrKh/PLpiNcrMOrDgO9VLtpSlIh7wX2j5GIilsHPA0782NWtlhaUqa1WrFJylaobUMpYaJ+ZIu6twwScmE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=VuCApZpS; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="VuCApZpS" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-8844ee2cb61so124350439f.2 for ; Mon, 25 Aug 2025 10:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142464; x=1756747264; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dYY6dLm3K5+01OXDQO8emoD1CldXvYvk8MiFXHZCE9A=; b=VuCApZpS9KHe3c1/XYHvZ5V89HUpS9vSXiEiCpMAmOfQcaKvyMQ8xQIGF07IQthPto KyRqiLFALr4HoCwz+KpZoCGpPsXYKb1vBXl3GeNlzycUYdH/9B5KGlRjGp8bMbM4huqv 3XllBsTJB22GjesGHGcCGiEOGFBu5STw6myyOXySdzl+qc580SBJTMUMOA4z8z6nSLeB h2q7eym4hnkRDEXCmKS4uKc+GYhcminoGlVCVZNqI0TVPP/BcQfwW2uljC33W/JPmv7r ytdG2GuF5LyXxowEOSRIyp2FxUq9/WDZQz9xaLiTxtNal8i2O6lpjmWsxDzk6x0hdlza gNUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142464; x=1756747264; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dYY6dLm3K5+01OXDQO8emoD1CldXvYvk8MiFXHZCE9A=; b=J4AtW8ZQH+WiXUZhax2OBwdEg5M8eU04GMXpLKeF0sW7OEEAM7KZ7CexewQSW9I2Qf bgruV6sqVm3oClzPfWRsKAD64C+1l7dPoYifK+RdgNhukHpVUxZItW99RtwHDHVyNjL6 MAxwwbBlaYRjr2ZeA94cKu3Sb4WGP6FH20MToFTWAzVh4eDELXnpc6B0AvqKBRHu9BTI vFR+/7OAOVt1bdIkhWWjXao6YQOD3q2KrtkA85hGmDzjgRS6JyP24G5+5H14CnQM7fF6 K6yPYTqVIk9n29aBjPMDxysL//YMslsmDovUJ4sB1b7jY2dGzB8vD1qc4R/YEmdKcmhS mXbw== X-Forwarded-Encrypted: i=1; AJvYcCVuwAEupq55UWPCJ5BiefOjsA1oQvtDvEbkJHREqFuf/Jfn8LfoAIg/OeCcQfCJUdaiD+YnaZvVJFs9Vvo=@vger.kernel.org X-Gm-Message-State: AOJu0Yw683PZo22P0M57c4dqRkYwXd5rn1QHCSEDgGsPxDwfWTtfgzAK F6OZZnJyTwUNGTUJbY/rO36CI/YHV2II1D8f8YujmR4+bPdvru+KIDKtWAGBTKG5NQU= X-Gm-Gg: ASbGnct0R5Z2SnbREudcf9tVJVDdSlReALuCe9a1sE3ieAszGTmHVzeV4vM+Gge8vI4 nU/kovtZ8oUaACNaCLODhWygLuAp1cZYx5Vjx7uHKfFumv0P8DoRavbKYZ8KzCXCu6VSA1VnqYb lOqlcbbdfBrWHF6I9d0v0c2kQ9cv1OUad9cLJdOBhAdT+ZB3j5ddXjHey3L+sataZFb3rb0vCD2 arfrYMFGaMqDzpSnhj8zVLlgC/58vWL6nI+EZLYMNCBpRscZLkPDfcLqTMwiQhHaWqGPBEGu6m6 A/PC+pfTLv0cRIzRwyrJfhQo9DSF6ZNmNbTZ25eLxG9N1y2ksXWk1U4t91ACAsz8I3WIUgGfu5n RmGnh7U5r41v/KyYSxXiwDtVWJkaF2nrwS1+aGHLY3uxC+gcoeZjIA7B5oS8Qgy7DEZJZboEPTi vW X-Google-Smtp-Source: AGHT+IGBXlU1oq7Hq3Hx+zyfwUPdCk2dB9M48YVwvfYPzgOuu9eQp5VooSY0xSGbyY2yI7LdGuyEug== X-Received: by 2002:a05:6602:29c7:b0:886:c53c:9171 with SMTP id ca18e2360f4ac-886c53c9338mr1220679439f.17.1756142464463; Mon, 25 Aug 2025 10:21:04 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:04 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 1/7] dt-bindings: mfd: add support the SpacemiT P1 PMIC Date: Mon, 25 Aug 2025 12:20:50 -0500 Message-ID: <20250825172057.163883-2-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable the SpacemiT P1, which is an I2C-controlled PMIC. Initially only the RTC and regulators will be supported. Signed-off-by: Alex Elder Reviewed-by: Rob Herring (Arm) Acked-by: Troy Mitchell --- v13: - Update Troy Mitchell's e-mail address in "spacemit,p1.yaml" - Add Troy Mitchell's Acked-by .../devicetree/bindings/mfd/spacemit,p1.yaml | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/spacemit,p1.yaml diff --git a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml b/Docum= entation/devicetree/bindings/mfd/spacemit,p1.yaml new file mode 100644 index 0000000000000..c6593ac6ef6ad --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/spacemit,p1.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: SpacemiT P1 Power Management Integrated Circuit + +maintainers: + - Troy Mitchell + +description: + P1 is an I2C-controlled PMIC produced by SpacemiT. It implements six + constant-on-time buck converters and twelve low-dropout regulators. + It also contains a load switch, watchdog timer, real-time clock, eight + 12-bit ADC channels, and six GPIOs. Additional details are available + in the "Power Stone/P1" section at the following link. + https://developer.spacemit.com/documentation + +properties: + compatible: + const: spacemit,p1 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + vin-supply: + description: Input supply phandle. + + regulators: + type: object + + patternProperties: + "^(buck[1-6]|aldo[1-4]|dldo[1-7])$": + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + unevaluatedProperties: false + +required: + - compatible + - reg + - interrupts + +unevaluatedProperties: false + +examples: + - | + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmic@41 { + compatible =3D "spacemit,p1"; + reg =3D <0x41>; + interrupts =3D <64>; + + regulators { + buck1 { + regulator-name =3D "buck1"; + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3450000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + aldo1 { + regulator-name =3D "aldo1"; + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-boot-on; + }; + + dldo1 { + regulator-name =3D "dldo1"; + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-boot-on; + }; + }; + }; + }; --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 633B530274D for ; Mon, 25 Aug 2025 17:21:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142469; cv=none; b=B9LcpBm7besZ142iWh6iOuzj3PQBRvHVA5G3BYnWG/3xAXWlT8AS+M5Ze17yBfvRGnPj4gAf7cr1mipvcOEUdt0swv2H77FXkYQsY5aAtlIAkEo4mnmLf0IsXjQDR6aGxcAzC1HKK4dG732Nn+BbtBZdwjZO9rC+A/loVuCrjZQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142469; c=relaxed/simple; bh=kLbEyV4+fFyC+TUqNZrAw1uQ1gefiZUYe69lZaahSEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LPeGHUCcBiUblvTw6eLtWPZUkI0yr77neahWe1qNTORRCc140a1H93N4K3hsnoSisJe1+qFaU380eeDzZ3fhlPPp9SMYUXzX0nYl1XHUEbf6t2HlN6NrKdiO3PcXyaKjjtzwgCgMDtSHVYymoTjBTKyln+934iHMgIk8DpZgxkc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=ypETvari; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="ypETvari" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-886dd6e5c2dso102425439f.3 for ; Mon, 25 Aug 2025 10:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142466; x=1756747266; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U0sFVnEsjQI8DSCz2p8AAK/l9KvhsbeOnyoF33jmhL4=; b=ypETvariMS+qOLk4hmMTSJXV6VuE2moYdA02khE7EyYxSyv2NFMKubpdlD1Tf2OMdl 0MmCFlAAdMuGpsbezSysgEK4sUWZCE911mPyRazd/aXLRJoDCRstz+z09/KE3oW3MLRY vuUf1Y2ljJ+qnKCgUcFv2C6u/xuHpSf3WxUYx40fcj5x93edLtahpjuqmd5PU5+HIWPR c+eMZFwuMMKXyYL66OiZYgzzstSVzG/HGTEcRHfx3iWUrmk7fTWWUp6PiRSgsLqisQSh 9mBFtzy80Njg00nFU5Xa0EdkHLX/ymRUjo7GbMcXpgLrayRUEGbYuf4kTDUo8y5SuxeP E4Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142466; x=1756747266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U0sFVnEsjQI8DSCz2p8AAK/l9KvhsbeOnyoF33jmhL4=; b=RhJyfD3QwXnpAvzBhZfLU6RnMsrNXT2l/ivJKRl5Mc0qxUKsxWKFcLBbjQyyGERFq1 vel7dppZ+DnMEI2ryuCPyqbg2+8+KF2gLng/oURcayb/qC7t1EFdIGEZCqbGwid4B96z FD3IbTPH1UxEXQ1vqJEU9AU/A7j1XgPvgqLaPUs+WG+AQUcuXbbKQ7yqdZPeUcxjhVW2 bqPskZ7Iho+eTSNqepLs70xcRGrcMEJogWo/LO5gOkvQRgJpkISR5zpbv3ueLkk3TF/N ovEGhJTpNqQ2aTqlRRcp2MHl8R+UsOiCP5eHXz2+nHMqNN6x66SvQxURrnhruGDzaFt5 9mWw== X-Forwarded-Encrypted: i=1; AJvYcCW5I0nY/xJlHxcTeX5MiVsW4Kx8+YPtoXk1JPvapd6f2p+LytHUrK+jUkjZ7l34kyMkuRUMd6v0E9dmXKM=@vger.kernel.org X-Gm-Message-State: AOJu0YwGDtXVBv1EK0aM1ZKDpDPBgktF8sRtTVebE6wf4s0OZ9uv+4gy Ww+K1eB7gHf5wCfJvfN31jqprQsBkb9+ENI1KvDUrWUrD8c2HWWOHo9GUUdse3K7TuY= X-Gm-Gg: ASbGnctACMfYhJuYObPoJkvuJJqRXdNO1RAFMyH6xdQbVo8cZYAkmSLs5TDbg3R1W9E n3/HC11GrV6zGnsk1gAKkgWKaivCetC6gALK4yfQv2RLBn84heUj7AekJzXISo5fHah5kHEZl3g cSQyGy8c9ptRA0rCBgk0jLx5tIUa7cLGLMIhAS0+f1Fe5riLdD27Pm/kK1KowWMFMaa3Flm84/1 mWyoGekkoRJLDNETC3VCAWL5ru42Wmmt00mKL6u/iKKcPnq08YYutiazVXYOLRrMgmWboVqU4uW 6sSIpMYRuhCNWk51o2+jp80D4/scUr4Kllv+6x40uXZz3VpvXUH8Lb7fbOklhp1BcFxHpi2xe0a 5QARu3sC9O5+KKQ6eKHDUOuL8WEK0zHIjAP0utooh06Zt8II+A1IyF+xoiXptFoi+9Q== X-Google-Smtp-Source: AGHT+IGWgOuFATu1r9Jbw0eEl71eCRbkbibShP98TgfmuQSt5odlFDdF/6MhlxOuqMidvthIxLdvqg== X-Received: by 2002:a05:6602:2c13:b0:886:eac3:d5d with SMTP id ca18e2360f4ac-886eac30eb2mr130369839f.2.1756142466361; Mon, 25 Aug 2025 10:21:06 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:06 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support Date: Mon, 25 Aug 2025 12:20:51 -0500 Message-ID: <20250825172057.163883-3-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable support for the RTC and regulators found in the SpacemiT P1 PMIC. Support is implemented by the simple I2C MFD driver. The P1 PMIC is normally implemented with the SpacemiT K1 SoC. This PMIC provides 6 buck converters and 12 LDO regulators. It also implements a switch, watchdog timer, real-time clock, and more. Initially its RTC and regulators are supported. Signed-off-by: Alex Elder --- v13: - Have MFD_SPACEMIT_P1 depend on ARCH_SPACEMIT and select I2C_K1 drivers/mfd/Kconfig | 13 +++++++++++++ drivers/mfd/simple-mfd-i2c.c | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index a403a3daedd52..e5cdefbea71a1 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1238,6 +1238,19 @@ config MFD_QCOM_RPM Say M here if you want to include support for the Qualcomm RPM as a module. This will build a module called "qcom_rpm". =20 +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 + contains regulators, a power switch, GPIOs, an RTC, and more. + This option is selected when any of the supported sub-devices + is configured. The basic functionality is implemented by the + simple MFD I2C driver. + config MFD_SPMI_PMIC tristate "Qualcomm SPMI PMICs" depends on ARCH_QCOM || COMPILE_TEST diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c index f7798bd922224..63ac263888606 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -93,6 +93,22 @@ static const struct simple_mfd_data maxim_mon_max77705 = =3D { .mfd_cell_size =3D ARRAY_SIZE(max77705_sensor_cells), }; =20 +static const struct regmap_config spacemit_p1_regmap_config =3D { + .reg_bits =3D 8, + .val_bits =3D 8, +}; + +static const struct mfd_cell spacemit_p1_cells[] =3D { + { .name =3D "spacemit-p1-regulator", }, + { .name =3D "spacemit-p1-rtc", }, +}; + +static const struct simple_mfd_data spacemit_p1 =3D { + .regmap_config =3D &spacemit_p1_regmap_config, + .mfd_cell =3D spacemit_p1_cells, + .mfd_cell_size =3D ARRAY_SIZE(spacemit_p1_cells), +}; + static const struct of_device_id simple_mfd_i2c_of_match[] =3D { { .compatible =3D "kontron,sl28cpld" }, { .compatible =3D "silergy,sy7636a", .data =3D &silergy_sy7636a}, @@ -101,6 +117,7 @@ static const struct of_device_id simple_mfd_i2c_of_matc= h[] =3D { { .compatible =3D "maxim,max77705-battery", .data =3D &maxim_mon_max77705= }, { .compatible =3D "fsl,lx2160aqds-fpga" }, { .compatible =3D "fsl,ls1028aqds-fpga" }, + { .compatible =3D "spacemit,p1", .data =3D &spacemit_p1, }, {} }; MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match); --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21E6C302CD7 for ; Mon, 25 Aug 2025 17:21:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142471; cv=none; b=qdIDYyq4IfOe/c3/whsWeIQsIMOl/IB/Jm7ooocgyumj5qX0b+bSniem46pQIILRjMbpxMwB+d0xeeN46O5c4fwPegErubQ4/FJueULjuHBlxC+sG0H4deneWAz4nonp8UJt2ufSw8qv+034cip9/14pCgW50y8Ew9OoxvrL9vo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142471; c=relaxed/simple; bh=LWHoX+sjYbPKuhsdcDa5s5hANOP0V3J33+n70TdHLe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nOi5FCD7N1+IjkCunmAxzKowxwvE9WWUReXGPw+/JAhmubC/QyvVWbZkV/Y3eLkE7igr8ZSz9DJMOs8fDQh/8zm4nfysZ5770tslItMwZM3HifRwJOUu4V1OxSTOV8mCtN2BI0M+/109/KA0Obaj7yk2kPYqoNTziecwELQc4MI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=vDQIddHq; arc=none smtp.client-ip=209.85.166.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="vDQIddHq" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-3e571d40088so42002145ab.1 for ; Mon, 25 Aug 2025 10:21:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142468; x=1756747268; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QXy+VdAdhd7u/OU26gkqfoc7kQ0LeV17yYrZSTQJAso=; b=vDQIddHqwXGjx6KvrecJNIn8tRldfI/JBnuIdUsRn2l2pdlXhH029btXSYZDtpBncO AqnSoN5WsHPv0aZmyKI/CEdAAov8hwGQPaisgtkC3d5fuE61dnr6lPFp7/JYFK9z403I WMNgvDI/9Ee/AXCOi2l35jQZf8RCJUW6hyd4eZ1vhR8166Ew0svP4BFPwGuAunBlYFkp exN7qE6TySRA2e9SX97LkI5fIOpkSFYJkR8eepvh/i5/L74bbjpaCrOaqJS/am0D9Dek 6XWAe7Hc8r9r/MnbX71dV0lJABs0cSftwjvCm6dmU33tZz9VfAhevvx40Sa54rQMtTbG NYdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142468; x=1756747268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QXy+VdAdhd7u/OU26gkqfoc7kQ0LeV17yYrZSTQJAso=; b=wOLM1cqYFFwoxLDGscCHKw3WvKmanMzQZWUwiA4fFKgWnGa0sYIiDMjU8OxmCS+Ait +mjE3ibIyqV9q72ImTfiP5WVOL5tMvJEVdi3+C2ZLg3/tG1c5iBnyfNJFTz0q3/cGSIE QBUl2YHLQYeUBsiiQ9mpFZZWqJXGevf1dCR0k+L3fCu9pzHjHrKYSvjS3E4PgIDft8SS rBI6qftmwtIqt9t3gzWvGQCa0vTPH6BGVAtGodmm17xg/eO9TLblhSMe3DCx9oZCgOBz CKaEG+eABjmgK4oPpMQNM2QhbjKYvGlaqSMNZvdAob+sv+gSfMZkY+Em4oPlpyN4nKW0 w5Qg== X-Forwarded-Encrypted: i=1; AJvYcCUK+NyekLmgNavB+dxVU+3EBCW66Z7ymXzBXiYDcUHYhJZC9yt/awJk2gvipbUYcP1+8TV2pA1NZarHIpU=@vger.kernel.org X-Gm-Message-State: AOJu0YyPs87N7d8UKkrz9QaYTSc4f2E3qC0m+ZI0uQKYyfWYU0mGTEVE ZglDDo0MRjUIte+5CfuKXDocT03PGf867HUipsPYEfuMVjkJ59pvwHdggVpmtDlX8ws= X-Gm-Gg: ASbGncubt1eHZCvyd6kTCqL9HbrbneFvboJF7IFIvx5oVz/q4MQa0jFrG0rUe8LklJG mlsArPYKwlez+GIluPlBjCNNK1Yk+1/JxRrtP5Ez8E9UEGZBfIkF8O1Ev6txgerpY1mqI5L4sPT vjDF3cmAxH2c3Po1LBXYlzYL+J9F9lKyX4tkKXLNJgjO9+cWxCbDjG/CzYHcC1StWUu8ibrVXQJ uVxveT3r0UvoeqsyOfiu6Khgpx/IuFu8+FPJ1uTu7z4VJnUii/nNIxTXVRH7lWveme/2TojRgjD D+nQH8RFzbwL9/V1TOKtJf9kBRuPoMTcBNDPTSc2jZjpfKW8HJe5gU3P/Bc/qEQhB/x7oyUjQdt EWX/IJ4q0XmQYeFcI7jKvE4IQSGSrzZCsdB9bC0K5iZ3mzyUyGbz52o1l3aPiFAdFgKPm/YSJTF r0 X-Google-Smtp-Source: AGHT+IHoFmaLa+PK1sp0rjos+pgvmeypA/+dReczs9jaPBj2sO9sfvd3GZ8CbQ1JUiKdqPbu4pTeHg== X-Received: by 2002:a05:6e02:1607:b0:3e3:fd25:f6a with SMTP id e9e14a558f8ab-3e921a5c447mr179490325ab.11.1756142468057; Mon, 25 Aug 2025 10:21:08 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:07 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 3/7] regulator: spacemit: support SpacemiT P1 regulators Date: Mon, 25 Aug 2025 12:20:52 -0500 Message-ID: <20250825172057.163883-4-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for the regulators found in the SpacemiT P1 PMIC. This PMIC provides 6 buck converters and 12 LDO regulators. The PMIC is implemented as a multi-function device. These regulators are probed based on this driver being named in a MFD cell in the simple MFD I2C driver. Signed-off-by: Alex Elder Reviewed-by: Mark Brown --- drivers/regulator/Kconfig | 13 +++ drivers/regulator/Makefile | 1 + drivers/regulator/spacemit-p1.c | 157 ++++++++++++++++++++++++++++++++ 3 files changed, 171 insertions(+) create mode 100644 drivers/regulator/spacemit-p1.c diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index 223a500370d09..92a0720823f04 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -1423,6 +1423,19 @@ config REGULATOR_SLG51000 The SLG51000 is seven compact and customizable low dropout regulators. =20 +config REGULATOR_SPACEMIT_P1 + tristate "SpacemiT P1 regulators" + depends on ARCH_SPACEMIT || COMPILE_TEST + depends on I2C + select MFD_SPACEMIT_P1 + default ARCH_SPACEMIT + help + Enable support for regulators implemented by the SpacemiT P1 + power controller. The P1 implements 6 high-efficiency buck + converters and 12 programmable LDO regulators. To compile this + driver as a module, choose M here. The module will be called + "spacemit-pmic". + config REGULATOR_STM32_BOOSTER tristate "STMicroelectronics STM32 BOOSTER" depends on ARCH_STM32 || COMPILE_TEST diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile index 54e67e1c0c676..44c750f200421 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -165,6 +165,7 @@ obj-$(CONFIG_REGULATOR_S5M8767) +=3D s5m8767.o obj-$(CONFIG_REGULATOR_SC2731) +=3D sc2731-regulator.o obj-$(CONFIG_REGULATOR_SKY81452) +=3D sky81452-regulator.o obj-$(CONFIG_REGULATOR_SLG51000) +=3D slg51000-regulator.o +obj-$(CONFIG_REGULATOR_SPACEMIT_P1) +=3D spacemit-p1.o obj-$(CONFIG_REGULATOR_STM32_BOOSTER) +=3D stm32-booster.o obj-$(CONFIG_REGULATOR_STM32_VREFBUF) +=3D stm32-vrefbuf.o obj-$(CONFIG_REGULATOR_STM32_PWR) +=3D stm32-pwr.o diff --git a/drivers/regulator/spacemit-p1.c b/drivers/regulator/spacemit-p= 1.c new file mode 100644 index 0000000000000..d437e6738ea1e --- /dev/null +++ b/drivers/regulator/spacemit-p1.c @@ -0,0 +1,157 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Driver for regulators found in the SpacemiT P1 PMIC + * + * Copyright (C) 2025 by RISCstar Solutions Corporation. All rights reser= ved. + * Derived from code from SpacemiT. + * Copyright (c) 2023, SPACEMIT Co., Ltd + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MOD_NAME "spacemit-p1-regulator" + +enum p1_regulator_id { + P1_BUCK1, + P1_BUCK2, + P1_BUCK3, + P1_BUCK4, + P1_BUCK5, + P1_BUCK6, + + P1_ALDO1, + P1_ALDO2, + P1_ALDO3, + P1_ALDO4, + + P1_DLDO1, + P1_DLDO2, + P1_DLDO3, + P1_DLDO4, + P1_DLDO5, + P1_DLDO6, + P1_DLDO7, +}; + +static const struct regulator_ops p1_regulator_ops =3D { + .list_voltage =3D regulator_list_voltage_linear_range, + .get_voltage_sel =3D regulator_get_voltage_sel_regmap, + .set_voltage_sel =3D regulator_set_voltage_sel_regmap, + .set_voltage_time_sel =3D regulator_set_voltage_time_sel, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, +}; + +/* Selector value 255 can be used to disable the buck converter on sleep */ +static const struct linear_range p1_buck_ranges[] =3D { + REGULATOR_LINEAR_RANGE(500000, 0, 170, 5000), + REGULATOR_LINEAR_RANGE(1375000, 171, 254, 25000), +}; + +/* Selector value 0 can be used for suspend */ +static const struct linear_range p1_ldo_ranges[] =3D { + REGULATOR_LINEAR_RANGE(500000, 11, 127, 25000), +}; + +/* These define the voltage selector field for buck and LDO regulators */ +#define BUCK_MASK GENMASK(7, 0) +#define LDO_MASK GENMASK(6, 0) + +#define P1_ID(_TYPE, _n) P1_ ## _TYPE ## _n +#define P1_ENABLE_REG(_off, _n) ((_off) + 3 * ((_n) - 1)) + +#define P1_REG_DESC(_TYPE, _type, _n, _s, _off, _mask, _nv, _ranges) \ + { \ + .name =3D #_type #_n, \ + .supply_name =3D _s, \ + .of_match =3D of_match_ptr(#_type #_n), \ + .regulators_node =3D of_match_ptr("regulators"), \ + .id =3D P1_ID(_TYPE, _n), \ + .n_voltages =3D _nv, \ + .ops =3D &p1_regulator_ops, \ + .owner =3D THIS_MODULE, \ + .linear_ranges =3D _ranges, \ + .n_linear_ranges =3D ARRAY_SIZE(_ranges), \ + .vsel_reg =3D P1_ENABLE_REG(_off, _n) + 1, \ + .vsel_mask =3D _mask, \ + .enable_reg =3D P1_ENABLE_REG(_off, _n), \ + .enable_mask =3D BIT(0), \ + } + +#define P1_BUCK_DESC(_n) \ + P1_REG_DESC(BUCK, buck, _n, "vcc", 0x47, BUCK_MASK, 254, p1_buck_ranges) + +#define P1_ALDO_DESC(_n) \ + P1_REG_DESC(ALDO, aldo, _n, "vcc", 0x5b, LDO_MASK, 117, p1_ldo_ranges) + +#define P1_DLDO_DESC(_n) \ + P1_REG_DESC(DLDO, dldo, _n, "buck5", 0x67, LDO_MASK, 117, p1_ldo_ranges) + +static const struct regulator_desc p1_regulator_desc[] =3D { + P1_BUCK_DESC(1), + P1_BUCK_DESC(2), + P1_BUCK_DESC(3), + P1_BUCK_DESC(4), + P1_BUCK_DESC(5), + P1_BUCK_DESC(6), + + P1_ALDO_DESC(1), + P1_ALDO_DESC(2), + P1_ALDO_DESC(3), + P1_ALDO_DESC(4), + + P1_DLDO_DESC(1), + P1_DLDO_DESC(2), + P1_DLDO_DESC(3), + P1_DLDO_DESC(4), + P1_DLDO_DESC(5), + P1_DLDO_DESC(6), + P1_DLDO_DESC(7), +}; + +static int p1_regulator_probe(struct platform_device *pdev) +{ + struct regulator_config config =3D { }; + struct device *dev =3D &pdev->dev; + u32 i; + + /* + * The parent device (PMIC) owns the regmap. Since we don't + * provide one in the config structure, that one will be used. + */ + config.dev =3D dev->parent; + + for (i =3D 0; i < ARRAY_SIZE(p1_regulator_desc); i++) { + const struct regulator_desc *desc =3D &p1_regulator_desc[i]; + struct regulator_dev *rdev; + + rdev =3D devm_regulator_register(dev, desc, &config); + if (IS_ERR(rdev)) + return dev_err_probe(dev, PTR_ERR(rdev), + "error registering regulator %s\n", + desc->name); + } + + return 0; +} + +static struct platform_driver p1_regulator_driver =3D { + .probe =3D p1_regulator_probe, + .driver =3D { + .name =3D MOD_NAME, + }, +}; + +module_platform_driver(p1_regulator_driver); + +MODULE_DESCRIPTION("SpacemiT P1 regulator driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" MOD_NAME); --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA47F304BB6 for ; Mon, 25 Aug 2025 17:21:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142473; cv=none; b=RxgS1zFm1swcG5/vHKgx5Tmf9cn+MJsapgsu2AG9oo6erm8a0Z3gYTCWulKwUVee8pJT5NCR/zWo0dwhQVgiIX0CvGq6iK1HP+y8ce8b24APKbffjqggKyd/siTrcGczxDSEi4Q/1FS68PJvIL/2I7CGr+tkxO2jCQ8/qf2tHa4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142473; c=relaxed/simple; bh=C67aKO7FCd5ZDQiMSKTLq4HBKkrfUiLt/UEjYJGWykc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FR3a3h+CiwjgbQm1hwZEEoOM2skpZs9EnG2rrs7ztNiQrARcTjL6z8f95WKkLDo0oYnmtF+4oAXKOITiZh0meaAHThoDlfB/W9NVVQ8RlD9lI3q93d05U/qfa0nUzoXYaJxr9LPadujq9uM7p9QTAgRwUBGexJxNKz5QWt6HQrQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=TsUF/9MD; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="TsUF/9MD" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-88432e29adcso106467839f.2 for ; Mon, 25 Aug 2025 10:21:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142470; x=1756747270; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=skQxKpPrKNdpCm7T4rAP4k9qKdZRbQN/uiLC1I5fUpk=; b=TsUF/9MDlESmOX2YMiOpJat5bUQrMxYTOGLxexQQrKXrAAnZ93wZSO23DyGh2u7R9Y oLomoHc2OYp3ux2qliIqwqEnvJBoqoQUNiqzew2Y9VHsLyF0X0m3Mx6LxiE8DQH7/GJE h2qlvtQVWthfpQwYIjXJTTXwfrY3CAg9O7+Zi6XZ1Zodi2cIBtSfK/+gMTZhsHNfTcmY lb3jFrmtLdGhXEL5UvvCdhfpQ8JHn3XSGVPesf6jiBLDfOEK2id/qg0mJoy0nuzJMh7T 9o0doqc8Xx1hyXADZgSzX4sCzmWXcExxEDZedGve7K+c3KNjPQdlT17A5dZWGg8DyMMl w0JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142470; x=1756747270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=skQxKpPrKNdpCm7T4rAP4k9qKdZRbQN/uiLC1I5fUpk=; b=p+XPlksg/Y6gSe/c/m94Er8kV6/mxB7OksF41NCzHI6iGLTxzNbAlybOs+WoysHSA7 Zk7DVbto5TzwU+2G5xJRhtwqvChdliRJJRAeK/3H6sIAiZFvv16JSgLf7sKJgHc8mhlQ yh+RCVc4yhI13iLjMGOEUuJHVf40sRfmG4WeaHdw/yGtbrnKouMpf6nDGhBgeTyYjgJt wylxNX2T7p6bWp6+nbnd8A6bdf84RjY+69YyfeIXMNnQqWlzgn6VdKBZPi8XY50yI5+O ZjxEboLgvhE+jldwaAMYbljemnP7TapQe79F3nB9/AwX8WZVdc7k2MPc4GZaaHSZiPSb asKQ== X-Forwarded-Encrypted: i=1; AJvYcCVPLUljrMPeLHIbVu6t0TY/4rXeC6uM7F1/jxIwSv6VUZjZflbmnE6wCzxocvQz3n9EkQyEDkhBVKLI50I=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0uobCefbS+jIH+wug2nwFYfXip3+DCNxo7PLft8NyRYRmj0FP 4wTbgEacb6rOtKiZ+OxBo1fyfgzMvgHcoEX3IICmFFdtvIzFqznjldqboVOk+3paNLE= X-Gm-Gg: ASbGncsuZMwEN3i7eoxPFDg3Y8OacJuPwFpMcs5J4ULCyLWsCM8k2fHFPaQ6562vwun 1Xmt6Q3Gw9EB8LWgE1k0BFfu1vrYdCbIiWdGVmW5Kb37q9RT6xXnpSRAGiLL1O3z7sD7cIEkiqe QhQJZ8EXJU9EbP39Z74p8xZxbGdJsBgq6q2ARNz5tpDQt/20Z9fgWqTQuR4vVem04LkA+/TxX/V muD2mDw5S7FUjYtScPzsr6TrvWseCSLzCc1dwCb0zkPJyUbEHf/E9mJnWwpyp6J6Hc821Fn7mw0 J6EgsDVu/WIhs3w0FE93r20QEOHpiF32OhNf2fn976rZe4mj2Vhi0KMdWmbnm8hgFQFbFnA1Uoj V5mo2g8JAHIcXp5YVcRy5JTtRQSiCEpHZtZeVGnig8Tn+oPNTr/+9XWTIgMP8UzLgBA== X-Google-Smtp-Source: AGHT+IGjHL42eoyIr7EDD3bK1scXRSzcjEoKPKkj9mEjGPeObhHR0X7TrKov0WB3dntdIdKwAdG/pw== X-Received: by 2002:a05:6602:14c9:b0:884:47f0:b89f with SMTP id ca18e2360f4ac-886bd0f2960mr1623157639f.3.1756142469773; Mon, 25 Aug 2025 10:21:09 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:09 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 4/7] rtc: spacemit: support the SpacemiT P1 RTC Date: Mon, 25 Aug 2025 12:20:53 -0500 Message-ID: <20250825172057.163883-5-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for the RTC found in the SpacemiT P1 PMIC. Initially only setting and reading the time are supported. The PMIC is implemented as a multi-function device. This RTC is probed based on this driver being named in a MFD cell in the simple MFD I2C driver. Signed-off-by: Alex Elder Acked-by: Alexandre Belloni --- drivers/rtc/Kconfig | 10 ++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-spacemit-p1.c | 167 ++++++++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+) create mode 100644 drivers/rtc/rtc-spacemit-p1.c diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 64f6e9756aff4..31d355b103d43 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -406,6 +406,16 @@ config RTC_DRV_MAX77686 This driver can also be built as a module. If so, the module will be called rtc-max77686. =20 +config RTC_DRV_SPACEMIT_P1 + tristate "SpacemiT P1 RTC" + depends on ARCH_SPACEMIT || COMPILE_TEST + select MFD_SPACEMIT_P1 + default ARCH_SPACEMIT + help + Enable support for the RTC function in the SpacemiT P1 PMIC. + This driver can also be built as a module, which will be called + "spacemit-p1-rtc". + config RTC_DRV_NCT3018Y tristate "Nuvoton NCT3018Y" depends on OF diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index 789bddfea99d8..f41fdb4fabae9 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@ -171,6 +171,7 @@ obj-$(CONFIG_RTC_DRV_SD2405AL) +=3D rtc-sd2405al.o obj-$(CONFIG_RTC_DRV_SD3078) +=3D rtc-sd3078.o obj-$(CONFIG_RTC_DRV_SH) +=3D rtc-sh.o obj-$(CONFIG_RTC_DRV_SNVS) +=3D rtc-snvs.o +obj-$(CONFIG_RTC_DRV_SPACEMIT_P1) +=3D rtc-spacemit-p1.o obj-$(CONFIG_RTC_DRV_SPEAR) +=3D rtc-spear.o obj-$(CONFIG_RTC_DRV_STARFIRE) +=3D rtc-starfire.o obj-$(CONFIG_RTC_DRV_STK17TA8) +=3D rtc-stk17ta8.o diff --git a/drivers/rtc/rtc-spacemit-p1.c b/drivers/rtc/rtc-spacemit-p1.c new file mode 100644 index 0000000000000..43ab62494bb4b --- /dev/null +++ b/drivers/rtc/rtc-spacemit-p1.c @@ -0,0 +1,167 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Driver for the RTC found in the SpacemiT P1 PMIC + * + * Copyright (C) 2025 by RISCstar Solutions Corporation. All rights reser= ved. + */ + +#include +#include +#include +#include +#include +#include + +#define MOD_NAME "spacemit-p1-rtc" + +/* + * Six consecutive 1-byte registers hold the seconds, minutes, hours, + * day-of-month, month, and year (respectively). + * + * The range of values in these registers is: + * seconds 0-59 + * minutes 0-59 + * hours 0-59 + * day 0-30 (struct tm is 1-31) + * month 0-11 + * year years since 2000 (struct tm is since 1900) + * + * Note that the day and month must be converted after reading and + * before writing. + */ +#define RTC_TIME 0x0d /* Offset of the seconds register */ + +#define RTC_CTRL 0x1d +#define RTC_EN BIT(2) + +/* Number of attempts to read a consistent time stamp before giving up */ +#define RTC_READ_TRIES 20 /* At least 1 */ + +struct p1_rtc { + struct regmap *regmap; + struct rtc_device *rtc; +}; + +/* + * The P1 hardware documentation states that the register values are + * latched to ensure a consistent time snapshot within the registers, + * but these are in fact unstable due to a bug in the hardware design. + * So we loop until we get two identical readings. + */ +static int p1_rtc_read_time(struct device *dev, struct rtc_time *t) +{ + struct p1_rtc *p1 =3D dev_get_drvdata(dev); + struct regmap *regmap =3D p1->regmap; + u32 count =3D RTC_READ_TRIES; + u8 seconds; + u8 time[6]; + int ret; + + if (!regmap_test_bits(regmap, RTC_CTRL, RTC_EN)) + return -EINVAL; /* RTC is disabled */ + + ret =3D regmap_bulk_read(regmap, RTC_TIME, time, sizeof(time)); + if (ret) + return ret; + + do { + seconds =3D time[0]; + ret =3D regmap_bulk_read(regmap, RTC_TIME, time, sizeof(time)); + if (ret) + return ret; + } while (time[0] !=3D seconds && --count); + + if (!count) + return -EIO; /* Unable to get a consistent result */ + + t->tm_sec =3D time[0] & GENMASK(5, 0); + t->tm_min =3D time[1] & GENMASK(5, 0); + t->tm_hour =3D time[2] & GENMASK(4, 0); + t->tm_mday =3D (time[3] & GENMASK(4, 0)) + 1; + t->tm_mon =3D time[4] & GENMASK(3, 0); + t->tm_year =3D (time[5] & GENMASK(5, 0)) + 100; + + return 0; +} + +/* + * The P1 hardware documentation states that values in the registers are + * latched so when written they represent a consistent time snapshot. + * Nevertheless, this is not guaranteed by the implementation, so we must + * disable the RTC while updating it. + */ +static int p1_rtc_set_time(struct device *dev, struct rtc_time *t) +{ + struct p1_rtc *p1 =3D dev_get_drvdata(dev); + struct regmap *regmap =3D p1->regmap; + u8 time[6]; + int ret; + + time[0] =3D t->tm_sec; + time[1] =3D t->tm_min; + time[2] =3D t->tm_hour; + time[3] =3D t->tm_mday - 1; + time[4] =3D t->tm_mon; + time[5] =3D t->tm_year - 100; + + /* Disable the RTC to update; re-enable again when done */ + ret =3D regmap_clear_bits(regmap, RTC_CTRL, RTC_EN); + if (ret) + return ret; + + /* If something goes wrong, leave the RTC disabled */ + ret =3D regmap_bulk_write(regmap, RTC_TIME, time, sizeof(time)); + if (ret) + return ret; + + return regmap_set_bits(regmap, RTC_CTRL, RTC_EN); +} + +static const struct rtc_class_ops p1_rtc_class_ops =3D { + .read_time =3D p1_rtc_read_time, + .set_time =3D p1_rtc_set_time, +}; + +static int p1_rtc_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct rtc_device *rtc; + struct p1_rtc *p1; + + p1 =3D devm_kzalloc(dev, sizeof(*p1), GFP_KERNEL); + if (!p1) + return -ENOMEM; + dev_set_drvdata(dev, p1); + + p1->regmap =3D dev_get_regmap(dev->parent, NULL); + if (!p1->regmap) + return dev_err_probe(dev, -ENODEV, "failed to get regmap\n"); + + rtc =3D devm_rtc_allocate_device(dev); + if (IS_ERR(rtc)) + return dev_err_probe(dev, PTR_ERR(rtc), + "error allocating device\n"); + p1->rtc =3D rtc; + + rtc->ops =3D &p1_rtc_class_ops; + rtc->range_min =3D RTC_TIMESTAMP_BEGIN_2000; + rtc->range_max =3D RTC_TIMESTAMP_END_2063; + + clear_bit(RTC_FEATURE_ALARM, rtc->features); + clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->features); + + return devm_rtc_register_device(rtc); +} + +static struct platform_driver p1_rtc_driver =3D { + .probe =3D p1_rtc_probe, + .driver =3D { + .name =3D MOD_NAME, + }, +}; + +module_platform_driver(p1_rtc_driver); + +MODULE_DESCRIPTION("SpacemiT P1 RTC driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" MOD_NAME); --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC2D0305E24 for ; Mon, 25 Aug 2025 17:21:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142474; cv=none; b=REkkbF+85etCXFszpjknFLkfpVCVeRHDJJBEZNeIvqBOpa/nshUBYxry0qyF/j2UDbF5O5SVpqZ+aDjmajkihlBH8CAOtoK5zmhPYkeVYtFcgNJVYW3/O4erhqVts7LeXIlym1ThGsstXSsDQ1sFbHK2zm05UsSktsdQ0BmKzd8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142474; c=relaxed/simple; bh=tqj+GYK1EDpUdWJT2hsmEmFYHp02iQVqmo4nfSM4fUw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UphbLBdo5Mo8yqOhDSdEafq+dbhnZ+4Qxut7duKWm9QDtcxXH8hDA9MUtm40R/j30rDG+H9Rbbzh79/vOwLcdxfKjKzzbxdC4JvY9ACU9lBfHjOY8Ewmj5agmROHZtH1J8lfsEsWwuh8+LUGUvrBlMDuCb7HsbVvz4BFu+oVbTk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=o/CPxvI8; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="o/CPxvI8" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-886ec1ac877so4521739f.0 for ; Mon, 25 Aug 2025 10:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142472; x=1756747272; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vaImj7HPDviB5XgBqpwJeOy4vyIIfyH+4F3V+wrd8Lk=; b=o/CPxvI8uZV1TryKV6Zx3kIuTVYeVy8w2/TybQXcWZXu6lBDOvp8E0OCIr3pZa4dRC Q+HYU21parYD92RQoTsYRivMDGuF2x2H8vJ4t3LFZuMgZT9/6hdCm9ROjcAyO0XzlD/S b5c8RD0jxr3nHqXB/eK4Gih/e68TXFDj4wHEiXZ4MMNt7VHlLd0M1ysffUixR0q83ZZ/ ADP9TbCPcTUNLY795D+hM0w/uVJD/zpJ8TLmr2WDNYr0YM0hOOGKiOKbkiMtADrOEHpZ Bc5L4AYPlSto8rlhhdI5R3Uc8H/Jm2rnyacOwsVj5gqxdn1zdP+u67VSBhrq2Vtp6w42 zHCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142472; x=1756747272; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vaImj7HPDviB5XgBqpwJeOy4vyIIfyH+4F3V+wrd8Lk=; b=CwhZ8j5YUIvlvk8ONTeATSuJPG+5CE1Qo7hBO640RMijkRepE7lfl1AZ9Y23xMdueN oFM5rHNPogHY6fiwN7klaSNe0eDdG1tLtK43XVX7pjqOc9roecmwK+VdDdHRsrXcSsV5 QC1PDQ/4tnQ4VOLWQdPvumI0ASqTrs8MhY96A/mlYKGnv7e04oSeZ1NXu/bKoYcxc4MW lr8yqFEYxO45TP3KGwfavuEW4H3T9ljfFHqWBgLDBBq4+7/HQJBJz1sdaT2VKw3Vnf98 kJ+bb1fxdJbQO3yxuqFEnZLJQIDhvAMdSUYoeT0IkKKUwG2YyGSSMtDKtJZ5c7t4jAnL GJ9Q== X-Forwarded-Encrypted: i=1; AJvYcCXKmPOWYamlUM9dCT8oiZkPYbSXuMBvmggQjucwjmaX3gcn0uEdoZT0S8g+8hvw8PxbsJO7yW+kqb4dgAY=@vger.kernel.org X-Gm-Message-State: AOJu0YzBNzDvdt/SZ9T1TerZ06EADsT/HhoINc2SWKNowjkZRuSLwuMv 9EsrWt0hbsirGsvpGIbgLofKwCXZvl3pp7KfXVBrPQ6a4wEmjC+CKe/wXvleU45Srjw= X-Gm-Gg: ASbGncuAVlAk9MeWeSEca2FDmORFYawmOTiWr0/91BkXG+6tvAn1BgwBZ+Etktzn+FD 1ObwX7SUaLllv0A4aIt6353WK0B+KU+tY5NIAEcYTDDqLM6hWYAEYw2ees4za+R1zSAr5DilCxx 3f48SsyIpg6+oPYHP1FvHrIxCFC65uCrJoxpjKrvp/179471YJYO3IFAOk/rLEXyWNdQ5lCJwzy bca2fg4MPhPa4Rg4GhpXDZljfDpKiM4INIWS4h4VZ12VCn8T89vGYgROfqYYd5/czRZap7Z1T8V Yubq2gQxtvUraBnUrZvjGHqv+lGcFoEqvlwLX2bowoJYn/SIHF6JTQ+JJSzm68LZEDsC9zm8vBS T/5P7ss1G0fTtPsCRaYYVBPXC+aELSeqkh9K4V6VjqQzQYHdgjNqBjDNsvxe/yUcHuA== X-Google-Smtp-Source: AGHT+IGMjww54FRdV9usG2bAND6j/10A3PtBf2JERSU5gXA+1FH5dtg3t7ajGlDWVwIXh5UXyCucrg== X-Received: by 2002:a92:c269:0:b0:3ed:fe91:7306 with SMTP id e9e14a558f8ab-3edfe91737dmr19680085ab.23.1756142471734; Mon, 25 Aug 2025 10:21:11 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:11 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 5/7] riscv: dts: spacemit: enable the i2c8 adapter Date: Mon, 25 Aug 2025 12:20:54 -0500 Message-ID: <20250825172057.163883-6-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Define properties for the I2C adapter that provides access to the SpacemiT P1 PMIC. Enable this adapter on the Banana Pi BPI-F3. Signed-off-by: Alex Elder --- arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 12 ++++++++++++ arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 7 +++++++ arch/riscv/boot/dts/spacemit/k1.dtsi | 13 +++++++++++++ 3 files changed, 32 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/b= oot/dts/spacemit/k1-bananapi-f3.dts index fe22c747c5012..ae9409fe398b2 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -40,6 +40,18 @@ &emmc { status =3D "okay"; }; =20 +&i2c8 { + pinctrl-0 =3D <&i2c8_cfg>; + pinctrl-names =3D "default"; + status =3D "okay"; + + pmic@41 { + compatible =3D "spacemit,p1"; + reg =3D <0x41>; + interrupts =3D <64>; + }; +}; + &uart0 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart0_2_cfg>; diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot= /dts/spacemit/k1-pinctrl.dtsi index 3810557374228..96d7a46d4bf77 100644 --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi @@ -11,6 +11,13 @@ #define K1_GPIO(x) (x / 32) (x % 32) =20 &pinctrl { + i2c8_cfg: i2c8-cfg { + i2c8-0-pins { + pinmux =3D , /* PWR_SCL */ + ; /* PWR_SDA */ + }; + }; + uart0_2_cfg: uart0-2-cfg { uart0-2-pins { pinmux =3D , diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spa= cemit/k1.dtsi index 6c68b2e54675e..cd9b91c3358e4 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -459,6 +459,19 @@ pwm7: pwm@d401bc00 { status =3D "disabled"; }; =20 + i2c8: i2c@d401d800 { + compatible =3D "spacemit,k1-i2c"; + reg =3D <0x0 0xd401d800 0x0 0x38>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clocks =3D <&syscon_apbc CLK_TWSI8>, + <&syscon_apbc CLK_TWSI8_BUS>; + clock-names =3D "func", "bus"; + clock-frequency =3D <400000>; + interrupts =3D <19>; + status =3D "disabled"; + }; + pinctrl: pinctrl@d401e000 { compatible =3D "spacemit,k1-pinctrl"; reg =3D <0x0 0xd401e000 0x0 0x400>; --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66DE9306D54 for ; Mon, 25 Aug 2025 17:21:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142476; cv=none; b=mng59xfpA6XtDThTZUAjy5Slz7oHvC9K5427NXS7jUbUZwLvRbjB2Gcm1loaKbkRQi6qy9nB7FgI2UeDhzhR8JlxAn8aPXYU+dXob3k8/ysEIz/ghixEfKNOJy7AHng7j3N8BfQ2H4AUCeg0EYRuGFZ0+l03Sh2HjtnChboeGwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142476; c=relaxed/simple; bh=4MkO0yPVEXokF7BKWo63wkxjH8l6ox9Iw2xywkWl/sg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WSsTBVr3+ivM1l2Sebd0brg+bYHfPpomKFe6CJjlk8QxMzdigYIKvHsISj30auAAJEe7dykdqb3MXecgfwAMindY2b+8z6rFET+0qgi/YHP+UxDWwDIc/fo+oUs3l7VUkC6SHiKsRGejeoD7z72Wwv1FztKyn1OaTbjQ3xCAxvg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=x5ecd3CB; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="x5ecd3CB" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-886ec1ac877so4525039f.0 for ; Mon, 25 Aug 2025 10:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142473; x=1756747273; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TzbsCOAJDq8e6tJqb71PLkWE7SOSqQYLq4powgsnVhU=; b=x5ecd3CBy9UbS4pAArGHDTqx+Uo0gGM+clY6B8B9JfAsiL9mruc03nOayaiO6AswiQ SpgBdzoCcrSOnfELmpl5hlT8uJpI6WxDtZOjtyngHphjmy9NFQEET0b0YNRlAYE4WKLx mZk0EetDeXcUIB7PRa61zN8ox1r8IGhUE16BRalaP6ElLKo5JEs54GOlNPRvhAezEIg/ de8iIsLwP+71A6vQHTEtZLMf00I1zEs/I7NKH0E8t/6B5eBSTH0Gi8gLXZ6WLrSxUqHj mPIWGD3PNG0U+cma/J7iV0JS8mROLJchMqJa/MfLCNz0DxCKxKZBtwxfOpTiBOsoZ3ph BhYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142473; x=1756747273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TzbsCOAJDq8e6tJqb71PLkWE7SOSqQYLq4powgsnVhU=; b=wjncdNpW7M0RrlLNOZhm6DW4NODlN8vAD52ezrWS9oRPEd4bOLakUpJc1yhMxdqTsT /xy+3stdQJtVRLcXboNcHAQehJbX3NrPpGR7jze1HjFdGYJ+FF15oirMvBtNILTX6XdI NVzrHBx1iW8k/MtFap76xZhs7esqau76ITHpXFMb/USYRY1G93axVrlxXPqXkvOYqysw F2Ap+JlUp67II2OBm++xBjhqKeL+7sGqdEFiZLz5Iy8NDIvTjVz45xmKawfjKJ0IutBO lX5DfYufiNeeNW5/7r85R9Tnk+qWRUDjojxnqypp+Qkg/1WUmQy+GyLhjONYDPPc7Ruh 0LQA== X-Forwarded-Encrypted: i=1; AJvYcCXmcpYuQhjvNv5cMNeFFW7rJSRykt3E9ZeTfmZy86RTg7k2fJbB+4QEPWwfR7Xp6Qp+I4rhC1ZRBQE3zqM=@vger.kernel.org X-Gm-Message-State: AOJu0YymZGSLFFdLBJkOBU+52DauyQSIhOADdR6/NHx2FWQJKe9gwTA0 RSmROaHstSGvDcf17Subr9wjG4rkAwV7q/H1Tbyn8vrvdmxC3xjotJ1nd52ygV47ycY= X-Gm-Gg: ASbGncvfrlsoFX/8KdAn9p8gD5xfteSazY000mF++8IzhP3inAWGQlAdsE/eIKPtDhk CVQJ0NKwTGwaa/VhvSOUAqQ5aG5CFGtFEMmSB41rWDS6ZvMpRVFMa7zrvOSxUkVKaeNlRQ3i5LZ w6Vg3gD7a6yq1B/g1Scyx4ZF9MXB7TnlBaYrzL7JdWgjr9bci0fwXokbYTC+uA2OSCWtd2CPv2Q YfTbT0jAKV3mpEGvcdVxkl7uwKS8otiE5wGr+nYD8i7WxnUrouYfEDUvjeOzd8o1HgM4ijaaIot 0yBxxP+zFS6DG1k10AW+10s2vjDCHZpVVCXkDCZyNSRQVHyB8LqgO6H/goEel7eNrXPQ2ow2qjV nvZcZQvsUc6K9Hv60LfyTgc1my2w4WAMlQSvsSSLOcQ78wA+HBntwQsLUV69PK+ea5zwrnJQR4c kk X-Google-Smtp-Source: AGHT+IHaZdCnT4aGtFFcRgzebFZsbTIztmo+Z151ok+iHPQRKBlJjXS71cSRNdn35Lml0SBstQEFDg== X-Received: by 2002:a05:6602:4c10:b0:876:19b9:1aaa with SMTP id ca18e2360f4ac-886bd1cf44emr1652168639f.9.1756142473552; Mon, 25 Aug 2025 10:21:13 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:13 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 6/7] riscv: dts: spacemit: define fixed regulators Date: Mon, 25 Aug 2025 12:20:55 -0500 Message-ID: <20250825172057.163883-7-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Define the DC power input and the 4v power as fixed supplies in the Banana Pi BPI-F3. Signed-off-by: Alex Elder --- .../boot/dts/spacemit/k1-bananapi-f3.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/b= oot/dts/spacemit/k1-bananapi-f3.dts index ae9409fe398b2..a11a60b9f369b 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -28,6 +28,25 @@ led1 { default-state =3D "on"; }; }; + + reg_dc_in: dc-in-12v { + compatible =3D "regulator-fixed"; + regulator-name =3D "dc_in_12v"; + regulator-min-microvolt =3D <12000000>; + regulator-max-microvolt =3D <12000000>; + regulator-boot-on; + regulator-always-on; + }; + + reg_vcc_4v: vcc-4v { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_4v"; + regulator-min-microvolt =3D <4000000>; + regulator-max-microvolt =3D <4000000>; + regulator-boot-on; + regulator-always-on; + vin-supply =3D <®_dc_in>; + }; }; =20 &emmc { --=20 2.48.1 From nobody Thu Sep 11 14:14:21 2025 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 316F3307AE8 for ; Mon, 25 Aug 2025 17:21:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142478; cv=none; b=Mu7hwQ4IOEgEw9tEwjq6+AVKvF+KP1qJzIVY9Ko2oSPM/FPlZdb7JMaYKqn0gEeFfIjR/yYdYdSv303xScUqvzCia7tOh33sPu68uj8XbO34HXt6hDnLOJlv9mUmzm+FMWhnchdY2ozoP5ujcRBJL0/STms3RndHpmfNssMD9bg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756142478; c=relaxed/simple; bh=D00Agu9o5lMwHglRF8JEmN9Mz2SwGM8gIpQ2brQAJHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tvr2FoMSQKV8XRuCKXtwU2Ll42EB0nFUNZRQt5eUZkFYFjJv9lpdNjuPm9e+yy0f4NequFhE6C2hZySZRZGhT6R1SCP9IrGd4BsHg5iXTMiNOT1v5+3X1uXy2NzvTcG1OGeuTYD0HXF1R+323hcQDYnVwXCepN/Yb6yauMkw3/E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=EHkqQjkm; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="EHkqQjkm" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-88432d932d6so55264439f.1 for ; Mon, 25 Aug 2025 10:21:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1756142475; x=1756747275; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RmHcfUIrXFFWAxyqlPf+YQqXo4C+Q0QbA66Hg5xFlzs=; b=EHkqQjkmXHu8VAQtdYG8cdjzazIyFYR6KVsULolaId2YSJb8tec/DZ6WAMe5Yv9hmj B3oEm1VKK/Tfk4ZS1ycwWT4jJutHBsgHPkusAFl7oDkJ5jAh4fCAAtNl8U3wAq/qAGiZ bR4tohcCEaC7zBiCd0p+HGeVmmpgOobMmVN7XnB7ANGMhrS0lJ69c7Ep7dl72G0yvfwc QPjkpeedfzoObWjwUewS15eGBPtFFWWUTcBTZnXsxdflFBswU/Ddm1E2uAZumVpY9fMC e290i9mzQjWOh6rbPBwkgyjXTjqbtj/Fw+3p77BW87k/BxX/ofv4Mi3XmKlmA3OesvF5 BNrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756142475; x=1756747275; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RmHcfUIrXFFWAxyqlPf+YQqXo4C+Q0QbA66Hg5xFlzs=; b=worhshlH/YJmaRAbTBhGRlpydf7UgDOYbH2jXW7k0n7npNuIrYMSMaIn3J/QTgiC+7 hsW8/k6SzfBfkpEAqZilgkhxTyRRj/V1NEhDYFZZlbLyEa+ek7uij6ayH4f9/5oGP5uG cQRXuZ5YLzyYR/ZnfHaKrMjsqHmUw4yQflB26Z7O/PcXdbyBdpi6REeMKX8YRphgrx+q IvP8h1RoEUKtDPt76RzAKpOH4hVGAo1Cnyt6pacoYKQpac/zMYYJTYAagPy0BrHhfkZm D0+hDazuSHMY750rp6pxsFozuv8cTeAvnXBJPv/TKKKqFvWYgspbGhhiL6CWk6RBuuLc +uHA== X-Forwarded-Encrypted: i=1; AJvYcCV0Xgmcj2m0N483Du/2cqYIJxuv8+VX6wk0AP4Ay+47Xe3ETAKqq0QSedF6qfnb67+7W++RE1ihMKgvVos=@vger.kernel.org X-Gm-Message-State: AOJu0YxU90qyTnteJvOSkBDXoN4jYNxVS2tx2Jbs6CA2hj9cm0b3Ow/o HoXrU0U2DWT15CzePMcwgJEABAOCHRX1Bvg8v6wryQPmPYnpNgQK3MiGnI1XhpTWjlw= X-Gm-Gg: ASbGncsm+DHYclgu2pmzgE0MxvSutdMt2ccg/HwRNlb6dhB37pZwE5HVhzPD9FRricV zO/RUEEUrzBsbhH1PAgGNfnm0ot9MYbLFAFcJ5NrkrjaAtkq0k+i+auD2K+0MGcCrTEuzjf8en4 jDUrVxiEGpfXm7eUYMQ9lmXodlYbyMlRRAgkt3paF7qylaQGyUbgX8Ylv+dCK10QSq7+Oa7fgjb Fj0j3xQxdpdLFUCD7JvyQvzpbRN3w3LOfooqDWeHM1VHKf2i2OAL4TOpRIWp/XQjWCWbrLQ5jtz n6VcL9/7ipx8DMwXJFql02URjIU/xhf0HwFqvjOqYs0LvBz2nmD+B/C0GSCVo/a5zxmC62eSVWl vNJKZ05Sr4Qib3n0c3bDW0cYFy/TICHS03TXXaCEyd5BRp6X+5IHWlTnSSMbmpDbSHA== X-Google-Smtp-Source: AGHT+IFaVPmcRIepO8mSzmP9PzGXjZwSc4TayWxRM79v7g/HByE5zJt50D0eHv9Uu2pV8a3THcTTMA== X-Received: by 2002:a05:6602:3a84:b0:881:6cf9:b8df with SMTP id ca18e2360f4ac-886bd1baf78mr1747744339f.10.1756142475231; Mon, 25 Aug 2025 10:21:15 -0700 (PDT) Received: from zippy.localdomain (c-75-72-117-212.hsd1.mn.comcast.net. [75.72.117.212]) by smtp.gmail.com with ESMTPSA id ca18e2360f4ac-886e60c4737sm76275439f.26.2025.08.25.10.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Aug 2025 10:21:15 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux.amoon@gmail.com, troymitchell988@gmail.com, guodong@riscstar.com, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v13 7/7] riscv: dts: spacemit: define regulator constraints Date: Mon, 25 Aug 2025 12:20:56 -0500 Message-ID: <20250825172057.163883-8-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250825172057.163883-1-elder@riscstar.com> References: <20250825172057.163883-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Define basic constraints for the regulators in the SpacemiT P1 PMIC, as implemented in the Banana Pi BPI-F3. Signed-off-by: Alex Elder --- .../boot/dts/spacemit/k1-bananapi-f3.dts | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/b= oot/dts/spacemit/k1-bananapi-f3.dts index a11a60b9f369b..a9a2596a94e89 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -68,6 +68,110 @@ pmic@41 { compatible =3D "spacemit,p1"; reg =3D <0x41>; interrupts =3D <64>; + vin-supply =3D <®_vcc_4v>; + + regulators { + buck1 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3450000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + buck2 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3450000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + buck3 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <1800000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + buck4 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3300000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + buck5 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3450000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + buck6 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3450000>; + regulator-ramp-delay =3D <5000>; + regulator-always-on; + }; + + aldo1 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-boot-on; + }; + + aldo2 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + aldo3 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + aldo4 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + dldo1 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-boot-on; + }; + + dldo2 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + dldo3 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + dldo4 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-always-on; + }; + + dldo5 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + + dldo6 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + regulator-always-on; + }; + + dldo7 { + regulator-min-microvolt =3D <500000>; + regulator-max-microvolt =3D <3400000>; + }; + }; }; }; =20 --=20 2.48.1