diff mbox series

[1/2] dt-bindings: soc: qcom: add qcom,tcsr bindings

Message ID 20220122001609.15904-2-ansuelsmth@gmail.com (mailing list archive)
State Changes Requested
Headers show
Series Add QCOM TCSR driver | expand

Commit Message

Christian Marangi Jan. 22, 2022, 12:16 a.m. UTC
Add qcom,tcsr-ipq8064 and qcom,tcsr-ipq4019 Documentation for the
tcsr present in ipq8064 and ipa4019 required to configure and
set various peripherals present in the SoC.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
 .../bindings/soc/qcom/qcom,tcsr-ipq4019.yaml  | 93 +++++++++++++++++++
 .../bindings/soc/qcom/qcom,tcsr-ipq8064.yaml  | 47 ++++++++++
 2 files changed, 140 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml

Comments

Bjorn Andersson Jan. 31, 2022, 11:41 p.m. UTC | #1
On Fri 21 Jan 18:16 CST 2022, Ansuel Smith wrote:

> Add qcom,tcsr-ipq8064 and qcom,tcsr-ipq4019 Documentation for the
> tcsr present in ipq8064 and ipa4019 required to configure and
> set various peripherals present in the SoC.
> 
> Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> ---
>  .../bindings/soc/qcom/qcom,tcsr-ipq4019.yaml  | 93 +++++++++++++++++++
>  .../bindings/soc/qcom/qcom,tcsr-ipq8064.yaml  | 47 ++++++++++
>  2 files changed, 140 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> new file mode 100644
> index 000000000000..3a82ccbb6588
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> @@ -0,0 +1,93 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq4019.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm Top Control and Status Registers binding for IPQ4019
> +
> +maintainers:
> +  - Ansuel Smith <ansuelsmth@gmail.com>
> +
> +description: |
> +  This binding describes the Qualcomm Top Control and Status Registers, used
> +  for accessing configuration and mux settings for a variety of peripherals
> +  for ipq4019.
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: qcom,tcsr-ipq4019
> +      - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +  qcom,usb-hsphy-mode-select:
> +    description: Select usb hsphy mode for ipq4019

Why isn't this driven by the USB node, where I presume you otherwise
need to duplicate this decision?

Is this platform not capable of OTG?

> +    enum:
> +      - 'host'
> +      - 'device'
> +
> +  qcom,ess-interface-select:
> +    description: Select ess interface mode for ipq4019
> +    enum:
> +      - 'psgmii'
> +      - 'rgmii5'
> +      - 'rmii0'
> +      - 'rmii1'
> +      - 'rmii0_rmii1'
> +      - 'rgmii4'
> +
> +  qcom,wifi-glb-cfg-enable-axid:
> +    description: Enable AXI master bus Axid translating
> +                  to confirm all txn submitted by order for ipq4019
> +    type: boolean
> +
> +  qcom,wifi-glb-cfg-socslv-mode:
> +    description: Select wifi socslv mode for ipq4019
> +                  snoc use SNOC socslv_wxi_bvalid.
> +                  local use locally generate socslv_wxi_bvalid for performance.
> +    enum:
> +      - 'snoc'
> +      - 'local'
> +
> +  qcom,wifi_noc_memtype_m0_m2:
> +    description: Configure special wifi memory type needed for
> +                  some IPQ40xx devicesfor ipq4019
> +    type: boolean
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    tcsr@194b000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";

There's a single "tcsr" register block at 0x1937000 of size 0x21000.
The binding should describe that entire block, not convenient pieces of
it.

> +      reg = <0x194b000 0x100>;
> +      qcom,usb-hsphy-mode-select = "host";
> +    };
> +
> +    tcsr@1949000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1949000 0x100>;
> +      qcom,wifi-glb-cfg-enable-axid;
> +      qcom,wifi-glb-cfg-socslv-mode = "local";
> +    };
> +
> +    ess_tcsr@1953000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1953000 0x1000>;
> +      qcom,ess-interface-select = "psgmii";
> +    };
> +
> +    tcsr@1957000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1957000 0x100>;
> +      qcom,wifi_noc_memtype_m0_m2;
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> new file mode 100644
> index 000000000000..4ccc0bfccec5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> @@ -0,0 +1,47 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq8064.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm Top Control and Status Registers binding for IPQ8064
> +
> +maintainers:
> +  - Ansuel Smith <ansuelsmth@gmail.com>
> +
> +description: |
> +  This binding describes the Qualcomm Top Control and Status Registers, used
> +  for accessing configuration and mux settings for a variety of peripherals
> +  for ipq8064.
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: qcom,tcsr-ipq8064
> +      - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +  qcom,usb-ctrl-select:
> +    description: Select usb3 ctrl type for ipq8064
> +    enum:
> +      - 'p0'
> +      - 'p1'
> +      - 'dual'

