|
@@ -1100,6 +1100,118 @@
|
|
|
UNIPERIF_DBG_STANDBY_LEFT_SP_SHIFT(ip), \
|
|
|
UNIPERIF_DBG_STANDBY_LEFT_SP_MASK(ip), value)
|
|
|
|
|
|
+/*
|
|
|
+ * UNIPERIF_TDM_ENABLE
|
|
|
+ */
|
|
|
+#define UNIPERIF_TDM_ENABLE_OFFSET(ip) 0x0118
|
|
|
+#define GET_UNIPERIF_TDM_ENABLE(ip) \
|
|
|
+ readl_relaxed(ip->base + UNIPERIF_TDM_ENABLE_OFFSET(ip))
|
|
|
+#define SET_UNIPERIF_TDM_ENABLE(ip, value) \
|
|
|
+ writel_relaxed(value, ip->base + UNIPERIF_TDM_ENABLE_OFFSET(ip))
|
|
|
+
|
|
|
+/* TDM_ENABLE */
|
|
|
+#define UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip) 0x0
|
|
|
+#define UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip) 0x1
|
|
|
+#define GET_UNIPERIF_TDM_ENABLE_EN_TDM(ip) \
|
|
|
+ GET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_ENABLE_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip))
|
|
|
+#define SET_UNIPERIF_TDM_ENABLE_TDM_ENABLE(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_ENABLE_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip), 1)
|
|
|
+#define SET_UNIPERIF_TDM_ENABLE_TDM_DISABLE(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_ENABLE_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip), 0)
|
|
|
+
|
|
|
+/*
|
|
|
+ * UNIPERIF_TDM_FS_REF_FREQ
|
|
|
+ */
|
|
|
+#define UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip) 0x011c
|
|
|
+#define GET_UNIPERIF_TDM_FS_REF_FREQ(ip) \
|
|
|
+ readl_relaxed(ip->base + UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_FREQ(ip, value) \
|
|
|
+ writel_relaxed(value, ip->base + \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip))
|
|
|
+
|
|
|
+/* REF_FREQ */
|
|
|
+#define UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip) 0x0
|
|
|
+#define VALUE_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip) 0
|
|
|
+#define VALUE_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip) 1
|
|
|
+#define VALUE_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip) 2
|
|
|
+#define VALUE_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip) 3
|
|
|
+#define UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip) 0x3
|
|
|
+#define GET_UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ(ip) \
|
|
|
+ GET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \
|
|
|
+ VALUE_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \
|
|
|
+ VALUE_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \
|
|
|
+ VALUE_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \
|
|
|
+ VALUE_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip))
|
|
|
+
|
|
|
+/*
|
|
|
+ * UNIPERIF_TDM_FS_REF_DIV
|
|
|
+ */
|
|
|
+#define UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip) 0x0120
|
|
|
+#define GET_UNIPERIF_TDM_FS_REF_DIV(ip) \
|
|
|
+ readl_relaxed(ip->base + UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_DIV(ip, value) \
|
|
|
+ writel_relaxed(value, ip->base + \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip))
|
|
|
+
|
|
|
+/* NUM_TIMESLOT */
|
|
|
+#define UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip) 0x0
|
|
|
+#define UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip) 0xff
|
|
|
+#define GET_UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT(ip) \
|
|
|
+ GET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip))
|
|
|
+#define SET_UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT(ip, value) \
|
|
|
+ SET_UNIPERIF_REG(ip, \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip), \
|
|
|
+ UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip), value)
|
|
|
+
|
|
|
+/*
|
|
|
+ * UNIPERIF_TDM_WORD_POS_X_Y
|
|
|
+ * 32 bits of UNIPERIF_TDM_WORD_POS_X_Y register shall be set in 1 shot
|
|
|
+ */
|
|
|
+#define UNIPERIF_TDM_WORD_POS_1_2_OFFSET(ip) 0x013c
|
|
|
+#define UNIPERIF_TDM_WORD_POS_3_4_OFFSET(ip) 0x0140
|
|
|
+#define UNIPERIF_TDM_WORD_POS_5_6_OFFSET(ip) 0x0144
|
|
|
+#define UNIPERIF_TDM_WORD_POS_7_8_OFFSET(ip) 0x0148
|
|
|
+#define GET_UNIPERIF_TDM_WORD_POS(ip, words) \
|
|
|
+ readl_relaxed(ip->base + UNIPERIF_TDM_WORD_POS_##words##_OFFSET(ip))
|
|
|
+#define SET_UNIPERIF_TDM_WORD_POS(ip, words, value) \
|
|
|
+ writel_relaxed(value, ip->base + \
|
|
|
+ UNIPERIF_TDM_WORD_POS_##words##_OFFSET(ip))
|
|
|
/*
|
|
|
* uniperipheral IP capabilities
|
|
|
*/
|