Re: [PATCH v8 1/2] dt-bindings: embedded-controller: Add synology microp devices
From: Krzysztof Kozlowski
Date: Tue Apr 21 2026 - 11:32:27 EST
On 21/04/2026 16:50, Markus Probst wrote:
> On Tue, 2026-04-21 at 09:07 +0200, Krzysztof Kozlowski wrote:
>> On Mon, Apr 20, 2026 at 02:24:20PM +0000, Markus Probst wrote:
>>> 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@xxxxxxxxx>
>>> ---
>>> .../synology,ds1825p-microp.yaml | 108 +++++++++++++++++++++
>>> 1 file changed, 108 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/embedded-controller/synology,ds1825p-microp.yaml b/Documentation/devicetree/bindings/embedded-controller/synology,ds1825p-microp.yaml
>>> new file mode 100644
>>> index 000000000000..76c671a42fbf
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/embedded-controller/synology,ds1825p-microp.yaml
>>> @@ -0,0 +1,108 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/embedded-controller/synology,ds1825p-microp.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Synology NAS on-board Microcontroller
>>> +
>>> +maintainers:
>>> + - Markus Probst <markus.probst@xxxxxxxxx>
>>> +
>>> +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:
>>> + oneOf:
>>> + - const: synology,ds223-microp
>>> + - const: synology,ds411p-microp
>>> + - const: synology,ds1010p-microp
>>> + - const: synology,ds710p-microp
>>> + - const: synology,ds723p-microp
>>> + - const: synology,ds225p-microp
>>> + - const: synology,rs422p-microp
>>
>> That's one enum.
>>
>>> + - maxItems: 2
>>> + minItems: 2
>>
>> There is no such syntax foro compatibles. Please use any existing file
>> as example or look at example-schema.
> In the example schema, another device is used as fallback.
True.
> This is what
> I did here.
Not true. You have enum and min/maxItems. There is no such syntax for
compatibles. I repeat.
Instead of just blindly disagreeing and saying "I did that", point me to
example-schema having compatibles with min/maxItems.
>
>
> Other sources suggest, I should add fallbacks that are less specific
That's not really discussed here. It all looks like some random schema
and considering amount of LLM flying on the lists I have now doubts.
You need specific compatibles.
...
>
> If thisisn't fine either, replying to my previous message would
> probably the most efficient way to move forward [1].
>
>>
>>> + items:
>>> + enum:
>>
>> No, why the list is randomly ordered.
Look here
>>
>>> + - synology,ds923p-microp
>>> + - synology,ds1522p-microp
>>
>> And fallback, whichever is that, is not documented alone.
>>
>>> + - minItems: 4
>>> + maxItems: 4
>
> Those are devices with the exactly same known feature set.
> i. e. ds1522p can act as a fallback for ds923p, and ds923p could act as
> a fallback for ds1522p.
You are not responding to actual comments. Lets focus ONLY on above
list. ONLY. Point me, where did you document the fallback to be used
alone? First of course, define what is the fallback.
None of this matches example schema or any other bindings, none of this
produces correct constraints for correct DTS.
You need a defined enum of fallbacks and several lists for specific
fallback+front, like many other bindings in kernel.
Best regards,
Krzysztof