Again, it seems reasonable to get this form the dwc3 node, rather than
duplicating the configuration.

Regards,
Bjorn

> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    tcsr: syscon@1a400000 {
> +      compatible = "qcom,tcsr-ipq8064", "syscon";
> +      reg = <0x1a400000 0x100>;
> +      qcom,usb-ctrl-select = "dual";
> +    };
> +
> +...
> -- 
> 2.33.1
>
Christian Marangi Feb. 1, 2022, 9:49 p.m. UTC | #2
On Mon, Jan 31, 2022 at 05:41:30PM -0600, Bjorn Andersson wrote:
> On Fri 21 Jan 18:16 CST 2022, Ansuel Smith wrote:
> 
> > Add qcom,tcsr-ipq8064 and qcom,tcsr-ipq4019 Documentation for the
> > tcsr present in ipq8064 and ipa4019 required to configure and
> > set various peripherals present in the SoC.
> > 
> > Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> > ---
> >  .../bindings/soc/qcom/qcom,tcsr-ipq4019.yaml  | 93 +++++++++++++++++++
> >  .../bindings/soc/qcom/qcom,tcsr-ipq8064.yaml  | 47 ++++++++++
> >  2 files changed, 140 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> >  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> > new file mode 100644
> > index 000000000000..3a82ccbb6588
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> > @@ -0,0 +1,93 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq4019.yaml#"
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > +
> > +title: Qualcomm Top Control and Status Registers binding for IPQ4019
> > +
> > +maintainers:
> > +  - Ansuel Smith <ansuelsmth@gmail.com>
> > +
> > +description: |
> > +  This binding describes the Qualcomm Top Control and Status Registers, used
> > +  for accessing configuration and mux settings for a variety of peripherals
> > +  for ipq4019.
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - const: qcom,tcsr-ipq4019
> > +      - const: syscon
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  qcom,usb-hsphy-mode-select:
> > +    description: Select usb hsphy mode for ipq4019
> 
> Why isn't this driven by the USB node, where I presume you otherwise
> need to duplicate this decision?
> 

From what I understand this is global, setting this will apply on any
usb present.

> Is this platform not capable of OTG?
> 

I assume it's capable by selecting the correct mode using tcsr.

