dt-bindings: usb: typec: add bindings for stm32g0 controller

Add DT schema documentation for the STM32G0 Type-C PD (Power Delivery)
controller.
STM32G0 provides an integrated USB Type-C and power delivery interface.
It can be programmed with a firmware to handle UCSI protocol over I2C
interface. A GPIO is used as an interrupt line.
It may be used as a wakeup source, so use optional "wakeup-source" and
"power-domains" properties to support wakeup.
The firmware itself may be flashed or later updated (optional). Choice is
let to the application to allow firmware update. A default firmware could
be already programmed in production and be customized (to not allow it).
So the firmware-name is made optional to represent this option.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20220713120842.560902-2-fabrice.gasnier@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Fabrice Gasnier 2022-07-13 14:08:40 +02:00 committed by Greg Kroah-Hartman
parent a7dc438b5e
commit b60fd9361b

View File

@ -0,0 +1,91 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/st,typec-stm32g0.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32G0 USB Type-C PD controller
description: |
The STM32G0 MCU can be programmed to control Type-C connector(s) through I2C
typically using the UCSI protocol over I2C, with a dedicated alert
(interrupt) pin.
maintainers:
- Fabrice Gasnier <fabrice.gasnier@foss.st.com>
properties:
compatible:
const: st,stm32g0-typec
reg:
maxItems: 1
interrupts:
maxItems: 1
connector:
type: object
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
firmware-name:
description: |
Should contain the name of the default firmware image
file located on the firmware search path
wakeup-source: true
power-domains:
maxItems: 1
required:
- compatible
- reg
- interrupts
- connector
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
typec@53 {
compatible = "st,stm32g0-typec";
reg = <0x53>;
/* Alert pin on GPIO PE12 */
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
interrupt-parent = <&gpioe>;
/* Example with one type-C connector */
connector {
compatible = "usb-c-connector";
label = "USB-C";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
con_usb_c_ep: endpoint {
remote-endpoint = <&usb_ep>;
};
};
};
};
};
};
usb {
usb-role-switch;
port {
usb_ep: endpoint {
remote-endpoint = <&con_usb_c_ep>;
};
};
};
...