From nobody Wed Oct 8 02:06:42 2025 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.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 0B20423E235 for ; Wed, 2 Jul 2025 21:37:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492230; cv=none; b=aGMlPjElm4WEKc+V+/oIl/gJTcpt31DlmLagKLanxNOhlkT/QQVdXkdOhEflu8m6+da8BqBnJnlofK5WlKkhBC0xAR1u3+KMDMotQWB56ggjhOccWkee5P3EMWg3l0OHIsOvKVjfhPaK6eHtIzMYlWORGrwlqjo4kqFB1uJLZps= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492230; c=relaxed/simple; bh=TcSAvv80iECU+EemBY/QAFaaDjBspFOa95X1JROvb5w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kKbmwoRXHs6GD+q5e+ZE8unDedbPUNz/DE7Hy8n+hFf2oyw44y5of0kJMnpnk2qHnrElp9I+CUQV7CsWtvRt3FecINT6AU7OMsuEEuh3h3N19jcqfZKNijiG3r6ejNu35AylfC0ULWOf3bf+O3QCyMTBACz7eazqnIEah5Uk3Yc= 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=GEoTbRTc; arc=none smtp.client-ip=209.85.222.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="GEoTbRTc" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-7d219896edeso788420885a.1 for ; Wed, 02 Jul 2025 14:37:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492227; x=1752097027; 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=nNF7PY8BTTw3n4PxFimy6RpSwNTBoHWIsy6At478d2Q=; b=GEoTbRTcrjXfPiiOeaDEd8Fi9Ym12MhrsJy98JhJpy+6oTuJ8k1becs6Rw5ISZmRkd 8T319Icr9csoQRE6sQMEW6s8+m3ILCLMaj6D/dkxga3cJ+/Ogq/O82hquXYgb7oX0K/t xGxQsvYGsmGV1orlqLu9cQPGGxGivDcko8dLu0nf2OEZovMCSWQ2R+AytLyfywRRdA27 FcNwoPnR+lWqJ0Z7bdMlgjL5GQIHYVpEfCyMpdS6mTi/mgokguFAZ+tMn0nSQNxEZ5eM 4qJ83IqxBaTikTdz9B9878MZdgn7wac4O/rgbD0gddyDj4WjGlN2mSZFCO0a5EULBE+s bkkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492227; x=1752097027; 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=nNF7PY8BTTw3n4PxFimy6RpSwNTBoHWIsy6At478d2Q=; b=Mp3jPKhx8RsjuKwziWvROTYnCqU0ebGiyAII1rYqGo+rSWS0IE88f9lkWPG7mqEgDi bjaj9n4xNqxUe65gz5LccBmtiVVCbbG5qVU4Qh1mChjJZ+Ln3qA9qJR8F0yip02ti6+W LNM4R09FhXAM1dUtMX4d2Gt3OXHkz3ac6w58EHe9YKvl8fYry+z7765zn+sMTBGX7SKE n3dx/SmloAxADRkAvPaxeCIve+wxpIcPttnE1s2UnEVmFk5uMzzjMSZyZ9mFKxrdFS+t JSbGBwxSSYvA+aB1bThnPrlRUSss6hhSTfYBMKJEVLmFKM63/quLfKYWlWSgLZT7F6sG axWg== X-Forwarded-Encrypted: i=1; AJvYcCX2QhysA/B0imVnqCWDD1chm7BSLfr9ZVOwjYkDiib3VPEh2O8q2K6f0oUh6h1TMxhyFDuWQteRJ86VbKI=@vger.kernel.org X-Gm-Message-State: AOJu0Yzah1Vsl3k+3zxG0rJYaOM21r972+o5XDPfMu2TPgtrb7UIPGOW 6jwquJ+gWvrJQjfN4MuHHXEcokrPTPEqLW/xuhodnpdCTmxKgSU0YzBM5FrAST387x4= X-Gm-Gg: ASbGncvB3wbye75eeDyN736Xzhq8CLvdwfrcESQQ4a4tbx6PW17ZoIs3NamMck6GxCS apbeKBGe/96J45W6CZy5BI1hCGuFdJeU7JV/s2fKZdLFph7y4c8Ri8F89HTcAfgJI2QRlYnK8K8 MSzplX5QLnfCI6vrZIdh/EpVKEdQQPxpRi+gd06Tn6ujIJbAPmA2n00hDrqvujaVkvQSpKrrLfL Rdtw/sY+Az1qrfZkOEVmrv2mX/QVqT1tJQMt7e8UqdGWTQNqiuAY3+FDkH3Ha5tzPiyqnAkPqux +WMQhZtWa2d3eRqThl/NroEc34NPTAGDU4Kvmav+v+QRDTozt1ohE+WEzelapa4hKjxEtEHho/e cN+zO/qRK7priDy8zmz9+7NBVWQLa1kjzsTI= X-Google-Smtp-Source: AGHT+IERqJ3BfOxhUmxkupeyUkDeU0EnZdd1PTKHpA9KaSbcs4c73pcX0FmI8fCh3xwn7Djaw/yz5w== X-Received: by 2002:a05:6214:1c0c:b0:6fa:b9e9:e799 with SMTP id 6a1803df08f44-702b1b37a43mr47892906d6.24.1751492225372; Wed, 02 Jul 2025 14:37:05 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:05 -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 v7 1/8] dt-bindings: mfd: add support the SpacemiT P1 PMIC Date: Wed, 2 Jul 2025 16:36:50 -0500 Message-ID: <20250702213658.545163-2-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 02:06:42 2025 Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (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 5EB6A2BE623 for ; Wed, 2 Jul 2025 21:37:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492230; cv=none; b=JpIQGqas58fzRqw6PRWmO8UuBS6zq6lDtQ72WxCBmnZBYl7co4ny7JCLpXR07KtZwVmw/FVci7uyacvWkcFh4WAVNrf3g+JTAXAkIlCldh1KjfeSDCV2I1V3HOyGSQP5yuH6qIs4tKuQG736ifODfg1qFgKv38XhVYAcINAwM68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492230; c=relaxed/simple; bh=WB/IrpIB/wfBJbu5dFJUlcKQY59F+HJ0MTfMkd8sfQM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SGKeYL3NRxrv0OPlRVuQIXqTw4hW2/a3MMXgplIXBpSu9j9R0HCQQM2WY7RJ/KolnRhpBY2WqvRjsi7gFGC19Bk3lXY7krp6CgxCeoSFFLFBz2vajMKe5Q5kGi+6O2Gvl3uXJcALZok33EmJQzCOU+/wzryjJwJYbgmygX2N0Uo= 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=R9bum3YR; arc=none smtp.client-ip=209.85.219.48 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="R9bum3YR" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6fadd3ad18eso73516706d6.2 for ; Wed, 02 Jul 2025 14:37:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492227; x=1752097027; 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=Z77tQyjzfW0dcmF8i2CALNcRi1lkFInteyFHSr2VXyM=; b=R9bum3YRUI7UInsDEmkEa3gyb9TT9B94Yfr7hlcPcUAUpwyqK25pNA7A2mDwoMoHkZ B7YiQbmaFJ2j/9clB9KfnP7Cqn16jpzk2P6ajpLyg0eYANj9LAxSG+fL5Yd+IbxPI5RG 5fzMgo/ApASZ2NoLfHfH6rBd8E5fVcCZzzZIDpmnEDTBvh7pfrIQBphyTkvUeKj7VL53 XjGJVoXX6HgYusbCikekUfoDDEl5j2bP72zwrfH70R5heoX+SoNWNlnHI7cAlUqv7wHN zrzARjvhn4IwbfObJmVXZrK+zMUF8X2KjgT1yB+BZD5h8VmZHbacqd/I7rZum/ax/Exa SI+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492227; x=1752097027; 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=Z77tQyjzfW0dcmF8i2CALNcRi1lkFInteyFHSr2VXyM=; b=BA+q74g4ca3Wgcg4ojan8rc+I+kBSwKHUIC1P6uOMzgaZ/jK4kYwG6pyUZkCheRFAx UCmyWb+crZEEBN9O3WW/w+Qaw6yuGplMImtKHykDQYzLhM4vJGnGcYKyRfyz2q/6l7Y/ udyBdBz/CC2mCAHtjZuogcw4rTR0Ahjw5alcMeVp/4XUGVlACqhr3EDXegQm2TlGqYfR IegaRcrSPVi0II6SMyOoEA2OtIXJBWzNf0BYmaJx0djWbDuEd6kRl7Y7akPMKP+t0XRO iZxw7luINjtYvFqpLESpLA0rcek4ziNbkOAIxzdaohUBJU4p1nV63foe4XbcwSFPz35b L3OA== X-Forwarded-Encrypted: i=1; AJvYcCUiCUkzkNJmattPPB0Ofq8NALkAXsVCZlLKLsAQj5OBZ1E29xsjgXhAYy1A9mYxdC1B7B0Td7ogq6bdLPM=@vger.kernel.org X-Gm-Message-State: AOJu0YwfcznTPRnztAioH3OKJB52yvvhjYeBcxITXsdfXIA2UOHoqt5A ihtYSSGoWeRAgPw+b8LlV4h9ZI4Qrnv/MrdLRoZSex29dgwQ7+bL5UN80oe9Km7qQx8= X-Gm-Gg: ASbGncvJuF0vVxNz8TiXJHWgCdfFrtQeEvy8BonnMyWgZW4ziwg6H5rdWjc5y8y7wwA 5zypQ3DpOpEwr+6pVsfHs9J2MA4+jRxnTquCr81D0HR/2HSBUB1jN5tLdjxMooAMQHLErsUC4as aie5lgBOpewonytdHS/XYegYLGBfDpQVbnex6ir0JlJeuGe7GEj7rKVDIVdZa9N62W/3teDeXu/ T/AIje+Qp/qnOvljIUZD1eHgaDeYGmYu2QEpQlLdJ50Rhhci8BodAWrm43qgVyCGg0HWbi0Cmim 6MAHpVr+p1+u9KHHVw9l733txQ2A9WZNpBO/ooYmznODhQCnBX2CUHzoWST90rntETditnwG3vX JizvGj1V2iY7QGFQZV31Yxwk4X2ViSXzV1bk= X-Google-Smtp-Source: AGHT+IGRObx6Rpk1Zs9IQPZXVPL/wda/SaVAzAggTxX0GxDaBqWEjwz2sqTqj864Fw46dZI0C1TGsA== X-Received: by 2002:a05:6214:2342:b0:6fb:66cb:5112 with SMTP id 6a1803df08f44-702b1c1ed54mr54743616d6.43.1751492226919; Wed, 02 Jul 2025 14:37:06 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:06 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, 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 v7 2/8] mfd: simple-mfd-i2c: specify max_register Date: Wed, 2 Jul 2025 16:36:51 -0500 Message-ID: <20250702213658.545163-3-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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" All devices supported by simple MFD use the same 8-bit register 8-bit value regmap configuration. There is an option available for a device to specify a custom configuration, but no existing device uses it. Rather than specify a "full" regmap configuration to use this option, Lee Jones suggested allowing just the max_register value to be specified in the simple_mfd_data structure. Signed-off-by: Alex Elder Suggested-by: Lee Jones --- v2: - Allow max_register *and* regmap_config to be supplied drivers/mfd/simple-mfd-i2c.c | 15 ++++++++++++--- drivers/mfd/simple-mfd-i2c.h | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c index 22159913bea03..3f959f4f98261 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -33,16 +33,25 @@ static int simple_mfd_i2c_probe(struct i2c_client *i2c) { const struct simple_mfd_data *simple_mfd_data; const struct regmap_config *regmap_config; + struct regmap_config config; struct regmap *regmap; int ret; =20 simple_mfd_data =3D device_get_match_data(&i2c->dev); =20 /* If no regmap_config is specified, use the default 8reg and 8val bits */ - if (!simple_mfd_data || !simple_mfd_data->regmap_config) + if (simple_mfd_data) { + if (simple_mfd_data->regmap_config) + config =3D *simple_mfd_data->regmap_config; + else + config =3D regmap_config_8r_8v; + + if (simple_mfd_data->max_register) + config.max_register =3D simple_mfd_data->max_register; + regmap_config =3D &config; + } else { regmap_config =3D ®map_config_8r_8v; - else - regmap_config =3D simple_mfd_data->regmap_config; + } =20 regmap =3D devm_regmap_init_i2c(i2c, regmap_config); if (IS_ERR(regmap)) diff --git a/drivers/mfd/simple-mfd-i2c.h b/drivers/mfd/simple-mfd-i2c.h index 7cb2bdd347d97..706b6f53155ff 100644 --- a/drivers/mfd/simple-mfd-i2c.h +++ b/drivers/mfd/simple-mfd-i2c.h @@ -27,6 +27,7 @@ struct simple_mfd_data { const struct regmap_config *regmap_config; const struct mfd_cell *mfd_cell; size_t mfd_cell_size; + unsigned int max_register; }; =20 #endif /* __MFD_SIMPLE_MFD_I2C_H */ --=20 2.45.2 From nobody Wed Oct 8 02:06:42 2025 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACD882D3737 for ; Wed, 2 Jul 2025 21:37:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492231; cv=none; b=NSiYbgwqi5gHd0V8kBE7HX0CjOM3ZG9/8AUDLqfbC7C9usMQum9H6v2szQYM+nlg8oFsHxO2K7LK9HXfDq6DGGs5u6e1eNBiB5+cLRa9HHq27Xl86CBbZ/ezk1sOxb0uD9k0+PNPpOYGkS8PwCcf7WfRFs3wLHha3Z7Ub71ie98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492231; c=relaxed/simple; bh=vjAoZdys16BCatinR/V21qk6bDas+9kyqQElG7gYOyI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B7Bv2QscSJLlCEtLtQHUH/N3VC7xL6z4o71HuJDxdD9Xbk2IZedHruJFjnpwXJxDT2agto/pmA5LRRAQwjfaQXm04Wgo0PsIBgrKi3mMg4ZVXMVzHztDBmMoqeh+PouD8RSpyBD/FfBYjxorY65HIixX+UYC/iwytlYwEN/uSDI= 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=n7ATiETQ; arc=none smtp.client-ip=209.85.219.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="n7ATiETQ" Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-702b5559bbdso6110186d6.3 for ; Wed, 02 Jul 2025 14:37:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492229; x=1752097029; 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=C9QbUmj59wRT1di1iGfusS/bH4bYig6dp2mkPaC/GC4=; b=n7ATiETQs+xvyD7WxSDeCHvxmh5HOpaiT2t4gGzeyswjN7T4gFPJha4eOklN6FnzH+ iGmb+IuQdNgNAYwyiKiu5qMikTPD6MGaeiZJr2gL+CzZ5awJf/anLGwMZzFVB8FGsjl+ Hj+uGoYuHkkRL4QvK7xYGtY2v+joWSw1SPDM85xYdilRT9FFAbOdSZcmp3+ApVpZfaK7 67Drbz6O+LAU0OGkzJGpJZwELZYciGC4KZQgByna8e1mX0j0o/tQhsWydRy68Jnz+7IU quxEJ3CFDh4XWxUvg02TJrHu+/i2vq4ivmnkJJFRSZ2et5O8JdbD7Tu0HzE6HmonOTN9 /19w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492229; x=1752097029; 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=C9QbUmj59wRT1di1iGfusS/bH4bYig6dp2mkPaC/GC4=; b=Cl8jsoHA6tr8U5q1Qmywv9rIX7nsCrGH40Epyh+JdHDVsT2KsMeyIj/edV27+SE2hf MOVZRGyq06XosVBw3KSptFnOt70zOy/BRxSQRsEqb4i8VStUMoWljXmJVVR79yC3avLV gtwWe/nm6siF+e+BgAOMOZBF7xMVnnfc1tMTaE9JOUw2mJWj7UiLOK6+JvbS0Jp82Y45 jDWb/w4h0sFiHwzXJVPJ2gzQmM3y+NL7PhnuWXhQVTRtVMBEqXtLiBPWNyB67wPZXDPO iS/d9gZ6NaRauPR5jYoIaWOrawalyIR7Qe7Zmo0+UHAgRrIjGbAm4yqrsYyuRKR6BU67 eIMw== X-Forwarded-Encrypted: i=1; AJvYcCWUHBF7sQpL0AhxRtYTUs9RoyU+N4OR4zRbHoKSbiHQum6jumpRkIeQNJ8frtvi0ujQnl1oZWUpg7EQF5I=@vger.kernel.org X-Gm-Message-State: AOJu0Yxn9wIaGgJEdxr7qO6NQxWjMe/XPyBzepM55FdJ90gvQERxpvPZ ryZWnNDrwjJfAJ39XpWsX/PMC//sIbVJbuPlReozlrT/hvGVGuDuWoipHRTa5yJuBTM= X-Gm-Gg: ASbGncvnDGtxYRCkIllD8VwvgNU4nMScEAHysyrm2J3yPNIjod3By16dKgc9fRSMzGM JHqEFfxa7kuP3zUvQ4uyEtcPZJIyfXe0fNXGQ8kW1nPJFbuA40q4ZRMM8JhcL2KzjwbBDKTbUej xXybi5TcgPC/AYW2JKWB2xj59Dcwje0PCvKNCTP/XCbIqaPlylx/1VhXHAJjo9+0m3hSTkOL0SM KdYdHvZprxMJQo6AYBEw9I3Zt1M1ia8X6ZjLR4l2EJRaZ6P9AjrAK96NKUpW8Y2PbUo5DVIOgE5 Jx4Havc6n9m4/97hcOufzz3fBINBlaV7c6om1zB30YBhLb9zADfzNT30rfakos3RY0+YC/TU/IN Q0eSj47i42NTYw3z7C2jWopgoBjmYF2KHeDo= X-Google-Smtp-Source: AGHT+IGHBPpKrSSwLwzqeOwEldJB7kkfzgUut8xtD4fDxnQG/VP7sB0/kJKkmFEHtrrUYH6env2kYw== X-Received: by 2002:a05:6214:2b94:b0:6fd:ace:4cf7 with SMTP id 6a1803df08f44-702b1b0658amr50726846d6.24.1751492228549; Wed, 02 Jul 2025 14:37:08 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:08 -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 v7 3/8] mfd: simple-mfd-i2c: add SpacemiT P1 support Date: Wed, 2 Jul 2025 16:36:52 -0500 Message-ID: <20250702213658.545163-4-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 | 12 ++++++++++++ 2 files changed, 23 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 3f959f4f98261..a8f658eaf4108 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -102,12 +102,24 @@ static const struct simple_mfd_data maxim_mon_max7770= 5 =3D { .mfd_cell_size =3D ARRAY_SIZE(max77705_sensor_cells), }; =20 +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 { + .mfd_cell =3D spacemit_p1_cells, + .mfd_cell_size =3D ARRAY_SIZE(spacemit_p1_cells), + .max_register =3D 0xaa, +}; + 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 02:06:42 2025 Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E8B92E498E for ; Wed, 2 Jul 2025 21:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492233; cv=none; b=Kzn9oVP3gOO972Xjd37cyloE4iYuU772S+QWc6BM2zenVFPpqiWm5MPSsIOBqFlVLKMMrwmwaMIJWvPfGaVX7o19CggxvNvPCiZVRydU7D5dqUNkxzmSyQphSE85JFXtdbMV+ByRZqxqJXk8u2Q2nHGG3RkPLmt4lT/Xu4TSb7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492233; c=relaxed/simple; bh=j3Wcubq/3SRFXIT3gXxJqmDlxCU0DsP5Pxf1kaaTIt4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gS23wQRfYSeRqgAvTaVQnKuKWVMCwg3ZPkBTP6jdSqaHWYkfhPHhtxAlIlwyqUB5Hy0nL4YaCrn7rPul8/rTsL5L4oqFfdsx6TTxePg9aqGNcmEmWxAA6+bkZ2TMc17DADfaA0m+pOMttGRGTmGQnEg7lRFhCWNrU65n51+jjvA= 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=0520c5by; arc=none smtp.client-ip=209.85.219.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="0520c5by" Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-6faf66905baso59467936d6.2 for ; Wed, 02 Jul 2025 14:37:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492230; x=1752097030; 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=0520c5byh358GcieUkR4r0OLfFTvyQTrcqGUu6cICArR1wFPMFPBmSeCIHyTC6bczs 4pa+WdRcnpFT5s7+8VeUye+SXCBSGy2ls+UNgLmxB64IUFRVJVyHS4H34bgbKuan0KEm dJMPsgS8Av4raLyPmfEGjBShmEQj3fUk7sxubLLxugyS5mtGiGo0ZFuJI00sL1VlC9as ciLOa3nzo4yrE5aBEjcgGTRYd3Z7SqR0xjhiZQsTZlmE5zww2Hjfu0ljRVkHhsFoSA09 J4Z841NhH2HwoBuKAI8Nw/Pv2scf1Vvy5wpfPJSUdQYBmUC/zyIqiNQLF03njnj5r//F Vz7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492230; x=1752097030; 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=DobF0BU06IkFwn/BnR3tJ9R8OhsgrZpaQ1WOkp4jKWgxIBPjkKAlPR2v2+vG2wepNU 1c5K586yrXO8BWKoJkkWjXOlPEHrkctubGV3cJpZT1WouoxaSB36XBblQ8p7DQlogrfk nG4/vVE3b163yts6qVrQ2uxxqc0CYrmeVo70XLrddhcU6mVAgGkCQbMhybYsz47+5vV7 x1/pEHqo7W8nMsXvTeRpkp6xSMGZ7/RHgKZPwIWZqZ8LSrSHvxcxJq+tNpA+JlnbiTDo IfRTkj9ue8C90tWkCj9UEqeJaerPhEkFRYeqhQCbBq9wH6aNMFKqwyWb4S1ZEW4c0H1R A+Eg== X-Forwarded-Encrypted: i=1; AJvYcCU0nmQEGtIpBn7Htb7iAsgG6fEoU1LKmlT4LYvIrnmagN+6bxQ5j+YcLHWPRVP2G64pvKuMb5M7l9g8C5I=@vger.kernel.org X-Gm-Message-State: AOJu0YzcGh9uBnYvWT7f6rXwdDqKys0RDs5pFIvReBQmxSfu8F+AbUXq fzyUZ+/fzihbUT0pbXkOhRVWl1QF8VsB15aQIGEys9PpX5nWjUNSD79a7DOBod7zxxw= X-Gm-Gg: ASbGnct4wTovslSnq+rNbT9B83cyQvn855FFH5k/deVJ7TaHr/jCeF6dmp/g3tl058O dWg6J9/fL9FJ9czAz35vqelaSFgi3hl/G1dE/jnHWdEZ68j4rcsBS8hu2RtBYAMFJX8P5WMFJdz AUDpzggS8wJiANpMiYlhv8DX1tnPDplebud6hZlLBg2wiPEbHlfD/Xhht0rjDg0yNGrOqchqFDo +8HInGFzmQtXtOKGmffIynra3fmMgMlMluJCbNRQcimH2GFCyf5dcqjuIlzsDLwW1WkBp8LcBs7 I1KZeCZ7jujdfcre5uy6qjIT2xap0T0l9tM6E2hpiZfUZvxkblnEYYiLDMdNzwQj1SLqBx7nDUW 04JsUugPIcBpVdbXF7elMEdTtGxhNpF7c438= X-Google-Smtp-Source: AGHT+IE6QebXMyh3x49VSksTMZS2uh6vk7cj/cccUzGo093FDAVsL7i8vXz8c12uZlHA6HMYg9uePA== X-Received: by 2002:a05:6214:d64:b0:701:a0e:861f with SMTP id 6a1803df08f44-702b1a3e75bmr59419276d6.9.1751492230111; Wed, 02 Jul 2025 14:37:10 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:09 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, 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 v7 4/8] regulator: spacemit: support SpacemiT P1 regulators Date: Wed, 2 Jul 2025 16:36:53 -0500 Message-ID: <20250702213658.545163-5-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 02:06:42 2025 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB1A62F5C48 for ; Wed, 2 Jul 2025 21:37:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492235; cv=none; b=E4fnl7aLhQzS+2qUSfDDjfTVfUZtiM/hgmVFfdOm1oJ1MQV+TI8suSBhmAMIPE7uDBeGlS93V14hb/WOvEreKg7w3QBIjlBTl8L1cTALgcJ7YA4/RBnqpuW6HsJVYA/ppzSXatcr5pg1TUy3ePt7FDovf3/Fi7Tw2HC4Pg8UsXk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492235; c=relaxed/simple; bh=zclW5evbD26kO18GZgybKpcCRCtcM25Tzi+558CiH3U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bo0WSKfg3xEj8zqLGZ+//aCVxAiGQKDC70tyElqRBj+IebTcqjv0YGJJz6Y5cUntbKADHELmg2OKTx66cW2JQRCZtlwFTGhpqV1wYrbTKi3ZgNyuhlCJ8UEDCMy2BmXHuNowCUz2Ka9B7cMQpOhCAm8VZyLtqVqmQ7JkmgGrnmI= 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=s9q9XQ5b; arc=none smtp.client-ip=209.85.219.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="s9q9XQ5b" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6fadb9a0325so44686006d6.2 for ; Wed, 02 Jul 2025 14:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492232; x=1752097032; 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=GtlkaFHjvmTy5RrCm3lhHAt4uNxWGS/x5o/PAIyMoV4=; b=s9q9XQ5bJbb9xmJL/zrseGAHqvmd8rWaga3jxb0bDJrKzhQaLgdDCkIa7FtE7Uytdj 6dfUsTXPNFqWfVjzsHRqN3RdLyjcCJdvhCEe22qsz+xcDbBm6/W6Zc1UJZ1PKvYflMGv QGklnbv9KzCcQumS1U7LRraYElfsuHsEEg6hTHart/a/a1mvyRVywcgOqL5SJAnxfMVB /PfZaDHvtsCMtQ42rCJW/hOcP36P8e8iWIO5wCgMBiFjiK1EJx0gr6QL5QV/NyVtQcg7 O1Qzrh7rE3qTqp5XJif/uUSlt1QU6p7zLpUIHFLF9czb1nzBbwbrKulcNHs5VIN4nQ5T W1cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492232; x=1752097032; 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=GtlkaFHjvmTy5RrCm3lhHAt4uNxWGS/x5o/PAIyMoV4=; b=McldxN2V3/Oz+sBf21aQnuOkGdh+lF2bJ3hAcMnJm+qI1rwkJALMUNis0mJTH9jRot O6oPSTZ2WhQjMW2te60OqmZ34QKyThyN0M9atwEBMRUX/6YFNcOqcV5rxIRChUILnjfB X0KirG0iZrZ4X/13gg9WKJLvOCx91pnbE+uFXDioXD6uDvpMbIyMp4IVA339vNESno1a 3zSbtDoDt2wYrBLaEbk7/9r+eO/R5yl9pt8gHRi4GmFfiSfKmKqIRCIb3ci4laqX5dSM RhvjG6AnH2N6Zl8sIWzTPwSP3vGzD2bXcKamSn5sV4lGq45D7R3dJjDiFdo3dcWmyrQf PF5g== X-Forwarded-Encrypted: i=1; AJvYcCUQ0xg/FbN1MXuy/o5WhU4fdWApoEzT3sFbgM9uFaHzvRHfIU2fxfIoHprrq/gS7/cHB0Lh/dm8WdZ1YNs=@vger.kernel.org X-Gm-Message-State: AOJu0YwWB+RdKoz5YZInaWcUd8XCZFNxVzu5XcN6XC3IwyBRAVgIG6E1 I+JKfnLvw+LaYx/OaGns/5V8Qh2Dc0ZFOW1VHoHFBWw8iEr/jZT+Brhn3iIijjnuSJ4= X-Gm-Gg: ASbGncvs7HZFVBW6VmjKlKSc/hvWt6uljQJiyuBP3l0IHuaC5Hdv+jqCqE+5Mr73ECd WDu620g645ICeamdjnMV9RE/RJTc3yvm4k+RYeedZ41GDYO1jmvtKx4ustfs9UBpvgMyDqyN98a WH5gjZLPMcM5l5FT50sIBEx12Soaad9aUI8EIindsD7OFGHGaDCp9TYeHoVm/u5a3aCzaM9Ay6X 6vkSY6Ql+UksuFuCyDFr+lwWGRRTVFjHhvSiOyeOe3gwIHuJPGwTKtIcSzSf7Rpx8uk3y9nBeTv BDMbgvdnW+wvdJTFsgmXoh0SCpadt8Q5jcmvwQvJd8zZ8DYSX22RCD3ZNS+CDNv4z++2zv0MkHc NoVNtpQZ1J7N7Z9DcnNxwpRKWPCN143EmDjM= X-Google-Smtp-Source: AGHT+IELtVeOVbX3IBsFBh4GKS0KSUV4w+o0Fsl2iPrOLYPZmf6usZrubrj96redXTuO5xBTX8v2kQ== X-Received: by 2002:a05:6214:4412:b0:6fd:1d60:50b5 with SMTP id 6a1803df08f44-702bc90d717mr15957816d6.22.1751492231701; Wed, 02 Jul 2025 14:37:11 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:11 -0700 (PDT) From: Alex Elder To: lee@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mat.jonczyk@o2.pl, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, 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 v7 5/8] rtc: spacemit: support the SpacemiT P1 RTC Date: Wed, 2 Jul 2025 16:36:54 -0500 Message-ID: <20250702213658.545163-6-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 --- 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 02:06:42 2025 Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 608D52BE623 for ; Wed, 2 Jul 2025 21:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492236; cv=none; b=Wbpef6lzo56ggxYzjLd85/je68vBtH5QfZYnptmHRWsUGpqQsfKAqbDJkg3UYQtnAZZwuxHink8e+WrcfYvRsAeDXHW4h1bIDnnDyoOX6ld/LNJgWnCk7PXExvvjh+JYkthfPM7r8GwLSiE3h0tJNgH3nSbZLlNZIdVfGYTWDp4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492236; c=relaxed/simple; bh=PfwZzjjqJBdpG245rW9fZ43Yt8RFpe6Kf9hR0M/wvXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ih88aBxjcBHeKZ5s7/4MEwR9hQn5GayRKTLPIqm3WaT3Ef6PNhoF6Fp8G0BQl6ZMQ45/+szocnRXw2gIsH5wlKhEe2LZ0rEvyKD0BYA7P2UGMfi2p8bL2HHfrh4zCK8vzET5W79S2GSroYvk79BcvFClqo41AzRT9Z7AZ1hWfaE= 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=v9+Ypaw9; arc=none smtp.client-ip=209.85.219.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="v9+Ypaw9" Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-6faf66905adso38483116d6.2 for ; Wed, 02 Jul 2025 14:37:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492233; x=1752097033; 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=v9+Ypaw9mMGk4nIM6Nv3+BpHuaH2qsLJK+R47iw5xF0QNkvlchrBpMqyGBVanxu0YA kXFktlQj6IwwP95VB096KOraeWA1qXQrq3z18Dwae90wcnp09ib83B5i8j9kTLnY1cQS mW/gVMvLKHTaX/7YAJ+oqwUfOsA0RbHvAvOkbWanXpJDg7yQRsfYyxLKH3CYaxnVJWNK lBOmCvR3vEBJG3SR3fpQzvdplu/gPaB4byk8zxOnFHKTkzvLu7vfjFw4mjJ7nAdZSjYm Zk8kEWZMRFKCC+9bc7qbrsaNCMHo8Gs+pXkbTgO0uFRGNzy5TNp6alTEmiZt1p0iLXzi Nauw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492233; x=1752097033; 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=OMgddzYPFODd+DVhWJOX3uiT42UKQPGpYQeXZtFE1tISCcm2LO4CuIRhzEWwKk9Kth nLugwImuCpK4/wabD6DsdArsK3/kzmDRyELlwZ2TZLQG93DXuHBAp8TGECtNOGbs7NtV NKUtJTKYlaFCY8AhdRCcCfXBxiMkMlhPo7cXBdQ4sXpUCABAITKsjU9uPCbPd8l4jOe7 86sf6AYoxKFpAXhClHYuag9s6jcpgx+h+n9eRNSsb6hrx6jsEt/8SyNT9iAWZjxjhhw7 D6uFBrKW8DLAwxyPpkvkvvv8GuaWSaGOL79KbICosr/rsNR9m0ZNRRPfxpL+aoAmSuxF moXg== X-Forwarded-Encrypted: i=1; AJvYcCXZj7jrw94biVYzw+emvoZ1q5hXYRzGPsaqd20xO1VVz0IiX3BKY5xOrUSOhE+MvOX9OqfEvSrABKQfdn8=@vger.kernel.org X-Gm-Message-State: AOJu0YxrpL1RRbfhhGAaTwTyYwlwCv6EDHY/+C7xSEcnSjjcyypr3qYJ Pz3od7U1xJyWKdV/W09EwcwepFHOJDAG0iZ7Dp0V9WLIxPo17fdtveL8YeUxKn+cvAs= X-Gm-Gg: ASbGncvb9gGZMHSnpvV8XjYfoFZBJbrSfaRkLInuhcZkWHXRc5MtR1uZgdy3Mv5ZYiz 6c2bfHjlEne8YE1be4GoJD89O9PwMkqJiD6CBx6NU6AbCqzdr6VriWt8zoNVuiFaCKc/m/9k1q7 u2HmkOlWaT9lBaG+8N2XnXS6JetVnfTV+AoK6ikUOIWK9Z/inG5KHYNLL5V+g2pOpxTZLKSW239 kQxIZlQePzLkwVA/5mPWcxGgC53DM+V0IJBkAjxg0GsCSso1q8qhXxOcWKySR9w+BaJiXWjiCl0 1sr4ly5pfxWZLwfW5TaaP3X2bWOBoKcYNXeylfaiznQEGjGIHXx3O+DQdZNeRaxKXGOi9vyfW0l LpcqM2gyvcgGR6HflySnPAmmJmrtYP5J3CEE= X-Google-Smtp-Source: AGHT+IEga/TTtKtehHBWPm0Nxknr/ZXL6aD2Mo+XTk+ksBSlzPaf8YwrBU7H07nYGA5bKsy1lKh2ew== X-Received: by 2002:ad4:596d:0:b0:6fb:6732:a2c6 with SMTP id 6a1803df08f44-702b17d9115mr52706366d6.12.1751492233254; Wed, 02 Jul 2025 14:37:13 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37:12 -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 v7 6/8] riscv: dts: spacemit: enable the i2c8 adapter Date: Wed, 2 Jul 2025 16:36:55 -0500 Message-ID: <20250702213658.545163-7-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 02:06:42 2025 Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (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 DFAE92F7CEE for ; Wed, 2 Jul 2025 21:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492239; cv=none; b=VV8Cu1seFS7pdhvGac59otN6Shcu3eDtu8WWuw1DP9Z5EsUcXjtyhbjL6yXvDmGu1UFjJa/EUvelqhITfx/QYC6w+DT8envGN4ImllHzrJuyJWINl55ZonTSYW7sV43QJ/INdGUHpnf5bIs4k8pVbIW2qASi9qCJ2uw/xZD5yHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492239; c=relaxed/simple; bh=E/I9W6fX+DhSmsmtI3yC9YfnKc4TowcG2XvObw3IonQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NUIB3xVLzvw13l9dx32ZE2fwQ2EKjY3t8LO83qobCrzSJixJbIgFHwzHtFALJdprteDR01/w1e3C6xiD/KPhPw+mEQ1iUzxRpI4nu41pECAC75Ud8onCTBnck10JAWXHZzuFyYwBfFdDF8NT8wuPzH4wq2WWAB0df3g9ZyYmx8M= 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=FcOuPtH7; arc=none smtp.client-ip=209.85.219.48 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="FcOuPtH7" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6f8aa9e6ffdso82483986d6.3 for ; Wed, 02 Jul 2025 14:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492235; x=1752097035; 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=FcOuPtH79xxKK+ahU0IgIjk6Bzh208ghRpWs1IUCv0qPA3Gb2FmuyIyWcFYe9O45Cc /rJQA+zRE5jIcp5CrZlW3IoK+ICfaZCMWKm6QSOfWU1+EFrs/w7K84EP+6R8KEsAMSsF /pSNEKytB7NO4snwxvaaz7niw9jCnPhTYxtT8fIlKBWcDawmI3M9UBMDAJD0bnZmfWpj tD2E4vuLWG8WznkYPS8RP2QQzAhLxeD64Rz+aXDHe2Bvb1czHatqkVg3wLRu0mufd5GP /xK05tECyE76vVUHRgUT0uD/+PtWXdAfOenKTU+CfUF3EJgQrGYyEQkU9eS0mCH35F5r H+0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492235; x=1752097035; 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=wRqMaa/8H5/ZI9M9NQC86Y9f0rlvW0gMpir4kVJrlxdgH1hSmKazVHJuG4OSOI1OJk H+wUnwHvOij3EC07PTG/Cyu05LVOmM9O9gPhr4qAXRoByk6Kx6Vf2+yH6k2d9u7gzDU5 xPbIerivEchG4/jWHCs9SpRK1J0Me9kDci8YYxnlZ+H8ebaIRobtSzJ0VDm+vca+DDeB Hwcnf/r0GYuPgmz3Xftr90hx+ldLOREMWrNvpXl1Os2SdkIbpMCuDUjQnIg8bGTnPYTO x8lmlyixDAy7L98AkIboZgcdMDg1M1z5fcJAaGJrw9mvFnrl/A3VrW5eKRTG6HMaA99a AEuw== X-Forwarded-Encrypted: i=1; AJvYcCUkU1n3fEJbezIyYDupLTPfAlRwcQNfmv/fT2knS33gX1ZsGhemfJIkKt+tFQd61YLvEZ3qWUAf6r+0Tqg=@vger.kernel.org X-Gm-Message-State: AOJu0YzDYZile4bvWxqYmAtYT47fGPODIhohXhc0189y5gCmGnytqiY3 8SsqWlYglCwvD/RGWB+rFYj6FoOu8hjNozB59UGPD29sTSm7J2Wg1pt7FoWV5RDgqo8= X-Gm-Gg: ASbGnctnu6FSVWARvh8+yKXS2VNyHxxWnj58BxOWWI+JGRp5MxPIkU/7GGRcNLLMuo2 3STBeqU4x1Z3gfX0NbRZpqaxqUGKQTR/nKq/BWH4cJ9rf1QW3YNiec/kgqwU2fI/rpcMKRjgLIX lHFCDiHhpQppQtNWP8+E0RDXP8HA97yTlrHbkCcY79WxyW4fPF/ufQE0z00iWqMfUdWUKqlfabf X5sXQ0Pmm+xCYYwbM98FhQqc4Aq0nrvF2QhwkxFOsai9MsIIR0qTY7v/u4/KAiGVUV3gBYfl22n zEvA8dkC6Z2hLLOdLf1jIXswNBU6ewitapTmrxOug29SEbVLbmqFz6S8Cm8KtRdR6zRAejvoh9R lzpLwDlvLaapERfhvanNHuJppHclAVcplQ+U= X-Google-Smtp-Source: AGHT+IHmuE1Hb+fdqWuuRSoeZlf3aoCIg4RErjvlQJxeD9KbYWIor15tIIiabP6Dq/CTktn4FVDAFA== X-Received: by 2002:a05:6214:c28:b0:6fb:4b54:ebb with SMTP id 6a1803df08f44-702bcbf5777mr14378456d6.14.1751492234758; Wed, 02 Jul 2025 14:37:14 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37: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, 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 v7 7/8] riscv: dts: spacemit: define fixed regulators Date: Wed, 2 Jul 2025 16:36:56 -0500 Message-ID: <20250702213658.545163-8-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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 02:06:42 2025 Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 82B0E2F6FBF for ; Wed, 2 Jul 2025 21:37:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492239; cv=none; b=LCKdGR4DNSHVRk9d0klbzI8qRP0Ul9dOj0dqOanvcg7xDpIFphspyaWMrrTDgQqq4Yx+b8BrBl4OWXIw+Xvw4qt1OFnj08CEHeDXEFjx4ug4F/m3RKwOJK/BAznkCG21TypKlM6gmjwO7glukyXDS+VFHiTFc7RZnFoIVSN62AA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751492239; c=relaxed/simple; bh=WGruvn+Gqs/wHzBEiTs0RVm377PpbfSqb1Lgjf4ooI8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=emCLfl29XFr5D/58mz3JZWwymZTqD4qGC3tUR2Y1iusscRsNLvcPhYKCHWxKmDejarup7tpWSv8R08arNDB7NQntE+VHRVRu8G3QS2XM53akF2JN3soW9w47clFW6ETT3K/borqMRcYjgvE9e2iS9hGvxuLlZeLCkvEMBEuKBPs= 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=C1vUAt5b; arc=none smtp.client-ip=209.85.219.41 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="C1vUAt5b" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6facacf521eso67708096d6.3 for ; Wed, 02 Jul 2025 14:37:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751492236; x=1752097036; 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=C1vUAt5bv5ZHUHJDkCGlMOohr9JhS+7K12GTsoPqYO0ZRBjcZqhQbBfdYdOfxifVoI 53BmBnwz/nvKLUx+g6VtgXtN9gkiqXaKg+vDY4vvlQq1PLWQxLSzxSSkLzBe1TPlNeFY azN/gekSac7uCuholHY7Ss5F/iW2lyA24u4D71BuXI7ZWZhWMKE3EOSmrXjn/6fgGgb0 tPA6ZGZJ2pLicfKZ5ShvlKVKIOPFKaK+zAmeArEfo0cZYgIk5TD7eiITpTHan6r09UHx 4AAgIxlMshaiObV/bWPEN0Uog11HsXvAVq/VY/bOhIFF0LMWyS04ryXd8xEpCYdKHsZa HdWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751492236; x=1752097036; 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=tHdZGDRRhw0siXJZI1wU9iAO5r8zYguBGCzdpNBISKU9SPOcCoHVXvN7wdDgSTaUEk n8Mj3uCv22n2ZWmcEIKv+KFo/PqdYkhCJBuDwbI5zJszRtYO6PiKq7nB3bbIi/5rRrsi DRNJhMuwh3IzRJCt3NNh+RlpHlCKI7BarI0ziyQhj7OAlvOg6DU/RiiJgUZoNLsKo9Ub c2fkwhJuZ9ivq25d/eL74aTkS87ovOeG3heIv7yEa8S1c66p50vuhZpyc39130OdNE3f uH7AFX+BH2CaG/3aO/EZ1u7nAX5ibOOBSoBD8XjJIu+bDyRM3RoYyzJxgiGrIcCLeRk8 WgOw== X-Forwarded-Encrypted: i=1; AJvYcCXOkHtbhmXZHErB811DChSp+zEo0+KXMosXEVAOjYapsYyvxFHwJWgTc1Tpc99R2p8tAm/a5ktO8G08rB8=@vger.kernel.org X-Gm-Message-State: AOJu0YzdZ657Cm7lH44XJnk41y630bae+AJn8SVgwM+6PD8QJAg0NmLS rKTHdLuJh8oEme0dO65l9HEql8g1wzVS5fGmBWHoCLwvDKTRl0Pq8ygFTYn4ZyMb0t8= X-Gm-Gg: ASbGncvUWu8w4HSiGZfESsucUT+Zlo7USpCGi6paGFQQ8YLX34dKpVaSUr1DFK1H8H9 d1mgeEe/qaN+vdZiHBSmFdaKN22ChheXIBQMiChMvO26xUqtnnvvHjL5v4PlVV7bo0HJGtvurV9 AZcKFbUS2R5DYjr12j3v5L3QrdVDdPPhON/u8Rve/KifYrFlrp4uxwNJ5Q+tzR707Nb55FPIKy9 z5Kcxc474Uy0T6eAO8ASxi1+W9g2dfPyBVFKDVMKys5XV+tAP0+bcwfUe3oASd4559iwmBGijFB TdgLmjiwnsSmEbatpR4TpUKwHaBDBYqtS+avq/RL1pACh2EogCaEbJGSmKdM/oPfcO9cu8T8IEJ izE4DHuq9IJEFeCq1vIA5ayUB3zPYX7RTS4M= X-Google-Smtp-Source: AGHT+IFxV9+ZN7uJ4WMWxTezGcNNpASYTQcL8SVuNk4Fu4L3dpgWRu5GuHXUlmrOxNtWzLXL7lsjgg== X-Received: by 2002:a05:6214:3da1:b0:6fa:c31a:af20 with SMTP id 6a1803df08f44-702b1a53271mr61275056d6.5.1751492236287; Wed, 02 Jul 2025 14:37:16 -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 6a1803df08f44-6fd771bc01bsm105691746d6.40.2025.07.02.14.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 14:37: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, 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 v7 8/8] riscv: dts: spacemit: define regulator constraints Date: Wed, 2 Jul 2025 16:36:57 -0500 Message-ID: <20250702213658.545163-9-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250702213658.545163-1-elder@riscstar.com> References: <20250702213658.545163-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