> > +    enum:
> > +      - 'host'
> > +      - 'device'
> > +
> > +  qcom,ess-interface-select:
> > +    description: Select ess interface mode for ipq4019
> > +    enum:
> > +      - 'psgmii'
> > +      - 'rgmii5'
> > +      - 'rmii0'
> > +      - 'rmii1'
> > +      - 'rmii0_rmii1'
> > +      - 'rgmii4'
> > +
> > +  qcom,wifi-glb-cfg-enable-axid:
> > +    description: Enable AXI master bus Axid translating
> > +                  to confirm all txn submitted by order for ipq4019
> > +    type: boolean
> > +
> > +  qcom,wifi-glb-cfg-socslv-mode:
> > +    description: Select wifi socslv mode for ipq4019
> > +                  snoc use SNOC socslv_wxi_bvalid.
> > +                  local use locally generate socslv_wxi_bvalid for performance.
> > +    enum:
> > +      - 'snoc'
> > +      - 'local'
> > +
> > +  qcom,wifi_noc_memtype_m0_m2:
> > +    description: Configure special wifi memory type needed for
> > +                  some IPQ40xx devicesfor ipq4019
> > +    type: boolean
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    tcsr@194b000 {
> > +      compatible = "qcom,tcsr-ipq4019", "syscon";
> 
> There's a single "tcsr" register block at 0x1937000 of size 0x21000.
> The binding should describe that entire block, not convenient pieces of
> it.
> 

The current driver implementation works with the offset provided by the
reg. I assume I can just hardcode the offset in the driver and declare a
single tcsr node. Will do this change.

> > +      reg = <0x194b000 0x100>;
> > +      qcom,usb-hsphy-mode-select = "host";
> > +    };
> > +
> > +    tcsr@1949000 {
> > +      compatible = "qcom,tcsr-ipq4019", "syscon";
> > +      reg = <0x1949000 0x100>;
> > +      qcom,wifi-glb-cfg-enable-axid;
> > +      qcom,wifi-glb-cfg-socslv-mode = "local";
> > +    };
> > +
> > +    ess_tcsr@1953000 {
> > +      compatible = "qcom,tcsr-ipq4019", "syscon";
> > +      reg = <0x1953000 0x1000>;
> > +      qcom,ess-interface-select = "psgmii";
> > +    };
> > +
> > +    tcsr@1957000 {
> > +      compatible = "qcom,tcsr-ipq4019", "syscon";
> > +      reg = <0x1957000 0x100>;
> > +      qcom,wifi_noc_memtype_m0_m2;
> > +    };
> > +
> > +...
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> > new file mode 100644
> > index 000000000000..4ccc0bfccec5
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> > @@ -0,0 +1,47 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq8064.yaml#"
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > +
> > +title: Qualcomm Top Control and Status Registers binding for IPQ8064
> > +
> > +maintainers:
> > +  - Ansuel Smith <ansuelsmth@gmail.com>
> > +
> > +description: |
> > +  This binding describes the Qualcomm Top Control and Status Registers, used
> > +  for accessing configuration and mux settings for a variety of peripherals
> > +  for ipq8064.
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - const: qcom,tcsr-ipq8064
> > +      - const: syscon
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  qcom,usb-ctrl-select:
> > +    description: Select usb3 ctrl type for ipq8064
> > +    enum:
> > +      - 'p0'
> > +      - 'p1'
> > +      - 'dual'
> 
> Again, it seems reasonable to get this form the dwc3 node, rather than
> duplicating the configuration.
> 

As I said up, it seems to be global, that's the reason I didn't put this
handling in the dwc-qcom driver. (I mean it seems wrong that dwc3 would
set the same value twice). If this is necessary I will add support for
this in dwc-qcom.

> Regards,
> Bjorn
> 
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    tcsr: syscon@1a400000 {
> > +      compatible = "qcom,tcsr-ipq8064", "syscon";
> > +      reg = <0x1a400000 0x100>;
> > +      qcom,usb-ctrl-select = "dual";
> > +    };
> > +
> > +...
> > -- 
> > 2.33.1
> >
Rob Herring Feb. 9, 2022, 3:01 a.m. UTC | #3
On Sat, Jan 22, 2022 at 01:16:08AM +0100, Ansuel Smith wrote:
> Add qcom,tcsr-ipq8064 and qcom,tcsr-ipq4019 Documentation for the
> tcsr present in ipq8064 and ipa4019 required to configure and
> set various peripherals present in the SoC.
> 
> Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> ---
>  .../bindings/soc/qcom/qcom,tcsr-ipq4019.yaml  | 93 +++++++++++++++++++
>  .../bindings/soc/qcom/qcom,tcsr-ipq8064.yaml  | 47 ++++++++++
>  2 files changed, 140 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> new file mode 100644
> index 000000000000..3a82ccbb6588
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> @@ -0,0 +1,93 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq4019.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm Top Control and Status Registers binding for IPQ4019
> +
> +maintainers:
> +  - Ansuel Smith <ansuelsmth@gmail.com>
> +
> +description: |
> +  This binding describes the Qualcomm Top Control and Status Registers, used
> +  for accessing configuration and mux settings for a variety of peripherals
> +  for ipq4019.
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: qcom,tcsr-ipq4019

Normal order is qcom,ipq4019-tcsr

> +      - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +  qcom,usb-hsphy-mode-select:
> +    description: Select usb hsphy mode for ipq4019
> +    enum:
> +      - 'host'
> +      - 'device'

Don't need quotes.

> +
> +  qcom,ess-interface-select:
> +    description: Select ess interface mode for ipq4019
> +    enum:
> +      - 'psgmii'
> +      - 'rgmii5'
> +      - 'rmii0'
> +      - 'rmii1'
> +      - 'rmii0_rmii1'
> +      - 'rgmii4'
> +
> +  qcom,wifi-glb-cfg-enable-axid:
> +    description: Enable AXI master bus Axid translating
> +                  to confirm all txn submitted by order for ipq4019

