From nobody Sat Oct 4 21:05:22 2025 Received: from mail-il1-f170.google.com (mail-il1-f170.google.com [209.85.166.170]) (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 6306312C499 for ; Wed, 13 Aug 2025 02:45:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053118; cv=none; b=SAXp4wncdjSn7EzIMfl/Bv9fyMtOT2CE0SNYbgYB6YeeQWpxhM0Eajw4ufx1bqf85ny3XySk63xeVQqvyLcKqyZsgIB5oA5enJLELSSi5D/3obLLHbAnzf2kWe1zYArxJg1nJWzQlVKSemmPpgrBJ0LoTC5UscePxTbXBLJUF0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053118; c=relaxed/simple; bh=f3e7VDZ5RpctNbfj+dyIcOXKfTplNtROBxfFMgGp3q0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dpA+w9G7OFXCY9ymWSiv2Jmy8cHBfqZV27cN0ga1XTma8qcSI0cbBd1sA/oAVOs5Xr/bch1j4Rf9ejTbChSCSFUfTfGn2ZMwaUN5WMM7uEjrdFcB2O0FUq0XA4F9f6TkQcfHYPv+alSgnnpvrJ71XnGws6rvdrsRDno3qme12ac= 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=sf0B3yS1; arc=none smtp.client-ip=209.85.166.170 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="sf0B3yS1" Received: by mail-il1-f170.google.com with SMTP id e9e14a558f8ab-3e5684fc1edso1342235ab.2 for ; Tue, 12 Aug 2025 19:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053115; x=1755657915; 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=sf0B3yS1qPud7q0W3S6BWnLkjqfU+/Ju2ZJenWEd5LYeNeg+/pSFoLuBki6/pm9NGN ZvPeNY8njAoqVaHrLOHzQAusHYSmAYC8etonHWddbRyG/tYcjaM2Nll3ynGj6F1g6min Q7YQMxm/flHGpB+Nk/eVBYDPWa9zAEActpDiZgoo8CtqLfYsyNGVWlHW5zOZzXycBSM3 uUP60JNt3X3/rB8ZZiNkyz5kuf3OwzDbWthTq5aFh838vBVq3izeciEcPl5lYnXT1iu6 AJGdWzncJuQmNv7lOjOvgRXQntzsfck1oZWkbVPMprIbUqqsbDRwHnBml4iKm18N3Yux 7MEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053115; x=1755657915; 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=rSOg5KYi9/SE4QktmzsxDNhXNaaxxVDmVWkjqKy201OokazVRIhmIuQuOGD0h8XFl8 O2zoGXYFlUo6XGck32Lm1ILUc2j7Z+bCOvq2gxZzCr4o/pYTT2MjjKrJ2G89tGZ/ofxG i3Ncih+Q+/yKstzFtxZAvb4j0QhdPUl7ep2NYQq9yhS0n8Rth/3/jO3NWVJDP+zcyhbp bEldoUJ+3YdLLTvLMpeU8dhUsbknoLKHU2IJkrBlJAQQ0gq/mCpojIT+Fnmztme0N/Ra pxQYSeeA+EQ+Jf/pYz6JymvA1GzqZGmFR1znPBzAfcoE+KvNae2z6FbSiMhrT8ziKQzL 8FFA== X-Forwarded-Encrypted: i=1; AJvYcCXJHselZLG9GYgtg4S4QFYBPLnfA/Qo/Dqp4IPUZ1azNzZb21bi7QDE1YjmUTrYIAKlzYhW9FgGZm/ZRR8=@vger.kernel.org X-Gm-Message-State: AOJu0YxQJFhA6hRsS173anmamYc0uYZ2Td0HQKW1Op1PncWU9BAqzQxz JMHChHoN+0ZA9dW4YQgUPEp0PKOPh/JVNbIn7nRy6SiiAQjypWWVTFrKkaCtCvnnaDU= X-Gm-Gg: ASbGnctBvegThw8R1dih/mnnQnBZy+7fT9jktkaUM9PIAY7hC5ugm5eteZ5IgssTC1C uI+oqPpM+sMHj3ZlYIddGiqP80LKUpedbKN+BMZi7bObW4vymYicRWzsPrv69EsUuO4wAEhEs95 9agvk4hF6hI0aBTxvMdvdfwGb9leNPnDTn0FZwpkv5lH3q0NqG3DD8/WNGDyFbRB9LXfE5cMjlT Zb0KW7oBqotKjs8YGgu+nPUV3fbAIr+e3lM3iIYm6s8wFF2MQ6cnCG/XSz+L/jCX9XZeIWhyKz5 319mUhypwYJo9nMgpbAb4y+l5blo6+//DUVZ7W1K6PXMe8FnRro44cwxRz60HXXtX/HAwoV96X3 ScvGg8hsaPqXWerGcOIx2HzE3VWV4tZGfYtNyAAsTVyfb5dCmqO4tVQ2cP8lxr/mJWQ== X-Google-Smtp-Source: AGHT+IEIj1vS5MVYprDokhwZ6AIsmFX7Hyk7OB0z1ohQkNDbaDoool+pCm1v0mkiT6rf8e612agvcw== X-Received: by 2002:a92:cd86:0:b0:3e5:40e5:bade with SMTP id e9e14a558f8ab-3e567367d43mr30922625ab.3.1755053115415; Tue, 12 Aug 2025 19:45: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 8926c6da1cb9f-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:14 -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 v12 1/7] dt-bindings: mfd: add support the SpacemiT P1 PMIC Date: Tue, 12 Aug 2025 21:45:02 -0500 Message-ID: <20250813024509.2325988-2-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 --- .../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 Sat Oct 4 21:05:22 2025 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 4317C27472 for ; Wed, 13 Aug 2025 02:45:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053119; cv=none; b=nTV7ztofFaEYtCCyOBrF4VpE7jqfWPboiUW/h3izmCJ2p2N2Np/mU+h+ShQsyDQDYGk2sRN248MoP3nHRbUN0espW8t2G+BWNbuNi/Br5lZaJbH88juMMuDIT21Gr4eOV+eTUmSrEBZ8fpoYSzOnOAYpkFtQ4PYi79o1CC1fjCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053119; c=relaxed/simple; bh=qAyi6Z4J1VmKuMgL9UNLnXal9YSPn3d/+rrwoINafhg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=boFt6FxM4s9zGKXKDmOghWvAsfjnkMC2UxVTd34CtDPv9Z9qbb4CyZxx8jg3zivOAst4gryDevk/FXGZRKu/K9rYzTbIrGKwDdK8UYTHC18YYieKqz3XKu8ryqYM9Piv9jNu059NwM4U+DdqsEdxv+b9c7NL9zFLhu6AEwyVVxk= 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=BiA0sZLJ; arc=none smtp.client-ip=209.85.166.175 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="BiA0sZLJ" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-3e3f378ea68so60558325ab.1 for ; Tue, 12 Aug 2025 19:45:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053117; x=1755657917; 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=jpWSmw9lis/Pk9ItaAyFFmK9qCXYijFo17aiCbiLfY4=; b=BiA0sZLJ6U/URK/0UFd5zrj4oaDfaHTIwPs4HWDgc86XhuCszwuOEfyfJgn2KGz7w2 TGgNxslj5Uw2NBpY7gR7lRvEMRpNuTfHKuy5dACl6XXUcspWpfKeC78AOSf/3NXsJ6P6 ZdK33xaBLg/023JuOiNDWS6wBx427iyMl2PP6TKQLg/BsYiDczYc7Pf8I0KPybclYUYP Wu+oW9l5SjoRacTmLPJktt1GiLNwlhdhNV8pgz6L/ga4RSSAABhfR0hiRI/JoceKLi/J iaNojzS8cIYD96dog0q3L3ZeqGHM67nK/O2tkdYDeNSG4TsCAYLYqQSThkDLifuygELO uYJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053117; x=1755657917; 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=jpWSmw9lis/Pk9ItaAyFFmK9qCXYijFo17aiCbiLfY4=; b=Q/ZVoZnCfsJbM3EKwTw6573zseKlcGVJ0u0n/3WX+16fpdXKvViXvkObtEbxvSL1Gb oeh/J5VjilHxxPpzIb2coiNKQaGoRZK1lf+gw+jQSozRVOUATFtRWoN6BO5s9SoA1TNr mq33D9xTapjXStXYwUDnocXLopC+t8NS2MTVcvThUQ+Dj7cf6dkWi8sjPLvPNagLYNYz /Jjah9sbXUhTObV9DKVdCzDim+DXQz37Hmfe7dlE1gpqF7QxmXP8uj9UYdPt5o+6s9dA HSR3bxnXkSILHAfOY4tE9BzBhmw/AoeYyKUZV5leoku3KmPytBWtxLYJFxJ45WJ1AB3o cPZA== X-Forwarded-Encrypted: i=1; AJvYcCVQTVeAVhLf4fBTIw4KICOZjw8Z2/jokMTktjuu2/a6N4iAjAqEdu6zEPGt8dM+FXDoSwWIovxp/SyLXp4=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9dHMmEs787/gYUeRU8drUlAm9FlWr4sljzYkptcgYqSIkbrb/ iophoXYlxeoI3/TuYOTTed2dKdullfyGvWdv5lT4LeCpnsZ/sQml4YixxNlNxSqh/a8= X-Gm-Gg: ASbGnctbBPitv8J5cO5QL7QkQZPbO7X4qmss0ta7OO2A3/ahFO/uTeSXM+/+sUopbPb SY2s5HszZYJjyq3Z2phFxpZMGyyb8qigfNy0qBpUQK+r5H5YDHnsZxwIM0ceMGGwc73Fj0Rdfb9 K4x+mjIshmRaI0DD84X8ZJSWqDQqE5WWZrKJx6PTmqTO8ND5PX5dhTfA810c93ddBkbmDLQwlLx bloP+Lce1PDzxXt1a7bqQQxrcMBuZ0wB6TfKkxYifV7w7gi3lnNjTEefVudc3MI258qmAl0LHNP qXv+vfjftYruSgeXXPlU93Nh55hBNVjjaIc1rlZ0oN4mtYRBOsf/mln5JLl6Q+n9C3/g59lY+wS 3yyt/KWVqSWV03AiwzP6jjE6Mn5n8uyCxBwAGfUTEXtR1ICDrKIwv+PdwhHkRfw0ovw== X-Google-Smtp-Source: AGHT+IF/iYJMmWmcL8yZLA7oNGcNRdI/2yJYPqEsD9FqvoMdXobCS2emz+maEDlXX84/h0VsLJTXHA== X-Received: by 2002:a05:6e02:380e:b0:3e5:4eb2:73d4 with SMTP id e9e14a558f8ab-3e56739943fmr24223705ab.5.1755053117425; Tue, 12 Aug 2025 19:45: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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:16 -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 v12 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support Date: Tue, 12 Aug 2025 21:45:03 -0500 Message-ID: <20250813024509.2325988-3-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 425c5fba6cb1e..4d6a5a3a27220 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 Sat Oct 4 21:05:22 2025 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 143D91F4CB2 for ; Wed, 13 Aug 2025 02:45:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053122; cv=none; b=bYqv3Ak1uenC1N7CX+K25AdINe/hR/y0gy06TKFsZR4lav6IRPrJ4FN7XOUJns3kJ39apnqi7jMoSdQrHnQiTTTydg/+AoCEsgmaFalFxCwYhKwt0yD9yHEbnNWPK+Vf5RvC3V2Ilxzw3snG8i77uohVUwhwGd602UzkezM1NGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053122; c=relaxed/simple; bh=JXGiId47Psfuy1p7PVgHmjWkUGFq3hq7vtSwbXC9y5I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eamwxI+xP9tO1SFr4YcUncbbfWpZMLhMOw5YjHdbIvGVhIliOBC8TXwnj648MZg86H2H53oa+fucqv9gb4/GaAzY+S1ikFn0On7OFwEeSN44Znj94a7kPBYqiYEpUhy6pVjoG4dLYR97RwT+X/m+O9cMGSURgct2XSnXwVgG7kk= 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=A5wOyusv; arc=none smtp.client-ip=209.85.166.174 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="A5wOyusv" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-3e3f378ea68so60558615ab.1 for ; Tue, 12 Aug 2025 19:45:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053119; x=1755657919; 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=Hsw/BvZpIOZLGeqmGQyLnyroLun+pMXni9Lkp/zHiaQ=; b=A5wOyusvsk0AtGQMIdjTGPovLuEVu2pMY5U+/i01HdWhrA3Z5DY1LA8LDSFYaMOL5H ieVlNeKIJKG5B5Ze8Yl8+QsPQr3nryyHgf272LttYxziEhOJiFPZEZRbuxMr1Vu5AsYR QuGqO+cgEgHKJa91I9NAwpiGiUHPjk95vPucYs+IxUBZFG/HY9oiSEtjBeyHCQZdcSSn rR+7hnzJjsLyuSAfilpJbT1QHeiVPjSYALgPPUYbOdWfgYx03nKeCz/nOuhs2FGokW50 z1z8Ex5RxnNi4ht+wR9y9FAnFb3o8c/Y12HAVknlMJOAtjPJJLjrfFG2YJZOTYpty5y5 18yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053119; x=1755657919; 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=Hsw/BvZpIOZLGeqmGQyLnyroLun+pMXni9Lkp/zHiaQ=; b=Cl9JZMTna9cf5jlibCU35XznAL/Ykr0AF8oY5XxP4Ti9hL+bXOu0ZeyQtNpcDVpHLS vs1+u1RE+jwp5vCwT441ZOYRaYcyaLv9pzKQpsE8cGbIXCf3prWL61F8WId1aK8kEgnc ZrZFKQ/xxB+zwfd+nwyMs9pNKeWA2TYYLyrKknc1noc+cF3K8lsxIXI1pihVxmTuh3wF IjqFdOKohZMykWRUtlEEGHuCs4p3fyE7KJeeyyX1AgUKR/t1zDUkcbBdpegU0sLfXxBx QP0pepmgA7gSgutOMmAOAShWYpAfOXInJqGC/yL/NEgEndg68ehP1NCyWQXuNiAy7xe9 SglA== X-Forwarded-Encrypted: i=1; AJvYcCXAtUf/1/ILava1MbWQUM+KG68/7bCJBBQcHFfNmeCar2HD4FULQinA2YQAzKeQkVMCPl1enhDVz9w6pQs=@vger.kernel.org X-Gm-Message-State: AOJu0YxEFirkTFDl+BHAg1Xm7D7NGhcuxRfQZ5VrlH21RgBuItkloJkq RMrq37ud8aqIDP3z+kSzqobdCr1nf26ZIC8TjWFsPuoYN5xbqkCC5f9buOzqv2uMsbw= X-Gm-Gg: ASbGnctfGVhwwh0+NxlAjOEa0hi3a9NKH6pFKJG0/Op8MtDEsevBtzoZQKfqr3S4bxj NyjDLbhRBkY6FIlXi2Sd6mCvRpR+vD0pIi6LBSQ2wcnsLZ9+0ExZZWvidmkorVzIvyAUMsSEhav B0INrPn/ErlFDnCmHKLdrDCG78OAjKKoAUpsCEG2tzQqlkmdg7M4UD+q8wK7WiClk9pH8Lhb7tq FyO1R78Q4m0ljLxRVAE1ufzmuaddUMVGC8SX6v3uPnmKjZulwDT+ECLinV/IweyAd9GwC++PROw XHlrLFjmKKNMwg60ekH/r1F2e+npb7Hxats9LIeTdzyrbubSXsP6+MpqwIlBrupoTpb0Q56O1DF KP0S8IhEND8EurJmubFZx3hYxQCbDLwISFUNsoOSdZKo4KqEcShjWTo+PfZk5CTgGQw== X-Google-Smtp-Source: AGHT+IFmoYgFL0Ljoe1EbjW4Dm+mpeHUqfFEK+3iLnHmLdnCGnJsszG6Dc6UhDM5vRqVThI+hJTe0w== X-Received: by 2002:a05:6e02:1706:b0:3e5:5af7:7c99 with SMTP id e9e14a558f8ab-3e567399a2cmr29260485ab.3.1755053119190; Tue, 12 Aug 2025 19:45:19 -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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:18 -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 v12 3/7] regulator: spacemit: support SpacemiT P1 regulators Date: Tue, 12 Aug 2025 21:45:04 -0500 Message-ID: <20250813024509.2325988-4-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 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 Sat Oct 4 21:05:22 2025 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 1BBE61F582E for ; Wed, 13 Aug 2025 02:45:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053124; cv=none; b=I5IR6AL9RsiPNLaPRLb1Q9jwRuOCKtBzjDlWbL2FssHQ7vhBB6dZD4S1faDGln6SopxiL02Is0TKj8b+ygS7nsQLxsAKfHxuK7LbKkdq8B9fuUZXACiWZB9X+zmJj4drijLBL48XUI42G3Fbx24YnMJrQsFirqJFtPZR0YpLOjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053124; c=relaxed/simple; bh=C67aKO7FCd5ZDQiMSKTLq4HBKkrfUiLt/UEjYJGWykc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FrMnghzsLrnzQlYJYx0r8/7LL3NRAfSsbQcDWt38hjUd+UoO3rnMthWycMH+0ISA5Osh6DYn6O6BuwK6IW3XciyP0sKPxAUjZMuDdAUV5ZbtmpCMeR5zzyzmMttGN14x+nLT4oGH3LJUjU14AFjbdXu5aIV3nBBo+zU6aMvNdkA= 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=Ig2QeeOJ; arc=none smtp.client-ip=209.85.166.174 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="Ig2QeeOJ" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-3e3f378ea68so60558855ab.1 for ; Tue, 12 Aug 2025 19:45:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053121; x=1755657921; 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=Ig2QeeOJ77dO3cfKcwPOWlLAiUZWFLAQ39FYa2H7d7ggTY6vgtuy+bsUQvIj85yXOs 7M8tLTeHnXN0P5JAe47/AP3/lIjEgNIRgUwXr/6zeQcWqnfS78asyIjJKcAMKPn7Yhco PqN5rIWTdxO9C8xp2Z5AxKRFDAfQqJFQt8fdvWWcRuzOZY1/lkpgDOQHxpQTnbWr9F+R 6HdeYdx7h6aKGPWZCpGFByexV0oLRzh4p6C2mRQIEOOlyBCXUXC+d5/Txps8EA+aRVdY DmV1XmfXevkPe8DFatb08IK+K90ZUhz4I706t9P286p7o0y34Lz28FGWvogi7oo04GYf cusw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053121; x=1755657921; 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=UCK8oUOXC1XFpsB/Gy7+m8BsfaAP2EguiQqdqj0zFHJllxVw6ux1ewlqMG+d/H5Xhk M6fYVi6gFmgDv8qJ+nt5ryf0EfVqHWbOuiylNPhTn/3aW00v8oZL31OJSpiVJdpCHmib mIKYXuegFDO+gLBrKqIPs07GjXGwGGGXA8KSlkx51SBS816n54he3iydmszNTOBYTVep VNmm+/DP3vcBwcE3xTtnU+VAt48++lnlCAQ0/G1/0NjJWbXDiuya+WnMiIKZ1ytIfTFq b+vvRkHPlPz8JI6SWISDCzi1JBPv/0w4w6wv1Wo+kRZjC94kqMTQJ78MzPEOdoUUhunm hO0A== X-Forwarded-Encrypted: i=1; AJvYcCWvi36Yaa/pVCZ0gO4iQHT7pA2w+4vaJ7KY5wgJHWElKeT4RZGNdC/t87FT6PMJUuXODtMFSMYkY+8UH7o=@vger.kernel.org X-Gm-Message-State: AOJu0YyeLW1SXNmX5pUbNu3IQrhe+GJ29xp0lo6pdV1klRzVMpBzwsPD o11JM/xAZIRatjdp4MdjfiOEZjnCUFYilVMrkgXit0/HcNjSTe1He2IzLyIXPjv9gcQ= X-Gm-Gg: ASbGncu7GhhY7VhewOo/1sV6H2jZ/BAfBlVoqzUvmsc52ov/4z5sdhJYhdDeyNFrNjA wIyg+xjgv+kBcP3j9fN7JbBS5KjPzIlAYIK4vbOrnKl1YFiLImefxTlX14LmytVRqg55+oTlYmW y5HRHlDevzhIpx5C6EG/cfhqXydb2WAO9gj1ODSTrVJ3ItfK4RGMKLZ3oBXBtm09bMHE9ZQsU1f wnufu7lKbS/ZPMpnN6APjVDzanmyy43fBUzhstQiDSqubBfXta6hKOBhbH9MkZLL5A408y1mbXw XyU6oqO2b7pX6cD0p3fCIRXq101T/CdY1gfzNMgw8loY+2b9wHSzg9aVaVsUdRFTjGVRYiXo0Vv 6+jBlWNdYQaFaDw6+d+DqEH8V3ByxF56Eg3uHn5y4zoNkrI8aJN3LvgAJw0RvFXKl9vTbCLHLFD V0 X-Google-Smtp-Source: AGHT+IEz5tWV7AOYkO1G25C+KmYFDcS2TvlegHWnbXhHscCzocXaxaX22SXdT4MVFSdmWuMwXllV2w== X-Received: by 2002:a05:6e02:12c7:b0:3e5:3520:4a75 with SMTP id e9e14a558f8ab-3e5674de40emr28137775ab.23.1755053121142; Tue, 12 Aug 2025 19:45: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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:20 -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 v12 4/7] rtc: spacemit: support the SpacemiT P1 RTC Date: Tue, 12 Aug 2025 21:45:05 -0500 Message-ID: <20250813024509.2325988-5-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 Sat Oct 4 21:05:22 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 F0029202C5D for ; Wed, 13 Aug 2025 02:45:23 +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=1755053127; cv=none; b=gFj2GQPE4vwTdaipNV4UINq9kviaC/cmKs5u8mlswyusOkif/G++DWXz2M0aVqS5+H/LEIhKjpqVizqz4nu/Mf3PrIFlCNG3N3nS/oyDESWxuaS7Xs4lvMdVOnlrzARi8Kgh35Bu9sWyMqoRrCHPScBCv80STsfmFxeMDKLK4gw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053127; c=relaxed/simple; bh=ooFOOV2isYxwgZ2SmK13jgjsTx8sBuH2wENU5XY8MgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oQO5oRqm7gkedefMTlQTqljknPuynJJ5/IGu4AFOnnbdrB+iEAb53NZcEhb3pGURa0C3UzoOsnhcXTfzlGLVGSDwE/3cDeo+qHR2FHx8ZtQfYGMezQQ4o0tScj9Lff+9OCh/9sz3LTBwGk7eCZcxFdUvSTG+Dypyr65ilk49Zxo= 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=IXtbbbnv; 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="IXtbbbnv" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-3e547e3f36eso12262735ab.3 for ; Tue, 12 Aug 2025 19:45:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053123; x=1755657923; 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=IXtbbbnvveJf1MZUCiB+41pGDx1lnkcx8N6SbOGJNl+xw4zoKizkUB1bG0r2+6QREA ESsgVd2lFPse45nQLHbEuVRLxPVtExph//lDjdCWfIcC8L8kNNlTstw89pVLXBRxlczw UBLunpjrliCirFI9vjDml52HakFP8QNGv/AuMITgfkX41/MtSJAeYGVAxzeXUx96xY9V 5ZrCeGjqEkfsFtdVigOZp8aWKH5+vkiGsxCLJ5HjeZE9GaZzei3SA6l+3fgxbZHou9X4 cB8dNrQFEOCE3QxFiQHFe01IZxb+pX6XiH+QNjJZZRDpu42kx0JNhmbgkxIUo+VGMyp0 AORA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053123; x=1755657923; 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=u40POXF25F/wrHvog6KrP488rE8HxoAAX83AJUMWUuYro80F9/Bh8kVMo3MDCAE4Bw 46Q1+VTvSLqu8kZGZvOgnd5ctjusjBg+RgEy4g9AxbLZSJpbttfALQILD8CnKZ/uLgfc ThO2yImPMR6eKI9Y5thTATVFQfpyhPW8iOG7w1VNlaJQIcauYVuh7LJ5DyGGMZALNa9g 3i4wQWsgsGyhi6OPhCsRQUiqZH9LD8q5FqiSjk1ZiugroEEEp7evGORVcUQN4IKvIhJ8 Z29v1VUgppA8FuxRep0WhPecaSMju5/3gvEABOpVImTma02Bcu4fpNKbl1xDuv9NBnLk xRsw== X-Forwarded-Encrypted: i=1; AJvYcCVh+B2Z8MNdZBAlnihkt5yhMDZiFJZPIIzuFh6wTPQAmNyDi2vW64NFH9AWpQQjsuUXg14+ifOZ9J/fnY0=@vger.kernel.org X-Gm-Message-State: AOJu0YxsgLgLP6Q4kHK2OpkaWISm/iYmiolwpG7wn9nMDbRxTlCryXTL kxr4vGwR1GF8WsMFcYzzxcQmUqE6QN9SEdJMDPA+7I1IYBDVBQpmB8AJ35drDh8xdVs= X-Gm-Gg: ASbGncvbldLEdoQ14YKh+yOhbJjftercIMP5mKfy29fKjmDaS0HS7kPE4mH39xvZjar nskeirEaSIeNsL+TfnytqcpLws6nZ4270f3mDII/BESs0HrSYou5vmNF4pyp3kNm+cJpERJNj9q KawB0XSD+2NAVVOXpOQIiiHFG0nWSIzQaqQNRzbSyRHtP/8fueN+j91PMCzoTHWT6PN8BVukOoH vTMLRZlQhXggTDHCpfNf6n+c9dlT5f8nY7LOOUnY6vTDcJVQEUh1J8KoQUl34Qloqey0TXJYJur iN+w6Kva4nAs/oiCHm0XNh0apC3RtRskzgTG+Fi+ST4+5lzs51zY55/JSXkAFX8IgyI1KE4V23S gx8w+0pS2ml1VsBXJRa8Bw5FS/p6BJPutXNa8PDRNVEovcL69MuhQGvgcKWBvCUzDAA== X-Google-Smtp-Source: AGHT+IHNbGkypv04NReHT7LS3KpLc44/pbzlP8yxnO8gc+9CBy6bawzkc+ztCNL8hpgqnMvaPSvV6A== X-Received: by 2002:a05:6e02:154d:b0:3e5:5357:6df3 with SMTP id e9e14a558f8ab-3e56738b0e7mr29089105ab.8.1755053123016; Tue, 12 Aug 2025 19:45:23 -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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:22 -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 v12 5/7] riscv: dts: spacemit: enable the i2c8 adapter Date: Tue, 12 Aug 2025 21:45:06 -0500 Message-ID: <20250813024509.2325988-6-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 Sat Oct 4 21:05:22 2025 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 84B4C20B800 for ; Wed, 13 Aug 2025 02:45:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053127; cv=none; b=LSvUMur/hIGSCdI8GR94IvptT1GzUwdOBn1xTkv0dl2UTZSEjN0jDIZ+0Qr8A0tF+6yWtGjMS5EVh8W2SRo12sxqp0QyI3ERJos8rk93UBarzeWJHanffELxw/c5MF/cO/0tbPLcC/CZg4caj6bB7gP6Bk8c/TsS/bg12bN0rbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053127; c=relaxed/simple; bh=4MkO0yPVEXokF7BKWo63wkxjH8l6ox9Iw2xywkWl/sg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ib2sTJUBE44PiAI7TcVZGdZ1GTwRo/VLo9dUzTTYKg1OSkaGyUZd72ovDbACPULOTtrUKApQuWRu0TmJ0Stna1r9TwUE66N3zgUYxoApo4oB5KReWhrHxQO3XsktDRlIpO//hps2ViExoed/zGhq/6inprhsciawRgw80kSw2J8= 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=eVo8v6nD; arc=none smtp.client-ip=209.85.166.182 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="eVo8v6nD" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-3e545dc7400so18998865ab.3 for ; Tue, 12 Aug 2025 19:45:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053125; x=1755657925; 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=eVo8v6nDby4egFAHU+YUlBLnPa+BaFhpcuqK3xsAgwfLSVR+Hwel02EG+kdpFl1rk0 EAck2VpZGxxRuIuqkGX7tectvBr/hHmXffDMgcOAWVmTM4y+X6xfk2FpkWPZ7K28iWWs i81ixNz7V5ktLNt9N20C30kj5u6fBy1HFZFXYBrVjKkrRMMGVykCT8ieOWb68PjskLFa ijGWUuFAP1mlbwofMrJe4T/upcb9vK9NPQYv8iHU8YGFp1E7WePsAFu8RSOaY3lx7/cn lu3Jp4juHVeCw/nYodhIxsfuNnLIEwCmQQnhQ2O8MRI4oK8GPYPRu8st7wTFbdt91fUZ zzzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053125; x=1755657925; 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=aezsFtOLnnI2ZsN6LUVAmxZ3vw91v9sU84ZCz6S8qtVTMnHCeaQgYGARwIdlFtShiw 0hdHmCkuP1tqMbP/E/uUQbEUrled8nUgxiM72Kua0eUuu/lxz0GYbP5k16ShjbPf3Gm7 kuR3292RjdUHWiAw2PMv4H16dOJcMIYRKW0617kFFf80dZlj4qK8/jz7DSRTedC0G+qu Ejh/1tvu3h5HwPUBg7WF/vM+Z7tWHrmaxkweUfQ5eQIJ/MSRlXlIYPyawzBwNVuoCFOf +WiVgYmgsra1eh72cpUCUfJRa/i0xkhF7CWY+v8viOI3cLefAWSgDCm3p/XQDMUNkjNh oiyg== X-Forwarded-Encrypted: i=1; AJvYcCWLO+LdA9oR3sTiZw563dr+wn9pwWbpvVUQ0iNEufPq6B8+iqyxKDLMJZmVVaRFN0fr4e8CMW6J7NfGaeI=@vger.kernel.org X-Gm-Message-State: AOJu0Ywh6kvavhhMaOGc5KBH/PBvYjhkm/rXGk3u2QxO1l7QY1hi4Ts8 vEdPII/Klqt8S7LA39NEUh5bEoDo0frcoZiNbCWGiO3dgZl41hnSx2MJXEAaRROu4rM= X-Gm-Gg: ASbGncsvAfKl9nv4tl65iBMwIAMFZdvD1Z0SEwXuDTUm5U8xeO/hy88H7wdQUvvW3M/ 1xRwEZPNi65x8hh0SxYy3MNsf15xAlfUutm+tsfDIVnI6UTC1YCdYoSd3tPZTsPDqY+JYU4VK8U yMXCRswXvT0sVIoaeQcwQceKeRge4VxZ26tiVm4VxBoEL6vZzUaSnXsoVnnIF+z+Xrt09lrKaPJ GnCcSwjNL0QrKLMGO3VxoQDtvLB6dJdK0DjS1yuXit6VK3WtH31tNqNna8kOh0GGIQCGDAuVv+n xVTRd3ZtwkRAtGInw9nMXpcQ1mSnmtrMh/CJeoQsTJPgbloK0CFDsJMgXOCU9219LZ9O/qaId4L LPnL6MUbRotng3j+zqYLCHNnAybZGofxfsCQ/52BUmCogmEVQmShCOUyAh0G/GEvPWg== X-Google-Smtp-Source: AGHT+IEsfC/IKzLwt4IZPy6SkPXZpTJu9PySwz9GRZIpUkfEiQ20Q0ptezwTySBlx0jjAkkgtyP2Sg== X-Received: by 2002:a05:6e02:184b:b0:3e5:4a7d:2ae5 with SMTP id e9e14a558f8ab-3e5674b0c78mr21916045ab.17.1755053124757; Tue, 12 Aug 2025 19:45: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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:24 -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 v12 6/7] riscv: dts: spacemit: define fixed regulators Date: Tue, 12 Aug 2025 21:45:07 -0500 Message-ID: <20250813024509.2325988-7-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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 Sat Oct 4 21:05:22 2025 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 9E8CF217734 for ; Wed, 13 Aug 2025 02:45:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053129; cv=none; b=P/2FqtBsQxQx5IuvohJDJqRqisNwqtjeynHy9iAC7vYhwHdfNVY5rortNFVcjx4BuHNB2E6YBDYT2o+1pLUL51Tje0LlPTzm5Fqs59xNnwARGdZCmyTETalnfH/SnWWztLHqehcpWu4xrZKxHnKU93TYFr5rDlSpztXGOJXCsaU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755053129; c=relaxed/simple; bh=D00Agu9o5lMwHglRF8JEmN9Mz2SwGM8gIpQ2brQAJHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZYy6ts6pKMku0Uusvsb9Dwws+K+UyiuVbW3r+2eUI3pWgvEHYx/yZGUKbhjN/HRFP/7mkCxpCLxEKvbbHIGNX8Tn8EEDJrunBeaMuk7aaYoJUdjp/U2L+xFIjD64J4KgpQ7JYT6RTAgZuGTj2iM3f1RYgJoAhSoVAXRpIMG45GY= 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=MyKWcV3Z; arc=none smtp.client-ip=209.85.166.180 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="MyKWcV3Z" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-3e3f152700fso31014985ab.0 for ; Tue, 12 Aug 2025 19:45:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755053127; x=1755657927; 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=MyKWcV3Z0g4HxbJYAQ796VKO0GuPmAXSO0Cjt4wEzjCOhkePS31NTCLtaVsvMqfrgz 6pCXJMBTjtN1+TkyFgt8yDEK5jLOQ8fcw7lMoVaFYWAAAKsO1JloKJB5nNcza2JR97HD sTF0WKz0Nu6rltjPPhVlWhOKqF4pcqgzyrN8J8cx9ZMQiq3BcUi6KDdM5EtbCx/clucM eaSjyJdUHygYpvrIfcnVhE4PkpaZP51X90kVxkGm5qHeG7vE+BqqsCgmaVIqizq7N8Tw Faj8gSIu/Ju6rmQLxqA+g+ENh5UQwjcs53exVYiixG6m0YA1k0/aaw7+Y5lBzZK1nOXZ 0OmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755053127; x=1755657927; 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=oTonmYuXMDUsDMUJZxGfLaF8L9h4HC1MuB4ReEL2Wx4eaS9/X643bUZ/lmj9pwgSvz klT1WvfblkVBJM7TK1hMEt3mhXbY9Vt9fqW6ydvErVUysYSSuSXy6OW+p1UDm2qcSnLP VlhC8vnrNDVjnoOoGTlvbtmRKaOwDPSRoDkZ3/ND9sF4zRSRba2LlgqeDUP29rUvYuie FouG/zDXjazSA+4saEisVHNe5wSYwz01jK3PXz9A3YAVnumEYgb8e1dEHGl4+3xQNBjw W03gDc/uxDctAogZkI5faAsuJX2Y5Ey/J/f0nbEibSGT8+hSpMbUC3p8CobLT2GbJm1+ kA5A== X-Forwarded-Encrypted: i=1; AJvYcCXTbGbyTGhs89nw2G4pQCsqzlPIBTuKQ+lJSdf65J+LJLk0L++fYYYCs+FpOjZz3AnmxOBX+UKXx5FD3x8=@vger.kernel.org X-Gm-Message-State: AOJu0YynfUEwUNX7kyTmJX6rx7Z+5K4rGwfmZwcTdHDNX2LKaBE9fEJS c1HLNxLMyVd1t9lq9bYBB7hrPOfl3QcsNSUxQqSioEUfzpUMW5GmA8XyJBm6RPtJo4o= X-Gm-Gg: ASbGnctjFCoD9LX0KKh0lA2lc3vwdkdLemWl68+kG93YvCuObV7zSXvzaSo2nAQRzme lEmvkMPlut8SO+l0CEHrHW8/mJtvblgph224N2jScMC0j1SClRfF0Wfk9gA8fQ6MrPZD46sjphp cf97cmxCcaBPSWpdy/h+L9nfkGFp9eic3w+D5SSH0zhaAxdgH8H7vZN58hUEQeJeL9zS8kBNVqJ Lp5ti4BDsNpDBDW99LBXCum7xrYKocfFKLN6XXH02X4BW8RuCViWfGGS3wSQcY4obFQH9/mvH3Q qeZA4saVsc1cdfsiTAHtcj87EeLIDgwNMOCjfKPhbUseNb/8Qicn8rk4cviYtxZLZaOhg5L7SuL HvtduD+MgGFgKieLI4h86E/w23K/9Bx8UhDW7yXWPWoJm5PBQmRuJgTr0DMX6TQjnmg== X-Google-Smtp-Source: AGHT+IFoJ7UdDYgWZatV5u4GKDu3Y3U3FYyZUg9TQH+UAQsNUabAIk5nOGAMecrX5f7XD0yGFSpmTg== X-Received: by 2002:a05:6e02:170b:b0:3e5:504b:420c with SMTP id e9e14a558f8ab-3e5674a2d6amr25649635ab.18.1755053126723; Tue, 12 Aug 2025 19:45: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-50ae9bcfbf6sm3430829173.54.2025.08.12.19.45.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Aug 2025 19:45:26 -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 v12 7/7] riscv: dts: spacemit: define regulator constraints Date: Tue, 12 Aug 2025 21:45:08 -0500 Message-ID: <20250813024509.2325988-8-elder@riscstar.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250813024509.2325988-1-elder@riscstar.com> References: <20250813024509.2325988-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