devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] net: Add support for Qualcomm ethqos
@ 2019-01-08 16:29 Vinod Koul
  2019-01-08 16:29 ` [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding Vinod Koul
  0 siblings, 1 reply; 4+ messages in thread
From: Vinod Koul @ 2019-01-08 16:29 UTC (permalink / raw)
  To: David S Miller
  Cc: netdev, linux-arm-msm, Niklas Cassel, Bjorn Andersson, Vinod Koul,
	Rob Herring, Mark Rutland, devicetree, Giuseppe Cavallaro,
	Alexandre Torgue, Jose Abreu, Andrew Lunn, Florian Fainelli,
	Vivien Didelot

Some Qualcomm SoCs sport a ethqos controller which use DW ip, so add
the glue driver which uses stmmac driver along with DT bindings for
this device.

This controller supports rgmii mode and doesn't work with existing
phy drivers as they do not remove the phy delay delay in this mode,
so fix the two phy drivers tested with this.

Changes in v2:
 - Fix the example in dt-binding
 - Remove DT property for disable the delay and disable delay for RGMII mode
   in AT803x and QCA8K PHY drivers

Vinod Koul (5):
  dt-bindings: net: Add Qualcomm ethqos binding
  net: stmmac: Add driver for Qualcomm ethqos
  MAINTAINER: Add entry for Qualcomm ETHQOS ethernet driver
  net: phy: at803x: Disable phy delay for RGMII mode
  net: dsa: qca8k: disable delay for RGMII mode

 .../devicetree/bindings/net/qcom,dwmac.txt    | 129 +++++
 MAINTAINERS                                   |   8 +
 drivers/net/dsa/qca8k.c                       |  16 +-
 drivers/net/ethernet/stmicro/stmmac/Kconfig   |  10 +
 drivers/net/ethernet/stmicro/stmmac/Makefile  |   1 +
 .../stmicro/stmmac/dwmac-qcom-ethqos.c        | 545 ++++++++++++++++++
 drivers/net/phy/at803x.c                      |  21 +
 7 files changed, 718 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/qcom,dwmac.txt
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c

-- 
2.20.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding
  2019-01-08 16:29 [PATCH v2 0/5] net: Add support for Qualcomm ethqos Vinod Koul
@ 2019-01-08 16:29 ` Vinod Koul
  2019-01-15 21:03   ` Rob Herring
  0 siblings, 1 reply; 4+ messages in thread
From: Vinod Koul @ 2019-01-08 16:29 UTC (permalink / raw)
  To: David S Miller
  Cc: netdev, linux-arm-msm, Niklas Cassel, Bjorn Andersson, Vinod Koul,
	Rob Herring, Mark Rutland, devicetree

Add support for Qualcomm ethqos found in some SoCs like QCS404.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 .../devicetree/bindings/net/qcom,dwmac.txt    | 129 ++++++++++++++++++
 1 file changed, 129 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/qcom,dwmac.txt

diff --git a/Documentation/devicetree/bindings/net/qcom,dwmac.txt b/Documentation/devicetree/bindings/net/qcom,dwmac.txt
new file mode 100644
index 000000000000..652d2213c3ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/qcom,dwmac.txt
@@ -0,0 +1,129 @@
+Qualcomm Ethernet ETHQOS device
+
+This device has following properties:
+
+Required properties:
+
+- compatible: Should be qcom,ethqos-qcs404"
+
+- reg: Address and length of the register set for the device
+
+- reg-names: Should contain register names "stmmaceth", "rgmii"
+
+- clocks: Should contain phandle to clocks
+
+- clock-names: Should contain clock names "stmmaceth", "pclk",
+		"ptp_ref", "rgmii"
+
+- interrupts: Should contain phandle to interrupts
+
+- interrupt-names: Should contain interrupt names "macirq", "eth_lpi"
+
+Rest of the properties are defined in stmmac.txt file in same directory
+
+
+Example:
+
+ethernet: ethernet@7a80000 {
+	compatible = "qcom,ethqos-qcs404";
+	reg = <0x07a80000 0x10000>,
+		<0x07a96000 0x100>;
+	reg-names = "stmmaceth", "rgmii";
+	clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
+	clocks = <&gcc GCC_ETH_AXI_CLK>,
+		<&gcc GCC_ETH_SLAVE_AHB_CLK>,
+		<&gcc GCC_ETH_PTP_CLK>,
+		<&gcc GCC_ETH_RGMII_CLK>;
+	interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+			<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+	interrupt-names = "macirq", "eth_lpi";
+	snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>;
+	snps,reset-active-low;
+	snps,axi-config = <&stmmac_axi_setup>;
+	snps,mtl-rx-config = <&mtl_rx_setup>;
+	snps,mtl-tx-config = <&mtl_tx_setup>;
+
+	snps,txpbl = <8>;
+	snps,rxpbl = <2>;
+	snps,aal;
+	snps,tso;
+
+	phy-handle = <&phy1>;
+	phy-mode = "rgmii";
+
+	stmmac_axi_setup: stmmac-axi-config {
+		snps,wr_osr_lmt = <15>;
+		snps,rd_osr_lmt = <15>;
+		snps,blen = <256 128 64 32 0 0 0>;
+	};
+
+	mtl_rx_setup: rx-queues-config {
+		snps,rx-queues-to-use = <4>;
+		snps,rx-sched-sp;
+		queue0 {
+			snps,dcb-algorithm;
+			snps,map-to-dma-channel = <0x0>;
+			snps,priority = <0x0>;
+		};
+		queue1 {
+			snps,dcb-algorithm;
+			snps,map-to-dma-channel = <0x1>;
+			snps,priority = <0x1>;
+		};
+		queue2 {
+			snps,dcb-algorithm;
+			snps,map-to-dma-channel = <0x2>;
+			snps,priority = <0x1>;
+		};
+		queue3 {
+			snps,dcb-algorithm;
+			snps,map-to-dma-channel = <0x3>;
+			snps,priority = <0x1>;
+		};
+	};
+
+	mtl_tx_setup: tx-queues-config {
+		snps,tx-queues-to-use = <4>;
+		snps,tx-sched-wrr;
+		queue0 {
+			snps,weight = <0x10>;
+			snps,dcb-algorithm;
+			snps,priority = <0x0>;
+		};
+		queue1 {
+			snps,avb-algorithm;
+			snps,send_slope = <0x1000>;
+			snps,idle_slope = <0x1000>;
+			snps,high_credit = <0x3E800>;
+			snps,low_credit = <0xFFC18000>;
+			snps,priority = <0x1>;
+		};
+		queue2 {
+			snps,avb-algorithm;
+			snps,send_slope = <0x1000>;
+			snps,idle_slope = <0x1000>;
+			snps,high_credit = <0x3E800>;
+			snps,low_credit = <0xFFC18000>;
+			snps,priority = <0x1>;
+		};
+		queue3 {
+			snps,avb-algorithm;
+			snps,send_slope = <0x1000>;
+			snps,idle_slope = <0x1000>;
+			snps,high_credit = <0x3E800>;
+			snps,low_credit = <0xFFC18000>;
+			snps,priority = <0x1>;
+		};
+	};
+
+	mdio {
+		#address-cells = <0x1>;
+		#size-cells = <0x0>;
+		compatible = "snps,dwmac-mdio";
+		phy1: phy@4 {
+			device_type = "ethernet-phy";
+			reg = <0x4>;
+		};
+	};
+
+};
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding
  2019-01-08 16:29 ` [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding Vinod Koul
@ 2019-01-15 21:03   ` Rob Herring
  2019-01-17  4:03     ` Vinod Koul
  0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring @ 2019-01-15 21:03 UTC (permalink / raw)
  To: Vinod Koul
  Cc: David S Miller, netdev, linux-arm-msm, Niklas Cassel,
	Bjorn Andersson, Mark Rutland, devicetree

On Tue, Jan 08, 2019 at 09:59:22PM +0530, Vinod Koul wrote:
> Add support for Qualcomm ethqos found in some SoCs like QCS404.
> 
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  .../devicetree/bindings/net/qcom,dwmac.txt    | 129 ++++++++++++++++++
>  1 file changed, 129 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/qcom,dwmac.txt
> 
> diff --git a/Documentation/devicetree/bindings/net/qcom,dwmac.txt b/Documentation/devicetree/bindings/net/qcom,dwmac.txt
> new file mode 100644
> index 000000000000..652d2213c3ac
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/qcom,dwmac.txt

qcom,ethqos.txt?

> @@ -0,0 +1,129 @@
> +Qualcomm Ethernet ETHQOS device
> +

Perhaps some details like speeds and version of IP. There's lots of 
variants.

> +This device has following properties:
> +
> +Required properties:
> +
> +- compatible: Should be qcom,ethqos-qcs404"

qcom,qcs404-ethqos

> +
> +- reg: Address and length of the register set for the device
> +
> +- reg-names: Should contain register names "stmmaceth", "rgmii"
> +
> +- clocks: Should contain phandle to clocks
> +
> +- clock-names: Should contain clock names "stmmaceth", "pclk",
> +		"ptp_ref", "rgmii"
> +
> +- interrupts: Should contain phandle to interrupts
> +
> +- interrupt-names: Should contain interrupt names "macirq", "eth_lpi"
> +
> +Rest of the properties are defined in stmmac.txt file in same directory
> +
> +
> +Example:
> +
> +ethernet: ethernet@7a80000 {
> +	compatible = "qcom,ethqos-qcs404";
> +	reg = <0x07a80000 0x10000>,
> +		<0x07a96000 0x100>;
> +	reg-names = "stmmaceth", "rgmii";
> +	clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
> +	clocks = <&gcc GCC_ETH_AXI_CLK>,
> +		<&gcc GCC_ETH_SLAVE_AHB_CLK>,
> +		<&gcc GCC_ETH_PTP_CLK>,
> +		<&gcc GCC_ETH_RGMII_CLK>;
> +	interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
> +			<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
> +	interrupt-names = "macirq", "eth_lpi";
> +	snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>;
> +	snps,reset-active-low;
> +	snps,axi-config = <&stmmac_axi_setup>;
> +	snps,mtl-rx-config = <&mtl_rx_setup>;
> +	snps,mtl-tx-config = <&mtl_tx_setup>;
> +
> +	snps,txpbl = <8>;
> +	snps,rxpbl = <2>;
> +	snps,aal;
> +	snps,tso;
> +
> +	phy-handle = <&phy1>;
> +	phy-mode = "rgmii";
> +
> +	stmmac_axi_setup: stmmac-axi-config {
> +		snps,wr_osr_lmt = <15>;
> +		snps,rd_osr_lmt = <15>;
> +		snps,blen = <256 128 64 32 0 0 0>;
> +	};
> +
> +	mtl_rx_setup: rx-queues-config {
> +		snps,rx-queues-to-use = <4>;
> +		snps,rx-sched-sp;
> +		queue0 {
> +			snps,dcb-algorithm;
> +			snps,map-to-dma-channel = <0x0>;
> +			snps,priority = <0x0>;
> +		};
> +		queue1 {
> +			snps,dcb-algorithm;
> +			snps,map-to-dma-channel = <0x1>;
> +			snps,priority = <0x1>;
> +		};
> +		queue2 {
> +			snps,dcb-algorithm;
> +			snps,map-to-dma-channel = <0x2>;
> +			snps,priority = <0x1>;
> +		};
> +		queue3 {
> +			snps,dcb-algorithm;
> +			snps,map-to-dma-channel = <0x3>;
> +			snps,priority = <0x1>;
> +		};
> +	};
> +
> +	mtl_tx_setup: tx-queues-config {
> +		snps,tx-queues-to-use = <4>;
> +		snps,tx-sched-wrr;
> +		queue0 {
> +			snps,weight = <0x10>;
> +			snps,dcb-algorithm;
> +			snps,priority = <0x0>;
> +		};
> +		queue1 {
> +			snps,avb-algorithm;
> +			snps,send_slope = <0x1000>;
> +			snps,idle_slope = <0x1000>;
> +			snps,high_credit = <0x3E800>;
> +			snps,low_credit = <0xFFC18000>;
> +			snps,priority = <0x1>;
> +		};
> +		queue2 {
> +			snps,avb-algorithm;
> +			snps,send_slope = <0x1000>;
> +			snps,idle_slope = <0x1000>;
> +			snps,high_credit = <0x3E800>;
> +			snps,low_credit = <0xFFC18000>;
> +			snps,priority = <0x1>;
> +		};
> +		queue3 {
> +			snps,avb-algorithm;
> +			snps,send_slope = <0x1000>;
> +			snps,idle_slope = <0x1000>;
> +			snps,high_credit = <0x3E800>;
> +			snps,low_credit = <0xFFC18000>;
> +			snps,priority = <0x1>;
> +		};
> +	};
> +
> +	mdio {
> +		#address-cells = <0x1>;
> +		#size-cells = <0x0>;
> +		compatible = "snps,dwmac-mdio";
> +		phy1: phy@4 {
> +			device_type = "ethernet-phy";
> +			reg = <0x4>;
> +		};
> +	};
> +
> +};
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding
  2019-01-15 21:03   ` Rob Herring
@ 2019-01-17  4:03     ` Vinod Koul
  0 siblings, 0 replies; 4+ messages in thread
From: Vinod Koul @ 2019-01-17  4:03 UTC (permalink / raw)
  To: Rob Herring
  Cc: David S Miller, netdev, linux-arm-msm, Niklas Cassel,
	Bjorn Andersson, Mark Rutland, devicetree

On 15-01-19, 15:03, Rob Herring wrote:
> On Tue, Jan 08, 2019 at 09:59:22PM +0530, Vinod Koul wrote:
> > Add support for Qualcomm ethqos found in some SoCs like QCS404.
> > 
> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> >  .../devicetree/bindings/net/qcom,dwmac.txt    | 129 ++++++++++++++++++
> >  1 file changed, 129 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/net/qcom,dwmac.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/net/qcom,dwmac.txt b/Documentation/devicetree/bindings/net/qcom,dwmac.txt
> > new file mode 100644
> > index 000000000000..652d2213c3ac
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/qcom,dwmac.txt
> 
> qcom,ethqos.txt?

Sure, will update

> > @@ -0,0 +1,129 @@
> > +Qualcomm Ethernet ETHQOS device
> > +
> 
> Perhaps some details like speeds and version of IP. There's lots of 
> variants.

yeah it does Gigabit, so will update that as well.

> 
> > +This device has following properties:
> > +
> > +Required properties:
> > +
> > +- compatible: Should be qcom,ethqos-qcs404"
> 
> qcom,qcs404-ethqos

Makes sense, thanks

-- 
~Vinod

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-01-17  4:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-08 16:29 [PATCH v2 0/5] net: Add support for Qualcomm ethqos Vinod Koul
2019-01-08 16:29 ` [PATCH v2 1/5] dt-bindings: net: Add Qualcomm ethqos binding Vinod Koul
2019-01-15 21:03   ` Rob Herring
2019-01-17  4:03     ` Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).