Wrap at ~80 and indent 2 more spaces (than 'description').

> +    type: boolean
> +
> +  qcom,wifi-glb-cfg-socslv-mode:
> +    description: Select wifi socslv mode for ipq4019
> +                  snoc use SNOC socslv_wxi_bvalid.
> +                  local use locally generate socslv_wxi_bvalid for performance.
> +    enum:
> +      - 'snoc'
> +      - 'local'
> +
> +  qcom,wifi_noc_memtype_m0_m2:

s/_/-/

> +    description: Configure special wifi memory type needed for
> +                  some IPQ40xx devicesfor ipq4019
> +    type: boolean
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    tcsr@194b000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x194b000 0x100>;
> +      qcom,usb-hsphy-mode-select = "host";
> +    };
> +
> +    tcsr@1949000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1949000 0x100>;
> +      qcom,wifi-glb-cfg-enable-axid;
> +      qcom,wifi-glb-cfg-socslv-mode = "local";
> +    };
> +
> +    ess_tcsr@1953000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1953000 0x1000>;
> +      qcom,ess-interface-select = "psgmii";
> +    };
> +
> +    tcsr@1957000 {
> +      compatible = "qcom,tcsr-ipq4019", "syscon";
> +      reg = <0x1957000 0x100>;
> +      qcom,wifi_noc_memtype_m0_m2;
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> new file mode 100644
> index 000000000000..4ccc0bfccec5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> @@ -0,0 +1,47 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq8064.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm Top Control and Status Registers binding for IPQ8064
> +
> +maintainers:
> +  - Ansuel Smith <ansuelsmth@gmail.com>
> +
> +description: |
> +  This binding describes the Qualcomm Top Control and Status Registers, used
> +  for accessing configuration and mux settings for a variety of peripherals
> +  for ipq8064.
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: qcom,tcsr-ipq8064

qcom,ipq8064-tcsr

> +      - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +  qcom,usb-ctrl-select:
> +    description: Select usb3 ctrl type for ipq8064
> +    enum:
> +      - 'p0'
> +      - 'p1'
> +      - 'dual'
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    tcsr: syscon@1a400000 {
> +      compatible = "qcom,tcsr-ipq8064", "syscon";
> +      reg = <0x1a400000 0x100>;
> +      qcom,usb-ctrl-select = "dual";
> +    };
> +
> +...
> -- 
> 2.33.1
> 
>
Bjorn Andersson Feb. 9, 2022, 11:17 p.m. UTC | #4
On Tue 01 Feb 13:49 PST 2022, Ansuel Smith wrote:

> On Mon, Jan 31, 2022 at 05:41:30PM -0600, Bjorn Andersson wrote:
> > On Fri 21 Jan 18:16 CST 2022, Ansuel Smith wrote:
> > 
> > > Add qcom,tcsr-ipq8064 and qcom,tcsr-ipq4019 Documentation for the
> > > tcsr present in ipq8064 and ipa4019 required to configure and
> > > set various peripherals present in the SoC.
> > > 
> > > Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> > > ---
> > >  .../bindings/soc/qcom/qcom,tcsr-ipq4019.yaml  | 93 +++++++++++++++++++
> > >  .../bindings/soc/qcom/qcom,tcsr-ipq8064.yaml  | 47 ++++++++++
> > >  2 files changed, 140 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> > >  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> > > new file mode 100644
> > > index 000000000000..3a82ccbb6588
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
> > > @@ -0,0 +1,93 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq4019.yaml#"
> > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > > +
> > > +title: Qualcomm Top Control and Status Registers binding for IPQ4019
> > > +
> > > +maintainers:
> > > +  - Ansuel Smith <ansuelsmth@gmail.com>
> > > +
> > > +description: |
> > > +  This binding describes the Qualcomm Top Control and Status Registers, used
> > > +  for accessing configuration and mux settings for a variety of peripherals
> > > +  for ipq4019.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    items:
> > > +      - const: qcom,tcsr-ipq4019
> > > +      - const: syscon
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  qcom,usb-hsphy-mode-select:
> > > +    description: Select usb hsphy mode for ipq4019
> > 
> > Why isn't this driven by the USB node, where I presume you otherwise
> > need to duplicate this decision?
> > 
> 
> From what I understand this is global, setting this will apply on any
> usb present.
> 
> > Is this platform not capable of OTG?
> > 
> 
> I assume it's capable by selecting the correct mode using tcsr.
> 

I expect that the USB controller will receive extcon (or
usb_role_switch) requests to flip between the modes based on something.

When this happens it sounds like the USB controller would have to
propagate that change to the TCSR bits as well, and if the USB
controller driver is able to flip the bits then this shouldn't be needed
here?

Regards,
Bjorn
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
new file mode 100644
index 000000000000..3a82ccbb6588
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq4019.yaml
@@ -0,0 +1,93 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq4019.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Qualcomm Top Control and Status Registers binding for IPQ4019
+
+maintainers:
+  - Ansuel Smith <ansuelsmth@gmail.com>
+
+description: |
+  This binding describes the Qualcomm Top Control and Status Registers, used
+  for accessing configuration and mux settings for a variety of peripherals
+  for ipq4019.
+
+properties:
+  compatible:
+    items:
+      - const: qcom,tcsr-ipq4019
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  qcom,usb-hsphy-mode-select:
+    description: Select usb hsphy mode for ipq4019
+    enum:
+      - 'host'
+      - 'device'
+
+  qcom,ess-interface-select:
+    description: Select ess interface mode for ipq4019
+    enum:
+      - 'psgmii'
+      - 'rgmii5'
+      - 'rmii0'
+      - 'rmii1'
+      - 'rmii0_rmii1'
+      - 'rgmii4'
+
+  qcom,wifi-glb-cfg-enable-axid:
+    description: Enable AXI master bus Axid translating
+                  to confirm all txn submitted by order for ipq4019
+    type: boolean
+
+  qcom,wifi-glb-cfg-socslv-mode:
+    description: Select wifi socslv mode for ipq4019
+                  snoc use SNOC socslv_wxi_bvalid.
+                  local use locally generate socslv_wxi_bvalid for performance.
+    enum:
+      - 'snoc'
+      - 'local'
+
+  qcom,wifi_noc_memtype_m0_m2:
+    description: Configure special wifi memory type needed for
+                  some IPQ40xx devicesfor ipq4019
+    type: boolean
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    tcsr@194b000 {
+      compatible = "qcom,tcsr-ipq4019", "syscon";
+      reg = <0x194b000 0x100>;
+      qcom,usb-hsphy-mode-select = "host";
+    };
+
+    tcsr@1949000 {
+      compatible = "qcom,tcsr-ipq4019", "syscon";
+      reg = <0x1949000 0x100>;
+      qcom,wifi-glb-cfg-enable-axid;
+      qcom,wifi-glb-cfg-socslv-mode = "local";
+    };
+
+    ess_tcsr@1953000 {
+      compatible = "qcom,tcsr-ipq4019", "syscon";
+      reg = <0x1953000 0x1000>;
+      qcom,ess-interface-select = "psgmii";
+    };
+
+    tcsr@1957000 {
+      compatible = "qcom,tcsr-ipq4019", "syscon";
+      reg = <0x1957000 0x100>;
+      qcom,wifi_noc_memtype_m0_m2;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
new file mode 100644
index 000000000000..4ccc0bfccec5
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,tcsr-ipq8064.yaml
@@ -0,0 +1,47 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/soc/qcom/qcom,tcsr-ipq8064.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Qualcomm Top Control and Status Registers binding for IPQ8064
+
+maintainers:
+  - Ansuel Smith <ansuelsmth@gmail.com>
+
+description: |
+  This binding describes the Qualcomm Top Control and Status Registers, used
+  for accessing configuration and mux settings for a variety of peripherals
+  for ipq8064.
+
+properties:
+  compatible:
+    items:
+      - const: qcom,tcsr-ipq8064
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  qcom,usb-ctrl-select:
+    description: Select usb3 ctrl type for ipq8064
+    enum:
+      - 'p0'
+      - 'p1'
+      - 'dual'
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    tcsr: syscon@1a400000 {
+      compatible = "qcom,tcsr-ipq8064", "syscon";
+      reg = <0x1a400000 0x100>;
+      qcom,usb-ctrl-select = "dual";
+    };
+
+...