diff mbox series

net: gem: Remove undocumented is-internal-pcspma dt flag

Message ID 2ecdbcc4ce692e2f8b3e7054a2abab35f6c03a69.1726213052.git.michal.simek@amd.com
State Accepted
Commit 6161eaf05794ab2fc1af2b0159083ab6b955e20c
Delegated to: Michal Simek
Headers show
Series net: gem: Remove undocumented is-internal-pcspma dt flag | expand

Commit Message

Michal Simek Sept. 13, 2024, 7:37 a.m. UTC
Generic understanding/consideration is that phy-mode as sgmi means that the
internal PCS(Physical Coding Sublayer) should be enabled by default.
Xilinx GEM implementation allows configuration GEM (gmii mode) + PL PCS PMA
(sgmii mode, Physical Medum Attachment) but in this case phy-mode should be
setup as gmii.
The reason for this assumption is that phy-mode should be described based
on GEM configuration not based on mode coming out of PHY.

Also Linux kernel automatically setting up PCSSEL bit when phy mode is
sgmii without a need to specified additional DT propety.
All our DTSes with sgmii phy mode have this flag enabled that's why there
is no need/reason to just duplicate information.

Signed-off-by: Michal Simek <michal.simek@amd.com>
---

 arch/arm/dts/zynqmp-dlc21-revA.dts         | 1 -
 arch/arm/dts/zynqmp-e-a2197-00-revA.dts    | 1 -
 arch/arm/dts/zynqmp-g-a2197-00-revA.dts    | 1 -
 arch/arm/dts/zynqmp-p-a2197-00-revA.dts    | 1 -
 arch/arm/dts/zynqmp-sck-kr-g-revA.dtso     | 1 -
 arch/arm/dts/zynqmp-sck-kr-g-revB.dtso     | 1 -
 arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts | 1 -
 arch/arm/dts/zynqmp-vpk120-revA.dts        | 1 -
 drivers/net/zynq_gem.c                     | 9 ++-------
 9 files changed, 2 insertions(+), 15 deletions(-)

Comments

