From: Markus Probst <markus.probst@posteo.de>
Add the Synology Microp devicetree bindings. Those devices are
microcontrollers found on Synology NAS devices. They are connected to a
serial port on the host device.
Those devices are used to control certain LEDs, fan speeds, a beeper, to
handle buttons, fan failures and to properly shutdown and reboot the
device.
The device has a different feature set depending on the Synology NAS
model, like having different number of fans, buttons and leds. Depending
on the architecture of the model, they also need a different system
shutdown behaviour.
Signed-off-by: Markus Probst <markus.probst@posteo.de>
---
.../synology,ds923p-microp.yaml | 92 ++++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 93 insertions(+)
diff --git a/Documentation/devicetree/bindings/embedded-controller/synology,ds923p-microp.yaml b/Documentation/devicetree/bindings/embedded-controller/synology,ds923p-microp.yaml
new file mode 100644
index 000000000000..0a8fb1d8f314
--- /dev/null
+++ b/Documentation/devicetree/bindings/embedded-controller/synology,ds923p-microp.yaml
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/embedded-controller/synology,ds923p-microp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synology NAS on-board Microcontroller
+
+maintainers:
+ - Markus Probst <markus.probst@posteo.de>
+
+description: |
+ Synology Microp is a microcontroller found in Synology NAS devices.
+ It is connected to a serial port on the host device.
+
+ It is necessary to properly shutdown and reboot the NAS device and
+ provides additional functionality such as led control, fan speed control,
+ a beeper and buttons on the NAS device.
+
+properties:
+ compatible:
+ enum:
+ - synology,ds923p-microp
+ - synology,ds918p-microp
+ - synology,ds214play-microp
+ - synology,ds225p-microp
+ - synology,ds425p-microp
+ - synology,ds710p-microp
+ - synology,ds1010p-microp
+ - synology,ds723p-microp
+ - synology,ds1522p-microp
+ - synology,rs422p-microp
+ - synology,ds725p-microp
+ - synology,ds118-microp
+ - synology,ds124-microp
+ - synology,ds223-microp
+ - synology,ds223j-microp
+ - synology,ds1823xsp-microp
+ - synology,rs822p-microp
+ - synology,rs1221p-microp
+ - synology,rs1221rpp-microp
+ - synology,ds925p-microp
+ - synology,ds1525p-microp
+ - synology,ds1825p-microp
+
+ fan-failure-gpios:
+ description: GPIOs needed to determine which fans stopped working on a fan failure event.
+ minItems: 2
+ maxItems: 3
+
+required:
+ - compatible
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - synology,ds214play-microp
+ - synology,ds225p-microp
+ - synology,ds710p-microp
+ - synology,ds723p-microp
+ - synology,ds725p-microp
+ - synology,ds118-microp
+ - synology,ds124-microp
+ - synology,ds223-microp
+ - synology,ds223j-microp
+ - synology,ds1823xsp-microp
+ - synology,rs822p-microp
+ - synology,rs1221p-microp
+ - synology,rs1221rpp-microp
+ - synology,ds1825p-microp
+ then:
+ properties:
+ fan-failure-gpios: false
+ else:
+ required:
+ - fan-failure-gpios
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/leds/common.h>
+ #include <dt-bindings/gpio/gpio.h>
+
+ embedded-controller {
+ compatible = "synology,ds923p-microp";
+
+ fan-failure-gpios = <&gpio 68 GPIO_ACTIVE_HIGH>, <&gpio 69 GPIO_ACTIVE_HIGH>;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 78c99d831431..72075c9a2016 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25557,6 +25557,7 @@ F: include/uapi/linux/sync_file.h
SYNOLOGY MICROP DRIVER
M: Markus Probst <markus.probst@posteo.de>
S: Maintained
+F: Documentation/devicetree/bindings/embedded-controller/synology,ds923p-microp.yaml
F: drivers/platform/synology_microp/
SYNOPSYS ARC ARCHITECTURE
--
2.52.0
On Sat, Apr 11, 2026 at 05:27:35PM +0200, Markus Probst wrote: > +properties: > + compatible: > + enum: > + - synology,ds923p-microp > + - synology,ds918p-microp > + - synology,ds214play-microp > + - synology,ds225p-microp > + - synology,ds425p-microp > + - synology,ds710p-microp > + - synology,ds1010p-microp > + - synology,ds723p-microp > + - synology,ds1522p-microp > + - synology,rs422p-microp > + - synology,ds725p-microp > + - synology,ds118-microp > + - synology,ds124-microp > + - synology,ds223-microp > + - synology,ds223j-microp > + - synology,ds1823xsp-microp > + - synology,rs822p-microp > + - synology,rs1221p-microp > + - synology,rs1221rpp-microp > + - synology,ds925p-microp > + - synology,ds1525p-microp > + - synology,ds1825p-microp Previous comment is not resolved. For example you stated that ds723p is compatible with ds725p, so this should be expressed. ds918p and ds415p as well. ds925p and several others you EXPLICITLY wrote they are compatible: "ds925p, ds1525p, ds1825p, ds1823xsp: - supports fan rpm report via an adt7475 chip and therefore does not have gpios for fan failure - no system current sensor" Probably many more cases, I did not verify all of them. If there is going to be new version, please organize the patch documenting the compatible (DT bindings) before the patch using that compatible. See also: https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46 > + > + fan-failure-gpios: > + description: GPIOs needed to determine which fans stopped working on a fan failure event. > + minItems: 2 > + maxItems: 3 > + > +required: > + - compatible Best regards, Krzysztof
On Sun, 2026-04-12 at 10:26 +0200, Krzysztof Kozlowski wrote:
> On Sat, Apr 11, 2026 at 05:27:35PM +0200, Markus Probst wrote:
> > +properties:
> > + compatible:
> > + enum:
> > + - synology,ds923p-microp
> > + - synology,ds918p-microp
> > + - synology,ds214play-microp
> > + - synology,ds225p-microp
> > + - synology,ds425p-microp
> > + - synology,ds710p-microp
> > + - synology,ds1010p-microp
> > + - synology,ds723p-microp
> > + - synology,ds1522p-microp
> > + - synology,rs422p-microp
> > + - synology,ds725p-microp
> > + - synology,ds118-microp
> > + - synology,ds124-microp
> > + - synology,ds223-microp
> > + - synology,ds223j-microp
> > + - synology,ds1823xsp-microp
> > + - synology,rs822p-microp
> > + - synology,rs1221p-microp
> > + - synology,rs1221rpp-microp
> > + - synology,ds925p-microp
> > + - synology,ds1525p-microp
> > + - synology,ds1825p-microp
>
> Previous comment is not resolved. For example you stated that ds723p is
> compatible with ds725p, so this should be expressed.
Using this expression?
properties:
compatible:
oneOf:
- enum:
- synology,ds923p-microp
- synology,ds1522p-microp
- enum:
- synology,ds918p-microp
- synology,ds415p-microp
- const: synology,ds214play-microp
...
?
If so shall there each be a description?
Also ds723p and ds725p are not compatible. ds723p has a system current
sensor, ds725p does not. This will be relevant when implementing the
hwmon part of the driver.
>
> ds918p and ds415p as well. ds925p and several others you EXPLICITLY
> wrote they are compatible:
>
> "ds925p, ds1525p, ds1825p, ds1823xsp:
> - supports fan rpm report via an adt7475 chip and therefore does not
> have gpios for fan failure
> - no system current sensor"
Yes.
>
> Probably many more cases, I did not verify all of them.
>
> If there is going to be new version, please organize the patch
> documenting the compatible (DT bindings) before the patch using that
> compatible.
> See also: https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46
Ok.
Thanks
- Markus Probst
>
> > +
> > + fan-failure-gpios:
> > + description: GPIOs needed to determine which fans stopped working on a fan failure event.
> > + minItems: 2
> > + maxItems: 3
> > +
> > +required:
> > + - compatible
>
> Best regards,
> Krzysztof
On 12/04/2026 15:21, Markus Probst wrote: > On Sun, 2026-04-12 at 10:26 +0200, Krzysztof Kozlowski wrote: >> On Sat, Apr 11, 2026 at 05:27:35PM +0200, Markus Probst wrote: >>> +properties: >>> + compatible: >>> + enum: >>> + - synology,ds923p-microp >>> + - synology,ds918p-microp >>> + - synology,ds214play-microp >>> + - synology,ds225p-microp >>> + - synology,ds425p-microp >>> + - synology,ds710p-microp >>> + - synology,ds1010p-microp >>> + - synology,ds723p-microp >>> + - synology,ds1522p-microp >>> + - synology,rs422p-microp >>> + - synology,ds725p-microp >>> + - synology,ds118-microp >>> + - synology,ds124-microp >>> + - synology,ds223-microp >>> + - synology,ds223j-microp >>> + - synology,ds1823xsp-microp >>> + - synology,rs822p-microp >>> + - synology,rs1221p-microp >>> + - synology,rs1221rpp-microp >>> + - synology,ds925p-microp >>> + - synology,ds1525p-microp >>> + - synology,ds1825p-microp >> >> Previous comment is not resolved. For example you stated that ds723p is >> compatible with ds725p, so this should be expressed. > Using this expression? > > properties: > compatible: > oneOf: > - enum: > - synology,ds923p-microp > - synology,ds1522p-microp > - enum: > - synology,ds918p-microp > - synology,ds415p-microp > - const: synology,ds214play-microp > ... > ? > If so shall there each be a description? No, you changed nothing. You need fallbacks, please read example-schema or DTS101 slides. Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.