All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 1/2] ihs_mdio: Encapsulate register access
@ 2018-04-27 12:52 Mario Six
  2018-04-27 12:52 ` [U-Boot] [PATCH v2 2/2] ihs_mdio: Make DM-compatible Mario Six
  2018-05-09  1:30 ` [U-Boot] [U-Boot,v2,1/2] ihs_mdio: Encapsulate register access Tom Rini
  0 siblings, 2 replies; 4+ messages in thread
From: Mario Six @ 2018-04-27 12:52 UTC (permalink / raw)
  To: u-boot

To prepare for DM conversion, encapsulate all register accesses in
function calls.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
---

v1 -> v2:
No changes

---
 board/gdsys/common/ihs_mdio.c | 41 ++++++++++++++++++++++++++++++++++-------
 1 file changed, 34 insertions(+), 7 deletions(-)

diff --git a/board/gdsys/common/ihs_mdio.c b/board/gdsys/common/ihs_mdio.c
index 822517d4b2..b5fe3dbbdc 100644
--- a/board/gdsys/common/ihs_mdio.c
+++ b/board/gdsys/common/ihs_mdio.c
@@ -12,6 +12,34 @@
 
 #include "ihs_mdio.h"
 
+static inline u16 read_control(struct ihs_mdio_info *info)
+{
+	u16 val;
+
+	FPGA_GET_REG(info->fpga, mdio.control, &val);
+
+	return val;
+}
+
+static inline void write_control(struct ihs_mdio_info *info, u16 val)
+{
+	FPGA_SET_REG(info->fpga, mdio.control, val);
+}
+
+static inline void write_addr_data(struct ihs_mdio_info *info, u16 val)
+{
+	FPGA_SET_REG(info->fpga, mdio.address_data, val);
+}
+
+static inline u16 read_rx_data(struct ihs_mdio_info *info)
+{
+	u16 val;
+
+	FPGA_GET_REG(info->fpga, mdio.rx_data, &val);
+
+	return val;
+}
+
 static int ihs_mdio_idle(struct mii_dev *bus)
 {
 	struct ihs_mdio_info *info = bus->priv;
@@ -19,7 +47,7 @@ static int ihs_mdio_idle(struct mii_dev *bus)
 	unsigned int ctr = 0;
 
 	do {
-		FPGA_GET_REG(info->fpga, mdio.control, &val);
+		val = read_control(info);
 		udelay(100);
 		if (ctr++ > 10)
 			return -1;
@@ -43,13 +71,13 @@ static int ihs_mdio_read(struct mii_dev *bus, int addr, int dev_addr,
 
 	ihs_mdio_idle(bus);
 
-	FPGA_SET_REG(info->fpga, mdio.control,
-		     ((addr & 0x1f) << 5) | (regnum & 0x1f) | (2 << 10));
+	write_control(info,
+		      ((addr & 0x1f) << 5) | (regnum & 0x1f) | (2 << 10));
 
 	/* wait for rx data available */
 	udelay(100);
 
-	FPGA_GET_REG(info->fpga, mdio.rx_data, &val);
+	val = read_rx_data(info);
 
 	return val;
 }
@@ -61,9 +89,8 @@ static int ihs_mdio_write(struct mii_dev *bus, int addr, int dev_addr,
 
 	ihs_mdio_idle(bus);
 
-	FPGA_SET_REG(info->fpga, mdio.address_data, value);
-	FPGA_SET_REG(info->fpga, mdio.control,
-		     ((addr & 0x1f) << 5) | (regnum & 0x1f) | (1 << 10));
+	write_addr_data(info, value);
+	write_control(info, ((addr & 0x1f) << 5) | (regnum & 0x1f) | (1 << 10));
 
 	return 0;
 }
-- 
2.16.1

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

end of thread, other threads:[~2018-05-09  1:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-27 12:52 [U-Boot] [PATCH v2 1/2] ihs_mdio: Encapsulate register access Mario Six
2018-04-27 12:52 ` [U-Boot] [PATCH v2 2/2] ihs_mdio: Make DM-compatible Mario Six
2018-05-09  1:31   ` [U-Boot] [U-Boot,v2,2/2] " Tom Rini
2018-05-09  1:30 ` [U-Boot] [U-Boot,v2,1/2] ihs_mdio: Encapsulate register access Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.