Linux RTC
 help / color / mirror / Atom feed
* [PATCH v2 2/5] regulator: dt-bindings: sc2731: Deprecate compatible property
From: Otto Pflüger @ 2026-03-25 13:53 UTC (permalink / raw)
  To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Lee Jones, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel
  Cc: linux-rtc, devicetree, linux-kernel, linux-leds, linux-pm,
	Otto Pflüger
In-Reply-To: <20260325-sc27xx-mfd-cells-v2-0-d0ebb60aa4a7@abscue.de>

The node containing the regulators is always a child of the main PMIC
node, which already has a compatible property identifying the type of
PMIC. This makes the compatible in the child node redundant. Mark it
as deprecated and remove it from the required property list and the
examples.

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>
---
 Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml                | 2 --
 .../devicetree/bindings/regulator/sprd,sc2731-regulator.yaml          | 4 +---
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml b/Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml
index b023e1ef8d3c..12b3258daef5 100644
--- a/Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml
+++ b/Documentation/devicetree/bindings/mfd/sprd,sc2731.yaml
@@ -222,8 +222,6 @@ examples:
         };
 
         regulators {
-          compatible = "sprd,sc2731-regulator";
-
           BUCK_CPU0 {
             regulator-name = "vddarm0";
             regulator-min-microvolt = <400000>;
diff --git a/Documentation/devicetree/bindings/regulator/sprd,sc2731-regulator.yaml b/Documentation/devicetree/bindings/regulator/sprd,sc2731-regulator.yaml
index 9bd752bab68e..7af20a4781b7 100644
--- a/Documentation/devicetree/bindings/regulator/sprd,sc2731-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/sprd,sc2731-regulator.yaml
@@ -26,6 +26,7 @@ description: |
 
 properties:
   compatible:
+    deprecated: true
     const: sprd,sc2731-regulator
 
 patternProperties:
@@ -39,8 +40,5 @@ patternProperties:
     $ref: regulator.yaml#
     unevaluatedProperties: false
 
-required:
-  - compatible
-
 additionalProperties: false
 ...

-- 
2.51.0


^ permalink raw reply related

* [PATCH v2 3/5] mfd: sprd-sc27xx: Switch to devm_mfd_add_devices()
From: Otto Pflüger @ 2026-03-25 13:53 UTC (permalink / raw)
  To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Lee Jones, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel
  Cc: linux-rtc, devicetree, linux-kernel, linux-leds, linux-pm,
	Otto Pflüger
In-Reply-To: <20260325-sc27xx-mfd-cells-v2-0-d0ebb60aa4a7@abscue.de>

To allow instantiating subdevices such as the regulator and poweroff
devices that do not have corresponding device tree nodes with a
"compatible" property, use devm_mfd_add_devices() with MFD cells instead
of devm_of_platform_populate(). Since different PMICs in the SC27xx
series contain different components, use separate MFD cell tables for
each PMIC model. Define cells for all components that have upstream
drivers at this point.

Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>
---
 drivers/mfd/sprd-sc27xx-spi.c | 62 ++++++++++++++++++++++++++++++++++++-------
 1 file changed, 53 insertions(+), 9 deletions(-)

diff --git a/drivers/mfd/sprd-sc27xx-spi.c b/drivers/mfd/sprd-sc27xx-spi.c
index d6b4350779e6..eb57023fdc3c 100644
--- a/drivers/mfd/sprd-sc27xx-spi.c
+++ b/drivers/mfd/sprd-sc27xx-spi.c
@@ -14,6 +14,11 @@
 #include <linux/spi/spi.h>
 #include <uapi/linux/usb/charger.h>
 
+enum sprd_pmic_type {
+	PMIC_TYPE_SC2730,
+	PMIC_TYPE_SC2731,
+};
+
 #define SPRD_PMIC_INT_MASK_STATUS	0x0
 #define SPRD_PMIC_INT_RAW_STATUS	0x4
 #define SPRD_PMIC_INT_EN		0x8
@@ -50,6 +55,29 @@ struct sprd_pmic_data {
 	u32 charger_det;
 };
 
+static const struct mfd_cell sc2730_devices[] = {
+	MFD_CELL_OF("sc2730-adc", NULL, NULL, 0, 0, "sprd,sc2730-adc"),
+	MFD_CELL_OF("sc2730-bltc", NULL, NULL, 0, 0, "sprd,sc2730-bltc"),
+	MFD_CELL_OF("sc2730-efuse", NULL, NULL, 0, 0, "sprd,sc2730-efuse"),
+	MFD_CELL_OF("sc2730-eic", NULL, NULL, 0, 0, "sprd,sc2730-eic"),
+	MFD_CELL_OF("sc2730-fgu", NULL, NULL, 0, 0, "sprd,sc2730-fgu"),
+	MFD_CELL_OF("sc2730-rtc", NULL, NULL, 0, 0, "sprd,sc2730-rtc"),
+	MFD_CELL_OF("sc2730-vibrator", NULL, NULL, 0, 0, "sprd,sc2730-vibrator"),
+};
+
+static const struct mfd_cell sc2731_devices[] = {
+	MFD_CELL_OF("sc2731-adc", NULL, NULL, 0, 0, "sprd,sc2731-adc"),
+	MFD_CELL_OF("sc2731-bltc", NULL, NULL, 0, 0, "sprd,sc2731-bltc"),
+	MFD_CELL_OF("sc2731-charger", NULL, NULL, 0, 0, "sprd,sc2731-charger"),
+	MFD_CELL_OF("sc2731-efuse", NULL, NULL, 0, 0, "sprd,sc2731-efuse"),
+	MFD_CELL_OF("sc2731-eic", NULL, NULL, 0, 0, "sprd,sc2731-eic"),
+	MFD_CELL_OF("sc2731-fgu", NULL, NULL, 0, 0, "sprd,sc2731-fgu"),
+	MFD_CELL_NAME("sc2731-poweroff"),
+	MFD_CELL_NAME("sc2731-regulator"),
+	MFD_CELL_OF("sc2731-rtc", NULL, NULL, 0, 0, "sprd,sc2731-rtc"),
+	MFD_CELL_OF("sc2731-vibrator", NULL, NULL, 0, 0, "sprd,sc2731-vibrator"),
+};
+
 /*
  * Since different PMICs of SC27xx series can have different interrupt
  * base address and irq number, we should save irq number and irq base
@@ -152,12 +180,26 @@ static const struct regmap_config sprd_pmic_config = {
 static int sprd_pmic_probe(struct spi_device *spi)
 {
 	struct sprd_pmic *ddata;
+	enum sprd_pmic_type pmic_type;
 	const struct sprd_pmic_data *pdata;
-	int ret, i;
+	const struct mfd_cell *cells;
+	int ret, i, num_cells;
+
+	pmic_type = (enum sprd_pmic_type)of_device_get_match_data(&spi->dev);
 
-	pdata = of_device_get_match_data(&spi->dev);
-	if (!pdata) {
-		dev_err(&spi->dev, "No matching driver data found\n");
+	switch (pmic_type) {
+	case PMIC_TYPE_SC2730:
+		pdata = &sc2730_data;
+		cells = sc2730_devices;
+		num_cells = ARRAY_SIZE(sc2730_devices);
+		break;
+	case PMIC_TYPE_SC2731:
+		pdata = &sc2731_data;
+		cells = sc2731_devices;
+		num_cells = ARRAY_SIZE(sc2731_devices);
+		break;
+	default:
+		dev_err(&spi->dev, "Invalid device ID\n");
 		return -EINVAL;
 	}
 
@@ -204,7 +246,9 @@ static int sprd_pmic_probe(struct spi_device *spi)
 		return ret;
 	}
 
-	ret = devm_of_platform_populate(&spi->dev);
+	ret = devm_mfd_add_devices(&spi->dev, PLATFORM_DEVID_AUTO,
+				   cells, num_cells, NULL, 0,
+				   regmap_irq_get_domain(ddata->irq_data));
 	if (ret) {
 		dev_err(&spi->dev, "Failed to populate sub-devices %d\n", ret);
 		return ret;
@@ -241,15 +285,15 @@ static DEFINE_SIMPLE_DEV_PM_OPS(sprd_pmic_pm_ops,
 				sprd_pmic_suspend, sprd_pmic_resume);
 
 static const struct of_device_id sprd_pmic_match[] = {
-	{ .compatible = "sprd,sc2730", .data = &sc2730_data },
-	{ .compatible = "sprd,sc2731", .data = &sc2731_data },
+	{ .compatible = "sprd,sc2730", .data = (void *)PMIC_TYPE_SC2730 },
+	{ .compatible = "sprd,sc2731", .data = (void *)PMIC_TYPE_SC2731 },
 	{},
 };
 MODULE_DEVICE_TABLE(of, sprd_pmic_match);
 
 static const struct spi_device_id sprd_pmic_spi_ids[] = {
-	{ .name = "sc2730", .driver_data = (unsigned long)&sc2730_data },
-	{ .name = "sc2731", .driver_data = (unsigned long)&sc2731_data },
+	{ .name = "sc2730", .driver_data = PMIC_TYPE_SC2730 },
+	{ .name = "sc2731", .driver_data = PMIC_TYPE_SC2731 },
 	{},
 };
 MODULE_DEVICE_TABLE(spi, sprd_pmic_spi_ids);

-- 
2.51.0


^ permalink raw reply related

* [PATCH v2 0/5] mfd: sc27xx: Use MFD cells and devm_mfd_add_devices()
From: Otto Pflüger @ 2026-03-25 13:53 UTC (permalink / raw)
  To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Lee Jones, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel
  Cc: linux-rtc, devicetree, linux-kernel, linux-leds, linux-pm,
	Otto Pflüger, Sebastian Reichel

These changes resulted from the need to decouple the the Linux device
driver hierarchy from the device tree bindings for two different series
introducing regulator [1] and poweroff [2] support for the SC2730 PMIC.

There are different PMICs in the SC27xx series, including SC2730 and
SC2731. These have a lot of similarities, but some differences too. For
instance, they contain compatible RTC blocks, but completely different
sets of regulators.

On the Linux side, each PMIC block needs its own driver. The MFD driver
currently uses devm_of_platform_populate() to load the drivers for the
components of the PMIC, which only works when each component has its own
sub-node with a "compatible" property that is used to select a driver
for the device.

When viewed from the device tree side, the parent node representing the
PMIC already contains a "compatible" property that distinguishes the
different PMICs. While the device tree bindings currently do require a
separate "compatible" property for each sub-node (ADC, fuel gauge,
regulators, ...), this is essentially redundant since the node name and
the parent compatible uniquely identify the component. Moreover, some
parts of the PMIC such as the poweroff/reboot controller do not even
need a corresponding device tree node.

Change the MFD driver to use MFD cells instead, which allows it to
instantiate sub-devices both with and without device tree nodes.
Devices that do not have a separate device tree node with its own
"compatible" property can be matched by their platform device ID.
Use this to hook up the existing SC2731 poweroff and regulator drivers,
which were previously not loaded at all due to the lack of an ID table.

In the device tree bindings, deprecate the redundant "compatible"
property for the "regulators" node. While it might make sense to do this
for the other components too, there are a few reasons to only change the
regulators at this point:
 - The regulators node is special since it is not as independent as the
   other components. For instance, it is the only child node of the PMIC
   that does not have a "reg" property. The set of regulators also
   differs much more between different PMIC models than the register
   layout of the other components.
 - We already have some other PMICs where only the regulators are
   treated specially like this, such as MediaTek MT6359 and MT6370.
 - It was suggested to remove the "compatible" property for the new
   SC2730 regulator bindings I am preparing in [2]. The bindings for
   the other components do not need any significant changes at the
   moment.
 - Unlike the poweroff and regulator components, the other parts are
   already working with the existing drivers and bindings.

For the other components that still have a "compatible" property used
for matching MFD cells, ensure that an SC2730-specific compatible is
defined in the bindings so that it can be listed in the SC2730-specific
device table in the MFD driver.

Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>

[1]: https://lore.kernel.org/all/20250926-sc2730-reboot-v1-0-62ebfd3d31bb@abscue.de/
[2]: https://lore.kernel.org/all/20260220-sc2730-regulators-v1-0-3f2bbc9ecf14@abscue.de/

---
Changes in v2:
- Changed PMIC type matching in MFD driver to use an identifier like
  other drivers instead of passing pointers through of_device_id.
- Rebased on next-20260324.
- Link to v1: https://lore.kernel.org/r/20260222-sc27xx-mfd-cells-v1-0-69526fe74c77@abscue.de

---
Otto Pflüger (5):
      dt-bindings: rtc: sc2731: Add compatible for SC2730
      regulator: dt-bindings: sc2731: Deprecate compatible property
      mfd: sprd-sc27xx: Switch to devm_mfd_add_devices()
      power: reset: sc27xx: Add platform_device_id table
      regulator: sc2731: Add platform_device_id table

 .../devicetree/bindings/mfd/sprd,sc2731.yaml       |  2 -
 .../bindings/regulator/sprd,sc2731-regulator.yaml  |  4 +-
 .../devicetree/bindings/rtc/sprd,sc2731-rtc.yaml   |  7 ++-
 drivers/mfd/sprd-sc27xx-spi.c                      | 62 ++++++++++++++++++----
 drivers/power/reset/sc27xx-poweroff.c              |  8 +++
 drivers/regulator/sc2731-regulator.c               | 10 +++-
 6 files changed, 77 insertions(+), 16 deletions(-)
---
base-commit: 85964cdcad0fac9a0eb7b87a0f9d88cc074b854c
change-id: 20260221-sc27xx-mfd-cells-dab7905f3aae

Best regards,
-- 
Otto Pflüger <otto.pflueger@abscue.de>


^ permalink raw reply

* [PATCH v2 1/5] dt-bindings: rtc: sc2731: Add compatible for SC2730
From: Otto Pflüger @ 2026-03-25 13:53 UTC (permalink / raw)
  To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Lee Jones, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel
  Cc: linux-rtc, devicetree, linux-kernel, linux-leds, linux-pm,
	Otto Pflüger
In-Reply-To: <20260325-sc27xx-mfd-cells-v2-0-d0ebb60aa4a7@abscue.de>

The RTC block found in the SC2730 PMIC is compatible with the one found
in the SC2731 PMIC.

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>
---
 Documentation/devicetree/bindings/rtc/sprd,sc2731-rtc.yaml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/rtc/sprd,sc2731-rtc.yaml b/Documentation/devicetree/bindings/rtc/sprd,sc2731-rtc.yaml
index 5756f617df36..1deae2f4f09d 100644
--- a/Documentation/devicetree/bindings/rtc/sprd,sc2731-rtc.yaml
+++ b/Documentation/devicetree/bindings/rtc/sprd,sc2731-rtc.yaml
@@ -13,7 +13,12 @@ maintainers:
 
 properties:
   compatible:
-    const: sprd,sc2731-rtc
+    oneOf:
+      - items:
+          - enum:
+              - sprd,sc2730-rtc
+          - const: sprd,sc2731-rtc
+      - const: sprd,sc2731-rtc
 
   reg:
     maxItems: 1

-- 
2.51.0


^ permalink raw reply related

* Re: [PATCH 4/6] mfd: sprd-sc27xx: Switch to devm_mfd_add_devices()
From: Lee Jones @ 2026-03-25 11:22 UTC (permalink / raw)
  To: Otto Pflüger
  Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel, linux-rtc,
	devicetree, linux-kernel, linux-leds, linux-pm
In-Reply-To: <ab2i6i2D5q0t0xZ5@abscue.de>

> Could you clarify what should be changed?

Sure.

> On Mon, Mar 09, 2026 at 06:58:56PM +0000, Lee Jones wrote:
> > On Sun, 22 Feb 2026, Otto Pflüger wrote:
> > 
> > > To allow instantiating subdevices such as the regulator and poweroff
> > > devices that do not have corresponding device tree nodes with a
> > > "compatible" property, use devm_mfd_add_devices() with MFD cells instead
> > > of devm_of_platform_populate(). Since different PMICs in the SC27xx
> > > series contain different components, use separate MFD cell tables for
> > > each PMIC model. Define cells for all components that have upstream
> > > drivers at this point.
> > 
> > We're not passing one device registration API's data (MFD)
> > through another (Device Tree).
> > 
> > Pass an identifier through and match on that instead.
> > 
> > Look at how all of the other drivers in MFD do it.
> >
> > [...]
> > > +static const struct mfd_cell sc2730_devices[] = {
> > > +	MFD_CELL_OF("sc2730-adc", NULL, NULL, 0, 0, "sprd,sc2730-adc"),
> > > +	MFD_CELL_OF("sc2730-bltc", NULL, NULL, 0, 0, "sprd,sc2730-bltc"),
> > > +	MFD_CELL_OF("sc2730-efuse", NULL, NULL, 0, 0, "sprd,sc2730-efuse"),
> > > +	MFD_CELL_OF("sc2730-eic", NULL, NULL, 0, 0, "sprd,sc2730-eic"),
> > > +	MFD_CELL_OF("sc2730-fgu", NULL, NULL, 0, 0, "sprd,sc2730-fgu"),
> > > +	MFD_CELL_OF("sc2730-rtc", NULL, NULL, 0, 0, "sprd,sc2730-rtc"),
> > > +	MFD_CELL_OF("sc2730-vibrator", NULL, NULL, 0, 0, "sprd,sc2730-vibrator"),
> > > +};
> > > +
> > > +static const struct mfd_cell sc2731_devices[] = {
> > > +	MFD_CELL_OF("sc2731-adc", NULL, NULL, 0, 0, "sprd,sc2731-adc"),
> > > +	MFD_CELL_OF("sc2731-bltc", NULL, NULL, 0, 0, "sprd,sc2731-bltc"),
> > > +	MFD_CELL_OF("sc2731-charger", NULL, NULL, 0, 0, "sprd,sc2731-charger"),
> > > +	MFD_CELL_OF("sc2731-efuse", NULL, NULL, 0, 0, "sprd,sc2731-efuse"),
> > > +	MFD_CELL_OF("sc2731-eic", NULL, NULL, 0, 0, "sprd,sc2731-eic"),
> > > +	MFD_CELL_OF("sc2731-fgu", NULL, NULL, 0, 0, "sprd,sc2731-fgu"),
> > > +	MFD_CELL_NAME("sc2731-poweroff"),
> > > +	MFD_CELL_NAME("sc2731-regulator"),
> > > +	MFD_CELL_OF("sc2731-rtc", NULL, NULL, 0, 0, "sprd,sc2731-rtc"),
> > > +	MFD_CELL_OF("sc2731-vibrator", NULL, NULL, 0, 0, "sprd,sc2731-vibrator"),
> > >  };
> 
> Assuming that these tables are the "registration API's data", I don't
> see where it is being passed through the device tree. The device tree
> contains nodes for some of these MFD components, and I've listed their
> compatibles here so that the MFD core finds these nodes and registers
> them with the corresponding devices (which was previously done
> automatically by devm_of_platform_populate).
> 
> > >  
> > >  /*
> > > @@ -59,12 +84,16 @@ static const struct sprd_pmic_data sc2730_data = {
> > >  	.irq_base = SPRD_SC2730_IRQ_BASE,
> > >  	.num_irqs = SPRD_SC2730_IRQ_NUMS,
> > >  	.charger_det = SPRD_SC2730_CHG_DET,
> > > +	.cells = sc2730_devices,
> > > +	.num_cells = ARRAY_SIZE(sc2730_devices),

Remove these from here.

Either replace them with an ID that you can match on or stop passing
'sc2730_data' through .data and pass an ID through there instead.  Then
choose 'sc2730_data' and 'sc2730_devices' in an switch() statement
instead, just like the vast majority of existing MFD drivers do.

> > >  };
> > >  
> > >  static const struct sprd_pmic_data sc2731_data = {
> > >  	.irq_base = SPRD_SC2731_IRQ_BASE,
> > >  	.num_irqs = SPRD_SC2731_IRQ_NUMS,
> > >  	.charger_det = SPRD_SC2731_CHG_DET,
> > > +	.cells = sc2731_devices,
> > > +	.num_cells = ARRAY_SIZE(sc2731_devices),
> > >  };
> 
> Here I am simply referencing the tables above in the device-specific
> MFD data. These structs containing device-specific data already exist,
> they are private to the MFD driver, and I wouldn't consider them part
> of the device tree.
> 
> I've looked at mt6397-core.c and it seems to be doing the exact same
> thing with its "struct chip_data".

That was a momentary oversight.  It's also passing a driver-level
call-back which I despise.  However, past mistakes are not good
justifications for new ones.

> Some other drivers use a numeric ID
> for this purpose, but how would that be different from a pointer as long
> as it identifies the same data within the MFD driver?

The point is that sc2731_data->cells would be passed through the Device
Tree's .data attribute, which is not allowed.

-- 
Lee Jones [李琼斯]

^ permalink raw reply

* [PATCH v2] dt-bindings: rtc: add olpc,xo1-rtc to trivial-rtc
From: Anushka Badhe @ 2026-03-25  9:30 UTC (permalink / raw)
  To: alexandre.belloni
  Cc: anushkabadhe, conor+dt, devicetree, dsd, krzk+dt, linux-kernel,
	linux-rtc, robh
In-Reply-To: <202603250854523a8809af@mail.local>

Add the OLPC XO-1 RTC compatible string to the trivial-rtc schema
instead of creating a standalone binding file, as it only requires
a compatible property with no additional configuration.

Signed-off-by: Anushka Badhe <anushkabadhe@gmail.com>
---

Changes in v2:
- Move binding to trivial-rtc.yaml instead of separate file

Note:
* This patch is part of the GSoC2026 application process for device tree 
bindings conversions
* https://github.com/LinuxFoundationGSoC/ProjectIdeas/wiki/GSoC-2026-Device-Tree-Bindings

 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt | 5 -----
 Documentation/devicetree/bindings/rtc/trivial-rtc.yaml | 2 ++
 2 files changed, 2 insertions(+), 5 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt

diff --git a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
deleted file mode 100644
index a2891ceb6344..000000000000
--- a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-OLPC XO-1 RTC
-~~~~~~~~~~~~~
-
-Required properties:
- - compatible : "olpc,xo1-rtc"
diff --git a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml
index b47822370d6f..722176c831aa 100644
--- a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml
+++ b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml
@@ -65,6 +65,8 @@ properties:
       - microcrystal,rv3029
       # Real Time Clock
       - microcrystal,rv8523
+      # OLPC XO-1 RTC
+      - olpc,xo1-rtc
       # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
       - ricoh,r2025sd
       # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
-- 
2.43.0


^ permalink raw reply related

* Re: [PATCH] dt-bindings: rtc: Convert olpc,xo1-rtc to DT schema
From: Alexandre Belloni @ 2026-03-25  8:54 UTC (permalink / raw)
  To: Anushka Badhe
  Cc: robh, krzk+dt, conor+dt, dsd, linux-rtc, devicetree, linux-kernel
In-Reply-To: <20260325084708.40629-1-anushkabadhe@gmail.com>

On 25/03/2026 14:17:08+0530, Anushka Badhe wrote:
> Convert the OLPC XO-1 RTC device tree binding to DT schema format.
> 
> Signed-off-by: Anushka Badhe <anushkabadhe@gmail.com>
> ---
> 
> Note:
> * This patch is part of the GSoC2026 application process for device tree 
> bindings conversions
> * https://github.com/LinuxFoundationGSoC/ProjectIdeas/wiki/GSoC-2026-Device-Tree-Bindings
> 
>  .../devicetree/bindings/rtc/olpc-xo1-rtc.txt  |  5 ----
>  .../devicetree/bindings/rtc/olpc-xo1-rtc.yaml | 26 +++++++++++++++++++
>  2 files changed, 26 insertions(+), 5 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
>  create mode 100644 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
> deleted file mode 100644
> index a2891ceb6344..000000000000
> --- a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -OLPC XO-1 RTC
> -~~~~~~~~~~~~~
> -
> -Required properties:
> - - compatible : "olpc,xo1-rtc"


I guess this should be move to trivial-rtc

> diff --git a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml
> new file mode 100644
> index 000000000000..a5f029a4de92
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml
> @@ -0,0 +1,26 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/rtc/olpc-xo1-rtc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: OLPC XO-1 RTC
> +
> +maintainers:
> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - olpc,xo1-rtc
> +
> +required:
> +  - compatible
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    rtc {
> +       compatible = "olpc,xo1-rtc";
> +    };
> -- 
> 2.43.0
> 

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply

* [PATCH] dt-bindings: rtc: Convert olpc,xo1-rtc to DT schema
From: Anushka Badhe @ 2026-03-25  8:47 UTC (permalink / raw)
  To: alexandre.belloni
  Cc: robh, krzk+dt, conor+dt, dsd, linux-rtc, devicetree, linux-kernel,
	Anushka Badhe

Convert the OLPC XO-1 RTC device tree binding to DT schema format.

Signed-off-by: Anushka Badhe <anushkabadhe@gmail.com>
---

Note:
* This patch is part of the GSoC2026 application process for device tree 
bindings conversions
* https://github.com/LinuxFoundationGSoC/ProjectIdeas/wiki/GSoC-2026-Device-Tree-Bindings

 .../devicetree/bindings/rtc/olpc-xo1-rtc.txt  |  5 ----
 .../devicetree/bindings/rtc/olpc-xo1-rtc.yaml | 26 +++++++++++++++++++
 2 files changed, 26 insertions(+), 5 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml

diff --git a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
deleted file mode 100644
index a2891ceb6344..000000000000
--- a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-OLPC XO-1 RTC
-~~~~~~~~~~~~~
-
-Required properties:
- - compatible : "olpc,xo1-rtc"
diff --git a/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml
new file mode 100644
index 000000000000..a5f029a4de92
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.yaml
@@ -0,0 +1,26 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/olpc-xo1-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OLPC XO-1 RTC
+
+maintainers:
+  - Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+properties:
+  compatible:
+    enum:
+      - olpc,xo1-rtc
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    rtc {
+       compatible = "olpc,xo1-rtc";
+    };
-- 
2.43.0


^ permalink raw reply related

* RE: [PATCH v4 1/5] dt-bindings: rtc: nxp,pcf85363: add timestamp mode config
From: Lakshay Piplani @ 2026-03-24 15:26 UTC (permalink / raw)
  To: alexandre.belloni@bootlin.com, linux-rtc@vger.kernel.org,
	linux-kernel@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, devicetree@vger.kernel.org,
	wim@linux-watchdog.org, linux@roeck-us.net,
	linux-watchdog@vger.kernel.org
  Cc: Vikash Bansal, Priyanka Jain
In-Reply-To: <20251121121137.3043764-1-lakshay.piplani@nxp.com>

> +    #include <dt-bindings/rtc/pcf85363-tsr.h>
>      i2c {
>          #address-cells = <1>;
>          #size-cells = <0>;
> @@ -56,5 +75,7 @@ examples:
>              reg = <0x51>;
>              #clock-cells = <0>;
>              quartz-load-femtofarads = <12500>;
> +            wakeup-source;
> +            nxp,timestamp-mode = <PCF85363_TSR1_FE PCF85363_TSR2_LB
> + PCF85363_TSR3_LV>;
>          };
>      };
> diff --git a/include/dt-bindings/rtc/pcf85363-tsr.h b/include/dt-
> bindings/rtc/pcf85363-tsr.h
> new file mode 100644
> index 000000000000..1fb5b9b3601e
> --- /dev/null
> +++ b/include/dt-bindings/rtc/pcf85363-tsr.h
> @@ -0,0 +1,28 @@
> +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
> +/*
> + * Copyright 2025 NXP
> + */
> +
> +#ifndef _DT_BINDINGS_RTC_PCF85363_TSR_H #define
> +_DT_BINDINGS_RTC_PCF85363_TSR_H
> +
> +/* TSR1 modes */
> +#define PCF85363_TSR1_NONE 0x00
> +#define PCF85363_TSR1_FE 0x01
> +#define PCF85363_TSR1_LE 0x02
> +
> +/* TSR2 modes */
> +#define PCF85363_TSR2_NONE 0x00
> +#define PCF85363_TSR2_FB 0x01
> +#define PCF85363_TSR2_LB 0x02
> +#define PCF85363_TSR2_LV 0x03
> +#define PCF85363_TSR2_FE 0x04
> +#define PCF85363_TSR2_LE 0x05
> +
> +/* TSR3 modes */
> +#define PCF85363_TSR3_NONE 0x00
> +#define PCF85363_TSR3_FB 0x01
> +#define PCF85363_TSR3_LB 0x02
> +#define PCF85363_TSR3_LV 0x03
> +
> +#endif /* _DT_BINDINGS_RTC_PCF85363_TSR_H */
> --
> 2.25.1


Hi,

This is a gentle reminder regarding the patches I submitted in November. 
I haven't seen any review feedback yet, so I'd appreciate it if you could take a 
look whenever time permits.

Best regards,
Lakshay

^ permalink raw reply

* RE: [PATCH v7 1/2] dt-bindings: rtc: Add pcf85053 support
From: Lakshay Piplani @ 2026-03-24 15:21 UTC (permalink / raw)
  To: alexandre.belloni@bootlin.com, linux-rtc@vger.kernel.org,
	linux-kernel@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, devicetree@vger.kernel.org, Conor Dooley
  Cc: Vikash Bansal, Priyanka Jain, Pankit Garg
In-Reply-To: <20251127120456.1849177-1-lakshay.piplani@nxp.com>

> +examples:
> +  # Single host example.
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      rtc@6f {
> +        compatible = "nxp,pcf85053";
> +        reg = <0x6f>;
> +        nxp,interface = "primary";
> +        nxp,write-access;
> +        interrupt-parent = <&gpio2>;
> +        interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
> +      };
> +    };
> +
> +  # Dual-host example: one primary that claims writes; one secondary that
> never claims writes.
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c0 {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      rtc@6f {
> +        compatible = "nxp,pcf85053";
> +        reg = <0x6f>;
> +        nxp,interface = "primary";
> +        nxp,write-access;
> +        interrupt-parent = <&gpio2>;
> +        interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
> +      };
> +    };
> +
> +    i2c1 {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      rtc@6f {
> +        compatible = "nxp,pcf85053";
> +        reg = <0x6f>;
> +        nxp,interface = "secondary";
> +      };
> +    };
> --
> 2.25.1


Hi,

This is a gentle reminder regarding the patches I submitted in November. 
I haven't seen any review feedback yet, so I'd appreciate it if you could take a 
look whenever time permits.

Best regards,
Lakshay Piplani

^ permalink raw reply

* RE: [PATCH 01/15] dt-bindings: power: power-controller: Convert to yaml format
From: Peng Fan @ 2026-03-24  6:31 UTC (permalink / raw)
  To: Peng Fan (OSS), Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rafael J. Wysocki, Ulf Hansson, Krzysztof Kozlowski,
	Romain Perier
  Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-rtc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org
In-Reply-To: <20260316-power-controller-v1-1-92c80e5e1744@nxp.com>

Hi Romain,

> Subject: [PATCH 01/15] dt-bindings: power: power-controller: Convert
> to yaml format

Not sure about you github ID, so ask here.

Are you ok for changing this to BSD-2.0 License?

https://github.com/devicetree-org/dt-schema/pull/187

Thanks,
Peng.

> 
> From: Peng Fan <peng.fan@nxp.com>
> 
> Convert power-controller.txt to yaml format. Drop the example
> because there is already one in regulator/active-semi,act8846.yaml.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  .../devicetree/bindings/power/power-controller.txt | 17 ------------
>  .../bindings/power/power-controller.yaml           | 30
> ++++++++++++++++++++++
>  2 files changed, 30 insertions(+), 17 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/power-
> controller.txt b/Documentation/devicetree/bindings/power/power-
> controller.txt
> deleted file mode 100644
> index
> e45affea80781292316c75ed387ba38402501c5b..0000000000000000
> 000000000000000000000000
> --- a/Documentation/devicetree/bindings/power/power-controller.txt
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -* Generic system power control capability
> -
> -Power-management integrated circuits or miscellaneous hardware
> components are -sometimes able to control the system power. The
> device driver associated with these -components might need to define
> this capability, which tells the kernel that -it can be used to switch off
> the system. The corresponding device must have the -standard
> property "system-power-controller" in its device node. This property -
> marks the device as able to control the system power. In order to test if
> this -property is found programmatically, use the helper function -
> "of_device_is_system_power_controller" from of.h .
> -
> -Example:
> -
> -act8846: act8846@5 {
> -	 compatible = "active-semi,act8846";
> -	 system-power-controller;
> -}
> diff --git a/Documentation/devicetree/bindings/power/power-
> controller.yaml b/Documentation/devicetree/bindings/power/power-
> controller.yaml
> new file mode 100644
> index
> 0000000000000000000000000000000000000000..ff698365d778446
> c08ceeb5f3ef144d5e97d2f79
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/power-
> controller.yaml
> @@ -0,0 +1,30 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/power/power-controller.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Generic System Power Control Capability
> +
> +maintainers:
> +  - Rafael J. Wysocki <rafael@kernel.org>
> +  - Ulf Hansson <ulf.hansson@linaro.org>
> +
> +description: |
> +  Power-management integrated circuits or miscellaneous hardware
> +components
> +  are sometimes able to control the system power. The device driver
> +associated
> +  with these components might need to define this capability, which
> +tells the
> +  kernel that it can be used to switch off the system. The
> +corresponding device
> +  must have the standard property "system-power-controller" in its
> +device node. This
> +  property marks the device as able to control the system power.
> +
> +  In order to test if this property is found programmatically, use the
> + helper  function "of_device_is_system_power_controller" from of.h.
> +
> +properties:
> +  system-power-controller:
> +    type: boolean
> +    description:
> +      Indicates that this device can be used to control the system power.
> +
> +additionalProperties: true
> 
> --
> 2.37.1


^ permalink raw reply

* Re: (subset) [PATCH v3 0/2] Kontron i.MX8MP OSM Devicetree Fixups
From: Frank Li @ 2026-03-23 23:18 UTC (permalink / raw)
  To: Alexandre Belloni, Conor Dooley, devicetree, Frieder Schrempf,
	imx, Krzysztof Kozlowski, linux-arm-kernel, linux-kernel,
	linux-rtc, Rob Herring, Sascha Hauer, Shawn Guo, Frieder Schrempf
  Cc: Frank Li, Annette Kobou, Fabio Estevam, Pengutronix Kernel Team
In-Reply-To: <20260309085749.25747-1-frieder@fris.de>


On Mon, 09 Mar 2026 09:57:41 +0100, Frieder Schrempf wrote:
> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>
> This contains three fixes and one cosmetic change for
> the Kontron i.MX8MP OSM devices.
>
> Changes for v3:
> * Drop applied patches
> * Add missing bindings patch for RV3028 RTC
>
> [...]

Applied, thanks!

[2/2] arm64: dts: imx8mp-kontron: Fix boot order for PMIC and RTC
      commit: 0f02852af55591d6a8609347890cc348f86fdac9

Update commit messsage, adjust wrap at 75 char. Change "this fixes" to
avoid.  Remove "We can ..."

Best regards,
--
Frank Li <Frank.Li@nxp.com>

^ permalink raw reply

* Re: [PATCH 4/6] mfd: sprd-sc27xx: Switch to devm_mfd_add_devices()
From: Otto Pflüger @ 2026-03-20 19:41 UTC (permalink / raw)
  To: Lee Jones
  Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Orson Zhai, Baolin Wang, Chunyan Zhang, Pavel Machek,
	Liam Girdwood, Mark Brown, Sebastian Reichel, linux-rtc,
	devicetree, linux-kernel, linux-leds, linux-pm
In-Reply-To: <20260309185856.GZ183676@google.com>

On Mon, Mar 09, 2026 at 06:58:56PM +0000, Lee Jones wrote:
> On Sun, 22 Feb 2026, Otto Pflüger wrote:
> 
> > To allow instantiating subdevices such as the regulator and poweroff
> > devices that do not have corresponding device tree nodes with a
> > "compatible" property, use devm_mfd_add_devices() with MFD cells instead
> > of devm_of_platform_populate(). Since different PMICs in the SC27xx
> > series contain different components, use separate MFD cell tables for
> > each PMIC model. Define cells for all components that have upstream
> > drivers at this point.
> 
> We're not passing one device registration API's data (MFD)
> through another (Device Tree).
> 
> Pass an identifier through and match on that instead.
> 
> Look at how all of the other drivers in MFD do it.
>
> [...]
> > +static const struct mfd_cell sc2730_devices[] = {
> > +	MFD_CELL_OF("sc2730-adc", NULL, NULL, 0, 0, "sprd,sc2730-adc"),
> > +	MFD_CELL_OF("sc2730-bltc", NULL, NULL, 0, 0, "sprd,sc2730-bltc"),
> > +	MFD_CELL_OF("sc2730-efuse", NULL, NULL, 0, 0, "sprd,sc2730-efuse"),
> > +	MFD_CELL_OF("sc2730-eic", NULL, NULL, 0, 0, "sprd,sc2730-eic"),
> > +	MFD_CELL_OF("sc2730-fgu", NULL, NULL, 0, 0, "sprd,sc2730-fgu"),
> > +	MFD_CELL_OF("sc2730-rtc", NULL, NULL, 0, 0, "sprd,sc2730-rtc"),
> > +	MFD_CELL_OF("sc2730-vibrator", NULL, NULL, 0, 0, "sprd,sc2730-vibrator"),
> > +};
> > +
> > +static const struct mfd_cell sc2731_devices[] = {
> > +	MFD_CELL_OF("sc2731-adc", NULL, NULL, 0, 0, "sprd,sc2731-adc"),
> > +	MFD_CELL_OF("sc2731-bltc", NULL, NULL, 0, 0, "sprd,sc2731-bltc"),
> > +	MFD_CELL_OF("sc2731-charger", NULL, NULL, 0, 0, "sprd,sc2731-charger"),
> > +	MFD_CELL_OF("sc2731-efuse", NULL, NULL, 0, 0, "sprd,sc2731-efuse"),
> > +	MFD_CELL_OF("sc2731-eic", NULL, NULL, 0, 0, "sprd,sc2731-eic"),
> > +	MFD_CELL_OF("sc2731-fgu", NULL, NULL, 0, 0, "sprd,sc2731-fgu"),
> > +	MFD_CELL_NAME("sc2731-poweroff"),
> > +	MFD_CELL_NAME("sc2731-regulator"),
> > +	MFD_CELL_OF("sc2731-rtc", NULL, NULL, 0, 0, "sprd,sc2731-rtc"),
> > +	MFD_CELL_OF("sc2731-vibrator", NULL, NULL, 0, 0, "sprd,sc2731-vibrator"),
> >  };

Assuming that these tables are the "registration API's data", I don't
see where it is being passed through the device tree. The device tree
contains nodes for some of these MFD components, and I've listed their
compatibles here so that the MFD core finds these nodes and registers
them with the corresponding devices (which was previously done
automatically by devm_of_platform_populate).

> >  
> >  /*
> > @@ -59,12 +84,16 @@ static const struct sprd_pmic_data sc2730_data = {
> >  	.irq_base = SPRD_SC2730_IRQ_BASE,
> >  	.num_irqs = SPRD_SC2730_IRQ_NUMS,
> >  	.charger_det = SPRD_SC2730_CHG_DET,
> > +	.cells = sc2730_devices,
> > +	.num_cells = ARRAY_SIZE(sc2730_devices),
> >  };
> >  
> >  static const struct sprd_pmic_data sc2731_data = {
> >  	.irq_base = SPRD_SC2731_IRQ_BASE,
> >  	.num_irqs = SPRD_SC2731_IRQ_NUMS,
> >  	.charger_det = SPRD_SC2731_CHG_DET,
> > +	.cells = sc2731_devices,
> > +	.num_cells = ARRAY_SIZE(sc2731_devices),
> >  };

Here I am simply referencing the tables above in the device-specific
MFD data. These structs containing device-specific data already exist,
they are private to the MFD driver, and I wouldn't consider them part
of the device tree.

I've looked at mt6397-core.c and it seems to be doing the exact same
thing with its "struct chip_data". Some other drivers use a numeric ID
for this purpose, but how would that be different from a pointer as long
as it identifies the same data within the MFD driver?

Could you clarify what should be changed?

^ permalink raw reply

* Re: [PATCH v1 2/2] rtc: cmos: Do not require IRQ if ACPI alarm is used
From: Mario Limonciello (AMD) (kernel.org) @ 2026-03-20 19:27 UTC (permalink / raw)
  To: Alexandre Belloni, Rafael J. Wysocki; +Cc: linux-rtc, LKML, Linux ACPI
In-Reply-To: <20260320180031928c3da5@mail.local>



On 3/20/2026 1:00 PM, Alexandre Belloni wrote:
> On 14/03/2026 13:12:44+0100, Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>
>> If the ACPI RTC fixed event is used, a dedicated IRQ is not required
>> for the CMOS RTC alarm to work, so allow the driver to use the alarm
>> without a valid IRQ in that case.
>>
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>

> 
>> ---
>>   drivers/rtc/rtc-cmos.c |   15 ++++++++++-----
>>   1 file changed, 10 insertions(+), 5 deletions(-)
>>
>> --- a/drivers/rtc/rtc-cmos.c
>> +++ b/drivers/rtc/rtc-cmos.c
>> @@ -216,6 +216,11 @@ static inline void cmos_write_bank2(unsi
>>   
>>   /*----------------------------------------------------------------*/
>>   
>> +static bool cmos_no_alarm(struct cmos_rtc *cmos)
>> +{
>> +	return !is_valid_irq(cmos->irq) && !cmos_use_acpi_alarm();
>> +}
>> +
>>   static int cmos_read_time(struct device *dev, struct rtc_time *t)
>>   {
>>   	int ret;
>> @@ -287,7 +292,7 @@ static int cmos_read_alarm(struct device
>>   	};
>>   
>>   	/* This not only a rtc_op, but also called directly */
>> -	if (!is_valid_irq(cmos->irq))
>> +	if (cmos_no_alarm(cmos))
>>   		return -ETIMEDOUT;
>>   
>>   	/* Basic alarms only support hour, minute, and seconds fields.
>> @@ -520,7 +525,7 @@ static int cmos_set_alarm(struct device
>>   	int ret;
>>   
>>   	/* This not only a rtc_op, but also called directly */
>> -	if (!is_valid_irq(cmos->irq))
>> +	if (cmos_no_alarm(cmos))
>>   		return -EIO;
>>   
>>   	ret = cmos_validate_alarm(dev, t);
>> @@ -1096,7 +1101,7 @@ cmos_do_probe(struct device *dev, struct
>>   			dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
>>   			goto cleanup1;
>>   		}
>> -	} else {
>> +	} else if (!cmos_use_acpi_alarm()) {
>>   		clear_bit(RTC_FEATURE_ALARM, cmos_rtc.rtc->features);
>>   	}
>>   
>> @@ -1121,7 +1126,7 @@ cmos_do_probe(struct device *dev, struct
>>   		acpi_rtc_event_setup(dev);
>>   
>>   	dev_info(dev, "%s%s, %d bytes nvram%s\n",
>> -		 !is_valid_irq(rtc_irq) ? "no alarms" :
>> +		 cmos_no_alarm(&cmos_rtc) ? "no alarms" :
>>   		 cmos_rtc.mon_alrm ? "alarms up to one year" :
>>   		 cmos_rtc.day_alrm ? "alarms up to one month" :
>>   		 "alarms up to one day",
>> @@ -1147,7 +1152,7 @@ cleanup0:
>>   static void cmos_do_shutdown(int rtc_irq)
>>   {
>>   	spin_lock_irq(&rtc_lock);
>> -	if (is_valid_irq(rtc_irq))
>> +	if (!cmos_no_alarm(&cmos_rtc))
>>   		cmos_irq_disable(&cmos_rtc, RTC_IRQMASK);
>>   	spin_unlock_irq(&rtc_lock);
>>   }
>>
>>
>>
> 


^ permalink raw reply

* Re: [PATCH v1 1/2] rtc: cmos: Enable ACPI alarm if advertised in ACPI FADT
From: Mario Limonciello (AMD) (kernel.org) @ 2026-03-20 19:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, linux-rtc; +Cc: LKML, Linux ACPI, Alexandre Belloni
In-Reply-To: <9618535.CDJkKcVGEf@rafael.j.wysocki>



On 3/14/2026 7:11 AM, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> If the ACPI_FADT_FIXED_RTC flag is unset, the platform is declaring that
> it supports the ACPI RTC fixed event which should be used instead of a
> dedicated CMOS RTC IRQ.  However, the driver only enables it when
> is_hpet_enabled() returns true, which is questionable because there is
> no clear connection between enabled HPET and signaling wakeup via the
> ACPI RTC fixed event (for instance, the latter can be expected to work
> on systems that don't include a functional HPET).
> 
> Moreover, since use_hpet_alarm() returns false if use_acpi_alarm is set,
> the ACPI RTC fixed event is effectively used instead of the HPET alarm
> if the latter is functional, but there is no particular reason why it
> could not be used otherwise.
> 
> Accordingly, on x86 systems with ACPI, set use_acpi_alarm if
> ACPI_FADT_FIXED_RTC is unset without looking at whether or not HPET is
> enabled.
> 
> Also, do the ACPI FADT check in use_acpi_alarm_quirks() before the DMI
> BIOS year checks which are more expensive and it's better to skip them
> if ACPI_FADT_FIXED_RTC is set.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

This makes sense to me.

Sorry for my delay, I kept on meaning to check a few machines and then 
more things came up and it fell lower.

I did check 3 generations of AMD machines and I don't expect any 
problems from this change.

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>

> ---
>   drivers/rtc/rtc-cmos.c |    5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -817,6 +817,9 @@ static void rtc_wake_off(struct device *
>   #ifdef CONFIG_X86
>   static void use_acpi_alarm_quirks(void)
>   {
> +	if (acpi_gbl_FADT.flags & ACPI_FADT_FIXED_RTC)
> +		return;
> +
>   	switch (boot_cpu_data.x86_vendor) {
>   	case X86_VENDOR_INTEL:
>   		if (dmi_get_bios_year() < 2015)
> @@ -830,8 +833,6 @@ static void use_acpi_alarm_quirks(void)
>   	default:
>   		return;
>   	}
> -	if (!is_hpet_enabled())
> -		return;
>   
>   	use_acpi_alarm = true;
>   }
> 
> 
> 


^ permalink raw reply

* Re: [PATCH v1 2/2] rtc: cmos: Do not require IRQ if ACPI alarm is used
From: Alexandre Belloni @ 2026-03-20 18:00 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: linux-rtc, LKML, Linux ACPI, Mario Limonciello
In-Reply-To: <6168746.MhkbZ0Pkbq@rafael.j.wysocki>

On 14/03/2026 13:12:44+0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> If the ACPI RTC fixed event is used, a dedicated IRQ is not required
> for the CMOS RTC alarm to work, so allow the driver to use the alarm
> without a valid IRQ in that case.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
>  drivers/rtc/rtc-cmos.c |   15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -216,6 +216,11 @@ static inline void cmos_write_bank2(unsi
>  
>  /*----------------------------------------------------------------*/
>  
> +static bool cmos_no_alarm(struct cmos_rtc *cmos)
> +{
> +	return !is_valid_irq(cmos->irq) && !cmos_use_acpi_alarm();
> +}
> +
>  static int cmos_read_time(struct device *dev, struct rtc_time *t)
>  {
>  	int ret;
> @@ -287,7 +292,7 @@ static int cmos_read_alarm(struct device
>  	};
>  
>  	/* This not only a rtc_op, but also called directly */
> -	if (!is_valid_irq(cmos->irq))
> +	if (cmos_no_alarm(cmos))
>  		return -ETIMEDOUT;
>  
>  	/* Basic alarms only support hour, minute, and seconds fields.
> @@ -520,7 +525,7 @@ static int cmos_set_alarm(struct device
>  	int ret;
>  
>  	/* This not only a rtc_op, but also called directly */
> -	if (!is_valid_irq(cmos->irq))
> +	if (cmos_no_alarm(cmos))
>  		return -EIO;
>  
>  	ret = cmos_validate_alarm(dev, t);
> @@ -1096,7 +1101,7 @@ cmos_do_probe(struct device *dev, struct
>  			dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
>  			goto cleanup1;
>  		}
> -	} else {
> +	} else if (!cmos_use_acpi_alarm()) {
>  		clear_bit(RTC_FEATURE_ALARM, cmos_rtc.rtc->features);
>  	}
>  
> @@ -1121,7 +1126,7 @@ cmos_do_probe(struct device *dev, struct
>  		acpi_rtc_event_setup(dev);
>  
>  	dev_info(dev, "%s%s, %d bytes nvram%s\n",
> -		 !is_valid_irq(rtc_irq) ? "no alarms" :
> +		 cmos_no_alarm(&cmos_rtc) ? "no alarms" :
>  		 cmos_rtc.mon_alrm ? "alarms up to one year" :
>  		 cmos_rtc.day_alrm ? "alarms up to one month" :
>  		 "alarms up to one day",
> @@ -1147,7 +1152,7 @@ cleanup0:
>  static void cmos_do_shutdown(int rtc_irq)
>  {
>  	spin_lock_irq(&rtc_lock);
> -	if (is_valid_irq(rtc_irq))
> +	if (!cmos_no_alarm(&cmos_rtc))
>  		cmos_irq_disable(&cmos_rtc, RTC_IRQMASK);
>  	spin_unlock_irq(&rtc_lock);
>  }
> 
> 
> 

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply

* Re: [PATCH v1 1/2] rtc: cmos: Enable ACPI alarm if advertised in ACPI FADT
From: Alexandre Belloni @ 2026-03-20 18:00 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: linux-rtc, LKML, Linux ACPI, Mario Limonciello
In-Reply-To: <9618535.CDJkKcVGEf@rafael.j.wysocki>

On 14/03/2026 13:11:20+0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> If the ACPI_FADT_FIXED_RTC flag is unset, the platform is declaring that
> it supports the ACPI RTC fixed event which should be used instead of a
> dedicated CMOS RTC IRQ.  However, the driver only enables it when
> is_hpet_enabled() returns true, which is questionable because there is
> no clear connection between enabled HPET and signaling wakeup via the
> ACPI RTC fixed event (for instance, the latter can be expected to work
> on systems that don't include a functional HPET).
> 
> Moreover, since use_hpet_alarm() returns false if use_acpi_alarm is set,
> the ACPI RTC fixed event is effectively used instead of the HPET alarm
> if the latter is functional, but there is no particular reason why it
> could not be used otherwise.
> 
> Accordingly, on x86 systems with ACPI, set use_acpi_alarm if
> ACPI_FADT_FIXED_RTC is unset without looking at whether or not HPET is
> enabled.
> 
> Also, do the ACPI FADT check in use_acpi_alarm_quirks() before the DMI
> BIOS year checks which are more expensive and it's better to skip them
> if ACPI_FADT_FIXED_RTC is set.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
>  drivers/rtc/rtc-cmos.c |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -817,6 +817,9 @@ static void rtc_wake_off(struct device *
>  #ifdef CONFIG_X86
>  static void use_acpi_alarm_quirks(void)
>  {
> +	if (acpi_gbl_FADT.flags & ACPI_FADT_FIXED_RTC)
> +		return;
> +
>  	switch (boot_cpu_data.x86_vendor) {
>  	case X86_VENDOR_INTEL:
>  		if (dmi_get_bios_year() < 2015)
> @@ -830,8 +833,6 @@ static void use_acpi_alarm_quirks(void)
>  	default:
>  		return;
>  	}
> -	if (!is_hpet_enabled())
> -		return;
>  
>  	use_acpi_alarm = true;
>  }
> 
> 
> 

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply

* Re: [PATCH v1 0/2] rtc: cmos: Do not require IRQ if ACPI alarm is used
From: Rafael J. Wysocki @ 2026-03-20 15:56 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: linux-rtc, LKML, Linux ACPI, Alexandre Belloni, Mario Limonciello
In-Reply-To: <3964452.kQq0lBPeGt@rafael.j.wysocki>

On Sat, Mar 14, 2026 at 1:13 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> Hi All,
>
> This series of patches allows the CMOS RTC alarm to be used on x86
> systems that don't include a functional HPET and may not configure
> an IRQ for the CMOS RTC, but have a functional ACPI RTC fixed event.
>
> The first patch allows the ACPI RTC fixed event to be used on systems
> without functional HPET because there is no fundamental dependency
> between HPET and the ACPI RTC fixed event being hooked up to the CMOS
> RTC.
>
> The second patch changes the driver to stop requiring an IRQ to be
> configured for the alarm functionality if the ACPI RTC fixed event
> is use for signaling events because it require a separate IRQ to
> be requested (the ACPI SCI is used for event signaling in that case).

If anyone has any objections or concerns regarding these patches,
please let me know.

In the absence of any, I'll queue them up for 7.1 on top of the
previous CMOS RTC driver changes.

Thanks!

^ permalink raw reply

* Re: (subset) [PATCH v4 4/5] dt-bindings: mfd: max77620: document optional RTC address for MAX77663
From: Lee Jones @ 2026-03-19 18:26 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Liam Girdwood,
	Mark Brown, Rafael J. Wysocki, Daniel Lezcano, Zhang Rui,
	Lukasz Luba, Chanwoo Choi, Alexandre Belloni, Svyatoslav Ryhel
  Cc: linux-gpio, devicetree, linux-kernel, linux-pm, linux-rtc
In-Reply-To: <20260312085258.11431-5-clamor95@gmail.com>

On Thu, 12 Mar 2026 10:52:57 +0200, Svyatoslav Ryhel wrote:
> Document an optional second I2C address for the MAX77663 PMIC's RTC
> device, to be used if the MAX77663 RTC is located at a non-default I2C
> address.
> 
> 

Applied, thanks!

[4/5] dt-bindings: mfd: max77620: document optional RTC address for MAX77663
      commit: a526075f56fb8f2fd96f791654ff1557e6680bde

--
Lee Jones [李琼斯]


^ permalink raw reply

* Re: (subset) [PATCH v4 3/5] dt-bindings: mfd: max77620: convert to DT schema
From: Lee Jones @ 2026-03-19 18:23 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Liam Girdwood,
	Mark Brown, Rafael J. Wysocki, Daniel Lezcano, Zhang Rui,
	Lukasz Luba, Chanwoo Choi, Alexandre Belloni, Svyatoslav Ryhel
  Cc: linux-gpio, devicetree, linux-kernel, linux-pm, linux-rtc
In-Reply-To: <20260312085258.11431-4-clamor95@gmail.com>

On Thu, 12 Mar 2026 10:52:56 +0200, Svyatoslav Ryhel wrote:
> Convert max77620 devicetree bindings from TXT to YAML format. This patch
> does not change any functionality; the bindings remain the same. The
> thermal bindings are incorporated into the binding. GPIO controller
> function in MAX77620 has no dedicated node and is folded into the parent
> node itself.
> 
> 
> [...]

Applied, thanks!

[3/5] dt-bindings: mfd: max77620: convert to DT schema
      commit: 77c8585abf5d7409990b71ba333e839bf4597cb5

--
Lee Jones [李琼斯]


^ permalink raw reply

* Re: [PATCH 05/15] dt-bindings: rtc: ingenic,rtc: Use generic power-controller schema
From: Paul Cercueil @ 2026-03-19 11:12 UTC (permalink / raw)
  To: Peng Fan (OSS), Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rafael J. Wysocki, Ulf Hansson, Florian Fainelli,
	Broadcom internal kernel review list, Ray Jui, Scott Branden,
	Saenz Julienne, Lee Jones, Liam Girdwood, Mark Brown,
	Shree Ramamoorthy, Jerome Neanne, Alexandre Belloni,
	Dmitry Osipenko, Heiko Stuebner, Joseph Chen, Chris Zhong,
	Zhang Qing, Sebastian Reichel, Andreas Kemnade,
	Jonathan Neuschäfer, Lubomir Rintel, Julien Panis,
	Matti Vaittinen, Alexander Kurz, Krzysztof Kozlowski,
	André Draszik
  Cc: devicetree, linux-kernel, linux-rpi-kernel, linux-arm-kernel,
	linux-rtc, linux-rockchip, linux-samsung-soc, Peng Fan
In-Reply-To: <20260316-power-controller-v1-5-92c80e5e1744@nxp.com>

Hi,

Le lundi 16 mars 2026 à 22:47 +0800, Peng Fan (OSS) a écrit :
> From: Peng Fan <peng.fan@nxp.com>
> 
> Convert the binding to use the generic power-controller schema
> instead by
> referencing power-controller.yaml and removing the local
> `system-power-controller` property definition.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Acked-by: Paul Cercueil <paul@crapouillou.net>

Cheers,
-Paul

> ---
>  Documentation/devicetree/bindings/rtc/ingenic,rtc.yaml | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/rtc/ingenic,rtc.yaml
> b/Documentation/devicetree/bindings/rtc/ingenic,rtc.yaml
> index
> de9879bdb3175a7e0f24304b5a084a8faa233c46..415566d8dba564ebad976689596
> bbcd699ed6021 100644
> --- a/Documentation/devicetree/bindings/rtc/ingenic,rtc.yaml
> +++ b/Documentation/devicetree/bindings/rtc/ingenic,rtc.yaml
> @@ -11,6 +11,7 @@ maintainers:
>  
>  allOf:
>    - $ref: rtc.yaml#
> +  - $ref: /schemas/power/power-controller.yaml#
>    - if:
>        not:
>          properties:
> @@ -53,12 +54,6 @@ properties:
>    "#clock-cells":
>      const: 0
>  
> -  system-power-controller:
> -    description: |
> -      Indicates that the RTC is responsible for powering OFF
> -      the system.
> -    type: boolean
> -
>    ingenic,reset-pin-assert-time-ms:
>      minimum: 0
>      maximum: 125

^ permalink raw reply

* 社長のNG行動
From: 神田/ナレッジリンク @ 2026-03-18  4:30 UTC (permalink / raw)
  To: linux-rtc

 お世話になります。ナレッジリンクセミナー事務局です。
 
 
 「社員のモチベーションを上げようと声をかける」
 「部下の相談に乗り、一緒に悩んであげる」
 「現場のトラブルに、自ら先頭に立って対応する」
 
 もし社長がこれらを率先しているようであれば、
 残念ながら、その組織の成長はそこで止まります。
 
 社長のその“優しさ”が、社員の甘えを生み、責任感を奪い、
 「指示待ち人間」を量産する装置になっているからです。
 
 
 4,800社の経営者が衝撃を受けた、
 良かれと思ってやってしまう「社長のNG行動」の正体。
 
 組織を劇的に変えるための、
 オンラインセミナーを開催いたします。
 
 1つでも心当たりがあれば、一度ご視聴ください。 
 
 >>視聴予約はこちら
 https://knowledge-corp.jp/shikigaku5/
 
----------------------------------------------
 
 テーマ : それ、危険です 『社長のNG行動』
      〜 その行動が、組織崩壊を招く 〜
 

 日 程 : 3月19日(木)13:00〜15:00 残り14枠
       4月14日(火)13:00&#12316;15:00
       4月21日(火)13:00&#12316;15:00
     ※どちらの日程も内容は同じ
 会 場 :Zoom開催
 定 員 :先着100名(費用は不要)
----------------------------------------------
 ※経営層の方限定です
 
 
 なぜ、社員は「言われたこと」しかやらないのか。
 なぜ、次世代のリーダー候補が育たないのか。
 
 それは、能力の問題ではなく、
 
 良かれと思って続けている「社長の配慮」こそが、
 組織成長を止める、最大のボトルネックかもしれません。
 
 本セミナーでは、4,800社以上が導入した
 独自の組織論「識学」に基づき、社長の「NG行動」と
 真の経営者へ脱皮するためのマインドセットを伝授します。
 
 
 【セミナー内容(一部抜粋)】
  ○ NG行動3選
  ○ なぜ優秀なNo.2や部長が育たないのか
  ○ マネジメントスタイルの変革について
  ○ 導入企業の事例
 
 「管理職が育ったら任せる」ではなく「任せるから育つ」
 という思考の逆転を提言。
 
 現場から「冷たくなった」と思われることを恐れず、
 機能的な階層構造(仕組み)を作ることで

 結果として社員全員を守り、
 利益を最大化させる道筋を明示します。

 「優しさ」で人を動かすのではなく、
 「正しさ」で組織を動かす。

 音声やお顔が表に出ることはございませんので
 お気軽にご視聴ください。
 
 >>視聴予約はこちら
 https://knowledge-corp.jp/shikigaku5/
 
 
-----------------------
 一般社団法人 ナレッジリンク
 東京都千代田区神田小川町1-8-3
 電話:03-5256-7638

 セミナーのご案内が不要な方は大変残念ではございますが、
 下記URLより手続き下さいませ。
 
 メール配信のワンクリック解除はこちら
 https://fc-knowledgelink-corp.jp/mail/
 

^ permalink raw reply

* [PATCH] rtc: add data_race() in rtc_dev_poll()
From: Mauricio Faria de Oliveira @ 2026-03-17 23:22 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: linux-rtc, linux-kernel, kernel-dev, syzbot+2d4127acca35ed7b31ad,
	Mauricio Faria de Oliveira

The unlocked read of rtc->irq_data in rtc_dev_poll() can race with
the write in rtc_handle_legacy_irq() and also, theoretically, with
the write in rtc_dev_read().

These races should be safe (see inline comment), thus annotate the
read with data_race() for KCSAN.

Reported-by: syzbot+2d4127acca35ed7b31ad@syzkaller.appspotmail.com
Closes: https://syzbot.org/bug?extid=2d4127acca35ed7b31ad
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
---
Compile-tested on next-20260317.
---
 drivers/rtc/dev.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c
index baf1a8ca8b2b1ea806c56b06926a03975b3636a8..8ba7c25d2565ef4139594976881aaee18e16a048 100644
--- a/drivers/rtc/dev.c
+++ b/drivers/rtc/dev.c
@@ -195,7 +195,16 @@ static __poll_t rtc_dev_poll(struct file *file, poll_table *wait)
 
 	poll_wait(file, &rtc->irq_queue, wait);
 
-	data = rtc->irq_data;
+	/*
+	 * This read can race with the write in rtc_handle_legacy_irq().
+	 *
+	 * - If this check misses a zero to non-zero transition the next check
+	 *   will pick it up (rtc_handle_legacy_irq() wakes up rtc->irq_queue).
+	 * - Non-zero to non-zero transition misses do not change return value.
+	 * - And a non-zero to zero transition is unlikely to be missed, since
+	 *   it occurs on rtc_dev_read(), during which polling is not expected.
+	 */
+	data = data_race(rtc->irq_data);
 
 	return (data != 0) ? (EPOLLIN | EPOLLRDNORM) : 0;
 }

---
base-commit: 8e5a478b6d6a5bb0a3d52147862b15e4d826af19
change-id: 20260317-irq_data-e0fcd79d533c

Best regards,
-- 
Mauricio Faria de Oliveira <mfo@igalia.com>


^ permalink raw reply related

* Re: [PATCH 00/15] Convert power-controller to dt-schema and update various yaml file to referencing it
From: Peng Fan @ 2026-03-17  5:45 UTC (permalink / raw)
  To: Andreas Kemnade
  Cc: Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rafael J. Wysocki, Ulf Hansson, Florian Fainelli,
	Broadcom internal kernel review list, Ray Jui, Scott Branden,
	Saenz Julienne, Lee Jones, Liam Girdwood, Shree Ramamoorthy,
	Jerome Neanne, Paul Cercueil, Alexandre Belloni, Dmitry Osipenko,
	Heiko Stuebner, Joseph Chen, Chris Zhong, Zhang Qing,
	Sebastian Reichel, Jonathan Neuschäfer, Lubomir Rintel,
	Julien Panis, Matti Vaittinen, Alexander Kurz,
	Krzysztof Kozlowski, André Draszik, devicetree, linux-kernel,
	linux-rpi-kernel, linux-arm-kernel, linux-rtc, linux-rockchip,
	linux-samsung-soc, Peng Fan
In-Reply-To: <20260316170034.31bee485@kemnade.info>

On Mon, Mar 16, 2026 at 05:00:34PM +0100, Andreas Kemnade wrote:
>On Mon, 16 Mar 2026 14:55:21 +0000
>Mark Brown <broonie@kernel.org> wrote:
>
>> On Mon, Mar 16, 2026 at 10:47:35PM +0800, Peng Fan (OSS) wrote:
>> > Convert power-controller.txt to dt-schema
>> > Update various dt-bindings to use generic power-controller.yaml without
>> > defining local property.  
>> 
>> Are there any dependencies here?  It doesn't look like it.  In general
>> please don't send a single series covering multiple subsystems unless
>> there are actual dependencies, it just makes it harder to figure out how
>> to handle things.  Send a separate series to each subsystem instead.
>
>It seems that everything depends on Patch 1.

Krzysztof had similar comments. I reply here.

Yes, depends on patch 1, sorry for not being clear in cover-letter. I just
created a PR to dt-schema in github.
https://github.com/devicetree-org/dt-schema/pull/187

After that PR is merged, I will separate this patchset for each subsystem.

Thanks,
Peng

>
>Regards,
>Andreas
>

^ permalink raw reply

* Re: [PATCH 01/15] dt-bindings: power: power-controller: Convert to yaml format
From: Peng Fan @ 2026-03-17  5:40 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
	Ulf Hansson, Florian Fainelli, Andreas Kemnade, devicetree,
	linux-kernel, linux-rpi-kernel, linux-arm-kernel, linux-rtc,
	linux-rockchip, linux-samsung-soc, Peng Fan
In-Reply-To: <e1e91ada-4d21-4384-983a-676a3aa09bd7@kernel.org>

Hi Krzysztof,

On Mon, Mar 16, 2026 at 03:49:46PM +0100, Krzysztof Kozlowski wrote:
>On 16/03/2026 15:47, Peng Fan (OSS) wrote:
>> From: Peng Fan <peng.fan@nxp.com>
>> 
>> Convert power-controller.txt to yaml format. Drop the example because
>> there is already one in regulator/active-semi,act8846.yaml.
>> 
>> +properties:
>> +  system-power-controller:
>> +    type: boolean
>> +    description:
>> +      Indicates that this device can be used to control the system power.
>
>Just like it was in case of other core properties, I think this should
>go to dtschema.

Thanks for giving a look. I just submited a PR
https://github.com/devicetree-org/dt-schema/pull/187

Thanks,
Peng

>
>Best regards,
>Krzysztof
>

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox