dt-bindings: platform: Add Surface System Aggregator Module

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>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240814-topic-sam-v3-2-a84588aad233@quicinc.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Konrad Dybcio 2024-08-14 12:27:26 +02:00 committed by Hans de Goede
parent ac5ebdad20
commit ceccd196e1

View File

@ -0,0 +1,47 @@
# 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: true
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>;
};
};