Commit b39069a4 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Vinod Koul

dt-bindings: phy: brcm, brcmstb-usb-phy: convert to the json-schema

Changes that require mentioning:
1. interrupt-names
   Name "wakeup" was changed to the "wake". It matches example and what
   Linux driver looks for in the first place
2. brcm,ipp and brcm,ioc
   Both were described as booleans with 0 / 1 values. In examples they
   were integers and Linux checks for int as well. Both got uint32.
3. Added minimal description
Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210106205838.10964-1-zajec5@gmail.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 6d54623a
Broadcom STB USB PHY
Required properties:
- compatible: should be one of
"brcm,brcmstb-usb-phy"
"brcm,bcm7216-usb-phy"
"brcm,bcm7211-usb-phy"
- reg and reg-names properties requirements are specific to the
compatible string.
"brcm,brcmstb-usb-phy":
- reg: 1 or 2 offset and length pairs. One for the base CTRL registers
and an optional pair for systems with USB 3.x support
- reg-names: not specified
"brcm,bcm7216-usb-phy":
- reg: 3 offset and length pairs for CTRL, XHCI_EC and XHCI_GBL
registers
- reg-names: "ctrl", "xhci_ec", "xhci_gbl"
"brcm,bcm7211-usb-phy":
- reg: 5 offset and length pairs for CTRL, XHCI_EC, XHCI_GBL,
USB_PHY and USB_MDIO registers and an optional pair
for the BDC registers
- reg-names: "ctrl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec"
- #phy-cells: Shall be 1 as it expects one argument for setting
the type of the PHY. Possible values are:
- PHY_TYPE_USB2 for USB1.1/2.0 PHY
- PHY_TYPE_USB3 for USB3.x PHY
Optional Properties:
- clocks : clock phandles.
- clock-names: String, clock name.
- interrupts: wakeup interrupt
- interrupt-names: "wakeup"
- brcm,ipp: Boolean, Invert Port Power.
Possible values are: 0 (Don't invert), 1 (Invert)
- brcm,ioc: Boolean, Invert Over Current detection.
Possible values are: 0 (Don't invert), 1 (Invert)
- dr_mode: String, PHY Device mode.
Possible values are: "host", "peripheral ", "drd" or "typec-pd"
If this property is not defined, the phy will default to "host" mode.
- brcm,syscon-piarbctl: phandle to syscon for handling config registers
NOTE: one or both of the following two properties must be set
- brcm,has-xhci: Boolean indicating the phy has an XHCI phy.
- brcm,has-eohci: Boolean indicating the phy has an EHCI/OHCI phy.
Example:
usbphy_0: usb-phy@f0470200 {
reg = <0xf0470200 0xb8>,
<0xf0471940 0x6c0>;
compatible = "brcm,brcmstb-usb-phy";
#phy-cells = <1>;
dr_mode = "host"
brcm,ioc = <1>;
brcm,ipp = <1>;
brcm,has-xhci;
brcm,has-eohci;
clocks = <&usb20>, <&usb30>;
clock-names = "sw_usb", "sw_usb3";
};
usb-phy@29f0200 {
reg = <0x29f0200 0x200>,
<0x29c0880 0x30>,
<0x29cc100 0x534>,
<0x2808000 0x24>,
<0x2980080 0x8>;
reg-names = "ctrl",
"xhci_ec",
"xhci_gbl",
"usb_phy",
"usb_mdio";
brcm,ioc = <0x0>;
brcm,ipp = <0x0>;
compatible = "brcm,bcm7211-usb-phy";
interrupts = <0x30>;
interrupt-parent = <&vpu_intr1_nosec_intc>;
interrupt-names = "wake";
#phy-cells = <0x1>;
brcm,has-xhci;
syscon-piarbctl = <&syscon_piarbctl>;
clocks = <&scmi_clk 256>;
clock-names = "sw_usb";
};
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom STB USB PHY
description: Broadcom's PHY that handles EHCI/OHCI and/or XHCI
maintainers:
- Al Cooper <alcooperx@gmail.com>
- Rafał Miłecki <rafal@milecki.pl>
properties:
compatible:
enum:
- brcm,bcm7211-usb-phy
- brcm,bcm7216-usb-phy
- brcm,brcmstb-usb-phy
reg:
minItems: 1
maxItems: 6
items:
- description: the base CTRL register
- description: XHCI EC register
- description: XHCI GBL register
- description: USB PHY register
- description: USB MDIO register
- description: BDC register
reg-names:
minItems: 1
maxItems: 6
items:
- const: ctrl
- const: xhci_ec
- const: xhci_gbl
- const: usb_phy
- const: usb_mdio
- const: bdc_ec
clocks:
minItems: 1
maxItems: 2
clock-names:
minItems: 1
maxItems: 2
items:
- const: sw_usb
- const: sw_usb3
interrupts:
description: wakeup interrupt
interrupt-names:
const: wake
brcm,ipp:
$ref: /schemas/types.yaml#/definitions/uint32
description: Invert Port Power
minimum: 0
maximum: 1
brcm,ioc:
$ref: /schemas/types.yaml#/definitions/uint32
description: Invert Over Current detection
minimum: 0
maximum: 1
dr_mode:
description: PHY Device mode. If this property is not defined, the PHY will
default to "host" mode.
enum:
- host
- peripheral
- drd
- typec-pd
brcm,syscon-piarbctl:
description: phandle to syscon for handling config registers
$ref: /schemas/types.yaml#/definitions/phandle
brcm,has-xhci:
description: Indicates the PHY has an XHCI PHY.
type: boolean
brcm,has-eohci:
description: Indicates the PHY has an EHCI/OHCI PHY.
type: boolean
"#phy-cells":
description: |
Cell allows setting the type of the PHY. Possible values are:
- PHY_TYPE_USB2 for USB1.1/2.0 PHY
- PHY_TYPE_USB3 for USB3.x PHY
const: 1
required:
- reg
- "#phy-cells"
anyOf:
- required:
- brcm,has-xhci
- required:
- brcm,has-eohci
allOf:
- if:
properties:
compatible:
contains:
const: brcm,brcmstb-usb-phy
then:
properties:
reg:
minItems: 1
maxItems: 2
- if:
properties:
compatible:
contains:
const: brcm,bcm7211-usb-phy
then:
properties:
reg:
minItems: 5
maxItems: 6
reg-names:
minItems: 5
maxItems: 6
- if:
properties:
compatible:
contains:
const: brcm,bcm7216-usb-phy
then:
properties:
reg:
minItems: 3
maxItems: 3
reg-names:
minItems: 3
maxItems: 3
additionalProperties: false
examples:
- |
#include <dt-bindings/phy/phy.h>
usb-phy@f0470200 {
compatible = "brcm,brcmstb-usb-phy";
reg = <0xf0470200 0xb8>,
<0xf0471940 0x6c0>;
#phy-cells = <1>;
dr_mode = "host";
brcm,ioc = <1>;
brcm,ipp = <1>;
brcm,has-xhci;
brcm,has-eohci;
clocks = <&usb20>, <&usb30>;
clock-names = "sw_usb", "sw_usb3";
};
- |
#include <dt-bindings/phy/phy.h>
usb-phy@29f0200 {
compatible = "brcm,bcm7211-usb-phy";
reg = <0x29f0200 0x200>,
<0x29c0880 0x30>,
<0x29cc100 0x534>,
<0x2808000 0x24>,
<0x2980080 0x8>;
reg-names = "ctrl",
"xhci_ec",
"xhci_gbl",
"usb_phy",
"usb_mdio";
brcm,ioc = <0x0>;
brcm,ipp = <0x0>;
interrupts = <0x30>;
interrupt-parent = <&vpu_intr1_nosec_intc>;
interrupt-names = "wake";
#phy-cells = <0x1>;
brcm,has-xhci;
brcm,syscon-piarbctl = <&syscon_piarbctl>;
clocks = <&scmi_clk 256>;
clock-names = "sw_usb";
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment