From: Krzysztof Kozlowski Date: Mon, 25 Aug 2025 08:12:02 +0000 (+0200) Subject: dt-bindings: mfd: Move embedded controllers to own directory X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=3d6a17fccc2832d8bc84420a634330941509d6e1;p=linux-2.6-microblaze.git dt-bindings: mfd: Move embedded controllers to own directory Move several embedded controller bindings (like ChromeOS EC, Gateworks System Controller and Kontron sl28cpld Board Management) to new subdirectory "embedded-controller" matching their purpose. An embedded controller (EC) is a discrete component that contains a microcontroller (i.e. a small CPU running a small firmware without operating system) mounted into a larger computer system running a fully fledged operating system that needs to utilize the embedded controller as part of its operation. So far the EC bindings were split between "mfd" and "platform" directory. MFD name comes from Linux, not hardware, and "platform" is a bit too generic. Rename Gateworks GSC and Huawei Gaokun filenames to match compatible, as preferred for bindings. Acked-by: Michael Walle # for sl28cpld Reviewed-by: Linus Walleij Signed-off-by: Krzysztof Kozlowski Acked-by: Mark Brown Reviewed-by: "Rob Herring (Arm)" Link: https://lore.kernel.org/r/20250825081201.9775-2-krzysztof.kozlowski@linaro.org Signed-off-by: Lee Jones --- diff --git a/Documentation/devicetree/bindings/embedded-controller/acer,aspire1-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/acer,aspire1-ec.yaml new file mode 100644 index 000000000000..01ee61768527 --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/acer,aspire1-ec.yaml @@ -0,0 +1,60 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/acer,aspire1-ec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Acer Aspire 1 Embedded Controller + +maintainers: + - Nikita Travkin + +description: + The Acer Aspire 1 laptop uses an embedded controller to control battery + and charging as well as to provide a set of misc features such as the + laptop lid status and HPD events for the USB Type-C DP alt mode. + +properties: + compatible: + const: acer,aspire1-ec + + reg: + const: 0x76 + + interrupts: + maxItems: 1 + + connector: + $ref: /schemas/connector/usb-connector.yaml# + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include + i2c { + #address-cells = <1>; + #size-cells = <0>; + + embedded-controller@76 { + compatible = "acer,aspire1-ec"; + reg = <0x76>; + + interrupts-extended = <&tlmm 30 IRQ_TYPE_LEVEL_LOW>; + + connector { + compatible = "usb-c-connector"; + + port { + ec_dp_in: endpoint { + remote-endpoint = <&mdss_dp_out>; + }; + }; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/embedded-controller/google,cros-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/google,cros-ec.yaml new file mode 100644 index 000000000000..3ab5737c9a8f --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/google,cros-ec.yaml @@ -0,0 +1,326 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/google,cros-ec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ChromeOS Embedded Controller + +maintainers: + - Benson Leung + - Guenter Roeck + +description: + Google's ChromeOS EC is a microcontroller which talks to the AP and + implements various functions such as keyboard and battery charging. + The EC can be connected through various interfaces (I2C, SPI, and others) + and the compatible string specifies which interface is being used. + +properties: + compatible: + oneOf: + - description: + For implementations of the EC connected through I2C. + const: google,cros-ec-i2c + - description: + For implementations of the EC connected through SPI. + const: google,cros-ec-spi + - description: + For implementations of the FPMCU connected through SPI. + items: + - const: google,cros-ec-fp + - const: google,cros-ec-spi + - description: + For implementations of the EC connected through RPMSG. + const: google,cros-ec-rpmsg + - description: + For implementations of the EC connected through UART. + const: google,cros-ec-uart + + controller-data: true + + google,cros-ec-spi-pre-delay: + description: + This property specifies the delay in usecs between the + assertion of the CS and the first clock pulse. + $ref: /schemas/types.yaml#/definitions/uint32 + default: 0 + + google,cros-ec-spi-msg-delay: + description: + This property specifies the delay in usecs between messages. + $ref: /schemas/types.yaml#/definitions/uint32 + default: 0 + + google,has-vbc-nvram: + description: + Some implementations of the EC include a small nvram space used to + store verified boot context data. This boolean flag is used to specify + whether this nvram is present or not. + type: boolean + + mediatek,rpmsg-name: + description: + Must be defined if the cros-ec is a rpmsg device for a Mediatek + ARM Cortex M4 Co-processor. Contains the name of the rpmsg + device. Used to match the subnode to the rpmsg device announced by + the SCP. + $ref: /schemas/types.yaml#/definitions/string + + spi-max-frequency: true + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + reset-gpios: + maxItems: 1 + + boot0-gpios: + maxItems: 1 + description: Assert for bootloader mode. + + vdd-supply: true + + wakeup-source: + description: Button can wake-up the system. + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + '#gpio-cells': + const: 2 + + gpio-controller: true + + typec: + $ref: /schemas/chrome/google,cros-ec-typec.yaml# + + ec-pwm: + $ref: /schemas/pwm/google,cros-ec-pwm.yaml# + deprecated: true + + pwm: + $ref: /schemas/pwm/google,cros-ec-pwm.yaml# + + keyboard-controller: + $ref: /schemas/input/google,cros-ec-keyb.yaml# + + proximity: + $ref: /schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml# + + codecs: + type: object + additionalProperties: false + + properties: + '#address-cells': + const: 2 + + '#size-cells': + const: 1 + + patternProperties: + "^ec-codec@[a-f0-9]+$": + type: object + $ref: /schemas/sound/google,cros-ec-codec.yaml# + + required: + - "#address-cells" + - "#size-cells" + + cbas: + type: object + + description: + This device is used to signal when a detachable base is attached + to a Chrome OS tablet. This device cannot be detected at runtime. + + properties: + compatible: + const: google,cros-cbas + + required: + - compatible + + additionalProperties: false + +patternProperties: + "^i2c-tunnel[0-9]*$": + type: object + $ref: /schemas/i2c/google,cros-ec-i2c-tunnel.yaml# + + "^regulator@[0-9]+$": + type: object + $ref: /schemas/regulator/google,cros-ec-regulator.yaml# + + "^extcon[0-9]*$": + type: object + $ref: /schemas/extcon/extcon-usbc-cros-ec.yaml# + +required: + - compatible + +allOf: + - if: + properties: + compatible: + not: + contains: + const: google,cros-ec-spi + then: + properties: + controller-data: false + google,cros-ec-spi-pre-delay: false + google,cros-ec-spi-msg-delay: false + spi-max-frequency: false + else: + $ref: /schemas/spi/spi-peripheral-props.yaml + + - if: + properties: + compatible: + not: + contains: + const: google,cros-ec-rpmsg + then: + properties: + mediatek,rpmsg-name: false + + - if: + properties: + compatible: + not: + contains: + enum: + - google,cros-ec-rpmsg + - google,cros-ec-uart + then: + required: + - reg + - interrupts + + - if: + properties: + compatible: + contains: + const: google,cros-ec-fp + then: + properties: + '#address-cells': false + '#size-cells': false + typec: false + ec-pwm: false + kbd-led-backlight: false + keyboard-controller: false + proximity: false + codecs: false + cbas: false + + patternProperties: + "^i2c-tunnel[0-9]*$": false + "^regulator@[0-9]+$": false + "^extcon[0-9]*$": false + + # Using additionalProperties: false here and + # listing true properties doesn't work + + required: + - reset-gpios + - boot0-gpios + - vdd-supply + else: + properties: + reset-gpios: false + boot0-gpios: false + vdd-supply: false + +additionalProperties: false + +examples: + # Example for I2C + - | + #include + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + cros-ec@1e { + compatible = "google,cros-ec-i2c"; + reg = <0x1e>; + interrupts = <6 0>; + interrupt-parent = <&gpio0>; + }; + }; + + # Example for SPI + - | + #include + #include + + spi { + #address-cells = <1>; + #size-cells = <0>; + + cros-ec@0 { + compatible = "google,cros-ec-spi"; + reg = <0x0>; + google,cros-ec-spi-msg-delay = <30>; + google,cros-ec-spi-pre-delay = <10>; + interrupts = <99 0>; + interrupt-parent = <&gpio7>; + spi-max-frequency = <5000000>; + #gpio-cells = <2>; + gpio-controller; + + proximity { + compatible = "google,cros-ec-mkbp-proximity"; + }; + + cbas { + compatible = "google,cros-cbas"; + }; + }; + }; + + # Example for RPMSG + - | + scp0 { + cros-ec { + compatible = "google,cros-ec-rpmsg"; + }; + }; + + # Example for FPMCU + - | + spi { + #address-cells = <0x1>; + #size-cells = <0x0>; + + ec@0 { + compatible = "google,cros-ec-fp", "google,cros-ec-spi"; + reg = <0x0>; + interrupt-parent = <&gpio_controller>; + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency = <3000000>; + reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>; + boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>; + vdd-supply = <&pp3300_fp_mcu>; + }; + }; + + # Example for UART + - | + serial { + cros-ec { + compatible = "google,cros-ec-uart"; + }; + }; +... diff --git a/Documentation/devicetree/bindings/embedded-controller/gw,gsc.yaml b/Documentation/devicetree/bindings/embedded-controller/gw,gsc.yaml new file mode 100644 index 000000000000..82d4b2dadbae --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/gw,gsc.yaml @@ -0,0 +1,193 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/gw,gsc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Gateworks System Controller + +description: | + The Gateworks System Controller (GSC) is a device present across various + Gateworks product families that provides a set of system related features + such as the following (refer to the board hardware user manuals to see what + features are present) + - Watchdog Timer + - GPIO + - Pushbutton controller + - Hardware monitor with ADC's for temperature and voltage rails and + fan controller + +maintainers: + - Tim Harvey + +properties: + $nodename: + pattern: "gsc@[0-9a-f]{1,2}" + compatible: + const: gw,gsc + + reg: + description: I2C device address + maxItems: 1 + + interrupts: + maxItems: 1 + + interrupt-controller: true + + "#interrupt-cells": + const: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + adc: + type: object + additionalProperties: false + description: Optional hardware monitoring module + + properties: + compatible: + const: gw,gsc-adc + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^channel@[0-9a-f]+$": + type: object + additionalProperties: false + description: | + Properties for a single ADC which can report cooked values + (i.e. temperature sensor based on thermister), raw values + (i.e. voltage rail with a pre-scaling resistor divider). + + properties: + reg: + description: Register of the ADC + maxItems: 1 + + label: + description: Name of the ADC input + + gw,mode: + description: | + conversion mode: + 0 - temperature, in C*10 + 1 - pre-scaled 24-bit voltage value + 2 - scaled voltage based on an optional resistor divider + and optional offset + 3 - pre-scaled 16-bit voltage value + 4 - fan tach input to report RPM's + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4] + + gw,voltage-divider-ohms: + description: Values of resistors for divider on raw ADC input + maxItems: 2 + items: + minimum: 1000 + maximum: 1000000 + + gw,voltage-offset-microvolt: + description: | + A positive voltage offset to apply to a raw ADC + (i.e. to compensate for a diode drop). + minimum: 0 + maximum: 1000000 + + required: + - gw,mode + - reg + - label + + required: + - compatible + - "#address-cells" + - "#size-cells" + +patternProperties: + "^fan-controller@[0-9a-f]+$": + type: object + additionalProperties: false + description: Optional fan controller + + properties: + compatible: + const: gw,gsc-fan + + reg: + description: The fan controller base address + maxItems: 1 + + required: + - compatible + - reg + +required: + - compatible + - reg + - interrupts + - interrupt-controller + - "#interrupt-cells" + - "#address-cells" + - "#size-cells" + +additionalProperties: false + +examples: + - | + #include + #include + i2c { + #address-cells = <1>; + #size-cells = <0>; + + gsc@20 { + compatible = "gw,gsc"; + reg = <0x20>; + interrupt-parent = <&gpio1>; + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; + #interrupt-cells = <1>; + #address-cells = <1>; + #size-cells = <0>; + + adc { + compatible = "gw,gsc-adc"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { /* A0: Board Temperature */ + reg = <0x00>; + label = "temp"; + gw,mode = <0>; + }; + + channel@2 { /* A1: Input Voltage (raw ADC) */ + reg = <0x02>; + label = "vdd_vin"; + gw,mode = <1>; + gw,voltage-divider-ohms = <22100 1000>; + gw,voltage-offset-microvolt = <800000>; + }; + + channel@b { /* A2: Battery voltage */ + reg = <0x0b>; + label = "vdd_bat"; + gw,mode = <1>; + }; + }; + + fan-controller@2c { + compatible = "gw,gsc-fan"; + reg = <0x2c>; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/embedded-controller/huawei,gaokun3-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/huawei,gaokun3-ec.yaml new file mode 100644 index 000000000000..cd9e65b6c2ea --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/huawei,gaokun3-ec.yaml @@ -0,0 +1,124 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/huawei,gaokun3-ec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Huawei Matebook E Go Embedded Controller + +maintainers: + - Pengyu Luo + +description: + Different from other Qualcomm Snapdragon sc8180x and sc8280xp-based + machines, the Huawei Matebook E Go tablets use embedded controllers + while others use a system called PMIC GLink which handles battery, + UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation + also handles additional features, such as charging thresholds, FN + lock, smart charging, tablet lid status, thermal sensors, and more. + +properties: + compatible: + enum: + - huawei,gaokun3-ec + + reg: + const: 0x38 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + interrupts: + maxItems: 1 + +patternProperties: + '^connector@[01]$': + $ref: /schemas/connector/usb-connector.yaml# + + properties: + reg: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include + i2c { + #address-cells = <1>; + #size-cells = <0>; + + embedded-controller@38 { + compatible = "huawei,gaokun3-ec"; + reg = <0x38>; + + interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>; + + #address-cells = <1>; + #size-cells = <0>; + + connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi0_ss_in: endpoint { + remote-endpoint = <&usb_0_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + ucsi0_sbu: endpoint { + remote-endpoint = <&usb0_sbu_mux>; + }; + }; + }; + }; + + connector@1 { + compatible = "usb-c-connector"; + reg = <1>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi1_ss_in: endpoint { + remote-endpoint = <&usb_1_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + ucsi1_sbu: endpoint { + remote-endpoint = <&usb1_sbu_mux>; + }; + }; + }; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/embedded-controller/kontron,sl28cpld.yaml b/Documentation/devicetree/bindings/embedded-controller/kontron,sl28cpld.yaml new file mode 100644 index 000000000000..0b752f3baaa9 --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/kontron,sl28cpld.yaml @@ -0,0 +1,153 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/kontron,sl28cpld.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Kontron's sl28cpld board management controller + +maintainers: + - Michael Walle + +description: | + The board management controller may contain different IP blocks like + watchdog, fan monitoring, PWM controller, interrupt controller and a + GPIO controller. + +properties: + compatible: + const: kontron,sl28cpld + + reg: + description: + I2C device address. + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + "#interrupt-cells": + const: 2 + + interrupts: + maxItems: 1 + + interrupt-controller: true + +patternProperties: + "^gpio(@[0-9a-f]+)?$": + $ref: /schemas/gpio/kontron,sl28cpld-gpio.yaml + + "^hwmon(@[0-9a-f]+)?$": + $ref: /schemas/hwmon/kontron,sl28cpld-hwmon.yaml + + "^interrupt-controller(@[0-9a-f]+)?$": + $ref: /schemas/interrupt-controller/kontron,sl28cpld-intc.yaml + + "^pwm(@[0-9a-f]+)?$": + $ref: /schemas/pwm/kontron,sl28cpld-pwm.yaml + + "^watchdog(@[0-9a-f]+)?$": + $ref: /schemas/watchdog/kontron,sl28cpld-wdt.yaml + +required: + - "#address-cells" + - "#size-cells" + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include + i2c { + #address-cells = <1>; + #size-cells = <0>; + + sl28cpld@4a { + compatible = "kontron,sl28cpld"; + reg = <0x4a>; + #address-cells = <1>; + #size-cells = <0>; + + watchdog@4 { + compatible = "kontron,sl28cpld-wdt"; + reg = <0x4>; + kontron,assert-wdt-timeout-pin; + }; + + hwmon@b { + compatible = "kontron,sl28cpld-fan"; + reg = <0xb>; + }; + + pwm@c { + compatible = "kontron,sl28cpld-pwm"; + reg = <0xc>; + #pwm-cells = <2>; + }; + + pwm@e { + compatible = "kontron,sl28cpld-pwm"; + reg = <0xe>; + #pwm-cells = <2>; + }; + + gpio@10 { + compatible = "kontron,sl28cpld-gpio"; + reg = <0x10>; + interrupts-extended = <&gpio2 6 + IRQ_TYPE_EDGE_FALLING>; + + gpio-controller; + #gpio-cells = <2>; + gpio-line-names = "a", "b", "c"; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpio@15 { + compatible = "kontron,sl28cpld-gpio"; + reg = <0x15>; + interrupts-extended = <&gpio2 6 + IRQ_TYPE_EDGE_FALLING>; + + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpio@1a { + compatible = "kontron,sl28cpld-gpo"; + reg = <0x1a>; + + gpio-controller; + #gpio-cells = <2>; + }; + + gpio@1b { + compatible = "kontron,sl28cpld-gpi"; + reg = <0x1b>; + + gpio-controller; + #gpio-cells = <2>; + }; + + interrupt-controller@1c { + compatible = "kontron,sl28cpld-intc"; + reg = <0x1c>; + interrupts-extended = <&gpio2 6 + IRQ_TYPE_EDGE_FALLING>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/embedded-controller/lenovo,yoga-c630-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/lenovo,yoga-c630-ec.yaml new file mode 100644 index 000000000000..a029b38e8dc0 --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/lenovo,yoga-c630-ec.yaml @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/lenovo,yoga-c630-ec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Lenovo Yoga C630 Embedded Controller. + +maintainers: + - Bjorn Andersson + +description: + The Qualcomm Snapdragon-based Lenovo Yoga C630 has an Embedded Controller + (EC) which handles things such as battery and USB Type-C. This binding + describes the interface, on an I2C bus, to this EC. + +properties: + compatible: + const: lenovo,yoga-c630-ec + + reg: + const: 0x70 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + interrupts: + maxItems: 1 + +patternProperties: + '^connector@[01]$': + $ref: /schemas/connector/usb-connector.yaml# + + properties: + reg: + maxItems: 1 + + unevaluatedProperties: false + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - |+ + #include + i2c1 { + clock-frequency = <400000>; + + #address-cells = <1>; + #size-cells = <0>; + + embedded-controller@70 { + compatible = "lenovo,yoga-c630-ec"; + reg = <0x70>; + + interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>; + + #address-cells = <1>; + #size-cells = <0>; + + connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "source"; + data-role = "host"; + }; + + connector@1 { + compatible = "usb-c-connector"; + reg = <1>; + power-role = "source"; + data-role = "host"; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/embedded-controller/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/embedded-controller/microsoft,surface-sam.yaml new file mode 100644 index 000000000000..9202cfca0b35 --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/microsoft,surface-sam.yaml @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/microsoft,surface-sam.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Surface System Aggregator Module (SAM, SSAM) + +maintainers: + - Konrad Dybcio + +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 + 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>; + }; + }; diff --git a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml index b032471831e7..02663d67eac7 100644 --- a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml +++ b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml @@ -11,7 +11,7 @@ maintainers: description: | This module is part of the sl28cpld multi-function device. For more - details see ../mfd/kontron,sl28cpld.yaml. + details see ../embedded-controller/kontron,sl28cpld.yaml. There are three flavors of the GPIO controller, one full featured input/output with interrupt support (kontron,sl28cpld-gpio), one diff --git a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml index 010333cb25c0..5803a1770cad 100644 --- a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml +++ b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml @@ -11,7 +11,7 @@ maintainers: description: | This module is part of the sl28cpld multi-function device. For more - details see ../mfd/kontron,sl28cpld.yaml. + details see ../embedded-controller/kontron,sl28cpld.yaml. properties: compatible: diff --git a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml index e8dfa6507f64..87df07beda59 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml +++ b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml @@ -11,7 +11,7 @@ maintainers: description: | This module is part of the sl28cpld multi-function device. For more - details see ../mfd/kontron,sl28cpld.yaml. + details see ../embedded-controller/kontron,sl28cpld.yaml. The following interrupts are available. All types and levels are fixed and handled by the board management controller. diff --git a/Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml b/Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml deleted file mode 100644 index dc379f3ebf24..000000000000 --- a/Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml +++ /dev/null @@ -1,193 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Gateworks System Controller - -description: | - The Gateworks System Controller (GSC) is a device present across various - Gateworks product families that provides a set of system related features - such as the following (refer to the board hardware user manuals to see what - features are present) - - Watchdog Timer - - GPIO - - Pushbutton controller - - Hardware monitor with ADC's for temperature and voltage rails and - fan controller - -maintainers: - - Tim Harvey - -properties: - $nodename: - pattern: "gsc@[0-9a-f]{1,2}" - compatible: - const: gw,gsc - - reg: - description: I2C device address - maxItems: 1 - - interrupts: - maxItems: 1 - - interrupt-controller: true - - "#interrupt-cells": - const: 1 - - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - - adc: - type: object - additionalProperties: false - description: Optional hardware monitoring module - - properties: - compatible: - const: gw,gsc-adc - - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - - patternProperties: - "^channel@[0-9a-f]+$": - type: object - additionalProperties: false - description: | - Properties for a single ADC which can report cooked values - (i.e. temperature sensor based on thermister), raw values - (i.e. voltage rail with a pre-scaling resistor divider). - - properties: - reg: - description: Register of the ADC - maxItems: 1 - - label: - description: Name of the ADC input - - gw,mode: - description: | - conversion mode: - 0 - temperature, in C*10 - 1 - pre-scaled 24-bit voltage value - 2 - scaled voltage based on an optional resistor divider - and optional offset - 3 - pre-scaled 16-bit voltage value - 4 - fan tach input to report RPM's - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4] - - gw,voltage-divider-ohms: - description: Values of resistors for divider on raw ADC input - maxItems: 2 - items: - minimum: 1000 - maximum: 1000000 - - gw,voltage-offset-microvolt: - description: | - A positive voltage offset to apply to a raw ADC - (i.e. to compensate for a diode drop). - minimum: 0 - maximum: 1000000 - - required: - - gw,mode - - reg - - label - - required: - - compatible - - "#address-cells" - - "#size-cells" - -patternProperties: - "^fan-controller@[0-9a-f]+$": - type: object - additionalProperties: false - description: Optional fan controller - - properties: - compatible: - const: gw,gsc-fan - - reg: - description: The fan controller base address - maxItems: 1 - - required: - - compatible - - reg - -required: - - compatible - - reg - - interrupts - - interrupt-controller - - "#interrupt-cells" - - "#address-cells" - - "#size-cells" - -additionalProperties: false - -examples: - - | - #include - #include - i2c { - #address-cells = <1>; - #size-cells = <0>; - - gsc@20 { - compatible = "gw,gsc"; - reg = <0x20>; - interrupt-parent = <&gpio1>; - interrupts = <4 IRQ_TYPE_LEVEL_LOW>; - interrupt-controller; - #interrupt-cells = <1>; - #address-cells = <1>; - #size-cells = <0>; - - adc { - compatible = "gw,gsc-adc"; - #address-cells = <1>; - #size-cells = <0>; - - channel@0 { /* A0: Board Temperature */ - reg = <0x00>; - label = "temp"; - gw,mode = <0>; - }; - - channel@2 { /* A1: Input Voltage (raw ADC) */ - reg = <0x02>; - label = "vdd_vin"; - gw,mode = <1>; - gw,voltage-divider-ohms = <22100 1000>; - gw,voltage-offset-microvolt = <800000>; - }; - - channel@b { /* A2: Battery voltage */ - reg = <0x0b>; - label = "vdd_bat"; - gw,mode = <1>; - }; - }; - - fan-controller@2c { - compatible = "gw,gsc-fan"; - reg = <0x2c>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml deleted file mode 100644 index 50f457090066..000000000000 --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml +++ /dev/null @@ -1,326 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: ChromeOS Embedded Controller - -maintainers: - - Benson Leung - - Guenter Roeck - -description: - Google's ChromeOS EC is a microcontroller which talks to the AP and - implements various functions such as keyboard and battery charging. - The EC can be connected through various interfaces (I2C, SPI, and others) - and the compatible string specifies which interface is being used. - -properties: - compatible: - oneOf: - - description: - For implementations of the EC connected through I2C. - const: google,cros-ec-i2c - - description: - For implementations of the EC connected through SPI. - const: google,cros-ec-spi - - description: - For implementations of the FPMCU connected through SPI. - items: - - const: google,cros-ec-fp - - const: google,cros-ec-spi - - description: - For implementations of the EC connected through RPMSG. - const: google,cros-ec-rpmsg - - description: - For implementations of the EC connected through UART. - const: google,cros-ec-uart - - controller-data: true - - google,cros-ec-spi-pre-delay: - description: - This property specifies the delay in usecs between the - assertion of the CS and the first clock pulse. - $ref: /schemas/types.yaml#/definitions/uint32 - default: 0 - - google,cros-ec-spi-msg-delay: - description: - This property specifies the delay in usecs between messages. - $ref: /schemas/types.yaml#/definitions/uint32 - default: 0 - - google,has-vbc-nvram: - description: - Some implementations of the EC include a small nvram space used to - store verified boot context data. This boolean flag is used to specify - whether this nvram is present or not. - type: boolean - - mediatek,rpmsg-name: - description: - Must be defined if the cros-ec is a rpmsg device for a Mediatek - ARM Cortex M4 Co-processor. Contains the name of the rpmsg - device. Used to match the subnode to the rpmsg device announced by - the SCP. - $ref: /schemas/types.yaml#/definitions/string - - spi-max-frequency: true - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 - - reset-gpios: - maxItems: 1 - - boot0-gpios: - maxItems: 1 - description: Assert for bootloader mode. - - vdd-supply: true - - wakeup-source: - description: Button can wake-up the system. - - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - '#gpio-cells': - const: 2 - - gpio-controller: true - - typec: - $ref: /schemas/chrome/google,cros-ec-typec.yaml# - - ec-pwm: - $ref: /schemas/pwm/google,cros-ec-pwm.yaml# - deprecated: true - - pwm: - $ref: /schemas/pwm/google,cros-ec-pwm.yaml# - - keyboard-controller: - $ref: /schemas/input/google,cros-ec-keyb.yaml# - - proximity: - $ref: /schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml# - - codecs: - type: object - additionalProperties: false - - properties: - '#address-cells': - const: 2 - - '#size-cells': - const: 1 - - patternProperties: - "^ec-codec@[a-f0-9]+$": - type: object - $ref: /schemas/sound/google,cros-ec-codec.yaml# - - required: - - "#address-cells" - - "#size-cells" - - cbas: - type: object - - description: - This device is used to signal when a detachable base is attached - to a Chrome OS tablet. This device cannot be detected at runtime. - - properties: - compatible: - const: google,cros-cbas - - required: - - compatible - - additionalProperties: false - -patternProperties: - "^i2c-tunnel[0-9]*$": - type: object - $ref: /schemas/i2c/google,cros-ec-i2c-tunnel.yaml# - - "^regulator@[0-9]+$": - type: object - $ref: /schemas/regulator/google,cros-ec-regulator.yaml# - - "^extcon[0-9]*$": - type: object - $ref: /schemas/extcon/extcon-usbc-cros-ec.yaml# - -required: - - compatible - -allOf: - - if: - properties: - compatible: - not: - contains: - const: google,cros-ec-spi - then: - properties: - controller-data: false - google,cros-ec-spi-pre-delay: false - google,cros-ec-spi-msg-delay: false - spi-max-frequency: false - else: - $ref: /schemas/spi/spi-peripheral-props.yaml - - - if: - properties: - compatible: - not: - contains: - const: google,cros-ec-rpmsg - then: - properties: - mediatek,rpmsg-name: false - - - if: - properties: - compatible: - not: - contains: - enum: - - google,cros-ec-rpmsg - - google,cros-ec-uart - then: - required: - - reg - - interrupts - - - if: - properties: - compatible: - contains: - const: google,cros-ec-fp - then: - properties: - '#address-cells': false - '#size-cells': false - typec: false - ec-pwm: false - kbd-led-backlight: false - keyboard-controller: false - proximity: false - codecs: false - cbas: false - - patternProperties: - "^i2c-tunnel[0-9]*$": false - "^regulator@[0-9]+$": false - "^extcon[0-9]*$": false - - # Using additionalProperties: false here and - # listing true properties doesn't work - - required: - - reset-gpios - - boot0-gpios - - vdd-supply - else: - properties: - reset-gpios: false - boot0-gpios: false - vdd-supply: false - -additionalProperties: false - -examples: - # Example for I2C - - | - #include - #include - - i2c { - #address-cells = <1>; - #size-cells = <0>; - - cros-ec@1e { - compatible = "google,cros-ec-i2c"; - reg = <0x1e>; - interrupts = <6 0>; - interrupt-parent = <&gpio0>; - }; - }; - - # Example for SPI - - | - #include - #include - - spi { - #address-cells = <1>; - #size-cells = <0>; - - cros-ec@0 { - compatible = "google,cros-ec-spi"; - reg = <0x0>; - google,cros-ec-spi-msg-delay = <30>; - google,cros-ec-spi-pre-delay = <10>; - interrupts = <99 0>; - interrupt-parent = <&gpio7>; - spi-max-frequency = <5000000>; - #gpio-cells = <2>; - gpio-controller; - - proximity { - compatible = "google,cros-ec-mkbp-proximity"; - }; - - cbas { - compatible = "google,cros-cbas"; - }; - }; - }; - - # Example for RPMSG - - | - scp0 { - cros-ec { - compatible = "google,cros-ec-rpmsg"; - }; - }; - - # Example for FPMCU - - | - spi { - #address-cells = <0x1>; - #size-cells = <0x0>; - - ec@0 { - compatible = "google,cros-ec-fp", "google,cros-ec-spi"; - reg = <0x0>; - interrupt-parent = <&gpio_controller>; - interrupts = <4 IRQ_TYPE_LEVEL_LOW>; - spi-max-frequency = <3000000>; - reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>; - boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>; - vdd-supply = <&pp3300_fp_mcu>; - }; - }; - - # Example for UART - - | - serial { - cros-ec { - compatible = "google,cros-ec-uart"; - }; - }; -... diff --git a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml deleted file mode 100644 index 37207a97e06c..000000000000 --- a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml +++ /dev/null @@ -1,153 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Kontron's sl28cpld board management controller - -maintainers: - - Michael Walle - -description: | - The board management controller may contain different IP blocks like - watchdog, fan monitoring, PWM controller, interrupt controller and a - GPIO controller. - -properties: - compatible: - const: kontron,sl28cpld - - reg: - description: - I2C device address. - maxItems: 1 - - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - - "#interrupt-cells": - const: 2 - - interrupts: - maxItems: 1 - - interrupt-controller: true - -patternProperties: - "^gpio(@[0-9a-f]+)?$": - $ref: /schemas/gpio/kontron,sl28cpld-gpio.yaml - - "^hwmon(@[0-9a-f]+)?$": - $ref: /schemas/hwmon/kontron,sl28cpld-hwmon.yaml - - "^interrupt-controller(@[0-9a-f]+)?$": - $ref: /schemas/interrupt-controller/kontron,sl28cpld-intc.yaml - - "^pwm(@[0-9a-f]+)?$": - $ref: /schemas/pwm/kontron,sl28cpld-pwm.yaml - - "^watchdog(@[0-9a-f]+)?$": - $ref: /schemas/watchdog/kontron,sl28cpld-wdt.yaml - -required: - - "#address-cells" - - "#size-cells" - - compatible - - reg - -additionalProperties: false - -examples: - - | - #include - i2c { - #address-cells = <1>; - #size-cells = <0>; - - sl28cpld@4a { - compatible = "kontron,sl28cpld"; - reg = <0x4a>; - #address-cells = <1>; - #size-cells = <0>; - - watchdog@4 { - compatible = "kontron,sl28cpld-wdt"; - reg = <0x4>; - kontron,assert-wdt-timeout-pin; - }; - - hwmon@b { - compatible = "kontron,sl28cpld-fan"; - reg = <0xb>; - }; - - pwm@c { - compatible = "kontron,sl28cpld-pwm"; - reg = <0xc>; - #pwm-cells = <2>; - }; - - pwm@e { - compatible = "kontron,sl28cpld-pwm"; - reg = <0xe>; - #pwm-cells = <2>; - }; - - gpio@10 { - compatible = "kontron,sl28cpld-gpio"; - reg = <0x10>; - interrupts-extended = <&gpio2 6 - IRQ_TYPE_EDGE_FALLING>; - - gpio-controller; - #gpio-cells = <2>; - gpio-line-names = "a", "b", "c"; - - interrupt-controller; - #interrupt-cells = <2>; - }; - - gpio@15 { - compatible = "kontron,sl28cpld-gpio"; - reg = <0x15>; - interrupts-extended = <&gpio2 6 - IRQ_TYPE_EDGE_FALLING>; - - gpio-controller; - #gpio-cells = <2>; - - interrupt-controller; - #interrupt-cells = <2>; - }; - - gpio@1a { - compatible = "kontron,sl28cpld-gpo"; - reg = <0x1a>; - - gpio-controller; - #gpio-cells = <2>; - }; - - gpio@1b { - compatible = "kontron,sl28cpld-gpi"; - reg = <0x1b>; - - gpio-controller; - #gpio-cells = <2>; - }; - - interrupt-controller@1c { - compatible = "kontron,sl28cpld-intc"; - reg = <0x1c>; - interrupts-extended = <&gpio2 6 - IRQ_TYPE_EDGE_FALLING>; - - interrupt-controller; - #interrupt-cells = <2>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/platform/acer,aspire1-ec.yaml b/Documentation/devicetree/bindings/platform/acer,aspire1-ec.yaml deleted file mode 100644 index 7cb0134134ff..000000000000 --- a/Documentation/devicetree/bindings/platform/acer,aspire1-ec.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/platform/acer,aspire1-ec.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Acer Aspire 1 Embedded Controller - -maintainers: - - Nikita Travkin - -description: - The Acer Aspire 1 laptop uses an embedded controller to control battery - and charging as well as to provide a set of misc features such as the - laptop lid status and HPD events for the USB Type-C DP alt mode. - -properties: - compatible: - const: acer,aspire1-ec - - reg: - const: 0x76 - - interrupts: - maxItems: 1 - - connector: - $ref: /schemas/connector/usb-connector.yaml# - -required: - - compatible - - reg - - interrupts - -additionalProperties: false - -examples: - - | - #include - i2c { - #address-cells = <1>; - #size-cells = <0>; - - embedded-controller@76 { - compatible = "acer,aspire1-ec"; - reg = <0x76>; - - interrupts-extended = <&tlmm 30 IRQ_TYPE_LEVEL_LOW>; - - connector { - compatible = "usb-c-connector"; - - port { - ec_dp_in: endpoint { - remote-endpoint = <&mdss_dp_out>; - }; - }; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml b/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml deleted file mode 100644 index 4a03b0ee3149..000000000000 --- a/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml +++ /dev/null @@ -1,124 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/platform/huawei,gaokun-ec.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Huawei Matebook E Go Embedded Controller - -maintainers: - - Pengyu Luo - -description: - Different from other Qualcomm Snapdragon sc8180x and sc8280xp-based - machines, the Huawei Matebook E Go tablets use embedded controllers - while others use a system called PMIC GLink which handles battery, - UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation - also handles additional features, such as charging thresholds, FN - lock, smart charging, tablet lid status, thermal sensors, and more. - -properties: - compatible: - enum: - - huawei,gaokun3-ec - - reg: - const: 0x38 - - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - interrupts: - maxItems: 1 - -patternProperties: - '^connector@[01]$': - $ref: /schemas/connector/usb-connector.yaml# - - properties: - reg: - maxItems: 1 - -required: - - compatible - - reg - - interrupts - -additionalProperties: false - -examples: - - | - #include - i2c { - #address-cells = <1>; - #size-cells = <0>; - - embedded-controller@38 { - compatible = "huawei,gaokun3-ec"; - reg = <0x38>; - - interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>; - - #address-cells = <1>; - #size-cells = <0>; - - connector@0 { - compatible = "usb-c-connector"; - reg = <0>; - power-role = "dual"; - data-role = "dual"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - ucsi0_ss_in: endpoint { - remote-endpoint = <&usb_0_qmpphy_out>; - }; - }; - - port@1 { - reg = <1>; - - ucsi0_sbu: endpoint { - remote-endpoint = <&usb0_sbu_mux>; - }; - }; - }; - }; - - connector@1 { - compatible = "usb-c-connector"; - reg = <1>; - power-role = "dual"; - data-role = "dual"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - ucsi1_ss_in: endpoint { - remote-endpoint = <&usb_1_qmpphy_out>; - }; - }; - - port@1 { - reg = <1>; - - ucsi1_sbu: endpoint { - remote-endpoint = <&usb1_sbu_mux>; - }; - }; - }; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/platform/lenovo,yoga-c630-ec.yaml b/Documentation/devicetree/bindings/platform/lenovo,yoga-c630-ec.yaml deleted file mode 100644 index 3180ce1a22d4..000000000000 --- a/Documentation/devicetree/bindings/platform/lenovo,yoga-c630-ec.yaml +++ /dev/null @@ -1,83 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/platform/lenovo,yoga-c630-ec.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Lenovo Yoga C630 Embedded Controller. - -maintainers: - - Bjorn Andersson - -description: - The Qualcomm Snapdragon-based Lenovo Yoga C630 has an Embedded Controller - (EC) which handles things such as battery and USB Type-C. This binding - describes the interface, on an I2C bus, to this EC. - -properties: - compatible: - const: lenovo,yoga-c630-ec - - reg: - const: 0x70 - - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - interrupts: - maxItems: 1 - -patternProperties: - '^connector@[01]$': - $ref: /schemas/connector/usb-connector.yaml# - - properties: - reg: - maxItems: 1 - - unevaluatedProperties: false - -required: - - compatible - - reg - - interrupts - -additionalProperties: false - -examples: - - |+ - #include - i2c1 { - clock-frequency = <400000>; - - #address-cells = <1>; - #size-cells = <0>; - - embedded-controller@70 { - compatible = "lenovo,yoga-c630-ec"; - reg = <0x70>; - - interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>; - - #address-cells = <1>; - #size-cells = <0>; - - connector@0 { - compatible = "usb-c-connector"; - reg = <0>; - power-role = "source"; - data-role = "host"; - }; - - connector@1 { - compatible = "usb-c-connector"; - reg = <1>; - power-role = "source"; - data-role = "host"; - }; - }; - }; -... diff --git a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml b/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml deleted file mode 100644 index b33d26f15b2a..000000000000 --- a/Documentation/devicetree/bindings/platform/microsoft,surface-sam.yaml +++ /dev/null @@ -1,47 +0,0 @@ -# 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 - -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 - 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>; - }; - }; diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml index f7bc84b05a87..8f5a468cfb91 100644 --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml @@ -14,7 +14,7 @@ description: | Google's ChromeOS EC PWM is a simple PWM attached to the Embedded Controller (EC) and controlled via a host-command interface. An EC PWM node should be only found as a sub-node of the EC node (see - Documentation/devicetree/bindings/mfd/google,cros-ec.yaml). + Documentation/devicetree/bindings/embedded-controller/google,cros-ec.yaml). allOf: - $ref: pwm.yaml# diff --git a/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml index 981cfec53f37..19a9d2e15a96 100644 --- a/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml +++ b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml @@ -11,7 +11,7 @@ maintainers: description: | This module is part of the sl28cpld multi-function device. For more - details see ../mfd/kontron,sl28cpld.yaml. + details see ../embedded-controller/kontron,sl28cpld.yaml. The controller supports one PWM channel and supports only four distinct frequencies (250Hz, 500Hz, 1kHz, 2kHz). diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml index adc6b3f36fde..179c98b33b4d 100644 --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml @@ -58,7 +58,7 @@ properties: maxItems: 1 cros-ec-rpmsg: - $ref: /schemas/mfd/google,cros-ec.yaml + $ref: /schemas/embedded-controller/google,cros-ec.yaml description: This subnode represents the rpmsg device. The properties of this node are defined by the individual bindings for @@ -126,7 +126,7 @@ patternProperties: maxItems: 1 cros-ec-rpmsg: - $ref: /schemas/mfd/google,cros-ec.yaml + $ref: /schemas/embedded-controller/google,cros-ec.yaml description: This subnode represents the rpmsg device. The properties of this node are defined by the individual bindings for diff --git a/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml b/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml index 1434f4433738..dd51e8c5b8c2 100644 --- a/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml +++ b/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml @@ -15,7 +15,7 @@ description: | Embedded Controller (EC) and is controlled via a host-command interface. An EC codec node should only be found inside the "codecs" subnode of a cros-ec node. - (see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml). + (see Documentation/devicetree/bindings/embedded-controller/google,cros-ec.yaml). allOf: - $ref: dai-common.yaml# diff --git a/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml index 179272f74de5..872a8471ef65 100644 --- a/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml @@ -11,7 +11,7 @@ maintainers: description: | This module is part of the sl28cpld multi-function device. For more - details see ../mfd/kontron,sl28cpld.yaml. + details see ../embedded-controller/kontron,sl28cpld.yaml. allOf: - $ref: watchdog.yaml# diff --git a/MAINTAINERS b/MAINTAINERS index cf2f09782499..6e3961562d29 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10128,7 +10128,7 @@ F: drivers/media/i2c/gc2145.c GATEWORKS SYSTEM CONTROLLER (GSC) DRIVER M: Tim Harvey S: Maintained -F: Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml +F: Documentation/devicetree/bindings/embedded-controller/gw,gsc.yaml F: Documentation/hwmon/gsc-hwmon.rst F: drivers/hwmon/gsc-hwmon.c F: drivers/mfd/gateworks-gsc.c @@ -11299,7 +11299,7 @@ F: drivers/net/ethernet/huawei/hinic3/ HUAWEI MATEBOOK E GO EMBEDDED CONTROLLER DRIVER M: Pengyu Luo S: Maintained -F: Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml +F: Documentation/devicetree/bindings/embedded-controller/huawei,gaokun3-ec.yaml F: drivers/platform/arm64/huawei-gaokun-ec.c F: drivers/power/supply/huawei-gaokun-battery.c F: drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c @@ -23210,10 +23210,10 @@ F: drivers/usb/misc/sisusbvga/ SL28 CPLD MFD DRIVER M: Michael Walle S: Maintained +F: Documentation/devicetree/bindings/embedded-controller/kontron,sl28cpld.yaml F: Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml F: Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml F: Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml -F: Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml F: Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml F: Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml F: drivers/gpio/gpio-sl28cpld.c