aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMicky Ching <micky_ching@realsil.com.cn>2014-12-05 13:54:26 +0800
committerLee Jones <lee.jones@linaro.org>2014-12-08 10:05:39 +0000
commita3b63979f8a32af9e975a793fd0f612d42072740 (patch)
tree8500a941a9118723082fd8efd1b4936da20f5669
parentmfd: atmel-hlcdc: Add Kconfig option description and name (diff)
downloadlinux-dev-a3b63979f8a32af9e975a793fd0f612d42072740.tar.xz
linux-dev-a3b63979f8a32af9e975a793fd0f612d42072740.zip
mfd: rtsx: Add func to split u32 into register
Add helper function to write u32 to registers, if we want to put u32 value to 4 continuous register, this can help us reduce tedious work. Signed-off-by: Micky Ching <micky_ching@realsil.com.cn> Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r--include/linux/mfd/rtsx_pci.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/mfd/rtsx_pci.h b/include/linux/mfd/rtsx_pci.h
index 1604dda4edcf..0c12628e91c6 100644
--- a/include/linux/mfd/rtsx_pci.h
+++ b/include/linux/mfd/rtsx_pci.h
@@ -558,6 +558,7 @@
#define SD_SAMPLE_POINT_CTL 0xFDA7
#define SD_PUSH_POINT_CTL 0xFDA8
#define SD_CMD0 0xFDA9
+#define SD_CMD_START 0x40
#define SD_CMD1 0xFDAA
#define SD_CMD2 0xFDAB
#define SD_CMD3 0xFDAC
@@ -995,4 +996,12 @@ static inline int rtsx_pci_update_cfg_byte(struct rtsx_pcr *pcr, int addr,
return pci_write_config_byte(pcr->pci, addr, (val & mask) | append);
}
+static inline void rtsx_pci_write_be32(struct rtsx_pcr *pcr, u16 reg, u32 val)
+{
+ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg, 0xFF, val >> 24);
+ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 1, 0xFF, val >> 16);
+ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 2, 0xFF, val >> 8);
+ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 3, 0xFF, val);
+}
+
#endif