Commit 394fe485 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'net-ethernet-fec-move-GPR-register-offset-and-bit-into-DT'



Fugang Duan says:

====================
net: ethernet: fec: move GPR register offset and bit into DT

The commit da722186 (net: fec: set GPR bit on suspend by
DT configuration) set the GPR reigster offset and bit in driver
for wol feature support.

It brings trouble to enable wol feature on imx6sx/imx6ul/imx7d
platforms that have multiple ethernet instances with different
GPR bit for stop mode control. So the patch set is to move GPR
register offset and bit define into DT, and enable imx6q/imx6dl
imx6qp/imx6sx/imx6ul/imx7d stop mode support.

Currently, below NXP i.MX boards support wol:
- imx6q/imx6dl/imx6qp sabresd
- imx6sx sabreauto
- imx7d sdb

imx6q/imx6dl/imx6qp sabresd board dts file miss the property
"fsl,magic-packet;", so patch#4 is to add the property for stop
mode support.

v1 -> v2:
 - driver: switch back to store the quirks bitmask in driver_data
 - dt-bindings: rename 'gpr' property string to 'fsl,stop-mode'
 - imx6/7 dtsi: add imx6sx/imx6ul/imx7d ethernet stop mode property
v2 -> v3:
 - driver: suggested by Sascha Hauer, use a struct fec_devinfo for
   abstracting differences between different hardware variants,
   it can give more freedom to describe the differences.
 - imx6/7 dtsi: correct one typo pointed out by Andrew.

Thanks Martin, Andrew and Sascha Hauer for the review.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 09d0310f f099b8b7
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -22,8 +22,11 @@ Optional properties:
- fsl,err006687-workaround-present: If present indicates that the system has
  the hardware workaround for ERR006687 applied and does not need a software
  workaround.
- gpr: phandle of SoC general purpose register mode. Required for wake on LAN
  on some SoCs
- fsl,stop-mode: register bits of stop mode control, the format is
		 <&gpr req_gpr req_bit>.
		 gpr is the phandle to general purpose register node.
		 req_gpr is the gpr register offset for ENET stop request.
		 req_bit is the gpr bit offset for ENET stop request.
 -interrupt-names:  names of the interrupts listed in interrupts property in
  the same order. The defaults if not specified are
  __Number of interrupts__   __Default__
+1 −0
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@
	pinctrl-0 = <&pinctrl_enet>;
	phy-mode = "rgmii-id";
	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
	fsl,magic-packet;
	status = "okay";
};

+1 −1
Original line number Diff line number Diff line
@@ -1045,7 +1045,7 @@
					 <&clks IMX6QDL_CLK_ENET>,
					 <&clks IMX6QDL_CLK_ENET_REF>;
				clock-names = "ipg", "ahb", "ptp";
				gpr = <&gpr>;
				fsl,stop-mode = <&gpr 0x34 27>;
				status = "disabled";
			};

+2 −0
Original line number Diff line number Diff line
@@ -930,6 +930,7 @@
					      "enet_clk_ref", "enet_out";
				fsl,num-tx-queues = <3>;
				fsl,num-rx-queues = <3>;
				fsl,stop-mode = <&gpr 0x10 3>;
				status = "disabled";
			};

@@ -1039,6 +1040,7 @@
					 <&clks IMX6SX_CLK_ENET_PTP>;
				clock-names = "ipg", "ahb", "ptp",
					      "enet_clk_ref", "enet_out";
				fsl,stop-mode = <&gpr 0x10 4>;
				status = "disabled";
			};

+2 −0
Original line number Diff line number Diff line
@@ -520,6 +520,7 @@
					      "enet_clk_ref", "enet_out";
				fsl,num-tx-queues = <1>;
				fsl,num-rx-queues = <1>;
				fsl,stop-mode = <&gpr 0x10 4>;
				status = "disabled";
			};

@@ -856,6 +857,7 @@
					      "enet_clk_ref", "enet_out";
				fsl,num-tx-queues = <1>;
				fsl,num-rx-queues = <1>;
				fsl,stop-mode = <&gpr 0x10 3>;
				status = "disabled";
			};

Loading