Michal Simek Sept. 20, 2024, 1:27 p.m. UTC | #1
On 9/13/24 09:37, Michal Simek wrote:
> Generic understanding/consideration is that phy-mode as sgmi means that the
> internal PCS(Physical Coding Sublayer) should be enabled by default.
> Xilinx GEM implementation allows configuration GEM (gmii mode) + PL PCS PMA
> (sgmii mode, Physical Medum Attachment) but in this case phy-mode should be
> setup as gmii.
> The reason for this assumption is that phy-mode should be described based
> on GEM configuration not based on mode coming out of PHY.
> 
> Also Linux kernel automatically setting up PCSSEL bit when phy mode is
> sgmii without a need to specified additional DT propety.
> All our DTSes with sgmii phy mode have this flag enabled that's why there
> is no need/reason to just duplicate information.
> 
> Signed-off-by: Michal Simek <michal.simek@amd.com>
> ---
> 
>   arch/arm/dts/zynqmp-dlc21-revA.dts         | 1 -
>   arch/arm/dts/zynqmp-e-a2197-00-revA.dts    | 1 -
>   arch/arm/dts/zynqmp-g-a2197-00-revA.dts    | 1 -
>   arch/arm/dts/zynqmp-p-a2197-00-revA.dts    | 1 -
>   arch/arm/dts/zynqmp-sck-kr-g-revA.dtso     | 1 -
>   arch/arm/dts/zynqmp-sck-kr-g-revB.dtso     | 1 -
>   arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts | 1 -
>   arch/arm/dts/zynqmp-vpk120-revA.dts        | 1 -
>   drivers/net/zynq_gem.c                     | 9 ++-------
>   9 files changed, 2 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/arm/dts/zynqmp-dlc21-revA.dts b/arch/arm/dts/zynqmp-dlc21-revA.dts
> index 59cf22d0eb98..293d8e97b63a 100644
> --- a/arch/arm/dts/zynqmp-dlc21-revA.dts
> +++ b/arch/arm/dts/zynqmp-dlc21-revA.dts
> @@ -87,7 +87,6 @@
>   	status = "okay";
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii"; /* DTG generates this properly  1512 */
> -	is-internal-pcspma;
>   	mdio: mdio {
>   		#address-cells = <1>;
>   		#size-cells = <0>;
> diff --git a/arch/arm/dts/zynqmp-e-a2197-00-revA.dts b/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
> index 0b97fa3f28ac..4e0587fd441a 100644
> --- a/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
> +++ b/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
> @@ -155,7 +155,6 @@
>   	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii";
> -	is-internal-pcspma;
>   	mdio: mdio {
>   		#address-cells = <1>;
>   		#size-cells = <0>;
> diff --git a/arch/arm/dts/zynqmp-g-a2197-00-revA.dts b/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
> index e3228fc98f0c..c439f778ca46 100644
> --- a/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
> +++ b/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
> @@ -80,7 +80,6 @@
>   	status = "okay";
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii";
> -	is-internal-pcspma;
>   	mdio: mdio {
>   		#address-cells = <1>;
>   		#size-cells = <0>;
> diff --git a/arch/arm/dts/zynqmp-p-a2197-00-revA.dts b/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
> index d3070b0062e9..ae52e8e996a5 100644
> --- a/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
> +++ b/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
> @@ -90,7 +90,6 @@
>   	status = "okay";
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii"; /* DTG generates this properly  1512 */
> -	is-internal-pcspma;
>   	mdio: mdio {
>   		#address-cells = <1>;
>   		#size-cells = <0>;
> diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
> index ce7c5eb6d346..6349a0e10877 100644
> --- a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
> +++ b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
> @@ -195,7 +195,6 @@
>   	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii";
> -	is-internal-pcspma;
>   	assigned-clock-rates = <250000000>;
>   };
>   
> diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
> index 0a0cbd2b69ae..b0d737d3caf0 100644
> --- a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
> +++ b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
> @@ -216,7 +216,6 @@
>   	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii";
> -	is-internal-pcspma;
>   	assigned-clock-rates = <250000000>;
>   };
>   
> diff --git a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
> index b626d1aacf58..7849f8c540bf 100644
> --- a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
> +++ b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
> @@ -117,7 +117,6 @@
>   	status = "okay";
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii"; /* DTG generates this properly 1512 */
> -	is-internal-pcspma;
>   	/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
>   	mdio: mdio {
>   		#address-cells = <1>;
> diff --git a/arch/arm/dts/zynqmp-vpk120-revA.dts b/arch/arm/dts/zynqmp-vpk120-revA.dts
> index e0632883e4ec..4768fac71d02 100644
> --- a/arch/arm/dts/zynqmp-vpk120-revA.dts
> +++ b/arch/arm/dts/zynqmp-vpk120-revA.dts
> @@ -118,7 +118,6 @@
>   	status = "okay";
>   	phy-handle = <&phy0>;
>   	phy-mode = "sgmii"; /* DTG generates this properly 1512 */
> -	is-internal-pcspma;
>   	/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
>   	mdio: mdio {
>   		#address-cells = <1>;
> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
> index fe7d10844507..461805ae53ff 100644
> --- a/drivers/net/zynq_gem.c
> +++ b/drivers/net/zynq_gem.c
> @@ -228,7 +228,6 @@ struct zynq_gem_priv {
>   	struct clk tx_clk;
>   	struct clk pclk;
>   	u32 max_speed;
> -	bool int_pcs;
>   	bool dma_64bit;
>   	u32 clk_en_info;
>   	struct reset_ctl_bulk resets;
> @@ -504,8 +503,7 @@ static int zynq_gem_init(struct udevice *dev)
>   	 * Set SGMII enable PCS selection only if internal PCS/PMA
>   	 * core is used and interface is SGMII.
>   	 */
> -	if (priv->interface == PHY_INTERFACE_MODE_SGMII &&
> -	    priv->int_pcs) {
> +	if (priv->interface == PHY_INTERFACE_MODE_SGMII) {
>   		nwconfig |= ZYNQ_GEM_NWCFG_SGMII_ENBL |
>   			    ZYNQ_GEM_NWCFG_PCS_SEL;
>   	}
> @@ -529,8 +527,7 @@ static int zynq_gem_init(struct udevice *dev)
>   		writel(nwcfg, &regs->nwcfg);
>   
>   #ifdef CONFIG_ARM64
> -	if (priv->interface == PHY_INTERFACE_MODE_SGMII &&
> -	    priv->int_pcs) {
> +	if (priv->interface == PHY_INTERFACE_MODE_SGMII) {
>   		/*
>   		 * Disable AN for fixed link configuration, enable otherwise.
>   		 * Must be written after PCS_SEL is set in nwconfig,
> @@ -992,8 +989,6 @@ static int zynq_gem_of_to_plat(struct udevice *dev)
>   		return -EINVAL;
>   	priv->interface = pdata->phy_interface;
>   
> -	priv->int_pcs = dev_read_bool(dev, "is-internal-pcspma");
> -
>   	priv->clk_en_info = dev_get_driver_data(dev);
>   
>   	return 0;

Applied.
M
diff mbox series

Patch

diff --git a/arch/arm/dts/zynqmp-dlc21-revA.dts b/arch/arm/dts/zynqmp-dlc21-revA.dts
index 59cf22d0eb98..293d8e97b63a 100644
--- a/arch/arm/dts/zynqmp-dlc21-revA.dts
+++ b/arch/arm/dts/zynqmp-dlc21-revA.dts
@@ -87,7 +87,6 @@ 
 	status = "okay";
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii"; /* DTG generates this properly  1512 */
-	is-internal-pcspma;
 	mdio: mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
diff --git a/arch/arm/dts/zynqmp-e-a2197-00-revA.dts b/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
index 0b97fa3f28ac..4e0587fd441a 100644
--- a/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
+++ b/arch/arm/dts/zynqmp-e-a2197-00-revA.dts
@@ -155,7 +155,6 @@ 
 	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii";
-	is-internal-pcspma;
 	mdio: mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
diff --git a/arch/arm/dts/zynqmp-g-a2197-00-revA.dts b/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
index e3228fc98f0c..c439f778ca46 100644
--- a/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
+++ b/arch/arm/dts/zynqmp-g-a2197-00-revA.dts
@@ -80,7 +80,6 @@ 
 	status = "okay";
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii";
-	is-internal-pcspma;
 	mdio: mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
diff --git a/arch/arm/dts/zynqmp-p-a2197-00-revA.dts b/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
index d3070b0062e9..ae52e8e996a5 100644
--- a/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
+++ b/arch/arm/dts/zynqmp-p-a2197-00-revA.dts
@@ -90,7 +90,6 @@ 
 	status = "okay";
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii"; /* DTG generates this properly  1512 */
-	is-internal-pcspma;
 	mdio: mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
index ce7c5eb6d346..6349a0e10877 100644
--- a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
+++ b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
@@ -195,7 +195,6 @@ 
 	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii";
-	is-internal-pcspma;
 	assigned-clock-rates = <250000000>;
 };
 
diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
index 0a0cbd2b69ae..b0d737d3caf0 100644
--- a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
+++ b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
@@ -216,7 +216,6 @@ 
 	phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>;
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii";
-	is-internal-pcspma;
 	assigned-clock-rates = <250000000>;
 };
 
diff --git a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
index b626d1aacf58..7849f8c540bf 100644
--- a/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
+++ b/arch/arm/dts/zynqmp-vp-x-a2785-00-revA.dts
@@ -117,7 +117,6 @@ 
 	status = "okay";
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii"; /* DTG generates this properly 1512 */
-	is-internal-pcspma;
 	/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
 	mdio: mdio {
 		#address-cells = <1>;
diff --git a/arch/arm/dts/zynqmp-vpk120-revA.dts b/arch/arm/dts/zynqmp-vpk120-revA.dts
index e0632883e4ec..4768fac71d02 100644
--- a/arch/arm/dts/zynqmp-vpk120-revA.dts
+++ b/arch/arm/dts/zynqmp-vpk120-revA.dts
@@ -118,7 +118,6 @@ 
 	status = "okay";
 	phy-handle = <&phy0>;
 	phy-mode = "sgmii"; /* DTG generates this properly 1512 */
-	is-internal-pcspma;
 	/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
 	mdio: mdio {
 		#address-cells = <1>;
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index fe7d10844507..461805ae53ff 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -228,7 +228,6 @@  struct zynq_gem_priv {
 	struct clk tx_clk;
 	struct clk pclk;
 	u32 max_speed;
-	bool int_pcs;
 	bool dma_64bit;
 	u32 clk_en_info;
 	struct reset_ctl_bulk resets;
@@ -504,8 +503,7 @@  static int zynq_gem_init(struct udevice *dev)
 	 * Set SGMII enable PCS selection only if internal PCS/PMA
 	 * core is used and interface is SGMII.
 	 */
-	if (priv->interface == PHY_INTERFACE_MODE_SGMII &&
-	    priv->int_pcs) {
+	if (priv->interface == PHY_INTERFACE_MODE_SGMII) {
 		nwconfig |= ZYNQ_GEM_NWCFG_SGMII_ENBL |
 			    ZYNQ_GEM_NWCFG_PCS_SEL;
 	}
@@ -529,8 +527,7 @@  static int zynq_gem_init(struct udevice *dev)
 		writel(nwcfg, &regs->nwcfg);
 
 #ifdef CONFIG_ARM64
-	if (priv->interface == PHY_INTERFACE_MODE_SGMII &&
-	    priv->int_pcs) {
+	if (priv->interface == PHY_INTERFACE_MODE_SGMII) {
 		/*
 		 * Disable AN for fixed link configuration, enable otherwise.
 		 * Must be written after PCS_SEL is set in nwconfig,
@@ -992,8 +989,6 @@  static int zynq_gem_of_to_plat(struct udevice *dev)
 		return -EINVAL;
 	priv->interface = pdata->phy_interface;
 
-	priv->int_pcs = dev_read_bool(dev, "is-internal-pcspma");
-
 	priv->clk_en_info = dev_get_driver_data(dev);
 
 	return 0;