diff mbox series

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

Message ID 20240810-topic-sam-v2-2-8a8eb368a4f0@quicinc.com
State Superseded
Headers show
Series OF support for Surface System Aggregator Module | expand

Commit Message

Konrad Dybcio Aug. 10, 2024, 1:28 a.m. UTC
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(+)

Comments

Krzysztof Kozlowski Aug. 11, 2024, 2:28 p.m. UTC | #1
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
Konrad Dybcio Aug. 13, 2024, 2:27 p.m. UTC | #2
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
Krzysztof Kozlowski Aug. 14, 2024, 6:16 a.m. UTC | #3
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
Konrad Dybcio Aug. 14, 2024, 10:25 a.m. UTC | #4
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
diff mbox series

Patch

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>;
+        };
+    };