mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'usb-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB / Thunderbolt updates from Greg KH:
"Here is the big set of USB and Thunderbolt changes for 7.1-rc1.
Lots of little things in here, nothing major, just constant
improvements, updates, and new features. Highlights are:
- new USB power supply driver support.
These changes did touch outside of drivers/usb/ but got acks from
the relevant mantainers for them.
- dts file updates and conversions
- string function conversions into "safer" ones
- new device quirks
- xhci driver updates
- usb gadget driver minor fixes
- typec driver additions and updates
- small number of thunderbolt driver changes
- dwc3 driver updates and additions of new hardware support
- other minor driver updates
All of these have been in the linux-next tree for a while with no
reported issues"
* tag 'usb-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (176 commits)
usb: dwc3: starfive: Add JHB100 USB 2.0 DRD controller
dt-bindings: usb: dwc3: add support for StarFive JHB100
dt-bindings: usb: atmel,at91sam9rl-udc: convert to DT schema
dt-bindings: usb: atmel,at91rm9200-udc: convert to DT schema
dt-bindings: usb: generic-ehci: fix schema structure and add at91sam9g45 constraints
dt-bindings: usb: generic-ohci: add AT91RM9200 OHCI binding support
arm: dts: at91: remove unused #address-cells/#size-cells from sam9x60 udc node
drivers/usb/host: Fix spelling error 'seperate' -> 'separate'
usbip: tools: add hint when no exported devices are found
USB: serial: iuu_phoenix: fix iuutool author name
usb: gadget: f_ncm: validate minimum block_len in ncm_unwrap_ntb()
usb: gadget: f_phonet: fix skb frags[] overflow in pn_rx_complete()
usb: gadget: f_hid: Add missing error code
usb: typec: cros_ec_ucsi: Load driver from OF and ACPI definitions
dt-bindings: chrome: Add cros-ec-ucsi compatibility to typec binding
USB: of: Simplify with scoped for each OF child loop
usbip: validate number_of_packets in usbip_pack_ret_submit()
usb: gadget: renesas_usb3: validate endpoint index in standard request handlers
usb: core: config: reverse the size check of the SSP isoc endpoint descriptor
usb: typec: ucsi: Set usb mode on partner change
...
This commit is contained in:
@@ -675,7 +675,8 @@ Description:
|
||||
|
||||
Valid values:
|
||||
"Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
|
||||
"PD_DRP", "PD_PPS", "BrickID"
|
||||
"PD_DRP", "PD_PPS", "BrickID", "PD_SPR_AVS",
|
||||
"PD_PPS_SPR_AVS"
|
||||
|
||||
**Device Specific Properties**
|
||||
|
||||
|
||||
@@ -8,17 +8,28 @@ title: Google Chrome OS EC(Embedded Controller) Type C port driver.
|
||||
|
||||
maintainers:
|
||||
- Benson Leung <bleung@chromium.org>
|
||||
- Prashant Malani <pmalani@chromium.org>
|
||||
- Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
|
||||
- Andrei Kuchynski <akuchynski@chromium.org>
|
||||
- Łukasz Bartosik <ukaszb@chromium.org>
|
||||
- Jameson Thies <jthies@google.com>
|
||||
|
||||
description:
|
||||
Chrome OS devices have an Embedded Controller(EC) which has access to
|
||||
Type C port state. This node is intended to allow the host to read and
|
||||
control the Type C ports. The node for this device should be under a
|
||||
cros-ec node like google,cros-ec-spi.
|
||||
control the Type C ports. This binding is compatible with both the
|
||||
cros-ec-typec and cros-ec-ucsi drivers. The cros-ec-typec driver
|
||||
supports the host command interface used by the Chrome OS EC with a
|
||||
built-in Type-C port manager and external Type-C Port Controller
|
||||
(TCPC). The cros-ec-ucsi driver supports the USB Type-C Connector
|
||||
System Software (UCSI) interface used by the Chrome OS EC when the
|
||||
platform has a separate power delivery controller (PDC). The node for
|
||||
this device should be under a cros-ec node like google,cros-ec-spi.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: google,cros-ec-typec
|
||||
enum:
|
||||
- google,cros-ec-typec
|
||||
- google,cros-ec-ucsi
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
@@ -300,6 +300,40 @@ properties:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
maxItems: 4
|
||||
|
||||
sink-load-step:
|
||||
description: Indicates the preferred load step slew rate in mA/usec for
|
||||
the port (in sink mode). This property is defined in "6.5.13.7" of
|
||||
"USB Power Delivery Specification Revision 3.1 Version 1.8".
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [150, 500]
|
||||
default: 150
|
||||
|
||||
sink-load-characteristics:
|
||||
description: Indicates the port's (in sink mode) preferred load
|
||||
characteristics. Users can leverage SINK_LOAD_CHAR() defined in
|
||||
dt-bindings/usb/pd.h to populate this field. This property is defined in
|
||||
"6.5.13.8" of "USB Power Delivery Specification Revision 3.1 Version 1.8".
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
|
||||
sink-compliance:
|
||||
description: Represents the types of sources the sink device has been tested
|
||||
and certified with. This property is defined in "6.5.13.9" of
|
||||
"USB Power Delivery Specification Revision 3.1 Version 1.8"
|
||||
Bit 0 when set indicates it has been tested on LPS compliant source
|
||||
Bit 1 when set indicates it has been tested on PS1 compliant source
|
||||
Bit 2 when set indicates it has been tested on PS2 compliant source
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
maximum: 7
|
||||
|
||||
charging-adapter-pdp-milliwatt:
|
||||
description: This corresponds to the Power Delivery Profile rating of the
|
||||
charging adapter shipped or recommended for use with the connector port.
|
||||
This property is a requirement to infer the USB PD property
|
||||
"SPR Sink Operational PDP" given in "6.5.13.14" of
|
||||
"USB Power Delivery Specification Revision 3.1 Version 1.8".
|
||||
minimum: 0
|
||||
maximum: 100000
|
||||
|
||||
dependencies:
|
||||
pd-disable: [typec-power-opmode]
|
||||
sink-vdos-v1: [ sink-vdos ]
|
||||
@@ -331,8 +365,9 @@ $defs:
|
||||
"Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
|
||||
Sink Capabilities Message, the order of each entry(PDO) should follow the
|
||||
PD spec chapter 6.4.1. Required for power sink and power dual role. User
|
||||
can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
|
||||
in dt-bindings/usb/pd.h.
|
||||
can specify the sink PDO array via
|
||||
PDO_FIXED/BATT/VAR/PPS_APDO/SPR_AVS_SNK_APDO() defined in
|
||||
dt-bindings/usb/pd.h.
|
||||
minItems: 1
|
||||
maxItems: 7
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
@@ -16,6 +16,9 @@ description: |
|
||||
The MAX77759 includes Battery Charger, Fuel Gauge, temperature sensors, USB
|
||||
Type-C Port Controller (TCPC), NVMEM, and a GPIO expander.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/power/supply/power-supply.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77759
|
||||
@@ -37,12 +40,18 @@ properties:
|
||||
nvmem-0:
|
||||
$ref: /schemas/nvmem/maxim,max77759-nvmem.yaml
|
||||
|
||||
chgin-otg-regulator:
|
||||
type: object
|
||||
description: Provides Boost for sourcing VBUS.
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
@@ -59,6 +68,11 @@ examples:
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
power-supplies = <&maxtcpci>;
|
||||
|
||||
chgin-otg-regulator {
|
||||
regulator-name = "chgin-otg";
|
||||
};
|
||||
|
||||
gpio {
|
||||
compatible = "maxim,max77759-gpio";
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/atmel,at91rm9200-udc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Atmel AT91 USB Device Controller (UDC)
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
|
||||
description:
|
||||
The Atmel AT91 USB Device Controller provides USB gadget (device-mode)
|
||||
functionality on AT91 SoCs. It requires a peripheral clock and an AHB
|
||||
clock for operation and may optionally control VBUS power through a GPIO.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- atmel,at91rm9200-udc
|
||||
- atmel,at91sam9260-udc
|
||||
- atmel,at91sam9261-udc
|
||||
- atmel,at91sam9263-udc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: hclk
|
||||
|
||||
atmel,vbus-gpio:
|
||||
description: GPIO used to enable or control VBUS power for the USB bus.
|
||||
maxItems: 1
|
||||
|
||||
atmel,matrix:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the Atmel bus matrix controller.
|
||||
|
||||
atmel,pullup-gpio:
|
||||
description:
|
||||
GPIO controlling the USB D+ pull-up resistor used to signal device
|
||||
connection to the host.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
gadget@fffa4000 {
|
||||
compatible = "atmel,at91rm9200-udc";
|
||||
reg = <0xfffa4000 0x4000>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>;
|
||||
clocks = <&udc_clk>, <&udpck>;
|
||||
clock-names = "pclk", "hclk";
|
||||
atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
...
|
||||
@@ -0,0 +1,74 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/atmel,at91sam9rl-udc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Atmel High-Speed USB Device Controller (USBA)
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
|
||||
description:
|
||||
The Atmel High-Speed USB Device Controller (USBA) provides USB 2.0
|
||||
high-speed gadget functionality on several Atmel and Microchip SoCs.
|
||||
The controller requires a peripheral clock and a host clock for operation
|
||||
and may optionally use a GPIO to detect VBUS presence.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- atmel,at91sam9rl-udc
|
||||
- atmel,at91sam9g45-udc
|
||||
- atmel,sama5d3-udc
|
||||
- items:
|
||||
- const: microchip,lan9662-udc
|
||||
- const: atmel,sama5d3-udc
|
||||
- const: microchip,sam9x60-udc
|
||||
|
||||
reg:
|
||||
maxItems: 2
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
enum: [pclk, hclk]
|
||||
|
||||
atmel,vbus-gpio:
|
||||
description: GPIO used to detect the presence of VBUS, indicating that
|
||||
the USB cable is connected.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
gadget@fff78000 {
|
||||
compatible = "atmel,at91sam9g45-udc";
|
||||
reg = <0x00600000 0x80000
|
||||
0xfff78000 0x400>;
|
||||
interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
|
||||
clock-names = "pclk", "hclk";
|
||||
atmel,vbus-gpio = <&pioC 15 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
...
|
||||
@@ -1,125 +0,0 @@
|
||||
Atmel SOC USB controllers
|
||||
|
||||
OHCI
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
|
||||
used in host mode.
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain ohci interrupt
|
||||
- clocks: Should reference the peripheral, host and system clocks
|
||||
- clock-names: Should contain three strings
|
||||
"ohci_clk" for the peripheral clock
|
||||
"hclk" for the host clock
|
||||
"uhpck" for the system clock
|
||||
- num-ports: Number of ports.
|
||||
- atmel,vbus-gpio: If present, specifies a gpio that needs to be
|
||||
activated for the bus to be powered.
|
||||
- atmel,oc-gpio: If present, specifies a gpio that needs to be
|
||||
activated for the overcurrent detection.
|
||||
|
||||
usb0: ohci@500000 {
|
||||
compatible = "atmel,at91rm9200-ohci", "usb-ohci";
|
||||
reg = <0x00500000 0x100000>;
|
||||
clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
|
||||
clock-names = "ohci_clk", "hclk", "uhpck";
|
||||
interrupts = <20 4>;
|
||||
num-ports = <2>;
|
||||
};
|
||||
|
||||
EHCI
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
|
||||
used in host mode.
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain ehci interrupt
|
||||
- clocks: Should reference the peripheral and the UTMI clocks
|
||||
- clock-names: Should contain two strings
|
||||
"ehci_clk" for the peripheral clock
|
||||
"usb_clk" for the UTMI clock
|
||||
|
||||
Optional properties:
|
||||
- phy_type : For multi port host USB controllers, should be one of
|
||||
"utmi", or "hsic".
|
||||
|
||||
usb1: ehci@800000 {
|
||||
compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
|
||||
reg = <0x00800000 0x100000>;
|
||||
interrupts = <22 4>;
|
||||
clocks = <&utmi>, <&uhphs_clk>;
|
||||
clock-names = "usb_clk", "ehci_clk";
|
||||
};
|
||||
|
||||
AT91 USB device controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
"atmel,at91rm9200-udc"
|
||||
"atmel,at91sam9260-udc"
|
||||
"atmel,at91sam9261-udc"
|
||||
"atmel,at91sam9263-udc"
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain macb interrupt
|
||||
- clocks: Should reference the peripheral and the AHB clocks
|
||||
- clock-names: Should contain two strings
|
||||
"pclk" for the peripheral clock
|
||||
"hclk" for the AHB clock
|
||||
|
||||
Optional properties:
|
||||
- atmel,vbus-gpio: If present, specifies a gpio that needs to be
|
||||
activated for the bus to be powered.
|
||||
|
||||
usb1: gadget@fffa4000 {
|
||||
compatible = "atmel,at91rm9200-udc";
|
||||
reg = <0xfffa4000 0x4000>;
|
||||
interrupts = <10 4>;
|
||||
clocks = <&udc_clk>, <&udpck>;
|
||||
clock-names = "pclk", "hclk";
|
||||
atmel,vbus-gpio = <&pioC 5 0>;
|
||||
};
|
||||
|
||||
Atmel High-Speed USB device controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
"atmel,at91sam9rl-udc"
|
||||
"atmel,at91sam9g45-udc"
|
||||
"atmel,sama5d3-udc"
|
||||
"microchip,sam9x60-udc"
|
||||
"microchip,lan9662-udc"
|
||||
For "microchip,lan9662-udc" the fallback "atmel,sama5d3-udc"
|
||||
is required.
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain usba interrupt
|
||||
- clocks: Should reference the peripheral and host clocks
|
||||
- clock-names: Should contain two strings
|
||||
"pclk" for the peripheral clock
|
||||
"hclk" for the host clock
|
||||
|
||||
Deprecated property:
|
||||
- ep childnode: To specify the number of endpoints and their properties.
|
||||
|
||||
Optional properties:
|
||||
- atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
|
||||
vbus is present (USB is connected).
|
||||
|
||||
Deprecated child node properties:
|
||||
- name: Name of the endpoint.
|
||||
- reg: Num of the endpoint.
|
||||
- atmel,fifo-size: Size of the fifo.
|
||||
- atmel,nb-banks: Number of banks.
|
||||
- atmel,can-dma: Boolean to specify if the endpoint support DMA.
|
||||
- atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
|
||||
|
||||
usb2: gadget@fff78000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "atmel,at91sam9rl-udc";
|
||||
reg = <0x00600000 0x80000
|
||||
0xfff78000 0x400>;
|
||||
interrupts = <27 4 0>;
|
||||
clocks = <&utmi>, <&udphs_clk>;
|
||||
clock-names = "hclk", "pclk";
|
||||
atmel,vbus-gpio = <&pioB 19 0>;
|
||||
};
|
||||
@@ -85,6 +85,7 @@ required:
|
||||
|
||||
allOf:
|
||||
- $ref: usb-drd.yaml#
|
||||
- $ref: usb-xhci.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/corechips,sl6341.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Corechips SL6341 USB 2.0/3.0 Hub Controller
|
||||
|
||||
maintainers:
|
||||
- Alexey Charkov <alchark@flipper.net>
|
||||
|
||||
allOf:
|
||||
- $ref: usb-hub.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- usb3431,6241
|
||||
- usb3431,6341
|
||||
|
||||
reg: true
|
||||
|
||||
peer-hub: true
|
||||
|
||||
reset-gpios:
|
||||
description: GPIO controlling the RSTN pin.
|
||||
|
||||
vdd1v1-supply:
|
||||
description:
|
||||
The regulator that provides 1.1V core power to the hub.
|
||||
|
||||
vdd3v3-supply:
|
||||
description:
|
||||
The regulator that provides 3.3V IO power to the hub.
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
patternProperties:
|
||||
'^port@':
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 1
|
||||
maximum: 4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd1v1-supply
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
usb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* 2.0 hub */
|
||||
hub_2_0: hub@1 {
|
||||
compatible = "usb3431,6241";
|
||||
reg = <1>;
|
||||
peer-hub = <&hub_3_0>;
|
||||
reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
|
||||
vdd1v1-supply = <&vdd1v1_hub>;
|
||||
};
|
||||
|
||||
/* 3.0 hub */
|
||||
hub_3_0: hub@2 {
|
||||
compatible = "usb3431,6341";
|
||||
reg = <2>;
|
||||
peer-hub = <&hub_2_0>;
|
||||
reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
|
||||
vdd1v1-supply = <&vdd1v1_hub>;
|
||||
};
|
||||
};
|
||||
@@ -10,6 +10,8 @@ title: NXP iMX8MP Soc USB Controller
|
||||
maintainers:
|
||||
- Li Jun <jun.li@nxp.com>
|
||||
|
||||
deprecated: true
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
|
||||
@@ -9,19 +9,6 @@ title: USB EHCI Controller
|
||||
maintainers:
|
||||
- Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
allOf:
|
||||
- $ref: usb-hcd.yaml
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
const: ibm,usb-ehci-440epx
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
@@ -167,6 +154,39 @@ required:
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
allOf:
|
||||
- $ref: usb-hcd.yaml
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
const: ibm,usb-ehci-440epx
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: atmel,at91sam9g45-ehci
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb_clk
|
||||
- const: ehci_clk
|
||||
|
||||
phy_type:
|
||||
enum:
|
||||
- utmi
|
||||
- hsic
|
||||
|
||||
required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -55,6 +55,7 @@ properties:
|
||||
- ti,ohci-omap3
|
||||
- items:
|
||||
- enum:
|
||||
- atmel,at91rm9200-ohci
|
||||
- cavium,octeon-6335-ohci
|
||||
- nintendo,hollywood-usb-ohci
|
||||
- nxp,ohci-nxp
|
||||
@@ -137,6 +138,24 @@ properties:
|
||||
The associated ISP1301 device. Necessary for the UDC controller for
|
||||
connecting to the USB physical layer.
|
||||
|
||||
atmel,vbus-gpio:
|
||||
description:
|
||||
GPIO used to control or sense the USB VBUS power. Each entry
|
||||
represents a VBUS-related GPIO; count and order may vary by hardware.
|
||||
Entries follow standard GPIO specifier format. A value of 0 indicates
|
||||
an unused or unavailable VBUS signal.
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
atmel,oc-gpio:
|
||||
description:
|
||||
GPIO used to signal USB overcurrent condition. Each entry represents
|
||||
an OC detection GPIO; count and order may vary by hardware. Entries
|
||||
follow standard GPIO specifier format. A value of 0 indicates an
|
||||
unused or unavailable OC signal.
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -144,6 +163,28 @@ required:
|
||||
|
||||
allOf:
|
||||
- $ref: usb-hcd.yaml
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: atmel,at91rm9200-ohci
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
items:
|
||||
- const: ohci_clk
|
||||
- const: hclk
|
||||
- const: uhpck
|
||||
|
||||
required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
else:
|
||||
properties:
|
||||
atmel,vbus-gpio: false
|
||||
atmel,oc-gpio: false
|
||||
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
|
||||
@@ -32,6 +32,9 @@ properties:
|
||||
description:
|
||||
Properties for usb c connector.
|
||||
|
||||
vbus-supply:
|
||||
description: Regulator to control sourcing Vbus.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -53,6 +56,7 @@ examples:
|
||||
reg = <0x25>;
|
||||
interrupt-parent = <&gpa8>;
|
||||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||
vbus-supply = <&chgin_otg_reg>;
|
||||
|
||||
connector {
|
||||
compatible = "usb-c-connector";
|
||||
@@ -75,6 +79,10 @@ examples:
|
||||
PDO_FIXED(9000, 2000, 0)>;
|
||||
sink-bc12-completion-time-ms = <500>;
|
||||
pd-revision = /bits/ 8 <0x03 0x01 0x01 0x08>;
|
||||
sink-load-step = <150>;
|
||||
sink-load-characteristics = /bits/ 16 <SINK_LOAD_CHAR(0, 1, 1, 2)>;
|
||||
sink-compliance = /bits/ 8 <(COMPLIANCE_LPS | COMPLIANCE_PS1)>;
|
||||
charging-adapter-pdp-milliwatt = <18000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
Maxim Integrated SPI-based USB 2.0 host controller MAX3421E
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "maxim,max3421"
|
||||
- spi-max-frequency: maximum frequency for this device must not exceed 26 MHz.
|
||||
- reg: chip select number to which this device is connected.
|
||||
- maxim,vbus-en-pin: <GPOUTx ACTIVE_LEVEL>
|
||||
GPOUTx is the number (1-8) of the GPOUT pin of MAX3421E to drive Vbus.
|
||||
ACTIVE_LEVEL is 0 or 1.
|
||||
- interrupts: the interrupt line description for the interrupt controller.
|
||||
The driver configures MAX3421E for active low level triggered interrupts,
|
||||
configure your interrupt line accordingly.
|
||||
|
||||
Example:
|
||||
|
||||
usb@0 {
|
||||
compatible = "maxim,max3421";
|
||||
reg = <0>;
|
||||
maxim,vbus-en-pin = <3 1>;
|
||||
spi-max-frequency = <26000000>;
|
||||
interrupt-parent = <&PIC>;
|
||||
interrupts = <42>;
|
||||
};
|
||||
@@ -0,0 +1,67 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/maxim,max3421.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MAXIM MAX3421e USB Peripheral/Host Controller
|
||||
|
||||
maintainers:
|
||||
- David Mosberger <davidm@egauge.net>
|
||||
|
||||
description: |
|
||||
The controller provides USB2.0 compliant with Full Speed or Low Speed when in
|
||||
the host mode. At peripheral, it operates at Full Speed. At both cases, it
|
||||
uses a SPI interface.
|
||||
Datasheet at:
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/max3421e.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max3421
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 26000000
|
||||
|
||||
maxim,vbus-en-pin:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description:
|
||||
One of eight GPOUT pins to control external VBUS power and the polarity
|
||||
of the active level. It's an array of GPIO number and the active level of it.
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- maxim,vbus-en-pin
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
usb@0 {
|
||||
compatible = "maxim,max3421";
|
||||
reg = <0>;
|
||||
maxim,vbus-en-pin = <3 1>;
|
||||
spi-max-frequency = <26000000>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <42>;
|
||||
};
|
||||
};
|
||||
@@ -37,6 +37,9 @@ properties:
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
microchip,ext-vbus-drv:
|
||||
description:
|
||||
Some ULPI USB PHYs do not support an internal VBUS supply and driving
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright 2026 NXP
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/nxp,imx-dwc3.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NXP i.MX Soc USB Controller
|
||||
|
||||
maintainers:
|
||||
- Xu Yang <xu.yang_2@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- nxp,imx94-dwc3
|
||||
- nxp,imx95-dwc3
|
||||
- const: nxp,imx8mp-dwc3
|
||||
- const: nxp,imx8mp-dwc3
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: DWC3 core registers
|
||||
- description: HSIO Block Control registers
|
||||
- description: Wrapper registers of dwc3 core
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: core
|
||||
- const: blkctl
|
||||
- const: glue
|
||||
|
||||
interrupts:
|
||||
items:
|
||||
- description: DWC3 controller interrupt
|
||||
- description: Wakeup interrupt from glue logic
|
||||
|
||||
interrupt-names:
|
||||
items:
|
||||
- const: dwc_usb3
|
||||
- const: wakeup
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: System hsio root clock
|
||||
- description: SoC Bus Clock for AHB/AXI/Native
|
||||
- description: Reference clock for generating ITP when UTMI/ULPI PHY is suspended
|
||||
- description: Suspend clock used for usb wakeup logic
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: hsio
|
||||
- const: bus_early
|
||||
- const: ref
|
||||
- const: suspend
|
||||
|
||||
fsl,permanently-attached:
|
||||
type: boolean
|
||||
description:
|
||||
Indicates if the device attached to a downstream port is
|
||||
permanently attached
|
||||
|
||||
fsl,disable-port-power-control:
|
||||
type: boolean
|
||||
description:
|
||||
Indicates whether the host controller implementation includes port
|
||||
power control. Defines Bit 3 in capability register (HCCPARAMS)
|
||||
|
||||
fsl,over-current-active-low:
|
||||
type: boolean
|
||||
description:
|
||||
Over current signal polarity is active low
|
||||
|
||||
fsl,power-active-low:
|
||||
type: boolean
|
||||
description:
|
||||
Power pad (PWR) polarity is active low
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
- power-domains
|
||||
|
||||
allOf:
|
||||
- $ref: snps,dwc3-common.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
usb@4c100000 {
|
||||
compatible = "nxp,imx94-dwc3", "nxp,imx8mp-dwc3";
|
||||
reg = <0x4c100000 0x10000>,
|
||||
<0x4c010010 0x04>,
|
||||
<0x4c1f0000 0x20>;
|
||||
reg-names = "core", "blkctl", "glue";
|
||||
clocks = <&scmi_clk 74>, //IMX94_CLK_HSIO
|
||||
<&scmi_clk 74>, //IMX94_CLK_HSIO
|
||||
<&scmi_clk 2>, //IMX94_CLK_24M
|
||||
<&scmi_clk 1>; //IMX94_CLK_32K
|
||||
clock-names = "hsio", "bus_early", "ref", "suspend";
|
||||
interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "dwc_usb3", "wakeup";
|
||||
power-domains = <&scmi_devpd 13>; //IMX94_PD_HSIO_TOP
|
||||
phys = <&usb3_phy>, <&usb3_phy>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
snps,gfladj-refclk-lpm-sel-quirk;
|
||||
snps,parkmode-disable-ss-quirk;
|
||||
};
|
||||
@@ -26,6 +26,10 @@ properties:
|
||||
$ref: /schemas/connector/usb-connector.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
orientation-gpios:
|
||||
maxItems: 1
|
||||
description: Optional orientation select control
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
ST USB OHCI controller
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : must be "st,st-ohci-300x"
|
||||
- reg : physical base addresses of the controller and length of memory mapped
|
||||
region
|
||||
- interrupts : one OHCI controller interrupt should be described here
|
||||
- clocks : phandle list of usb clocks
|
||||
- clock-names : should be "ic" for interconnect clock and "clk48"
|
||||
See: Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
|
||||
- phys : phandle for the PHY device
|
||||
- phy-names : should be "usb"
|
||||
|
||||
- resets : phandle to the powerdown and reset controller for the USB IP
|
||||
- reset-names : should be "power" and "softreset".
|
||||
See: Documentation/devicetree/bindings/reset/st,stih407-powerdown.yaml
|
||||
See: Documentation/devicetree/bindings/reset/reset.txt
|
||||
|
||||
Example:
|
||||
|
||||
ohci0: usb@fe1ffc00 {
|
||||
compatible = "st,st-ohci-300x";
|
||||
reg = <0xfe1ffc00 0x100>;
|
||||
interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
|
||||
clocks = <&clk_s_a1_ls 0>,
|
||||
<&clockgen_b0 0>;
|
||||
clock-names = "ic", "clk48";
|
||||
phys = <&usb2_phy>;
|
||||
phy-names = "usb";
|
||||
|
||||
resets = <&powerdown STIH416_USB0_POWERDOWN>,
|
||||
<&softreset STIH416_USB0_SOFTRESET>;
|
||||
reset-names = "power", "softreset";
|
||||
};
|
||||
@@ -1,80 +0,0 @@
|
||||
OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS
|
||||
|
||||
OMAP MUSB GLUE
|
||||
- compatible : Should be "ti,omap4-musb" or "ti,omap3-musb"
|
||||
- ti,hwmods : must be "usb_otg_hs"
|
||||
- multipoint : Should be "1" indicating the musb controller supports
|
||||
multipoint. This is a MUSB configuration-specific setting.
|
||||
- num-eps : Specifies the number of endpoints. This is also a
|
||||
MUSB configuration-specific setting. Should be set to "16"
|
||||
- ram-bits : Specifies the ram address size. Should be set to "12"
|
||||
- interface-type : This is a board specific setting to describe the type of
|
||||
interface between the controller and the phy. It should be "0" or "1"
|
||||
specifying ULPI and UTMI respectively.
|
||||
- mode : Should be "3" to represent OTG. "1" signifies HOST and "2"
|
||||
represents PERIPHERAL.
|
||||
- power : Should be "50". This signifies the controller can supply up to
|
||||
100mA when operating in host mode.
|
||||
- usb-phy : the phandle for the PHY device
|
||||
- phys : the phandle for the PHY device (used by generic PHY framework)
|
||||
- phy-names : the names of the PHY corresponding to the PHYs present in the
|
||||
*phy* phandle.
|
||||
|
||||
Optional properties:
|
||||
- ctrl-module : phandle of the control module this glue uses to write to
|
||||
mailbox
|
||||
|
||||
SOC specific device node entry
|
||||
usb_otg_hs: usb_otg_hs@4a0ab000 {
|
||||
compatible = "ti,omap4-musb";
|
||||
ti,hwmods = "usb_otg_hs";
|
||||
multipoint = <1>;
|
||||
num-eps = <16>;
|
||||
ram-bits = <12>;
|
||||
ctrl-module = <&omap_control_usb>;
|
||||
phys = <&usb2_phy>;
|
||||
phy-names = "usb2-phy";
|
||||
};
|
||||
|
||||
Board specific device node entry
|
||||
&usb_otg_hs {
|
||||
interface-type = <1>;
|
||||
mode = <3>;
|
||||
power = <50>;
|
||||
};
|
||||
|
||||
OMAP DWC3 GLUE
|
||||
- compatible : Should be
|
||||
* "ti,dwc3" for OMAP5 and DRA7
|
||||
* "ti,am437x-dwc3" for AM437x
|
||||
- ti,hwmods : Should be "usb_otg_ss"
|
||||
- reg : Address and length of the register set for the device.
|
||||
- interrupts : The irq number of this device that is used to interrupt the
|
||||
MPU
|
||||
- #address-cells, #size-cells : Must be present if the device has sub-nodes
|
||||
- utmi-mode : controls the source of UTMI/PIPE status for VBUS and OTG ID.
|
||||
It should be set to "1" for HW mode and "2" for SW mode.
|
||||
- ranges: the child address space are mapped 1:1 onto the parent address space
|
||||
|
||||
Optional Properties:
|
||||
- extcon : phandle for the extcon device omap dwc3 uses to detect
|
||||
connect/disconnect events.
|
||||
- vbus-supply : phandle to the regulator device tree node if needed.
|
||||
|
||||
Sub-nodes:
|
||||
The dwc3 core should be added as subnode to omap dwc3 glue.
|
||||
- dwc3 :
|
||||
The binding details of dwc3 can be found in:
|
||||
Documentation/devicetree/bindings/usb/snps,dwc3.yaml
|
||||
|
||||
omap_dwc3 {
|
||||
compatible = "ti,dwc3";
|
||||
ti,hwmods = "usb_otg_ss";
|
||||
reg = <0x4a020000 0x1ff>;
|
||||
interrupts = <0 93 4>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
utmi-mode = <2>;
|
||||
ranges;
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user