Message ID | 20240810-topic-sam-v2-2-8a8eb368a4f0@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | OF support for Surface System Aggregator Module | expand |
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
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>; + }; + };