aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2014-05-25 06:42:43 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2014-05-25 06:42:43 +0000
commit3bee4e7bdbd998cb439e71902f199e79706e0e22 (patch)
tree77c91cd90d38b87358a0f5ba13713ab0e5707c5b /sys/dev/usb
parentec5d37f4f5deb7ec123d9c9cdbc0b37a6d66688b (diff)
Notes
Diffstat (limited to 'sys/dev/usb')
-rw-r--r--sys/dev/usb/controller/saf1761_otg.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/sys/dev/usb/controller/saf1761_otg.h b/sys/dev/usb/controller/saf1761_otg.h
index de3d51ffb280..9b19d3c965c3 100644
--- a/sys/dev/usb/controller/saf1761_otg.h
+++ b/sys/dev/usb/controller/saf1761_otg.h
@@ -40,19 +40,27 @@
#define SOTG_DEVICE_PORT_NUM 2
#define SOTG_HOST_CHANNEL_MAX (3 * 32)
-#define SAF1761_READ_1(sc, reg) \
- bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, reg)
-#define SAF1761_READ_2(sc, reg) \
- bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, reg)
-#define SAF1761_READ_4(sc, reg) \
- bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg)
+/* Macros used for reading and writing registers */
+
+#define SAF1761_READ_1(sc, reg) \
+ bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg))
+#define SAF1761_READ_2(sc, reg) ({ uint16_t _temp; \
+ _temp = bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg)); \
+ le16toh(_temp); })
+#define SAF1761_READ_4(sc, reg) ({ uint32_t _temp; \
+ _temp = bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg)); \
+ le32toh(_temp); })
#define SAF1761_WRITE_1(sc, reg, data) \
- bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data)
-#define SAF1761_WRITE_2(sc, reg, data) \
- bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data)
-#define SAF1761_WRITE_4(sc, reg, data) \
- bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data)
+ bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg), data)
+#define SAF1761_WRITE_2(sc, reg, data) do { \
+ uint16_t _temp = (data); \
+ bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg), htole16(_temp)); \
+} while (0)
+#define SAF1761_WRITE_4(sc, reg, data) do { \
+ uint32_t _temp = (data); \
+ bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (reg), htole32(_temp)); \
+} while (0)
struct saf1761_otg_softc;
struct saf1761_otg_td;