From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.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 BF5ED28A40C for ; Thu, 26 Jun 2025 14:18:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947516; cv=none; b=upCwHA6lpcVA3iijkh4zVXGKepVlHDvEKsl+WpkG+oW9hgu1JeqPwmKtQn4naArfGCuikI3M/wMED7qdXp8oYMPB33GJhwFO+JU7K2Mel2nbLJpP1sMlxKAXvJOXA2EtcVVp+9vUx2t4wgL2olheGHUL4RdulP85psUUvKc7pXE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947516; c=relaxed/simple; bh=hMn6z2AZyzcbL/cGMK7HwRD4mhVABvJkOEyvUbzSheE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HKVyPOs567GoUXCtxuXuhc8Y4PbfH80KHpsCqk8sYmkVWmiCVsda4Y4/xBg74FaUAzBOc516w5IEz3ns6qpJmPu9yx3STNyR6whvKgcHOanaPaeGrGYjdQTKv+6Smz74liJy/VwDVlZk4poxwj808WJ09v5l/1sjjRpb99WoRfk= 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=MBBm/RZq; arc=none smtp.client-ip=209.85.222.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="MBBm/RZq" Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-7d41cd4114aso168804985a.2 for ; Thu, 26 Jun 2025 07:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947514; x=1751552314; 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=onUZmipuuggYzLIHkuYvhE+eJtHfnxxJxJfL7IX4aE0=; b=MBBm/RZqJxIrA3SUIbtxxRcOHu0DMtt+5ohk3Sq+KzLQFRGkR9N6+yydNLwzXonUI1 UfG8+bdoDnqjLOZYoQiDt5mAWUVfD9mJVcKdjTRvuxgugq15mk9AXTXO0z71HSse3wa5 DblQVZTtdn5P6cn6IgjKz6vJpyCgePFlEQdxn6IV6WlRrXPCu6HIzVAvvCI8iFplepir 706U4KZ9oGAVaP7tYwRB5dpf9rPgdcbo+jA1nxgeMv0LrEsZogcpwog5njXsEBIi6UPW uz2n8JumuWyEd+O8HaICZCdIH2NQs4hRXOZvnACZWj3M6OgB4QkAyqTHIAfpZV69vMyC Kzow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947514; x=1751552314; 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=onUZmipuuggYzLIHkuYvhE+eJtHfnxxJxJfL7IX4aE0=; b=s/c4MLFPiLB+xIIsdNpdpW3QsOHONnoh+xUEaCuBExBBh1gYipY60Ro/EZvvP/RVKA 1J4R2fK0pYMvhhuC8Aib1OCEq3VNGdhsnfzJySMll7ATR0b4VM9vusCWa0JDsR6xYvE3 CF+THcTt8RHxXk5gNPGAbt3aEQqpIpPltskcR1tIEf6INhMVgT+1P9gOodyoWqs6ey3R HqBpRwUJ6OUIOR5rNpFUUjetz7M73CWnA1/toMmoQYGQrjM/0eo9cv7DH9zV34DOwz6p ASOEiq8NDEy5R/VORNsta6TtCfGH0X3L2E+rieygHVtNtjYRRQZjF7XzRiuJb6GnrbfX 60hQ== X-Forwarded-Encrypted: i=1; AJvYcCWFPbKujtSyd8RUzutSuo0ygnk4RKn5GajWVa1+xOYLtkbvtAb2GawtACvqRAbF69lOfbYWShpwZVV3l2Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzX9SHBb5b9SihKKKkzXr+QFOIrd2jwWi6BFjqbxsWXAMzZYflM ib21QxD2Jmba0Si6Q2N8UC/yNaNnktidp5bMbuKF61E6X2S+iCPL24k2BdGKeifam98= X-Gm-Gg: ASbGnctB1hvx8r/phMinAiD4rSjZXil4kKwcRJ/8USvSz6eDpvpWP9maAwcyaKIETyS qZjEHdi0PlQeJJb2VpSG/f+SuUa4bzHm32DxfkMMXUSaCtHnP+eBkp5Oua18QJ/6fp+9zFr4IFy P0UjBfM0YcxG8QxNRrpUikKhQCivH6qJ2pBlNGY041qRXUjeswxeDhEDlHcPzpsXLkOpJG5z5gE u5Gkr3CPSPI5v+448wjVxJoTNIplVgvbPgQORJr6ifL44+MIFzdZVd9xitcSOBB+NHkhdxkWh8k 5x8+eGLJcQ2YIGud4h74aeWy9sxkz8sFOnhXSXIPE8ufua/DXSdFHRXVlirq0uPWBV5yO2ZcQCL jcdE4q76koyHi9lJ2wm5OeSrJ2dtzv9RvUDo= X-Google-Smtp-Source: AGHT+IEWxkse5hTkmeklkGnlPmhHsuowNr5lQuTqRpNLHHlNF9sUuGIos4wTOLkkzfZbR39s8zymFw== X-Received: by 2002:a05:622a:1914:b0:4a6:c5ea:6fc with SMTP id d75a77b69052e-4a7c0857cf0mr107432031cf.42.1750947513647; Thu, 26 Jun 2025 07:18:33 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:33 -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, 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 v5 1/7] dt-bindings: mfd: add support the SpacemiT P1 PMIC Date: Thu, 26 Jun 2025 09:18:20 -0500 Message-ID: <20250626141827.1140403-2-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.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 6DD4A28507F for ; Thu, 26 Jun 2025 14:18:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947518; cv=none; b=OgdbngP8Iv4tm47JO7Lhj6Q1cW/tFlUcggQ3Hbs6Q1Og7owBaoo2cR4IgcclZLW/spB39d35O2AMq6ey8LSAznkxP7wsvk/GFN2V72JDKLFQp7vQwh5SfvajuG1uW4+1IieXrUl2feQTQKqx0Gh2ZC11P93hbqxerP7IgU0G7og= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947518; c=relaxed/simple; bh=TOD13ffTPElASni26XgeRgQdq0G/4M0LdcwD2Hv4v24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lLNcbHCEHiLE9Baabu4OVu5YYsXeTGEojGe376bfBOPJlSOU09d3VtRPi3ww8Rt9aEywEF+FLmikOEcKrLN4AW8kNa+7pIIp5XqkXATdx4p22dIeG0dCUCKhf+3SeJNXVaKCD7PbasLIyo0Lt3lAp37CMM1MxmmxhW8GN5xy42Q= 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=3C8beXfi; arc=none smtp.client-ip=209.85.160.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="3C8beXfi" Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-4a77ea7ed49so23114691cf.0 for ; Thu, 26 Jun 2025 07:18:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947515; x=1751552315; 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=VZ5hZb53byMy6O+kgnQ/7o78O0jkXDe0+NDrOq4Do84=; b=3C8beXfiYtoH2RD0dunn7LWiq83bel9cr9NMbrfjMD7gi7tVig4eTvhU52eAZ4YVBy OckcO+MzdYJK8tZBfUUEakvJvUIDSIlvrcoVFNd/aNv0OK6EGll81erY6ChDStPlPjsh wE4VGcscqPensB1Sl11Zcxi4S13Yv8UX7rZLPrxF4VVGD54/Eq7eofF7mgssx6CReEQU ZWV/B1zbNmkZ9qDPprahaJqzPY6QoJsMiRIFkzc1Si6z48YxnReuw7VUZEnrJ753I5Pt EdSLoVTGUvyj1n/gbjAn464bITfbYEZUAiLABt4Y+kNzbINUodSt60J/ktSrtJAzMhs4 EYig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947515; x=1751552315; 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=VZ5hZb53byMy6O+kgnQ/7o78O0jkXDe0+NDrOq4Do84=; b=vpqWOU8BOT1HAOexcr8Y77FiwRgRZqFGxoEsf56h7bkFhi0zHw9//wTRHETeoDWS8Z kG2bZlgaseBg7tRclNoymgAIXq5NNspR3Dl81IdvqUhL1hK5gFSsDRr9h5f3NyKVwFKu LqkbkTp+EWByO3xO/PwgxzrOl+WyLlHNyx56sJTMc9NzFqqqXMkhw2/XZfF0tRxx53Ku GmrsQGr2loxemdQNFXj5pi6fI6+DDj664RTEuNFB5CFKxMvc0haICL8jBxSniuRSFIHO VXXtqKw3bVOcFJMrYhXFMno2Hh8JSKhE1nbmhm219NMU9lepZquj4rRORdjurI3ciyBQ 1Diw== X-Forwarded-Encrypted: i=1; AJvYcCUnPRZWlEY0afi1Y4ZdJpoj4uQJNDL2joSnjVfIX0Yg/ks0+UhFZaSfe1x+VKUQ5Lj0FTgKnaB//FiIHgA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywn1RCZMp3RVmTyYb84li68jEw8wal39sg57NP0OCIkaJ1GoQqh H656D4hg6AtRxajr189CzR0oFb231S1yJYKokFCsQgkr47kOdxe4RDbx7Avgb79xX8Y= X-Gm-Gg: ASbGnctuM0vGPaiBA8iXK92KjNMVzrFeoYR5IYfsoM/9qpAZj+PI3ZS/Lf+GoWGRWnh XCsrC4FcJfIbD8yh/6QU3i5qcX9m6+PnQ3Ta/gzI4IvtYyhpWUamcsImPPV29XAeZfHezlV0Qu9 1dm4Eu9OKTH1do3ekDwdDaRHdFBhYn0ctigR09ZIJAkbKY+ZUnhYVRJbqByM45d59GQNY55j6w1 2Q2GNmKUxON5FokdzoJzOTzut4sFZ5JoQVuigeejBBmSvD5msg2JBAiF30BvWJ5MA9RnGfAObwa uLWLQRxan6KCyMHaR/KFU4OxQq4Rv5U6DHP1Kz8j5RLfOnprP0VN9SWNtK1bcLzt37QHnVOC2hj fj5moO5fo9fKqzcl7ZMlD+7zch7nzFJi2PaKF+/kxqaR5rw== X-Google-Smtp-Source: AGHT+IEo5qUjncPNNeJ4vUf95+jNv5wrktztcnKidKdsP+7iFgU5PUhhf5ynIvp3aZOcL04L/dj9Dw== X-Received: by 2002:a05:622a:400e:b0:4a4:3475:d882 with SMTP id d75a77b69052e-4a7f2de0d53mr56801981cf.6.1750947515077; Thu, 26 Jun 2025 07:18:35 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:34 -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, 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 v5 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support Date: Thu, 26 Jun 2025 09:18:21 -0500 Message-ID: <20250626141827.1140403-3-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 6fb3768e3d71c..01805c3eec57d 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1182,6 +1182,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..026cd92e20ad3 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, + .max_register =3D 0xaa, +}; + +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.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (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 08CB22E5408 for ; Thu, 26 Jun 2025 14:18:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; cv=none; b=Frf780EBa7B9CCNZs3AIU8ivjpSDxy7qBfn37w62m3PTUsFBJC+sikRu34IojQI7SxWd/vPoBm2cPgDOED4p7Fz/CnOX1TDGuuwmh3P6JuOPH/++05A8hBPHiqacRzlAoPWrWc+001SMNNDXgDNSHrTqQNjOu7sa60cU9hXS5Bw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; c=relaxed/simple; bh=j3Wcubq/3SRFXIT3gXxJqmDlxCU0DsP5Pxf1kaaTIt4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o2se6JmvsKmp4wdrD3rQCq1yVYd/qVxQgQf91wVlMjII4ZWgdvhuFPcWHL4U66NzDIt+xX+PdK2+m8h/NnQG4Zl9z34iC0NjTwd0xGxtKkLHjR5+wgcaB9Rz6B/FHWBOr8yftaKGN7x9Vuudbt27RPDTCcKZfg/mRuxg7IXEJlY= 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=CQzi+uc5; arc=none smtp.client-ip=209.85.160.177 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="CQzi+uc5" Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-4a7a8c2b7b9so17170711cf.1 for ; Thu, 26 Jun 2025 07:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947517; x=1751552317; 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=2q5ZDFopB9ZTQOgdTyWswTXMkdYAfsuV4jYCvMQMM3U=; b=CQzi+uc5rs+z9X6Cc7nrgZHAgVTvF7lT+euf5pbANdjMKigGARMw+gS1nojsiUOrK7 zaDDm3F3l+5CGwytrpp++YmvgvVOgVebtF6xA5g8JYHhFjTqAMQcut2NWlB2Pn3uSTuk iUTpsWpICiCaa/EeiOkHGM2Rfr3KA8UVnYe3POLdtcd6+dhuxqMgg0lILxdXwPJvAmqJ 8o7SlC4+P5IOO5Hu1XTR0xF/infzgw8jqn32CU8ngBf41CDxk5rmMUm+T4p3gma1zGYW Y/a0dTBtqu7DUjT+fTAmE02H7F2/kF9X+/hL5/m+bSD3PRkYckDpEU3bk/xbtZVSxQzn CmfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947517; x=1751552317; 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=2q5ZDFopB9ZTQOgdTyWswTXMkdYAfsuV4jYCvMQMM3U=; b=LW3A96I4P9VlR1aga/askEFsEAORQFoEuLBFBbntcQojr6DjyYVLmwSu6w+2Ct4rKb oARBj+XAPiSYui6SnGrb9k+Yzbh3YlwQXvfvjXRljyg/F58eELq+x/fDK57ccbeTUM/r eBV7W+oF4vDTLQgauODqDKm28cvEZh6hIcKvAXuFplYzxF2T5pcPCkoC09pYAo0YY950 iyDwgsi9d26pn4TUdidHFcPE+Eqsn+Bk36rPqC0VTZd/sCpWkliz2Y9/mW9zRMXd5SmK PrdALQasTdQv0qh0elUTruCyQmF2HksRXjH6/IyeEVqBucht353jOqaJ7s53IMkQrw2d VH1w== X-Forwarded-Encrypted: i=1; AJvYcCXTGgE+JeB4MaoczlI443aV41ylkTS7hGFpNmqBDrBzyCSFJIBARtcA1PGknWzgVc6t3eejuSm6pwU81cs=@vger.kernel.org X-Gm-Message-State: AOJu0YwFcdlWkmR7d0uCsDE3DS2/Imrr9/z0L3nIa+BQNXVwqklEYnJz n8wgeT1DN/PH6W9gqfKe+sY+aAiP56nw5z1NM4uGnNxIfjhs2uoCqtbWRzHyzczOLEg= X-Gm-Gg: ASbGnctXZ/g/V9QfPospHfKfKfqzD7rYQQJtML+25/wRWl3IJ1UebatpwJN0EGKjvam PIjIfx0k8hZ8Ds3pgyGT2lb8gqOG7rX5iYIaDoLeVghRROshXSOzpfvMgQgue5vhMwD1wLYKPE6 2yfPIAqcqbyUuae56yR5uw+f0SwDMW19ivwZbmg2l9nd6jBa00+Aqa0PEQwUagDSRXH2PgosZ4A XbyDO+xv0tf24xxtP9RjRm7CHHE+1iRAIJqaCisS+6XakEr8HsyAigE6NbOS3fyoMPNI6Hvw8IK GGeHL5zYyrUAySjU3jvKfIhqheXqu7Cz+L8jAVnAW3udXZFLUJBtx0pqCaL91RFqZWwvtnWaexr H2fZHHkX4G0A4bs1Sh/rwghvZzF+V+iKUuqQ= X-Google-Smtp-Source: AGHT+IGfIB/pHDZvw0kl2FhJumUp1X8rCundTYfKeSCvR/6oArba3uTF3Z/0O6CKRL5a8AuK6E2NCw== X-Received: by 2002:a05:622a:2cf:b0:490:8ffd:9a90 with SMTP id d75a77b69052e-4a7c084813amr109309111cf.45.1750947516678; Thu, 26 Jun 2025 07:18:36 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:36 -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, 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 v5 3/7] regulator: spacemit: support SpacemiT P1 regulators Date: Thu, 26 Jun 2025 09:18:22 -0500 Message-ID: <20250626141827.1140403-4-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 | 12 +++ drivers/regulator/Makefile | 1 + drivers/regulator/spacemit-p1.c | 157 ++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+) create mode 100644 drivers/regulator/spacemit-p1.c diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index 7423954153b07..3e7feeebf8aca 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -1395,6 +1395,18 @@ 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 + 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.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.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 51FFB2E7F1D for ; Thu, 26 Jun 2025 14:18:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947521; cv=none; b=q7WiEbTinQUbPx2V4V1W7jUhG+gafeq1QLVlfrcGMzdp9i+IuagT1u7uYxHDTt21ogQjho+NNW4s1C9kUXb7hKqNEUqnnvigI2cpDQdLDx4QsvvAUU6vmDjwJRH+W3kBmLXzfWeiU2h0+cI0j6EQ/WxvSX6F2HXBtQ5td/M0L6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947521; c=relaxed/simple; bh=ZGy/JtDZmp0qtJYGori950FEKBGIIcDui1GESKtb3yY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vFwIARaF4JsOF5+9ctZ9r1L0m7pbAf5V3vVtVvbiBE8EWJo1tPyWHV0nky2c//hDpZUGe8AHh0iq5uBTS+71gyAFn3ApPVbX3pjSoB5GRk+9z5ZLo+UT2N+yKmO5QQwarOIXOrZk1fzIhtRvwmpz0SGFIenCBZmcyrzKxPH6jd0= 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=iCn7aILd; arc=none smtp.client-ip=209.85.160.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="iCn7aILd" Received: by mail-qt1-f178.google.com with SMTP id d75a77b69052e-4a4312b4849so12918031cf.1 for ; Thu, 26 Jun 2025 07:18:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947518; x=1751552318; 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=/wuIexpwnvY3j7OjJpzw7aigwDIr7P0mceR/QmYY/4o=; b=iCn7aILdFot3WV4uZjI/pzGFE2NLBWJa9Sm5ux4bGQbfPm6R5n8mMslpL2T7t/8IDW FEls9frfg/PeEdc0FFJnEUR/KJaCUsI6RVoCGw2h0G1pfaxLidJ7HgndX8HGaTSXb7J7 495NN2PW/tNEMuhjuYEqBCihceBxrIyK6u2zfmqCFDZn5XIPZjt03rbnGdCHKE+EAjsO Do865Hkrjjp0ILpV/RYXUr7vO/+gswsmKI6BwcoDUGTQZ18Er9azI6vfDP4dbEDu/bAo QYw5lhVLbPHj/hB5x1KdeXo92G9N4R1S/z5X+lGnbAkRemjryMAGDOpHRRfS1RudC9Se 3vFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947518; x=1751552318; 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=/wuIexpwnvY3j7OjJpzw7aigwDIr7P0mceR/QmYY/4o=; b=X1Z+XpfqiYu319f3nvMevSTe0fmPHj0+X2xcEvaa60Yy/dWKxsBgDOLUsmDFW97SdU 0RGCI3QLuGCJz2k/7zrBxA8OWMHagHwic5wdnCcNuxkrttdyTEW+M3pnY3VAKCg5kFjL wKHrJ3EAtgfaTo8EihTK0tBu6jKpoPGULIMzyVBj3xOTWzea5Qea7JG/vUbnadAQ838E 9FXhqYT9RQuFR0pgc/PIiuwQ3jTYgdAc14B5MXeB4BmS0Fye5sxO8QPbXfPWZl2uUEqz kcovTSgroZwPDKcVeJevXzV1liOBJlaUjhTbYDnWiGJp8zTEVQ3A0nHoFTnfLC2jNs2X Fr2g== X-Forwarded-Encrypted: i=1; AJvYcCVM16cp97Gu8W4RZrF6e6c4pFQouJbK6TJPLgW8UyX+MdGmE9gX+rQNyxv1W5B9m3QZd6/vnPun0KwQcuM=@vger.kernel.org X-Gm-Message-State: AOJu0YwpgkvqL9gg1fKKheHwjfZnp9jDOipErSR8Hu/h5CQ8FRcVBUap ZoRENnepLaVmvNRAgnSiVlPLdZeIFn+8F1Rjy2bgdqbnp01+3G59p/8lab/RrrS6In8= X-Gm-Gg: ASbGncu/0Dez96FKkQtaP2gyGezuwKi24m5a5ppGsMQStyWJ4UT5F/4BzI8oiH0+hB7 gCe3E9V2tRjd+UafAzMVZFaqFXQtOc6w9NUvtYryoEY290yrE1nTv799wtTgfL3hYO40Wgxa2bW S5IT+toP5/S3shd2gQSBRVZsTscP7Tn3a9aO6rcs06bPhv6NGoGRsjUyKp3F7IDFvH7VXFU4Q53 92lQXexnTWrUC3srrCTAtJjbEs7d5bBM7YCDk7qUkwsZ6wEZkxqONS/sXmMXl41TmYtVJwW1l3e CE8vfvgeDoDIbTQaSvM7sKdw9dV7GFFHZXD4lAXjidCPpmh3Z/m+Qfk0gTlW72AACvWz5VBFYf9 lMGsxwvhdFzV1Er2hGh5GePATkuEwdR7iGbQ= X-Google-Smtp-Source: AGHT+IHfWqacOU9w6H9O/Yaako7pRkpvtY8woKB6JXusdmYQE4ELyJ5vx44impShAq5canSGQVvfmg== X-Received: by 2002:a05:622a:246:b0:4a4:31c5:fc8a with SMTP id d75a77b69052e-4a7c085fac9mr109950391cf.47.1750947518153; Thu, 26 Jun 2025 07:18:38 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:37 -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, 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 v5 4/7] rtc: spacemit: support the SpacemiT P1 RTC Date: Thu, 26 Jun 2025 09:18:23 -0500 Message-ID: <20250626141827.1140403-5-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 --- v5: - Only check the seconds register for change when looping on read - Return without re-enabling the RTC if writing registers fails - If the RTC is disabled when reading, return an error 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 9aec922613cec..93620f2c9b29c 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 4619aa2ac4697..a24ff6ad5ca58 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..5f1bcca00549c --- /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 -ENODEV; /* 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.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.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 0BCDC2E92D2 for ; Thu, 26 Jun 2025 14:18:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947524; cv=none; b=ilxgoK3+hqrF8ZjsuDPVWiiKBZuamMy1VJAzGlxclFSuGUHqENXmGWYWwynxR6+VOi6qBoBi1l0aadBbKHre2dfFQH5dzraYgv6CEhImdY9WT3CCZn3zOuiSzh9YTkS7JQwwCEDyRHdjbQNA4n7QIFJEPy5s7DpvXkEUp3wFzz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947524; c=relaxed/simple; bh=PfwZzjjqJBdpG245rW9fZ43Yt8RFpe6Kf9hR0M/wvXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q21vl53e3/s7NGlwI7O8PGyA6GnKkz8RN7JWtSzbiuAjuS1CNKAaffofe9Fv9168Y5JBC7HvazvpXyWycoAtJhcl+wdhxAFidhjKpLmXiJgzM1BVInBUjTYyDmBBup3MzV0uX/49ro/SnNnlEl0pym5gli0Ro5AU+pQyFck2Hiw= 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=AI/QEUJc; arc=none smtp.client-ip=209.85.160.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="AI/QEUJc" Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-4a58ebece05so10980731cf.1 for ; Thu, 26 Jun 2025 07:18:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947520; x=1751552320; 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=NWnze/SjFdW+lfNDCsnEitBUx1r5ZcEMc14OReZ/axQ=; b=AI/QEUJcK0DkAmq93csorudXKNtImvZ5rgYUkouKVssbGhpeKdVKLLBH40VG1adE59 fe0H5D5v0ggM0KQqXON8nRscf3Vh0KyvOUj2ZUDm34iMVDgq3Fz0WWtd5hxcyqWBT+fQ cs7EqdVSEu/jZUeJV6mksA+If3k/Y3nE1n6n41bZlaLDP9P/1ljp85sdr6rEXJkBSwtY eh03yhTXXCgP7AnvzrjruE1KVJNLuJoCyqSYnQ6SmW8AFmWQvfuW3zGsqngYfJwzLNFr 0J1zgH8zqdU2nq3r7YWtAV46glZpfSKhghyywWUtTl8+vqItzvNNINsbWnj23fQfsko6 f0xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947520; x=1751552320; 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=NWnze/SjFdW+lfNDCsnEitBUx1r5ZcEMc14OReZ/axQ=; b=FjZpw+CyE1ddeafyi7yL1J39Iwet/LiWbwm8xENvQO95NTTq5DsDHCU2wiifS0HQBu cUSSBJdYylnXjfMIPFcMT5KBan2lgSi4alhjL9iYcajX3tOIbpReoOiGWc6g2v8VP5pc PaFZITnvImmrLevMtioG1MNQBOYfUUG1Dxqh3uax1Fx2/MtYE4XQzZMSW1OWEE++TPHn O/tw0NDfQLc3/lkQN2QfPovrwN1ASKSS6qJS99pWbpA4ptXIEuUVseaCQJVIHS24xJAc ce1WT2i1i/wnr+y8HKWbjTTgQopbvgDsG4qOrlThdvBPKwbRGFwXioCE7+zM7+bkxzp/ ev1A== X-Forwarded-Encrypted: i=1; AJvYcCXxRMHBE1gXL9qxAfxamhoMBtc2W+8siaJxdUUtx5zyPpViH8cdw6t/IN/Az937V5+YkS7iS6H76VLLXVU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/hjRVQxCvXWYORZ6s/QWhCmLX4ih5EOyREZxTuAZ5HTyFWBEk KlhBlfnVAL/pQVD59cNQuHtVKyISCleZ3fnE/PI3zSJtkWU/uDne6UTewqnGe/vF36g= X-Gm-Gg: ASbGncuqwh8qbg9phv3HwBW8I4DJQ8P3Z2RbhMvAih8C8pnJsX22aMhFEno8D704d2O /60ukbFVxsSpHIeUuhot5mnEna3oaaK+UWAfBt6xfuhkUVOVImyHQ52FeYbgApw72sShC9Ezlho VI2z/BxPhuHW0UgQHA1OCveMLTEla6/qtkJV16cyTkINgMhxBEVpxtV0QVYBTY7FLqOHmONQBSP JOB5cpraSg9hfKsGqipb1PcHOedH3/SO4PJWG6+0wYbNxohGLYPZ/6w52eBu2iewc58ZTGHYs3T kvG11uLeBCQzzggt2boOHIhugzMM4wAMKzrafRfatfe/Ayi0TzdPrGT9PqeiSwhqsywc8s9JG2b NpAngRJedEQ8NzwzzwIC3rC4r7baEKY/Gq+o= X-Google-Smtp-Source: AGHT+IEI1vvxdVVtw24k3xjXm86y1FoYzkQAxQf+2Rv/Yd19jGEMG9C5oqEg531N9y5/GIYuWd0Wqg== X-Received: by 2002:ac8:5ad4:0:b0:4a7:234b:222 with SMTP id d75a77b69052e-4a7f3e88976mr49122961cf.22.1750947519837; Thu, 26 Jun 2025 07:18:39 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:39 -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, 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 v5 5/7] riscv: dts: spacemit: enable the i2c8 adapter Date: Thu, 26 Jun 2025 09:18:24 -0500 Message-ID: <20250626141827.1140403-6-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 | 15 +++++++++++++++ arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 7 +++++++ arch/riscv/boot/dts/spacemit/k1.dtsi | 11 +++++++++++ 3 files changed, 33 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..7c9f91c88e01a 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -40,6 +40,21 @@ &emmc { status =3D "okay"; }; =20 +&i2c8 { + pinctrl-0 =3D <&i2c8_cfg>; + pinctrl-names =3D "default"; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "okay"; + + pmic@41 { + compatible =3D "spacemit,p1"; + reg =3D <0x41>; + interrupts =3D <64>; + status =3D "okay"; + }; +}; + &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 283663647a86f..9d6d4503fe751 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 14097f1f6f447..a85239e8e430b 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -483,6 +483,17 @@ gpio: gpio@d4019000 { <&pinctrl 3 0 96 32>; }; =20 + i2c8: i2c@d401d800 { + compatible =3D "spacemit,k1-i2c"; + reg =3D <0x0 0xd401d800 0x0 0x38>; + interrupts =3D <19>; + clocks =3D <&syscon_apbc CLK_TWSI8>, + <&syscon_apbc CLK_TWSI8_BUS>; + clock-names =3D "func", "bus"; + clock-frequency =3D <400000>; + status =3D "disabled"; + }; + pinctrl: pinctrl@d401e000 { compatible =3D "spacemit,k1-pinctrl"; reg =3D <0x0 0xd401e000 0x0 0x400>; --=20 2.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) (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 8F35E2E9EDF for ; Thu, 26 Jun 2025 14:18:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; cv=none; b=IX1IAU/cVIzK3KSunEBnTFYDUYsXtMGI3fU10KsI9ke/g0ROSJQOPGT4sxM3QGfiYAkb7NAJ9mK70lTFzrMk7puemWd+U5B3SAIr0rLT854irW5JwMYG1lKEs/7bTowGxnAT0npv1x/GDX8JSVfRV6O7Bu6MSLbX/8rpQCZsfus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; c=relaxed/simple; bh=E/I9W6fX+DhSmsmtI3yC9YfnKc4TowcG2XvObw3IonQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XppMwkfiUx2xJ1k2OzLIqSPoyMTfmWthsGfBg1TzLhjr6iNTPjhiFHiyZiUNbJ+g2/sOH0gbky8XqKsfMEdZzuQ0I0tk7nzE89AP+bagx09jAtY/KQLPO6TIiF8CPE6MtGSqvNLU4chF/uZ+23FMRDU2jAWVqb2JG/ePRmlIeGw= 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=Q+3XRwVv; arc=none smtp.client-ip=209.85.160.172 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="Q+3XRwVv" Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-4a44b0ed780so15341001cf.3 for ; Thu, 26 Jun 2025 07:18:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947521; x=1751552321; 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=bpaBoGbv3UwS2ctJ5MNrLd4WnRBIdXYjgTh8qQmsLHk=; b=Q+3XRwVvifso68eoSPHeTrETilw0BjmE6zi2Qgr/KWOQUOfH9aG8rg/HuSZHJXgHTd wyV3MDdwhbSxdKESYk30NvNVq5ESiXh4kuoYkbzInQu/6U2h0DOEAZFAmfYxbS4r1V69 llhrmTlsZb/ptq1wZF8oMzyz3ddkoAmBNnYoIgTqOlq6qo4rD2mDnRfFBtjdFgtHWwjy R4ngaZkuoZ6AxQ/6MNoEuh7cPPDYXY6Mn37gn3iZAJH+3Gu6z/6MFl7zhks5WVswtPKD xqYzxbhl6DyP6gscEQvhNrXESret0poR9CJElypMtswv4w6+wwS5lojVE9PjLXlHPL4c 3xmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947521; x=1751552321; 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=bpaBoGbv3UwS2ctJ5MNrLd4WnRBIdXYjgTh8qQmsLHk=; b=huW9XY0g/QcSCF2aHFBB+WVIgC8N4WS29TfA7W+rH2aszW3ThXrnPDEErdYsF/0I/Z 0IQ3aU+JTW9QOCyKM4p//wUSKHR7gVUStz6wt6rEAiagwsYS0u7x3DJFNY5uEt+KIutu 6lPuzbTkdTIz6gXXjsGu+bsGHoCwpHkJVWKQsEow9gtD/2vg+CBbSh15lf4idJZxayPr R2rJI4kB8KwdgKvN7NqnOO4AtnxkcNPccDKGOlO9D+voR3de5UK1qD6VCxNgEyECFuxL irVfesIGC1MdIi1n1JxOVkvVaom5kKcCDieySvi5DDEHcRLYh2QCawct2DRzCiHQSiPA O2Wg== X-Forwarded-Encrypted: i=1; AJvYcCWlgqaTByaoOOJiYPray2271BjG2yMtmTXvs/91R3tMJY8a/c9BL+CgfVI+HkcIyvhFZVyICyc4AFq8E94=@vger.kernel.org X-Gm-Message-State: AOJu0Yxf7jVZezK5oppFX8K7guIjbkio0S1OSK8q/c3G4Cw8K53xgnmr DgfCubTL3OgCpn1/hkL72FlmniCxmXuYwFaUhhetOmD8dbpgAx26fhtffrcF9ZvaGsE= X-Gm-Gg: ASbGncuHnm1JUxKjvAluWIo8qH8ovjGk9XR3qr8t4A9GoKS6DnciXpAWUhLFL4IlbFm kb6d35sPCj7+x1dmeOeCkwjEKYVwT5ITtngIfnTe2h+miAifuCjd1FzDYTwC2T3HfnDo1VG48sI SuWZr0Lum5SlBatJ2TbyvLR3B4E1RqiNu1Wt9F8/vyINDydGLLoueOa6vCUxCj317OmHSdQ9FaA a7CanV/em/aCvzKdgqROKOEHy4/wUKXmf1ZWLo8E4/NVmIZfgWZn/pck8T+YLGrfUTKwFVUj1NY b5bsLXtQl93mteo01DdweYFpq1obsIIDt2cZ59dexi9NG6tX9mT+ySImDptCxJCFj2uexJ+n8Fv VIShaM4OIap+RzYiHi5d5BWrROeXGbVf33Po= X-Google-Smtp-Source: AGHT+IHsx3U02C9l97yXNhErNtXWuqZBL2Ji63UbeBAH3WQ3eJzVVCOgX1IG2CL+5mxLNXJrr6vN/A== X-Received: by 2002:a05:622a:13cb:b0:494:7a16:18e3 with SMTP id d75a77b69052e-4a7c07ca74cmr99997701cf.29.1750947521231; Thu, 26 Jun 2025 07:18:41 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:41 -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, 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 v5 6/7] riscv: dts: spacemit: define fixed regulators Date: Thu, 26 Jun 2025 09:18:25 -0500 Message-ID: <20250626141827.1140403-7-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 7c9f91c88e01a..a1c184b814262 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.45.2 From nobody Wed Oct 8 14:56:11 2025 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (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 C53F228BA9C for ; Thu, 26 Jun 2025 14:18:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; cv=none; b=QhfgoKv42+AXTSqitxOhrkqxpC4S1Vdl2iCD8ycP8OWZr+0JCHZbpbe1lm2382Oc5Sou+XmXf5dFA1/S91wzJcB41XnNv8iOToSNFjEgmhhb8g31s8+/jG+2ESzq730Tf6jnN/FAu1bsGxT4sJJV8AbBYTpvu4JT8HxyHUdbqZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750947525; c=relaxed/simple; bh=WGruvn+Gqs/wHzBEiTs0RVm377PpbfSqb1Lgjf4ooI8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kszUhYqw+SVLrQRPvwvaaYH5QEkl9Ucq9c6w4M89YvdGjm1lD0v671gPR8D6XkKFHaf7F36UvbFiOfFC4Z5OKPbEnFqVA6FTgVoW2Rb/rYr9eNN9dGpyQpd9KPEa2kP7f5dRKVM2uhs7LVYcKtcNqtKoOEqaqK+WQgudx4EaVK8= 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=jcRmwtpR; arc=none smtp.client-ip=209.85.160.179 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="jcRmwtpR" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-4a7f61ea32aso12248481cf.3 for ; Thu, 26 Jun 2025 07:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1750947523; x=1751552323; 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=ihUO+G2zPvFD7djd8+4VxSPuuLI+GNqieXaQtnBxio4=; b=jcRmwtpRQYvRBdaWSI6AUZX0Sp3QQ5KS5wTfL0rIPXNv7ruckBNK5y4uG1Mgw7QVb1 VhkRvJIHEBiqUl7BEBCUXhQGhM52HAg3sCqO1ocnZkt3hnW0+7v90wPz41V+P1K7GnY/ oSseaNWvJaM+/tGsUwvuAlxXCLFYw9eWImniEGGZ9qE6STTd6j8QHqQOJmVKVycSOsjs I8hd/2IcGBUIvbbPUYjCqiLxDTAtLFHmXJBobplBdO7nBDabRo1MFVtYeuQMmuUXqQTM coDwKYOwm7lzDqMPaO1XzPyjnkGHKZd4+/K56K6MX6QPRTO/8/h06iI38XYkPzAzbzw/ tnRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750947523; x=1751552323; 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=ihUO+G2zPvFD7djd8+4VxSPuuLI+GNqieXaQtnBxio4=; b=qZT7JqYp67uq9FZj0eRflx2xWNSmOFSWoRYi38khx+Ivpx/K/X2jCPRePGP922xa/1 gH+vZIp6ci92u5gNapQ20JDkTxV7X8ZguVL53gQ9pdPSdjRJ5F8LhVJIuyjRWrmyWcVs s1YOcZ62UZcP2Dx1Y8jAYEUzTsH/Hw0PynYzLOQmbgr8crnkP9URRVCxY5ZHJ25dFLm7 9yofiMUCAMPlYn5Q5M/8f/xcJvzo0FfnJ2Ys08f0xRTd7+KoqxZ24PUbfSxl5+bouy+t yWEak8xGoiqyGMmJj7moj5iRznnr5sXX0lpWMicOkRwckxlVZjwQHz5BiKqXNVd+4FiO fzLg== X-Forwarded-Encrypted: i=1; AJvYcCX2msk+ONECgsfJ3LkyeQGgwxXmsgQne9Qvl3ZpJ1dZRnhEtYsIaJRJaV6JDOz7pB3pNU2Kx53somQP8TE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxgx6+wfPMo67TuOoHWeqR223IL1lhty3Kc0dPwG//nFnW2/bTx o4EX/gd/GVdwPKVZFwKDzZvK923p0MeVBvx4jhLK0iUBSxKoMkJzpS/LWNDj6i8lpiM= X-Gm-Gg: ASbGncvXXRVwnMRLNCieDbQ6jz6qw8vaYnpawEjLIGM7UJRe6+34JDLNKQdNhO8lZN3 rS50Q7+P75Yd2jUvmYh8i9GT4odE9nOPTovU4gzkwSTqnNSyy5OT9iYvzVjKPq7h8T3bLNsjS8e 4I52HWWnYKYylVUnEm2zE9Twqc9Jy6nCLMYEugjDPamM9iVhH9OIeyV8AS7hpBSxkFcU0Kbo239 b4UhuTuE21wcM2EWavR5rqEdD1fsvzV5qyZuwYcE9NDu/UYdyfX7syyWYanGRvUYhzEDJpdn2TP d+qMt41N8PooMgrfsgE/dos2ybX86bxVL2OmhFSrQZELHbFzopXbQ7IOxYNhRrbCJhvSp/5sL9k IvN4E9n9a5cHuTWWGFeIvx/OJPe3JN7BKoFY= X-Google-Smtp-Source: AGHT+IG0Rk7kT5PaDL3EOhOatM4r51p1IXWy9NzWq0w2KHZQHF1mWKjHXAOtLVKooNvRWcbRmq/RBg== X-Received: by 2002:a05:622a:4015:b0:476:8cad:72e0 with SMTP id d75a77b69052e-4a7c067c552mr130102131cf.15.1750947522631; Thu, 26 Jun 2025 07:18:42 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a779d6df17sm70266101cf.30.2025.06.26.07.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jun 2025 07:18:42 -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, 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 v5 7/7] riscv: dts: spacemit: define regulator constraints Date: Thu, 26 Jun 2025 09:18:26 -0500 Message-ID: <20250626141827.1140403-8-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250626141827.1140403-1-elder@riscstar.com> References: <20250626141827.1140403-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 a1c184b814262..83907cc1d5ccf 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -70,7 +70,111 @@ pmic@41 { compatible =3D "spacemit,p1"; reg =3D <0x41>; interrupts =3D <64>; + vin-supply =3D <®_vcc_4v>; status =3D "okay"; + + 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.45.2