aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2021-01-14 12:13:49 +0100
committerRafał Miłecki <rafal@milecki.pl>2021-01-14 12:34:20 +0100
commit6c90999e2e0dee6e5e0322b89e8e6fb6f76aecc9 (patch)
treebf909eecacb6c901e37b8969f1b79c61e16a0b54 /target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch
parentfa02225ee656c18b084988246a0ad83fb202c374 (diff)
downloadupstream-6c90999e2e0dee6e5e0322b89e8e6fb6f76aecc9.tar.gz
upstream-6c90999e2e0dee6e5e0322b89e8e6fb6f76aecc9.tar.bz2
upstream-6c90999e2e0dee6e5e0322b89e8e6fb6f76aecc9.zip
bcm4908: backport brcmstb USB PHY driver changes
This includes BCM4908 support Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch')
-rw-r--r--target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch315
1 files changed, 315 insertions, 0 deletions
diff --git a/target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch b/target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch
new file mode 100644
index 0000000000..1edd63ea5d
--- /dev/null
+++ b/target/linux/bcm4908/patches-5.4/086-v5.12-0003-dt-bindings-phy-brcm-brcmstb-usb-phy-convert-to-the-.patch
@@ -0,0 +1,315 @@
+From b39069a482ade0c5e18c407c3218ba1aeed371b6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 6 Jan 2021 21:58:36 +0100
+Subject: [PATCH] dt-bindings: phy: brcm, brcmstb-usb-phy: convert to the
+ json-schema
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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: Rafał Miłecki <rafal@milecki.pl>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Link: https://lore.kernel.org/r/20210106205838.10964-1-zajec5@gmail.com
+Signed-off-by: Vinod Koul <vkoul@kernel.org>
+---
+ .../bindings/phy/brcm,brcmstb-usb-phy.txt | 86 --------
+ .../bindings/phy/brcm,brcmstb-usb-phy.yaml | 193 ++++++++++++++++++
+ 2 files changed, 193 insertions(+), 86 deletions(-)
+ delete mode 100644 Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.txt
+ create mode 100644 Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.yaml
+
+--- a/Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.txt
++++ /dev/null
+@@ -1,86 +0,0 @@
+-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";
+-};
+--- /dev/null
++++ b/Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.yaml
+@@ -0,0 +1,193 @@
++# 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";
++ };