160 lines
3.7 KiB
YAML
160 lines
3.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/usb/ti,tps6598x.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Texas Instruments 6598x Type-C Port Switch and Power Delivery controller
|
|
|
|
maintainers:
|
|
- Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
|
|
description: |
|
|
Texas Instruments 6598x Type-C Port Switch and Power Delivery controller
|
|
|
|
A variant of this controller known as Apple CD321x or Apple ACE is also
|
|
present on hardware with Apple SoCs such as the M1.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- ti,tps6598x
|
|
- apple,cd321x
|
|
- ti,tps25750
|
|
|
|
reg:
|
|
minItems: 1
|
|
items:
|
|
- description: main PD controller address
|
|
- description: |
|
|
I2C slave address field in PBMs input data
|
|
which is used as the device address when writing the
|
|
patch for TPS25750.
|
|
The patch address can be any value except 0x00, 0x20,
|
|
0x21, 0x22, and 0x23
|
|
|
|
reg-names:
|
|
items:
|
|
- const: main
|
|
- const: patch-address
|
|
|
|
reset-gpios:
|
|
description: GPIO used for the HRESET pin.
|
|
maxItems: 1
|
|
|
|
wakeup-source: true
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
interrupt-names:
|
|
items:
|
|
- const: irq
|
|
|
|
connector:
|
|
$ref: /schemas/connector/usb-connector.yaml#
|
|
|
|
firmware-name:
|
|
description: |
|
|
Should contain the name of the default patch binary
|
|
file located on the firmware search path which is
|
|
used to switch the controller into APP mode.
|
|
This is used when tps25750 doesn't have an EEPROM
|
|
connected to it.
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: ti,tps25750
|
|
then:
|
|
properties:
|
|
reg:
|
|
maxItems: 2
|
|
|
|
connector:
|
|
required:
|
|
- data-role
|
|
|
|
required:
|
|
- connector
|
|
- reg-names
|
|
else:
|
|
properties:
|
|
reg:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
tps6598x: tps6598x@38 {
|
|
compatible = "ti,tps6598x";
|
|
reg = <0x38>;
|
|
wakeup-source;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-names = "irq";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&typec_pins>;
|
|
reset-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
|
|
|
|
typec_con: connector {
|
|
compatible = "usb-c-connector";
|
|
label = "USB-C";
|
|
port {
|
|
typec_ep: endpoint {
|
|
remote-endpoint = <&otg_ep>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
typec@21 {
|
|
compatible = "ti,tps25750";
|
|
reg = <0x21>, <0x0f>;
|
|
reg-names = "main", "patch-address";
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <100 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-names = "irq";
|
|
firmware-name = "tps25750.bin";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&typec_pins>;
|
|
|
|
typec_con0: connector {
|
|
compatible = "usb-c-connector";
|
|
label = "USB-C";
|
|
data-role = "dual";
|
|
port {
|
|
typec_ep0: endpoint {
|
|
remote-endpoint = <&otg_ep>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
...
|