[PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module

Konrad Dybcio posted 3 patches 1 year, 6 months ago
There is a newer version of this series
[PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module
Posted by Konrad Dybcio 1 year, 6 months ago
From: Konrad Dybcio <quic_kdybcio@quicinc.com>

Add bindings for the Surface System Aggregator Module (SAM/SSAM), the
Microsoft Surface-standard Embedded Controller, used on both x86- and
Qualcomm-based devices.

It provides a plethora of functions, depending on what's wired up to
it. That includes but is not limited to: fan control, keyboard/touchpad
support, thermal sensors, power control, special buttons, tablet mode.

Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com>
---
 .../bindings/platform/microsoft,surface-sam.yaml   | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
new file mode 100644
index 000000000000..f613738aa31d
--- /dev/null
+++ b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/platform/microsoft,surface-sam.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Surface System Aggregator Module (SAM, SSAM)
+
+maintainers:
+  - Konrad Dybcio <konradybcio@kernel.org>
+
+description: |
+  Surface devices use a standardized embedded controller to let the
+  operating system interface with various hardware functions. The
+  specific functionalities are modeled as subdevices and matched on
+  five levels: domain, category, target, instance and function.
+
+properties:
+  compatible:
+    const: microsoft,surface-sam
+
+  interrupts:
+    maxItems: 1
+
+  current-speed:
+    description: The baudrate in bits per second of the device as it comes
+      online, current active speed.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    uart {
+        embedded-controller {
+            compatible = "microsoft,surface-sam";
+
+            interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
+
+            pinctrl-0 = <&ssam_state>;
+            pinctrl-names = "default";
+
+            current-speed = <4000000>;
+        };
+    };

-- 
2.46.0
Re: [PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module
Posted by Krzysztof Kozlowski 1 year, 6 months ago
On 10/08/2024 03:28, Konrad Dybcio wrote:
> From: Konrad Dybcio <quic_kdybcio@quicinc.com>
> 
> Add bindings for the Surface System Aggregator Module (SAM/SSAM), the
> Microsoft Surface-standard Embedded Controller, used on both x86- and
> Qualcomm-based devices.
> 
> It provides a plethora of functions, depending on what's wired up to
> it. That includes but is not limited to: fan control, keyboard/touchpad
> support, thermal sensors, power control, special buttons, tablet mode.
> 
> Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com>
> ---
>  .../bindings/platform/microsoft,surface-sam.yaml   | 50 ++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
> new file mode 100644
> index 000000000000..f613738aa31d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
> @@ -0,0 +1,50 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/platform/microsoft,surface-sam.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Surface System Aggregator Module (SAM, SSAM)
> +
> +maintainers:
> +  - Konrad Dybcio <konradybcio@kernel.org>
> +
> +description: |

No need for |

> +  Surface devices use a standardized embedded controller to let the
> +  operating system interface with various hardware functions. The
> +  specific functionalities are modeled as subdevices and matched on
> +  five levels: domain, category, target, instance and function.
> +
> +properties:
> +  compatible:
> +    const: microsoft,surface-sam
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  current-speed:
> +    description: The baudrate in bits per second of the device as it comes
> +      online, current active speed.
> +    $ref: /schemas/types.yaml#/definitions/uint32

This should be just "current-speed: true", because the type will be
brought by serial schema. We should however have some schema with
peripheral properties for serial devices. I'll come with something.



Best regards,
Krzysztof
Re: [PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module
Posted by Konrad Dybcio 1 year, 5 months ago
On 11.08.2024 4:28 PM, Krzysztof Kozlowski wrote:
> On 10/08/2024 03:28, Konrad Dybcio wrote:
>> From: Konrad Dybcio <quic_kdybcio@quicinc.com>
>>
>> Add bindings for the Surface System Aggregator Module (SAM/SSAM), the
>> Microsoft Surface-standard Embedded Controller, used on both x86- and
>> Qualcomm-based devices.
>>
>> It provides a plethora of functions, depending on what's wired up to
>> it. That includes but is not limited to: fan control, keyboard/touchpad
>> support, thermal sensors, power control, special buttons, tablet mode.
>>
>> Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com>
>> ---
>>  .../bindings/platform/microsoft,surface-sam.yaml   | 50 ++++++++++++++++++++++
>>  1 file changed, 50 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
>> new file mode 100644
>> index 000000000000..f613738aa31d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
>> @@ -0,0 +1,50 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/platform/microsoft,surface-sam.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Surface System Aggregator Module (SAM, SSAM)
>> +
>> +maintainers:
>> +  - Konrad Dybcio <konradybcio@kernel.org>
>> +
>> +description: |
> 
> No need for |

Apparently it's necessary because I have a :
> 
>> +  Surface devices use a standardized embedded controller to let the
>> +  operating system interface with various hardware functions. The
>> +  specific functionalities are modeled as subdevices and matched on
>> +  five levels: domain, category, target, instance and function.

                 ^ here

Should I e.g. s/:/-/, or keep the |?

>> +
>> +properties:
>> +  compatible:
>> +    const: microsoft,surface-sam
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  current-speed:
>> +    description: The baudrate in bits per second of the device as it comes
>> +      online, current active speed.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
> 
> This should be just "current-speed: true", because the type will be
> brought by serial schema. We should however have some schema with
> peripheral properties for serial devices. I'll come with something.

I suppose I should just include:

https://lore.kernel.org/linux-serial/20240811-dt-bindings-serial-peripheral-props-v1-0-1dba258b7492@linaro.org/

Konrad
Re: [PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module
Posted by Krzysztof Kozlowski 1 year, 5 months ago
On 13/08/2024 16:27, Konrad Dybcio wrote:
> On 11.08.2024 4:28 PM, Krzysztof Kozlowski wrote:
>> On 10/08/2024 03:28, Konrad Dybcio wrote:
>>> From: Konrad Dybcio <quic_kdybcio@quicinc.com>
>>>
>>> Add bindings for the Surface System Aggregator Module (SAM/SSAM), the
>>> Microsoft Surface-standard Embedded Controller, used on both x86- and
>>> Qualcomm-based devices.
>>>
>>> It provides a plethora of functions, depending on what's wired up to
>>> it. That includes but is not limited to: fan control, keyboard/touchpad
>>> support, thermal sensors, power control, special buttons, tablet mode.
>>>
>>> Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com>
>>> ---
>>>  .../bindings/platform/microsoft,surface-sam.yaml   | 50 ++++++++++++++++++++++
>>>  1 file changed, 50 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
>>> new file mode 100644
>>> index 000000000000..f613738aa31d
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml
>>> @@ -0,0 +1,50 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/platform/microsoft,surface-sam.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Surface System Aggregator Module (SAM, SSAM)
>>> +
>>> +maintainers:
>>> +  - Konrad Dybcio <konradybcio@kernel.org>
>>> +
>>> +description: |
>>
>> No need for |
> 
> Apparently it's necessary because I have a :
>>
>>> +  Surface devices use a standardized embedded controller to let the
>>> +  operating system interface with various hardware functions. The
>>> +  specific functionalities are modeled as subdevices and matched on
>>> +  five levels: domain, category, target, instance and function.
> 
>                  ^ here
> 
> Should I e.g. s/:/-/, or keep the |?

Keep |

> 
>>> +
>>> +properties:
>>> +  compatible:
>>> +    const: microsoft,surface-sam
>>> +
>>> +  interrupts:
>>> +    maxItems: 1
>>> +
>>> +  current-speed:
>>> +    description: The baudrate in bits per second of the device as it comes
>>> +      online, current active speed.
>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>
>> This should be just "current-speed: true", because the type will be
>> brought by serial schema. We should however have some schema with
>> peripheral properties for serial devices. I'll come with something.
> 
> I suppose I should just include:
> 
> https://lore.kernel.org/linux-serial/20240811-dt-bindings-serial-peripheral-props-v1-0-1dba258b7492@linaro.org/


You could, but then your patchset will depend on mine, so instead I
propose just "current-speed: true" and later (next release) we will add
$ref to serial-peripheral-props.

Best regards,
Krzysztof
Re: [PATCH v2 2/3] dt-bindings: platform: Add Surface System Aggregator Module
Posted by Konrad Dybcio 1 year, 5 months ago
On 14.08.2024 8:16 AM, Krzysztof Kozlowski wrote:
> On 13/08/2024 16:27, Konrad Dybcio wrote:
>> On 11.08.2024 4:28 PM, Krzysztof Kozlowski wrote:
>>> On 10/08/2024 03:28, Konrad Dybcio wrote:
>>>> From: Konrad Dybcio <quic_kdybcio@quicinc.com>
>>>>
>>>> Add bindings for the Surface System Aggregator Module (SAM/SSAM), the
>>>> Microsoft Surface-standard Embedded Controller, used on both x86- and
>>>> Qualcomm-based devices.
>>>>
>>>> It provides a plethora of functions, depending on what's wired up to
>>>> it. That includes but is not limited to: fan control, keyboard/touchpad
>>>> support, thermal sensors, power control, special buttons, tablet mode.
>>>>
>>>> Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com>
>>>> ---

[...]

>>>> +  current-speed:
>>>> +    description: The baudrate in bits per second of the device as it comes
>>>> +      online, current active speed.
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>>
>>> This should be just "current-speed: true", because the type will be
>>> brought by serial schema. We should however have some schema with
>>> peripheral properties for serial devices. I'll come with something.
>>
>> I suppose I should just include:
>>
>> https://lore.kernel.org/linux-serial/20240811-dt-bindings-serial-peripheral-props-v1-0-1dba258b7492@linaro.org/
> 
> 
> You could, but then your patchset will depend on mine, so instead I
> propose just "current-speed: true" and later (next release) we will add
> $ref to serial-peripheral-props.

You got it!

Konrad