From nobody Sun Oct 5 14:34:02 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 D370845C0B for ; Sun, 3 Aug 2025 02:58:18 +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=1754189901; cv=none; b=TBE2bQck4z+GUkfuffOtSdPC02mNDrvX5ks1gUJsPw8hn8hv3CzJmlGQ1CyE9S/zwG8uhvhaGxNZ9JG87jwhHMZglz0ZPTAMLRBLsMjAx+3SqUmXYk1zAPrTgmmELFNMKkAHWXORA+jRPgpC4cpzfcqPlNVuH/VBiRmLzdyGSrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189901; c=relaxed/simple; bh=f3e7VDZ5RpctNbfj+dyIcOXKfTplNtROBxfFMgGp3q0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oYep7YP+mGSCESqLFnV3YCPb0b0QL3zWn3nVxYr4pdj92wCZv5TZe1uAHPctJPu7TQV8PJnFsxK6G6GaipVAF5wtXkfu7rrBSwDtk+KPbn3aCvYK8I7ayJjO7gbqDiVmOR0GFAA3qv7Y/tbFKAPRfKOY5VFweYidmVnMdVMTVHE= 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=AFCCAYIE; 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="AFCCAYIE" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-3e3f0287842so27353655ab.3 for ; Sat, 02 Aug 2025 19:58:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189898; x=1754794698; 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=Ek2s2DUqL/jgDZvOvv6Rjx1Dp3m/erc1mrYIyBeINSk=; b=AFCCAYIEp/AW/hyrmC9wCGgH4ayQm8hS9iGGTVrkoLg9svXnhJcCb2esBkWnYTdvd4 hLB4rWiHGU4AVuJMm/v8pq6QXo27WlTJYZeGOc3RhUJnFcCigEBx/wBu8D5k2UYtORb0 KEiAD2FbjbyvOau5tCZRI5cWHOyK7PemzitfeO5C2xI2Vwu01BTL17PygEvLmHkn4ew0 mGTwL48nI/Wc77mkguc1qHczaW70CEF+huQGz+pKych/WGyP41KpPJWRP4K55HkO5xSN ZqXaMVOwdtyAt+CMRfDpu5P9vViJAEX544abp2CdtjRuJeyBU+Nt61t2RXLwLjqAvEve Sllw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189898; x=1754794698; 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=Ek2s2DUqL/jgDZvOvv6Rjx1Dp3m/erc1mrYIyBeINSk=; b=KHvjudgzKtMFinyt3iGw2TTCmdd9mIdjzhai5+rlMJKXnSk/yO4NGJZPgJ55yBLT13 GYSUbCw1FZTCfdRisNXLAZ5zWHe6EmCyDtyn51XMS/S7UKUDwoWRSBOlY+vPaOTJm9hN X6QxjclhVPrRSB+/ZBLGmVUwoZYByGivyE6KVFCC9xIhoNLsKkWe9Huew4uZFDcM1IiN BxdaRtNJ7aiB/4btWAY9Gi1bN7t8ik/f8Yj/I08KxLYl6yxTq1KW7OcCp8ry3h+Pf77N 9IEK+OB+MyBm7esHGOS7fnh1ZkxW1g+Sz/1ng4c8AKzbsqN0Nq7w+D6rC42TefJIbuew 6dHg== X-Forwarded-Encrypted: i=1; AJvYcCW7UKtxk4uZ9z71qFCd6MppY0BPIMqkJ7+qEdnq832aBillSr43nvFJQFACiTxqgm64u2aDpRv9a1zxMmw=@vger.kernel.org X-Gm-Message-State: AOJu0YzyZoiBysE3BXPUeHvkZR6WOWVHp7fNOuUDXIo/1GP/XuOLELAi 07yqAOvUodjGvK9boaPCKh19lBJIApfYtRhcKN4i3A6s6Zyo1uKQwhkL322ol2SkVGQ= X-Gm-Gg: ASbGncuLzk0NMDjegz60GiXfBG4S6jau3nC92tMkDfOscqmkhRZ3zVtDNeijDiS18VC dX96jHofYOb4kQtNngFTTuCKqesa9QILal8RVnqmRHr2yq0RjcOyMFQvIwPA2pXYhCRIdzIa8vr 1fONsKpJs/oQKi05IK4O3q0VrOY+4z1Fz0RcV6PTljxxBy/IEOLxKTQA+jrfiygEWZ59jiKdyH/ WnWZSocI2H6OZcSjx+BFKoviUO+k34mArbdq9OyoLgaC/fSG2oewnU5L4GnF5BkKCrhjK3R0zL6 erHBm+APYGByxtdUygZqrDZZ94j3rI59hWbXwyzoVjk/gNf2W0RPiO2YJOmQbqUB/iPRozgN+DR BbHe0goVKr2mBK9lXdZg3Y1qtKqyeqtmvE8Mhrhro7TKm/3OnGnvYa1Jms7ICuz2mww== X-Google-Smtp-Source: AGHT+IE1EI0ik3qR8R9p6oS+/rMP5rmrF5tbzg4vFpoKSdksN0WY5toRor+4wX4VhlAJ+LsTRTCKSg== X-Received: by 2002:a05:6e02:1485:b0:3e3:c6a6:2799 with SMTP id e9e14a558f8ab-3e4161e006dmr100052085ab.21.1754189897967; Sat, 02 Aug 2025 19:58:17 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:17 -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 v11 1/7] dt-bindings: mfd: add support the SpacemiT P1 PMIC Date: Sat, 2 Aug 2025 21:58:05 -0500 Message-ID: <20250803025812.373029-2-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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) --- .../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..5cc34d4934b54 --- /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 Sun Oct 5 14:34:02 2025 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 F37C0192D97 for ; Sun, 3 Aug 2025 02:58:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189902; cv=none; b=caJvNo1PzEbE7Nm7rQ3oDnohhV1/MKn5Sr+ek9kgtoRY+HE6JHJD9SRS+NNBFaZ62Rg3U2N4qPQRgEeWyazgCOTbqB3xCxfpPi5I+yGtvbcUA/S4XB5ml8k6XwW8TEehhRNv3y9CUbVeLhUIqzNvIfk201sX86XX6tcgutH4jx0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189902; c=relaxed/simple; bh=Vy3dh1W+OnJYZ/v5Lz/MZTnW63W8BbEAjIg6oorEZCg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O7pRCQJV1yTR1ypjwKkf3iLkOo7+cuO2CYTaO1T1UfZic1YXBR+4cBL7CoAF9UrFdPvqbPmyjLByVirEBSTSOR4MJmULwiL3l0nHboF+CTOPKo7enLJSKYwAYZQf2SvKQBIwvZF/rnaWKNBKSOfbT9Kg0Y/JJN7LwRcqeGoCtPA= 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=gy5xwUNr; arc=none smtp.client-ip=209.85.166.181 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="gy5xwUNr" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-3e3ff43383fso24442595ab.0 for ; Sat, 02 Aug 2025 19:58:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189900; x=1754794700; 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=NseEEgxawgGlvZ2aogsjO1yTSFjdm2ClsU1ufLIjy44=; b=gy5xwUNrAw4vhulcbEJZJhYZmhsPW7FLoBbblRiXbyXDWkUDTVsNYWcN4Xt1jv1pod /QkKzoiwCY+f55ypecVd+QFN/tOJzsitZN6/g2YwnOkmAHA+gFoBeDsv4R61RcwzzC3Z Lp/lIY1UQkgqaBhnJcmod5TLgchHwzoOIJh2xnRVGQPJxBq3MW+TNUyV14SGwB5Hweqv UopyHFbTCU/XCq8lVuGqWEcGMgY+gwJzrjrubblvQZssWWySRfdgYjz4zLReIrWtYr7a J+x0xItZoDn9HsoMXUO5rOLBLGxvmRlhK4nFGI29DrKMMrF8MaSdfuSa/o4/ue8ySMQU g0Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189900; x=1754794700; 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=NseEEgxawgGlvZ2aogsjO1yTSFjdm2ClsU1ufLIjy44=; b=nRN83tXO5pIKooo2zlSr1kWZnO1an8B9lACDenHr+r4KaKL53hPtycHXDItkKB1m1T jm8ggv7TcUnaF/O4h5Xmfsp7mm+QhxOGpHHVERrQxAZdFAijwlPTVErYGj28CfSd/7Mj n7CNeAAWkO9J/s62ZZiC8s2mh84ZsfJ2fDwjpzEJZ1Kbgpd7cBgu9QZT53v1Wj7XEl50 bHVuhsC7eOL3VGydMHRWRjEK8f+RfLMRXM6/sTVRQ2ItCsaymmNQYALb7YHazTZ+xXDh oVTFKheHQxAqGMYWCHJThj21ld69BwE8xNvwU0+/TTnkiCMC8wSQ+p50Wu8Xpl8Ca2VW qHzw== X-Forwarded-Encrypted: i=1; AJvYcCVjSisVt4vW4c5gybWKdjz5VJOt0yWj3v14KoIjI5i1p3ugdphIahdV5XxjGLCSrQvuVGLmdB61kovY8fM=@vger.kernel.org X-Gm-Message-State: AOJu0YzdNj0tOw/DlhOYtbH6eKqlZcqkY6EQb/z2OX7ZewalspJYIJ1n PyBRUV0hfxY0pLjt20b+3wdv3B2VZ7BOzEgVqZap0i29cLq7Uue56JXajZH/W4qJ4Sk= X-Gm-Gg: ASbGncsMzCY9WTHnpikQOw6AVJXyUA1WSOnswwBcugQEbDNGGRl/lRqBhIvTkgCxwk1 bLzF6lx8diF7Uw7jlvN/MThdEcxUlcAT+VUE4YucRDRu2MbgCCm3UchFFKYBXkMBVwtbziaWCpW RsPQTQSU9NhBG/ytfggiK0Teb8ba0DVaf5FapJbqYn4VVYTexFdCMpxqOQNQQULSd/ZvV9/2B2l +F4lVv4/R2gOrJtu65ckBYtS0GlCkrq/wl8vjCpUyfODaeVu2iQBtCfb602E6EVHFXbPHKIjSSJ 5VDczXTjl9YMrAmA/xuYL46J1TTaKed5AtBnyj4qM7vUJaspd5j3vnhB7cl9tk2dxpMZ1Ku24KJ 0mVgQqfuPW7jeDq4ddv5BOlvPV81t7GgOiaLcoJYW8+a4BMkgBaiw8wFY+McDZLQ8VQ== X-Google-Smtp-Source: AGHT+IHbWkpg5C9tOqNoKe/8SDkAZAG3y2fHUU7GpFbL1Wroag43Y3qOh1rkD1ERdFbRzCvMRbwEWA== X-Received: by 2002:a05:6e02:351e:b0:3e3:e4b2:8a5f with SMTP id e9e14a558f8ab-3e416116edamr89715755ab.8.1754189900043; Sat, 02 Aug 2025 19:58:20 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:19 -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 v11 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support Date: Sat, 2 Aug 2025 21:58:06 -0500 Message-ID: <20250803025812.373029-3-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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 --- drivers/mfd/Kconfig | 11 +++++++++++ drivers/mfd/simple-mfd-i2c.c | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 8f11b2df14704..3fe242ffcb31d 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1238,6 +1238,17 @@ 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 I2C + 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 22159913bea03..47ffaac035cae 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -93,12 +93,30 @@ 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}, { .compatible =3D "maxim,max5970", .data =3D &maxim_max5970}, { .compatible =3D "maxim,max5978", .data =3D &maxim_max5970}, { .compatible =3D "maxim,max77705-battery", .data =3D &maxim_mon_max77705= }, + { .compatible =3D "spacemit,p1", .data =3D &spacemit_p1, }, {} }; MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match); --=20 2.48.1 From nobody Sun Oct 5 14:34:02 2025 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 BCCED19F12A for ; Sun, 3 Aug 2025 02:58:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189904; cv=none; b=A3ISOPNEbKmn1g5dnK6a/d4LskA5i6G9Jcb1Gx9ZYyGzsk7rPzbGuS1ATo8nGnyCpSTXgNuWfrEw0EtXq43tBrH4nNrfQ2gqd6bWRBBIVG3GvV9SAhbBoJ1/ZH7IVVmudL/is4pTd0zkijm+bnubqZXWeNc7pS8Tm5IBve6+1AA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189904; c=relaxed/simple; bh=VwgKAwo3He5Ix6xm1Ga2tWPGcCbpb+bqz48TwK4tHkk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WfbtLm0RtqAZ/H6K9MoZ1f/ndTtN87Pv5SIVrhRlHhv/smQ5kC4hQtjGrwBX8MPoZm7yCuRSMzFUFAwYkp7MwJVDdkDHzAB6C7HCTQQrU+82OJ+6a8OSvWdbKRTEOLJ6ap70ezAvCUoKCPtrQii084IIIUVeHtzlkVfiQl+klBw= 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=FjXl6ccm; arc=none smtp.client-ip=209.85.166.49 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="FjXl6ccm" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-88120243d9cso154722539f.2 for ; Sat, 02 Aug 2025 19:58:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189902; x=1754794702; 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=xTjkzoV10rjE6lcy9S8u9FeqDjqd4PCbzY0LRqD3f3g=; b=FjXl6ccmjqgxzS6QEp7T8ODySaVnsF0KzpkbIMKYR3zSq5TaKkYBSZaAy8sgNM3BpM xzscVvvwyo8Pz4JCaPz8btbkTCHatZTsRPL3rMZxODAJMUGwBvgQuXaJZonPCxtPc6YN 5mTxG3pORcycoHW46cTA7VhLQ329YQk3rt1Cy/fMWZt1dHRSBF5lvWwTVSURFQdE6J4G E5PI2Mbc8XuJ/qoLnek7YHhUHQs65SAUPIBZRobkvb67i9kXHQfrdohsMWSdoENuMyHR xdAkJrRztslPKUflyYweCNWWMszJsd3sG78S9WojDcuiltREQD1AjuBWHcWEhK6A/pCE rx6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189902; x=1754794702; 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=xTjkzoV10rjE6lcy9S8u9FeqDjqd4PCbzY0LRqD3f3g=; b=G7VmubWihdVWpxHFLAI3DE9E/xrLpb/3fsVnrYNUbdeH533WwPw5QwP9cgb+9cHaN+ ZwLCt8dYdgon4vLEJ2UCCbb8ky2FgIXZMHtICKIJzkGxMfGjQXtWLiMehLS8NBJ5fJBT Gwh5nSIk/X1+lcTdra44DVTB8tgjU0Yz9LXFSWrTmf4SmrYCX8mmcdn/3b37KPlwnAOs OqIW6ZJjWtMfPrFsco7sW7wp+9bvCd3nS1zrxmuBzrEPiicD2TrU+IudKckSATHIHv4B n1w96jcjyIk9/O0xIWDCBKkUM/Pt2cEGplGLdLzI2i5WXIGyseR5YvUDU/WleqXV3TnQ JArQ== X-Forwarded-Encrypted: i=1; AJvYcCVipI3wuGHMXjW6QxHSkuPuEBd+7CnDhftFaxPlG0HgDWF2o5YLDy/ofFODVl3MHmzCaMBOeenJKQDnJ0k=@vger.kernel.org X-Gm-Message-State: AOJu0YzLa9LoTcnSSxRxQtwCpz4fSaROx6H44UWBbGX9897Ls34Pc0wM S92i3bdpI34hPRzgvvUhwDxwweCzb1IzxKadq2CxO/WE3Z7Igc7pTA4+1CfBl+pY5r8= X-Gm-Gg: ASbGncvWlWavyzMY8B0Pi0G6+Tis90vS7AkXHuVRil1Ar90Xi2vfGNO3EFhIi/Mvzpv uLjbmUpupzciI79POgDsxOL4GrYQSmnwM/Q9acd0eh82hzGyks7/XVGDaJ1vK3nJavCxDGM57Yg Y2U3jS7/Njvu65zBQd0plc5bOa7+O6XP4rkKH5g+Ulr611lwP2uXHxrx20/o5PG9KC2JH7XprfB RoOPZo0bZjxKROMTLXip7+l0qManyvi97udNe5+/5GlFilZEVGnC+9ytIAk5micP/pCJcMgQ/50 tLiEKLwAwFzg6CBWqmyT1szVuaIi4fX0ts0aokj/TYxP4beGSfPyzdYJLYEn7HAWALqQLlohAF/ XL8W0qS7XkO+fuNM9P8cncrW+OPZKXo1qQsRP3Lfy8R6FbERLvZ/mafmbROlM0ADJfA== X-Google-Smtp-Source: AGHT+IGpE0X8lOCZpACwsCjw3h1bri88EfxOnWYpLR9x8+tuWwey+IA1oiI5AmqNBuai+0sTDjVo3Q== X-Received: by 2002:a05:6602:a01a:b0:881:7837:6058 with SMTP id ca18e2360f4ac-881783762abmr198744539f.0.1754189901896; Sat, 02 Aug 2025 19:58:21 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:21 -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 v11 3/7] regulator: spacemit: support SpacemiT P1 regulators Date: Sat, 2 Aug 2025 21:58:07 -0500 Message-ID: <20250803025812.373029-4-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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 --- v11: Make REGULATOR_SPACEMIT_P1 depend on I2C 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 eaa6df1c9f806..3af99bc3a9ece 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -1395,6 +1395,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 be98b29d6675d..278f5b8d1c7d7 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -162,6 +162,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 Sun Oct 5 14:34:02 2025 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (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 08C481B6CE9 for ; Sun, 3 Aug 2025 02:58:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189907; cv=none; b=ClDY7opcfRjLA2a4n9ntqzjrgWcob8diZCMaWp+VGCwwHZBf0LbTcDATCVJGFf2grYi/kQ5yYYOXrAubewsehjrnX+dgJVpq0qPpYYDuEM2FTS8Yf7KkOaSPLuE4LGTHP/A27w32iea+wRUv+Tbah5ICCKqj0VCkQbrXVpkLKro= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189907; c=relaxed/simple; bh=C67aKO7FCd5ZDQiMSKTLq4HBKkrfUiLt/UEjYJGWykc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uKnC5/GYNlBZtwtd3PK7//QDH4jMD9TJjwXQ9hBD5aCwA2yU5zwQBupbngPixBQ4Yo3YfVY1OAo3A72pTdjJgsmtEjJPV4uRXPoHUtTKD4PkrL1pdn3m20zH7SXNPvlYLTFWfzegSKmimX2izzSbCb1lAH4A2ijaQoUO9Q7X13Y= 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=eeT+HE5s; arc=none smtp.client-ip=209.85.166.169 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="eeT+HE5s" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-3e3f0f29d09so9371325ab.2 for ; Sat, 02 Aug 2025 19:58:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189904; x=1754794704; 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=eeT+HE5sHvks5uQJnsRqml5ahuUE2HlRcu7D9NLIH2nSuf5ZG7YtPJ1Fb5nA9zNetm Ryuj+iKpGTatb5X601XBo4aMVmqA9Xm1cI3l1U/rp8HHYc4Em9L9aJuR2NrL+bcqdTKw GV2vxh/Q2Wj7XE2d9UJcmTMspnHL1aJgY19YmXj9+qHUDFX2oGX/rc7KvCEC7lJjvDrW 4rinQ8o8l2gXFRdOMY0TMfc7kXu0Vrv9ZUrug7crmBIizWHutGNW2M6b1CJErxfrR2DK O0vm4JReAX6hQzrrBLL+4mQZnWcPmn4vVwObSOwZKaYgAQxAvI9mfjgaWyoXBnf5Rvro AewQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189904; x=1754794704; 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=DwkRPMS0xkuiUb46YoAy0J3EQOmLh9iG9i7HrKGYqMwH/Vk8fIcMWa+G9yrBaWI6Z8 owCJ9vCzuH4x9COp3rsuF2drfmDMZvPi+qv3rQPOUMVeljLqOeqen7l+9mO+kojxuA6J Q+ayq7TklbrcOLF2/O5oT4vvoA+xNG0t2yrNrW6vrnxGL3Bf7p4I+QjG9GZOXkWNs2xU 0fUy1Q3Kx+doqQVWT4UlQBcVcw46atZAxS32XL6xQtdtEPkpMFP3rIiSVhAcmkLYkWhu gSsTcanbeXdZbRVNDBG2KoD6Kl9M3dYtdcHWIwHn8kGduBSd7qPfch6iSopaLjUv+Jg1 N4Tg== X-Forwarded-Encrypted: i=1; AJvYcCVCK6VsUIrKURPVtFj+VSNj9R9fOHUbULyg/WmoRZ1gkZGdiPrXHaQdhT2jmbOFnIvnXrxv3vGOJRE2PfI=@vger.kernel.org X-Gm-Message-State: AOJu0YwBY8+WcmfHxuGrxcUb5kFKFvOCqHs5sPDi7qKM1cHnJr5LVckO TSOkK3ZE/PPQcIIRtzrzMImNKoEJ4kUL9VsOyRRTkMAUZRCA+2NLh6nMu2eVWjVgXLc= X-Gm-Gg: ASbGncujjLQ5/xw9Zgf/I1CPKZoI482qnxGvkMX0Y3/bWUne62Sa7BvDsOFBbgGwBE1 66sFY02cKxn0SxllFKHF44C3Hwd/REWd9BQvLySNI3QUugxLl2pyKX9OVVBZqfE7OpryIhtILNb tG8PIFkA4lp+T3dzy2c3yHOJ1f4zdIqzZ4+373rRzS8VqkKXgNCDzBZZXbyAZyf4bZ+mTbniUbK gMcSAuGvKvfFhs3jdLD6ABYs9c+7vafJCdjvrQWaXjIazlo0qEfoC76iavmYXWWxSmi8e0d3C1g 9uf6uLs/8TJA/hAkmiVfW9KhWTdELVqwG6RPk7HrdM/fcKc34SVatS4ETS9rJvWZANHn9btg8p5 DYD/xHQU4mU/mq4lSymH6dhXnm1ssTEs5xuZPs3dgy9jCsgEgyAVUaJW0T6F09RN4cQ== X-Google-Smtp-Source: AGHT+IFHXs41xj9WymLFkH4fpxM33+yVrOViIGtmM/27AzAk1BYfjuQgbtZJ2viqFpupoVB5LnKAWw== X-Received: by 2002:a05:6e02:1fec:b0:3e3:d5f1:9019 with SMTP id e9e14a558f8ab-3e4161b1ed2mr89216405ab.16.1754189904139; Sat, 02 Aug 2025 19:58:24 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:23 -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 v11 4/7] rtc: spacemit: support the SpacemiT P1 RTC Date: Sat, 2 Aug 2025 21:58:08 -0500 Message-ID: <20250803025812.373029-5-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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 Sun Oct 5 14:34:02 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 68DC31B4F1F for ; Sun, 3 Aug 2025 02:58:27 +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=1754189909; cv=none; b=arViIW9xJz9rXVZPH+DwrP+EQxk8z2oxx9F0qykLqQTn7O9JIgWNONWu5ijfJ9/ib88NAYVaD+rW1OQTof5J/7+MVrW5F9QJLT23ypZ9UGjmtL/FI4SwB4+gwhQURmHCq90aFmsx3hx9desLl4TJdfaMooZBf0VIwdQ3N3dTlhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189909; c=relaxed/simple; bh=ooFOOV2isYxwgZ2SmK13jgjsTx8sBuH2wENU5XY8MgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PxV6//S3I7W6eF6iKFjvy7joBDujTkq2CvLGhLsWpGqFw+pwlUxNMKe16wExsmHKkQa6N1USvuRD9oQDFPLado4Cf0yfHrNRvofKH5hYMzURv1iwSMvTkz+EDNEvax3/cIQd4Srnd08dvlM/ttDiI76T808tJIguBlD1X2/3Rks= 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=0qNHBJLM; 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="0qNHBJLM" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-8811ab2b559so240821939f.3 for ; Sat, 02 Aug 2025 19:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189906; x=1754794706; 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=A4wudv5OTn00PNZ8isBITe1KCx3hdy2uajB+8N6UIZI=; b=0qNHBJLMqvDK1q+DvVM4mUsGTSGyvJfmWZXO4YzTA2S2tbfxXR9j4Ld0UKibKkoXlu gGx4NSCAYdJq7BvULnWbybUOy4Z88DT1P9veTyNOavF4mYyQpzORIgG3qLh2+SAxrt+g 2aPEwV7JUJ2Bx6Vt4pNYoryy7QI9VUFMfkUpuHB3BWuy/yu16chTKpIsn9qhWb2Ai70w WU2K50j3P95BVpQFtTnM4h+1wekVuzjVCZOCrZaFBBX+mYQxLUl0D+9wKc2dNQpTz1pg kYoYErpRcC0xOuX8wrMvxyb/dqsWwB39AUIDmk6VySFT5BY2/9fhztkTzS9ZqoGKNlaD /mFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189906; x=1754794706; 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=A4wudv5OTn00PNZ8isBITe1KCx3hdy2uajB+8N6UIZI=; b=Ei7FCXd8rB11muMTKktI9xTpgpAkZKYKaWWFeroA0W87R/vLG2cBKW3grajyIXTfAL jPUlQw1mPAdgKmMObrbmoykkmDPzXITi0WnF+mVokYFyEwSOylstGblESpChMAilqp0t 0PTXwMsaGd0ukWRfdNx5aQHXVDraqwJ+Kz3DF9rWM2RkYYrxm58MK/buYQoUc/wBpuLw WQ59dOtEuzbK5zWcuEkwHRKECC7Mk+EhQD/Jhzs8jLtja00kJPF4AfqDeifvEkB+oExo tKNgawCYYuL8E/yRU2pc9VrZzV8SreEEmw4MBgEhCVXR9MKyH7xYfQbhTWZgjkWnmQpH FI6A== X-Forwarded-Encrypted: i=1; AJvYcCUSEZXidqL41S2na0LIj7pCWJxQ4Rz4UQm4uXjmk631RdroiAlQVNE92pC27a57GtUXzT0RPgmHS/UpimM=@vger.kernel.org X-Gm-Message-State: AOJu0YwLOgX9osMFny10kKvaQ3Frujo65OOjbmO+I8YYuFSQOIG6vunw gySANdqN/iXEPNJDkAXLYffMdPND+OLH1Dxcss6Uu53Al9BpcUvrMM9MCgmeygrqF4U= X-Gm-Gg: ASbGnctTHXUG6Kem2noHHD/V8fuk+0lu5OEEupy4Zw3+4Nj6BEN5FLMrQrP+te/VP0c /14XDNjWukeIajk507j2QbSqudB1nTc6YuZ8jD5UH32yLTz13mFaib5lsADsNuQe51KjmlORZST BbKjpH+arfX4f9hQkR5ZP/g2/bkOi8tRANZ+KbzECKJ59NgBZhr1HK/V9lY3nB97PCx8Ogdu9Km XnfdXI0gO/01lxWAwz9u61v1Q3mjDi/+iP2UNGRUSE8hhFzhf0mZRbmfk5B8YAEH9h6szethQL+ 8SYndjt48WNkDGVqsdkWnSYdKQM0riMBMyJWKC8a3PKT0FAtszDkLIENx5pATls1vT++ikB3suC MR87bxHzkl/ogO/E+9aMPNWgvKL47SuJ5lc1xAoWSWGP3kLfg+6aQRa1YEFDvbpuwcg== X-Google-Smtp-Source: AGHT+IG1jDuM19c32X7FZiZX2Nxo89FAdD6zwv+Hp+DkMIntJ+DFbyz02dTcR3RcFe7s1nLk4iRizg== X-Received: by 2002:a05:6602:2292:b0:880:f66f:b896 with SMTP id ca18e2360f4ac-8816839db98mr738100639f.11.1754189906348; Sat, 02 Aug 2025 19:58:26 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:25 -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 v11 5/7] riscv: dts: spacemit: enable the i2c8 adapter Date: Sat, 2 Aug 2025 21:58:09 -0500 Message-ID: <20250803025812.373029-6-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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 abde8bb07c95c..580f77b5e838a 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 Sun Oct 5 14:34:02 2025 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 3A14F1DF26B for ; Sun, 3 Aug 2025 02:58:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189910; cv=none; b=RrUs/bw60XGPTNfK3USFZLNG+Dk3WecVj7BRqW2Q23HsF6iPIj7dixdJmiI1XYlMWJpaY5eOS6mBj9G/Qb7HLJwW4NjxSj1RgC8CA0jzw3AMD0rJx7E343iwzbQTN/ZET6G0WLu5fhW2nXTdl6HpCGPppu3HxmI6aTdkKfbSk7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189910; c=relaxed/simple; bh=4MkO0yPVEXokF7BKWo63wkxjH8l6ox9Iw2xywkWl/sg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FBf9VJttuU/DSZojROSpN5x5LzQbuBc7cd4H+18kZfFnl/4s/gSzDsYbUjSVfJWz4pJnhBgmr+AVOd5517L0aCwvv1qb+J7EWC2e0VzZD7frGii7jZ0ZMlHVSOTItmWrJIMp+2n8mUamUPnWaw/1gGbK0HXWH99QLsFgFSTSwZA= 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=y6Qn/Bvm; arc=none smtp.client-ip=209.85.166.178 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="y6Qn/Bvm" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-3e3f1e69090so8124525ab.0 for ; Sat, 02 Aug 2025 19:58:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189908; x=1754794708; 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=y6Qn/Bvm7zFtGniKursimz4TE7Pz3fffi44w8VYNvfkJhmW3X3uvkubL8AcwfXTc2w 2Ivg8hZwL4MaGc1wMpU9Gsj3NeDfsDCJgIbjYzErCWsoZcgRI4R255ioGr/FYn5qfgUR QjIHEvqP1X9xERn1WyxAbYY7TqZHb01huH25j7ULTtPKIAPoH2XyMnfdmi8SoJRT1Bkb 5CydB/XHpyXquG/4rUhduSnftfCmjyvHm2U4mYt8dKBtJgphs2M+gv8ePtDcqXoeE37g VqoHJEICYywhyFJwFLoxcS5N5Jsg6/3hu7KmzEKukRvXuPL8Ewr96cCEHxQ9PtGI94fu 1duw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189908; x=1754794708; 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=fdIyYkqXskg4u1HH32tJoI3SIT2d3e+YLcQhU1pPXdErciunWk4Mq8wlbqqj4YVUGz k2lxAzmVs9CPHxlw+QqOeO09qR2rTKG2m/upZ1zfRDTRenTDtlj3neL2I1pIjWXpfsUc yO1cxCxkZtvmWUj7VFCtRq6ksXx0tVzJSXyaSQfq+Jw8ER2q/0iP0ur+vwbXseU5dBdy l/p5TcFIULXEdf4ram/9vqdA8IBLPXlVNdY0EkS8dQPNc3WMr66BbdHU/Y6iXgBrloaI rdnRgEfDxzHMbBEhq/3q+bMr9JjwkhkHCquW/hYrUhabRr3EZrEMZLw4FuWhrFx67L4p 8/RA== X-Forwarded-Encrypted: i=1; AJvYcCW6S/QHN/EXbrvRxr0owSv2Bhd2Oe9KbEwHJu1ZVo0P/JoWu3GYvGEZkui0ssXevELsxdvqc9/UwmocWBQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwkqAs7YvCrelUHtcc141LZJrjZP5BvbmFYJ0fCKrqszq5TRcTF o8ez99gb+SuUc/rDXXmb8c03CKOO0YOyW6WAVKSdWlgPlK2C3R7xKI1dN5mWTYd0Exw= X-Gm-Gg: ASbGncvZ/lfOXq3KpbvH15Uoj/Iu7gxdjh+u1nm7NXUqM+a5EJR+KJjer7tz6eeRpst dg19dH8tQ9ecrY4jzIFl+OxMSG7RnvjZ0yWaDOZvhoc6fXbSAE0fjXszXch0NV+M8T8DL51Cy2M pLb4DvS6YteULrClL7haOtPKwU2fBUigrRgFYc8Dqg76J3AW2j/trE4KeweD/ZWP6Lc6Q9ZYA/s qdcAe4fufpcZe0VJb6wZwlJkXAOiA/J3nXXlIQohnAz4dg4BNyrGjzxZ5zssRjeiSxO0BbtGYmZ 5l2JAmDQLPCZMGe8RdCxfIhyVe0xSNwPcwXsHXtSJjIXnogdBc40FaUHgR+oLYhhQDB0nmZrGI5 O78DDSgDYNc2s5lJgjpVCgw14NfVgbLeuxOqSPfDy//2p5eFP5LDQdGXLGkAy0wdmHw== X-Google-Smtp-Source: AGHT+IFa00F5/dr/4CJjlueOFIA5pV3OJea5UsZuFhaXiwjw86cfQMhRrHQfFtqyDPs6JBYJR5sLdg== X-Received: by 2002:a05:6e02:b:b0:3e2:aafc:a7f with SMTP id e9e14a558f8ab-3e416122d83mr105791125ab.7.1754189908398; Sat, 02 Aug 2025 19:58:28 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:27 -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 v11 6/7] riscv: dts: spacemit: define fixed regulators Date: Sat, 2 Aug 2025 21:58:10 -0500 Message-ID: <20250803025812.373029-7-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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 Sun Oct 5 14:34:02 2025 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 1220F1EDA2A for ; Sun, 3 Aug 2025 02:58:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189913; cv=none; b=lmxPjHjWaCGZqLm/5/aXFGsCneL4QrHFUxlaJHmkAePMYs1X8cTKe3uymyK4QhOCLumyA0MgrtD6Mh3dQl4xfu8mu4QMpvp2kzANu/BpTnUWKCtxO27NnK6j9p7WRdtBXFhnkdD3EgwWPSFN1MTPuXpbqAo2VgJWw+Ps83EjuvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754189913; c=relaxed/simple; bh=D00Agu9o5lMwHglRF8JEmN9Mz2SwGM8gIpQ2brQAJHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jm18DjFj9by4IEKEeKzM/z5FfS4ZjtTSsoFHfr1B3Xotl0WLCoWAtEG/y1Dxium4OVKy5wi9s6OxWo/OOj9MYHuiSC2pRBsd2ULNk6NyYcOId7VvtLIS+kTYAd/bezsWGW0cQOXagV1Am+Jo9b7/3evNimxZjXcLT+Q4P+UEegM= 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=sFD5XxsF; arc=none smtp.client-ip=209.85.166.176 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="sFD5XxsF" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-3e3ff43383fso24443665ab.0 for ; Sat, 02 Aug 2025 19:58:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1754189910; x=1754794710; 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=sFD5XxsFKxmWjE+uyL6WNh/FBqGg2Rga1WnnDeMjvZvQ87Qz0jn1S3UScBbBGGP6m4 lVet5W1vZKghiHySyX84g7nXeesBdwTi3xVWihz1kBOTPUfVZ3fmZYIxR0ixqqz4mAng oAcCi/U0juxHyHuYn/2i+gzNRdp5Lj6bcIfMgYsVLImWsx63N7M4gsFlcbxXALZ/hXpR /XHtxvDAh7OTZjzI4KcWQ+keg67ZNH/ATSNOoRZSrU9X1TvFEKdBB/mgVtC+m7BoZGz5 6Ny2I+Gjg97LM0jHcVUGJDOa6yfXQhLKLBcIhIPcysJOEoD7QGFCNcFhXjHa1JYfi+7Y d1zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754189910; x=1754794710; 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=FeYU4qL083FtDjh5PZPx8hK61Ma796Nhh/mgNWA84+pd9HOhUhBsAk6togsadetTM3 boocE8HtuXW5B7IpVr+ANjwGKeKP/SYuxeStPSOb9oX4dmFAwsw+IszO6PJXr575jXn2 Md+1ARtboThUIm2HtsQ0yWmOao0ezYSOJqmVLMlALQOZ6kuJ+AG9eyAN8MuVpSiiWbyJ 2C/ruCX7c5Vt/vg9WyTd3rEaRrHhU5yZbkwB7duLbaBp5jm4oQXKx7KBbBoCeO8YOG/3 nCloc5fSkDHwv5AWL4HcKLZDc8Hvc8V1n4tsiYgeCh5HPBA1cs/dHevF0gK7CZ4qWnVV FcwA== X-Forwarded-Encrypted: i=1; AJvYcCX/SOS0g0DSVLaY4j17TlM2URRbQR7/Oq93mjaP8YSi6+kA9xQQJnDCX1e6QqJUoCAfw4OUgWqziOduf4w=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+6qh6vUPjEV5hbjyN97uS0D8Xzs25sDUvgT3BuXtKii7MaTNH hGm8gvI+fV1zbp8OWa9YI39J88Yll0W2NxSqLib2sQOoXEYnrmdrS45rDk4JN/g8/pE= X-Gm-Gg: ASbGncuMWx+HYNPHWsMmLsptwUCf6MhAXsumFXm1Ne1HVL9AtOMUIiaHqlkGnCmnCDl mKzz3227I+XD3+lPFnc4qsOYnH2Twxogz9iVlwd8otmeRcfaU+uSNsZ4p8YdEv7up++ECCMiCY9 Xz3VmHWR/NEFjRrPKDaDkEEhnAAysctkFKgzNXxNtzI7kk2E2XTUuU1nlpGoAQ38uaDSd3CvUXC qNwng89zDP4d8j1cUxXD37s9dgNFb9HELY83/IKoEGhhXz+gczp3Au7PM26CVbqajcbQxk87pWc eZneQ1ge2Ql5IDs67KxiCnV0rn7PIpVdD2XkwwMiV7GCbje5RHCsQKE+vsf8PIstk5XFWTRnhHz gJUBgUww8zw55mqXFmtq62ScAfBGvQlVwunPOU8OvXHHBS4gEf5SGuvMsH2PFGkHg3Q== X-Google-Smtp-Source: AGHT+IF+PU1Ww8JQGqYmDAP1BywlMvxMvsGkL0JMtzACHATEhfoG3q29UZAUTYQ4U26WEgaiO5kgRg== X-Received: by 2002:a05:6e02:32c1:b0:3e2:a749:252e with SMTP id e9e14a558f8ab-3e416109acdmr88472255ab.4.1754189910159; Sat, 02 Aug 2025 19:58:30 -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 8926c6da1cb9f-50a55b1ac2esm2251906173.1.2025.08.02.19.58.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Aug 2025 19:58:29 -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 v11 7/7] riscv: dts: spacemit: define regulator constraints Date: Sat, 2 Aug 2025 21:58:11 -0500 Message-ID: <20250803025812.373029-8-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250803025812.373029-1-elder@riscstar.com> References: <20250803025812.373029-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