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
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
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
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
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
© 2016 - 2026 Red Hat, Inc.