summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoe Rubinstein <nrubinstein@proformatique.com>2010-10-14 10:17:27 +0200
committerNoe Rubinstein <nrubinstein@proformatique.com>2010-10-14 10:17:27 +0200
commit3457e54068b631c54d17984b40729a23e4ca70f4 (patch)
tree0ca7b5b616ae7b1c7a548465abb10ded7d5faf87
parentc13b79002ca4cc044c024af337c4ae42be022513 (diff)
parent131aad6ae9a6eaed89e6c969481e23c75976cf95 (diff)
Merge branch 'master' of hard:git/drivers
-rw-r--r--xhfc/Makefile2
-rw-r--r--xhfc/xhfc.c141
-rw-r--r--xhfc/xhfc.h2
-rw-r--r--xhfc/xhfc24sucd.h1502
-rw-r--r--xhfc/xhfc_leb.h7
-rw-r--r--xhfc/xhfc_timers_state.c2
6 files changed, 825 insertions, 831 deletions
diff --git a/xhfc/Makefile b/xhfc/Makefile
index 1fcbd69..6644ad6 100644
--- a/xhfc/Makefile
+++ b/xhfc/Makefile
@@ -2,7 +2,7 @@ PWD := $(shell pwd)
KSRC ?= /bad__ksrc__not_set
DAHDI_INCLUDE ?= /bad__dahdi_include__not_set
-CFLAGS_MODULE += -I$(DAHDI_INCLUDE)
+CFLAGS_MODULE += -I$(DAHDI_INCLUDE) -DUSE_GPIO
obj-m := xhfcdm.o
diff --git a/xhfc/xhfc.c b/xhfc/xhfc.c
index 59db3f2..4e6ea63 100644
--- a/xhfc/xhfc.c
+++ b/xhfc/xhfc.c
@@ -24,18 +24,16 @@ int exit_after_reset = 0;
uint ntte = 0x3;
#ifdef USE_GPIO
-static uint reset_gpio = 33;
+static uint reset_gpio = 21;
#endif
int softconf = 0;
-int sync_source = 2;
module_param(debug, uint, S_IRUGO | S_IWUSR);
module_param(dbg_spanfilter, uint, S_IRUGO | S_IWUSR);
module_param(softconf, bool, S_IRUGO);
module_param(ntte, uint, S_IRUGO);
module_param(exit_after_reset, bool, S_IRUGO);
-module_param(sync_source, uint, S_IRUGO);
#ifdef USE_GPIO
module_param(reset_gpio, uint, S_IRUGO);
#endif
@@ -57,7 +55,6 @@ MODULE_PARM_DESC(softconf, "Configure the S/T port line interface in software.")
MODULE_PARM_DESC(reset_gpio, "Reset the XHFC using this GPIO");
#endif
MODULE_PARM_DESC(exit_after_reset, "Exit after hard reset");
-MODULE_PARM_DESC(sync_source, "Port used as a sync source for the PCM clock.");
void xhfc_waitbusy(struct xhfc *xhfc)
{
@@ -96,8 +93,10 @@ int xhfc_reset(struct xhfc *xhfc)
write_xhfc(xhfc, R_CIRM, 0);
while ((read_xhfc(xhfc, R_STATUS) & (M_BUSY | M_PCM_INIT))
- && (timeout))
+ && (timeout)) {
timeout--;
+ cpu_relax();
+ }
if (!(timeout)) {
printk(KERN_ERR
@@ -128,13 +127,18 @@ void xhfc_config_st(struct xhfc *x, int port, int nt)
write_xhfc(x, R_SU_SEL, r_su_sel);
xhfc_waitbusy(x);
- write_xhfc(x, A_SU_CTRL0, a_su_ctrl0);
+ write_xhfc(x, A_SU_CTRL0, a_su_ctrl0); /* XXX V_B1_TX_EN V_B2_TX_EN */
write_xhfc(x, A_SU_CTRL1, a_su_ctrl1);
write_xhfc(x, A_SU_CLK_DLY, a_su_clk_dly);
write_xhfc(x, A_SU_WR_STA, a_su_wr_sta);
xhfc_waitbusy(x);
+
+ /* XXX also in A_SU_CTRL2: V_B1_RX_EN V_B2_RX_EN */
}
+/* 2 MBit/s (C4IO is 4.096 MHz, 32 time slots): */
+#define V_PCM_DR_2M 0x00
+
/* 4 MBit/s (C4IO is 8.192 MHz, 64 time slots): */
#define V_PCM_DR_4M 0x10
@@ -145,44 +149,29 @@ void xhfc_config_st(struct xhfc *x, int port, int nt)
*/
int xhfc_config_pcm(struct xhfc *xhfc, int master_or_slave)
{
- u8 r_su_sel1 = 0x00, r_su_sync = 0x00;
+ u8 r_pcm_md0 = 0;
- SET_V_F0_LEN(xhfc->r_pcm_md0, 1);
+ SET_V_F0_LEN(r_pcm_md0, 1);
- write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(xhfc->r_pcm_md0, 0x9));
+ write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(r_pcm_md0, 0x9));
/* use slow PCM clock adjust speed */
- write_xhfc(xhfc, R_PCM_MD1, M_PLL_ADJ | M_PCM_OD | V_PCM_DR_4M);
-
- write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(xhfc->r_pcm_md0, 0xC));
- /* define frame sync shape0 low byte */
- write_xhfc(xhfc, R_SH0L, 0x7f);
-
- write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(xhfc->r_pcm_md0, 0xD));
- /* define frame sync shape0 high byte */
- write_xhfc(xhfc, R_SH0H, 0xfe);
-
- write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(xhfc->r_pcm_md0, 0x1));
- /* enable frame signal with shape0 timing
- * for F1_1 pin on time slot 0 for 4MBit PCM */
- write_xhfc(xhfc, R_SL_SEL1, SET_V_SH_SEL1(r_su_sel1, 0) | 0x3f);
+ write_xhfc(xhfc, R_PCM_MD1, M_PLL_ADJ | M_PCM_OD | V_PCM_DR_2M);
if (master_or_slave == XHFC_PCM_MASTER) {
write_xhfc(xhfc, R_PCM_MD0,
- SET_V_PCM_IDX(xhfc->r_pcm_md0, 0xA));
+ SET_V_PCM_IDX(r_pcm_md0, 0xA));
/* enable PCM bit clk for C2O pin */
write_xhfc(xhfc, R_PCM_MD2, M_C2O_EN);
} else {
write_xhfc(xhfc, R_PCM_MD0,
- SET_V_PCM_IDX(xhfc->r_pcm_md0, 0xA));
+ SET_V_PCM_IDX(r_pcm_md0, 0xA));
write_xhfc(xhfc, R_PCM_MD2, M_C2I_EN);
}
- write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(xhfc->r_pcm_md0, 0x0));
-
- /* port 0 as sysnc source for PCM
- * with port 0 in NT mode or as deactivated TE
- * PCM clock becomes free running */
- write_xhfc(xhfc, R_SU_SYNC, SET_V_SYNC_SEL(r_su_sync, sync_source));
+ /* this could maybe be done sooner, but right now I'm limiting
+ * the number of changes */
+ write_xhfc(xhfc, R_PCM_MD0, SET_V_PCM_IDX(r_pcm_md0, 0x0)
+ | M_PCM_MD | M_C4_POL);
return 0;
}
@@ -226,12 +215,12 @@ void xhfc_config_d_chan_on_fifo(struct xhfc *x, int fifo, int direction)
SET_V_HDLC_TRP(a_con_hdlc, 0); /* HDLC mode */
SET_V_FIFO_IRQ(a_con_hdlc, 7); /* FIFO & IRQ enabled */
SET_V_CH_FNUM(a_channel, fifo); /* chan number */
- SET_V_BIT_CNT(a_subch_cfg, 2); /* only two bytes read or written */
+ SET_V_BIT_CNT(a_subch_cfg, 2); /* only two bits read or written */
SET_V_RES_FIFO(a_inc_res_fifo, 1); /* reset FIFO */
SET_V_RES_LOST(a_inc_res_fifo, 1); /* reset FIFO */
SET_V_RES_FIFO_ERR(a_inc_res_fifo, 1); /* reset FIFO */
- SET_V_DATA_FLOW(a_con_hdlc, 0); /* FIFO -> ST/Up */
+ SET_V_DATA_FLOW(a_con_hdlc, 0); /* FIFO <-> ST/Up */
SET_V_FIFO_DIR(r_fifo, direction);
SET_V_CH_FDIR(a_channel, direction);
@@ -252,12 +241,14 @@ void xhfc_config_b_chan_on_fifo(struct xhfc *x, int fifo, int slot, int directio
SET_V_FIFO_DIR(r_fifo, direction);
SET_V_FIFO_NUM(r_fifo, fifo);
- SET_V_REV(r_fifo, 0);
+ SET_V_REV(r_fifo, 0); /* XXX should not this be 1 for transp mode? */
+ /* if the fifo is not really used, maybe it's */
+ /* "don't care" */
- SET_V_IFF(a_con_hdlc, 0); /* Ox7E as interframe fill */
+ SET_V_IFF(a_con_hdlc, 0); /* Ox7E as interframe fill -- not really used */
SET_V_HDLC_TRP(a_con_hdlc, 1); /* transparent mode */
SET_V_FIFO_IRQ(a_con_hdlc, 7); /* enable data transmission */
- SET_V_DATA_FLOW(a_con_hdlc, 6); /* '110': ST -> PCM */
+ SET_V_DATA_FLOW(a_con_hdlc, 6); /* '110': ST <-> PCM */
SET_V_SL_DIR(r_slot, direction);
SET_V_SL_NUM(r_slot, slot);
@@ -286,7 +277,6 @@ void xhfc_config_data_flow(struct xhfc* x)
xhfc_config_d_chan_on_fifo(x, i * 4 + 2, TRANSMIT);
xhfc_config_d_chan_on_fifo(x, i * 4 + 2, RECEIVE);
}
- // NEVAR FORG3T 4 8 15 16 23 42
}
/**
@@ -585,37 +575,37 @@ irqreturn_t xhfc_interrupt(int irq, void *dev_id, struct pt_regs* ptregs)
/* reset IRQ source */
misc_irq = read_xhfc(xhfc, R_MISC_IRQ);
- /* check for Timer IRQ */
- if (misc_irq & M_TI_IRQMSK)
- xhfc->ticks++;
-
- for (i = 0; i < SPANS_PER_CHIP; i++) {
- struct xhfc_span* s = &xhfc->spans[i];
+ if (xhfc->running) {
+ /* check for Timer IRQ */
+ if (misc_irq & M_TI_IRQMSK)
+ xhfc->ticks++;
+ for (i = 0; i < SPANS_PER_CHIP; i++) {
+ struct xhfc_span* s = &xhfc->spans[i];
- if (s->running && s->sigchan) {
- /* No need to loop here, no need to rx/tx more than one
- * HDLC frame per millisecond. */
- hdlc_rx_frame(s);
- if (atomic_read(&s->hdlc_pending))
- hdlc_tx_frame(s);
+ if (s->running && s->sigchan) {
+ /* No need to loop here, no need to rx/tx
+ * more than one HDLC frame per millisecond. */
+ hdlc_rx_frame(s);
+ if (atomic_read(&s->hdlc_pending))
+ hdlc_tx_frame(s);
#if 0 // Why is this commented out? XXX
- dahdi_receive(&s->span);
- dahdi_transmit(&s->span);
- dahdi_ec_span(&s->span);
+ dahdi_receive(&s->span);
+ dahdi_transmit(&s->span);
+ dahdi_ec_span(&s->span);
#endif
+ }
}
- }
+ r_su_irq = read_xhfc(xhfc, R_SU_IRQ);
- r_su_irq = read_xhfc(xhfc, R_SU_IRQ);
+ for (i = 0; i < ARRAY_SIZE(xhfc->spans); i++)
+ if (r_su_irq & (1 << i) || 2 == xhfc->ticks /* bootstrap XXX*/)
+ hfc_handle_state(&xhfc->spans[i]); // BOOM (recursion + GFP_KERNEL allocs there)
- for (i = 0; i < ARRAY_SIZE(xhfc->spans); i++)
- if (r_su_irq & (1 << i) || 2 == xhfc->ticks /* bootstrap XXX*/)
- hfc_handle_state(&xhfc->spans[i]);
-
- hfc_update_st_timers(xhfc);
+ hfc_update_st_timers(xhfc);
+ }
return IRQ_HANDLED;
}
@@ -627,8 +617,12 @@ irqreturn_t xhfc_interrupt(int irq, void *dev_id, struct pt_regs* ptregs)
static void disable_interrupts(struct xhfc * xhfc)
{
printk(KERN_INFO "%s %s\n", xhfc->name, __FUNCTION__);
- xhfc->running = 0;
+
write_xhfc(xhfc, R_IRQ_CTRL, 0);
+ read_xhfc(xhfc, R_CHIP_ID);
+ mb();
+
+ set_mb(xhfc->running, 0);
}
@@ -639,12 +633,10 @@ static void enable_interrupts(struct xhfc * xhfc)
{
printk(KERN_INFO "%s %s\n", xhfc->name, __FUNCTION__);
- xhfc->running = 1;
-
- /* set PCM master mode */
- write_xhfc(xhfc, R_PCM_MD0, M_PCM_MD | M_C4_POL | xhfc->r_pcm_md0);
+ set_mb(xhfc->running, 1);
- write_xhfc(xhfc, R_TI_WD, 0x02); // timer interrupt every 1 ms
+ /* timer interrupt every 1 ms */
+ write_xhfc(xhfc, R_TI_WD, 0x02);
write_xhfc(xhfc, R_MISC_IRQMSK, M_TI_IRQMSK);
/* clear all pending interrupts bits */
@@ -730,10 +722,11 @@ int xhfc_span_startup(struct dahdi_span* span)
{
struct xhfc_span *xhfc_span = container_of(span, struct xhfc_span, span);
struct xhfc *x = xhfc_span->xhfc;
+
if (!x->running)
enable_interrupts(x);
- xhfc_span->running = 1;
+ set_mb(xhfc_span->running, 1);
return 0;
}
@@ -741,7 +734,8 @@ int xhfc_span_startup(struct dahdi_span* span)
int xhfc_span_shutdown(struct dahdi_span* span)
{
struct xhfc_span *xhfc_span = container_of(span, struct xhfc_span, span);
- xhfc_span->running = 0;
+ set_mb(xhfc_span->running, 0);
+ /* XXX should not this be synchronous? */
return 0;
}
@@ -800,8 +794,6 @@ int xhfc_spanconfig(struct dahdi_span *span, struct dahdi_lineconfig *lc)
return 0;
}
-/* chanconfig for us means to configure the HDLC controller, if appropriate
- */
int xhfc_chanconfig(struct dahdi_chan *chan, int sigtype)
{
int alreadyrunning;
@@ -851,12 +843,7 @@ int xhfc_chanconfig(struct dahdi_chan *chan, int sigtype)
static int xhfc_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long data)
{
- switch (cmd) {
- default:
- return -ENOTTY;
- }
-
- return 0;
+ return -ENOTTY;
}
/************************************************************************
@@ -1054,14 +1041,12 @@ int __devinit xhfc_init_one(struct pci_dev *pdev,
/* init interrupt engine */
rc = pi->irq = acpi_register_gsi(
- IRQ_TLP_GPIO_30,
+ IRQ_TLP_GPIO_24,
ACPI_LEVEL_SENSITIVE,
ACPI_ACTIVE_LOW);
if (rc < 0)
goto err_acpi_register;
- pi->xhfc.r_pcm_md0 = 0;
-
/********
* test *
diff --git a/xhfc/xhfc.h b/xhfc/xhfc.h
index e713477..53c99bc 100644
--- a/xhfc/xhfc.h
+++ b/xhfc/xhfc.h
@@ -128,8 +128,6 @@ struct xhfc {
struct xhfc_span spans[SPANS_PER_CHIP];
- u8 r_pcm_md0;
-
/* from DAHDI */
int running;
unsigned long ticks;
diff --git a/xhfc/xhfc24sucd.h b/xhfc/xhfc24sucd.h
index 2a79477..d79fee1 100644
--- a/xhfc/xhfc24sucd.h
+++ b/xhfc/xhfc24sucd.h
@@ -32,6 +32,16 @@
* WARNING: This file has been generated automatically and should not be
* changed to maintain compatibility with later versions.
* __________________________________________________________________________________
+ *
+ * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+ *
+ * This file has been nevertheless changed by Proformatique:
+ * parentheses have been added around macro arguments in their definition.
+ *
+ * The following commands have been used (*NOT TO BE BLINDLY REUSED*):
+ * sed -i.bak -e 's/\b\([RV]\)\b\([^),]\)/(\1)\2/g' xhfc24sucd.h
+ * sed -i.bak2 -e 's/)V)/)(V))/' xhfc24sucd.h
+ * __________________________________________________________________________________
*/
#ifndef _XHFC24SUCD_H_
@@ -69,1916 +79,1916 @@
#define R_CIRM 0x00 // register address, write only
#define M_CLK_OFF 0x01 // mask bit 0
- #define SET_V_CLK_OFF(R,V) (R = (__u8)((R & (__u8)(M_CLK_OFF ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_CLK_OFF(R) (__u8)(R & M_CLK_OFF)
+ #define SET_V_CLK_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLK_OFF ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_CLK_OFF(R) (__u8)((R) & M_CLK_OFF)
#define M_WAIT_PROC 0x02 // mask bit 1
- #define SET_V_WAIT_PROC(R,V) (R = (__u8)((R & (__u8)(M_WAIT_PROC ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_WAIT_PROC(R) (__u8)((R & M_WAIT_PROC) >> 1)
+ #define SET_V_WAIT_PROC(R,V) ((R) = (__u8)(((R) & (__u8)(M_WAIT_PROC ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_WAIT_PROC(R) (__u8)(((R) & M_WAIT_PROC) >> 1)
#define M_WAIT_REG 0x04 // mask bit 2
- #define SET_V_WAIT_REG(R,V) (R = (__u8)((R & (__u8)(M_WAIT_REG ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_WAIT_REG(R) (__u8)((R & M_WAIT_REG) >> 2)
+ #define SET_V_WAIT_REG(R,V) ((R) = (__u8)(((R) & (__u8)(M_WAIT_REG ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_WAIT_REG(R) (__u8)(((R) & M_WAIT_REG) >> 2)
#define M_SRES 0x08 // mask bit 3
- #define SET_V_SRES(R,V) (R = (__u8)((R & (__u8)(M_SRES ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_SRES(R) (__u8)((R & M_SRES) >> 3)
+ #define SET_V_SRES(R,V) ((R) = (__u8)(((R) & (__u8)(M_SRES ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_SRES(R) (__u8)(((R) & M_SRES) >> 3)
#define M_HFC_RES 0x10 // mask bit 4
- #define SET_V_HFC_RES(R,V) (R = (__u8)((R & (__u8)(M_HFC_RES ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_HFC_RES(R) (__u8)((R & M_HFC_RES) >> 4)
+ #define SET_V_HFC_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_HFC_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_HFC_RES(R) (__u8)(((R) & M_HFC_RES) >> 4)
#define M_PCM_RES 0x20 // mask bit 5
- #define SET_V_PCM_RES(R,V) (R = (__u8)((R & (__u8)(M_PCM_RES ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_PCM_RES(R) (__u8)((R & M_PCM_RES) >> 5)
+ #define SET_V_PCM_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_PCM_RES(R) (__u8)(((R) & M_PCM_RES) >> 5)
#define M_SU_RES 0x40 // mask bit 6
- #define SET_V_SU_RES(R,V) (R = (__u8)((R & (__u8)(M_SU_RES ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_SU_RES(R) (__u8)((R & M_SU_RES) >> 6)
+ #define SET_V_SU_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_SU_RES(R) (__u8)(((R) & M_SU_RES) >> 6)
#define R_CTRL 0x01 // register address, write only
#define M_FIFO_LPRIO 0x02 // mask bit 1
- #define SET_V_FIFO_LPRIO(R,V) (R = (__u8)((R & (__u8)(M_FIFO_LPRIO ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_FIFO_LPRIO(R) (__u8)((R & M_FIFO_LPRIO) >> 1)
+ #define SET_V_FIFO_LPRIO(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_LPRIO ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_FIFO_LPRIO(R) (__u8)(((R) & M_FIFO_LPRIO) >> 1)
#define M_NT_SYNC 0x08 // mask bit 3
- #define SET_V_NT_SYNC(R,V) (R = (__u8)((R & (__u8)(M_NT_SYNC ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_NT_SYNC(R) (__u8)((R & M_NT_SYNC) >> 3)
+ #define SET_V_NT_SYNC(R,V) ((R) = (__u8)(((R) & (__u8)(M_NT_SYNC ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_NT_SYNC(R) (__u8)(((R) & M_NT_SYNC) >> 3)
#define M_OSC_OFF 0x20 // mask bit 5
- #define SET_V_OSC_OFF(R,V) (R = (__u8)((R & (__u8)(M_OSC_OFF ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_OSC_OFF(R) (__u8)((R & M_OSC_OFF) >> 5)
+ #define SET_V_OSC_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_OSC_OFF ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_OSC_OFF(R) (__u8)(((R) & M_OSC_OFF) >> 5)
#define M_SU_CLK 0xC0 // mask bits 6..7
- #define SET_V_SU_CLK(R,V) (R = (__u8)((R & (__u8)(M_SU_CLK ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_SU_CLK(R) (__u8)((R & M_SU_CLK) >> 6)
+ #define SET_V_SU_CLK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_CLK ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_SU_CLK(R) (__u8)(((R) & M_SU_CLK) >> 6)
#define R_CLK_CFG 0x02 // register address, write only
#define M_CLK_PLL 0x01 // mask bit 0
- #define SET_V_CLK_PLL(R,V) (R = (__u8)((R & (__u8)(M_CLK_PLL ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_CLK_PLL(R) (__u8)(R & M_CLK_PLL)
+ #define SET_V_CLK_PLL(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLK_PLL ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_CLK_PLL(R) (__u8)((R) & M_CLK_PLL)
#define M_CLKO_HI 0x02 // mask bit 1
- #define SET_V_CLKO_HI(R,V) (R = (__u8)((R & (__u8)(M_CLKO_HI ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_CLKO_HI(R) (__u8)((R & M_CLKO_HI) >> 1)
+ #define SET_V_CLKO_HI(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLKO_HI ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_CLKO_HI(R) (__u8)(((R) & M_CLKO_HI) >> 1)
#define M_CLKO_PLL 0x04 // mask bit 2
- #define SET_V_CLKO_PLL(R,V) (R = (__u8)((R & (__u8)(M_CLKO_PLL ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_CLKO_PLL(R) (__u8)((R & M_CLKO_PLL) >> 2)
+ #define SET_V_CLKO_PLL(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLKO_PLL ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_CLKO_PLL(R) (__u8)(((R) & M_CLKO_PLL) >> 2)
#define M_PCM_CLK 0x20 // mask bit 5
- #define SET_V_PCM_CLK(R,V) (R = (__u8)((R & (__u8)(M_PCM_CLK ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_PCM_CLK(R) (__u8)((R & M_PCM_CLK) >> 5)
+ #define SET_V_PCM_CLK(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_CLK ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_PCM_CLK(R) (__u8)(((R) & M_PCM_CLK) >> 5)
#define M_CLKO_OFF 0x40 // mask bit 6
- #define SET_V_CLKO_OFF(R,V) (R = (__u8)((R & (__u8)(M_CLKO_OFF ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_CLKO_OFF(R) (__u8)((R & M_CLKO_OFF) >> 6)
+ #define SET_V_CLKO_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLKO_OFF ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_CLKO_OFF(R) (__u8)(((R) & M_CLKO_OFF) >> 6)
#define M_CLK_F1 0x80 // mask bit 7
- #define SET_V_CLK_F1(R,V) (R = (__u8)((R & (__u8)(M_CLK_F1 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_CLK_F1(R) (__u8)((R & M_CLK_F1) >> 7)
+ #define SET_V_CLK_F1(R,V) ((R) = (__u8)(((R) & (__u8)(M_CLK_F1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_CLK_F1(R) (__u8)(((R) & M_CLK_F1) >> 7)
#define A_Z1 0x04 // register address, read only
#define M_Z1 0xFF // mask bits 0..7
- #define GET_V_Z1(R) (__u8)(R & M_Z1)
+ #define GET_V_Z1(R) (__u8)((R) & M_Z1)
#define A_Z2 0x06 // register address, read only
#define M_Z2 0xFF // mask bits 0..7
- #define GET_V_Z2(R) (__u8)(R & M_Z2)
+ #define GET_V_Z2(R) (__u8)((R) & M_Z2)
#define R_RAM_ADDR 0x08 // register address, write only
#define M_RAM_ADDR0 0xFF // mask bits 0..7
- #define SET_V_RAM_ADDR0(R,V) (R = (__u8)((R & (__u8)(M_RAM_ADDR0 ^ 0xFF)) | (__u8)V))
- #define GET_V_RAM_ADDR0(R) (__u8)(R & M_RAM_ADDR0)
+ #define SET_V_RAM_ADDR0(R,V) ((R) = (__u8)(((R) & (__u8)(M_RAM_ADDR0 ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_RAM_ADDR0(R) (__u8)((R) & M_RAM_ADDR0)
#define R_RAM_CTRL 0x09 // register address, write only
#define M_RAM_ADDR1 0x0F // mask bits 0..3
- #define SET_V_RAM_ADDR1(R,V) (R = (__u8)((R & (__u8)(M_RAM_ADDR1 ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_RAM_ADDR1(R) (__u8)(R & M_RAM_ADDR1)
+ #define SET_V_RAM_ADDR1(R,V) ((R) = (__u8)(((R) & (__u8)(M_RAM_ADDR1 ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_RAM_ADDR1(R) (__u8)((R) & M_RAM_ADDR1)
#define M_ADDR_RES 0x40 // mask bit 6
- #define SET_V_ADDR_RES(R,V) (R = (__u8)((R & (__u8)(M_ADDR_RES ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_ADDR_RES(R) (__u8)((R & M_ADDR_RES) >> 6)
+ #define SET_V_ADDR_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_ADDR_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_ADDR_RES(R) (__u8)(((R) & M_ADDR_RES) >> 6)
#define M_ADDR_INC 0x80 // mask bit 7
- #define SET_V_ADDR_INC(R,V) (R = (__u8)((R & (__u8)(M_ADDR_INC ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_ADDR_INC(R) (__u8)((R & M_ADDR_INC) >> 7)
+ #define SET_V_ADDR_INC(R,V) ((R) = (__u8)(((R) & (__u8)(M_ADDR_INC ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_ADDR_INC(R) (__u8)(((R) & M_ADDR_INC) >> 7)
#define R_FIRST_FIFO 0x0B // register address, write only
#define M_FIRST_FIFO_DIR 0x01 // mask bit 0
- #define SET_V_FIRST_FIFO_DIR(R,V) (R = (__u8)((R & (__u8)(M_FIRST_FIFO_DIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_FIRST_FIFO_DIR(R) (__u8)(R & M_FIRST_FIFO_DIR)
+ #define SET_V_FIRST_FIFO_DIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIRST_FIFO_DIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_FIRST_FIFO_DIR(R) (__u8)((R) & M_FIRST_FIFO_DIR)
#define M_FIRST_FIFO_NUM 0x1E // mask bits 1..4
- #define SET_V_FIRST_FIFO_NUM(R,V) (R = (__u8)((R & (__u8)(M_FIRST_FIFO_NUM ^ 0xFF)) | (__u8)((V & 0x0F) << 1)))
- #define GET_V_FIRST_FIFO_NUM(R) (__u8)((R & M_FIRST_FIFO_NUM) >> 1)
+ #define SET_V_FIRST_FIFO_NUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIRST_FIFO_NUM ^ 0xFF)) | (__u8)(((V) & 0x0F) << 1)))
+ #define GET_V_FIRST_FIFO_NUM(R) (__u8)(((R) & M_FIRST_FIFO_NUM) >> 1)
#define R_FIFO_THRES 0x0C // register address, write only
#define M_THRES_TX 0x0F // mask bits 0..3
- #define SET_V_THRES_TX(R,V) (R = (__u8)((R & (__u8)(M_THRES_TX ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_THRES_TX(R) (__u8)(R & M_THRES_TX)
+ #define SET_V_THRES_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_THRES_TX ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_THRES_TX(R) (__u8)((R) & M_THRES_TX)
#define M_THRES_RX 0xF0 // mask bits 4..7
- #define SET_V_THRES_RX(R,V) (R = (__u8)((R & (__u8)(M_THRES_RX ^ 0xFF)) | (__u8)((V & 0x0F) << 4)))
- #define GET_V_THRES_RX(R) (__u8)((R & M_THRES_RX) >> 4)
+ #define SET_V_THRES_RX(R,V) ((R) = (__u8)(((R) & (__u8)(M_THRES_RX ^ 0xFF)) | (__u8)(((V) & 0x0F) << 4)))
+ #define GET_V_THRES_RX(R) (__u8)(((R) & M_THRES_RX) >> 4)
#define A_F1 0x0C // register address, read only
#define M_F1 0xFF // mask bits 0..7
- #define GET_V_F1(R) (__u8)(R & M_F1)
+ #define GET_V_F1(R) (__u8)((R) & M_F1)
#define R_FIFO_MD 0x0D // register address, write only
#define M_FIFO_MD 0x03 // mask bits 0..1
- #define SET_V_FIFO_MD(R,V) (R = (__u8)((R & (__u8)(M_FIFO_MD ^ 0xFF)) | (__u8)(V & 0x03)))
- #define GET_V_FIFO_MD(R) (__u8)(R & M_FIFO_MD)
+ #define SET_V_FIFO_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_MD ^ 0xFF)) | (__u8)((V) & 0x03)))
+ #define GET_V_FIFO_MD(R) (__u8)((R) & M_FIFO_MD)
#define M_DF_MD 0x0C // mask bits 2..3
- #define SET_V_DF_MD(R,V) (R = (__u8)((R & (__u8)(M_DF_MD ^ 0xFF)) | (__u8)((V & 0x03) << 2)))
- #define GET_V_DF_MD(R) (__u8)((R & M_DF_MD) >> 2)
+ #define SET_V_DF_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_DF_MD ^ 0xFF)) | (__u8)(((V) & 0x03) << 2)))
+ #define GET_V_DF_MD(R) (__u8)(((R) & M_DF_MD) >> 2)
#define M_UNIDIR_MD 0x10 // mask bit 4
- #define SET_V_UNIDIR_MD(R,V) (R = (__u8)((R & (__u8)(M_UNIDIR_MD ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_UNIDIR_MD(R) (__u8)((R & M_UNIDIR_MD) >> 4)
+ #define SET_V_UNIDIR_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_UNIDIR_MD ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_UNIDIR_MD(R) (__u8)(((R) & M_UNIDIR_MD) >> 4)
#define M_UNIDIR_RX 0x20 // mask bit 5
- #define SET_V_UNIDIR_RX(R,V) (R = (__u8)((R & (__u8)(M_UNIDIR_RX ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_UNIDIR_RX(R) (__u8)((R & M_UNIDIR_RX) >> 5)
+ #define SET_V_UNIDIR_RX(R,V) ((R) = (__u8)(((R) & (__u8)(M_UNIDIR_RX ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_UNIDIR_RX(R) (__u8)(((R) & M_UNIDIR_RX) >> 5)
#define A_F2 0x0D // register address, read only
#define M_F2 0xFF // mask bits 0..7
- #define GET_V_F2(R) (__u8)(R & M_F2)
+ #define GET_V_F2(R) (__u8)((R) & M_F2)
#define A_INC_RES_FIFO 0x0E // register address, write only
#define M_INC_F 0x01 // mask bit 0
- #define SET_V_INC_F(R,V) (R = (__u8)((R & (__u8)(M_INC_F ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_INC_F(R) (__u8)(R & M_INC_F)
+ #define SET_V_INC_F(R,V) ((R) = (__u8)(((R) & (__u8)(M_INC_F ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_INC_F(R) (__u8)((R) & M_INC_F)
#define M_RES_FIFO 0x02 // mask bit 1
- #define SET_V_RES_FIFO(R,V) (R = (__u8)((R & (__u8)(M_RES_FIFO ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_RES_FIFO(R) (__u8)((R & M_RES_FIFO) >> 1)
+ #define SET_V_RES_FIFO(R,V) ((R) = (__u8)(((R) & (__u8)(M_RES_FIFO ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_RES_FIFO(R) (__u8)(((R) & M_RES_FIFO) >> 1)
#define M_RES_LOST 0x04 // mask bit 2
- #define SET_V_RES_LOST(R,V) (R = (__u8)((R & (__u8)(M_RES_LOST ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_RES_LOST(R) (__u8)((R & M_RES_LOST) >> 2)
+ #define SET_V_RES_LOST(R,V) ((R) = (__u8)(((R) & (__u8)(M_RES_LOST ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_RES_LOST(R) (__u8)(((R) & M_RES_LOST) >> 2)
#define M_RES_FIFO_ERR 0x08 // mask bit 3
- #define SET_V_RES_FIFO_ERR(R,V) (R = (__u8)((R & (__u8)(M_RES_FIFO_ERR ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_RES_FIFO_ERR(R) (__u8)((R & M_RES_FIFO_ERR) >> 3)
+ #define SET_V_RES_FIFO_ERR(R,V) ((R) = (__u8)(((R) & (__u8)(M_RES_FIFO_ERR ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_RES_FIFO_ERR(R) (__u8)(((R) & M_RES_FIFO_ERR) >> 3)
#define A_FIFO_STA 0x0E // register address, read only
#define M_FIFO_ERR 0x01 // mask bit 0
- #define GET_V_FIFO_ERR(R) (__u8)(R & M_FIFO_ERR)
+ #define GET_V_FIFO_ERR(R) (__u8)((R) & M_FIFO_ERR)
#define M_ABO_DONE 0x10 // mask bit 4
- #define GET_V_ABO_DONE(R) (__u8)((R & M_ABO_DONE) >> 4)
+ #define GET_V_ABO_DONE(R) (__u8)(((R) & M_ABO_DONE) >> 4)
#define R_FSM_IDX 0x0F // register address, write only
#define M_IDX 0x1F // mask bits 0..4
- #define SET_V_IDX(R,V) (R = (__u8)((R & (__u8)(M_IDX ^ 0xFF)) | (__u8)(V & 0x1F)))
- #define GET_V_IDX(R) (__u8)(R & M_IDX)
+ #define SET_V_IDX(R,V) ((R) = (__u8)(((R) & (__u8)(M_IDX ^ 0xFF)) | (__u8)((V) & 0x1F)))
+ #define GET_V_IDX(R) (__u8)((R) & M_IDX)
#define R_FIFO 0x0F // register address, write only
#define M_FIFO_DIR 0x01 // mask bit 0
- #define SET_V_FIFO_DIR(R,V) (R = (__u8)((R & (__u8)(M_FIFO_DIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_FIFO_DIR(R) (__u8)(R & M_FIFO_DIR)
+ #define SET_V_FIFO_DIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_DIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_FIFO_DIR(R) (__u8)((R) & M_FIFO_DIR)
#define M_FIFO_NUM 0x1E // mask bits 1..4
- #define SET_V_FIFO_NUM(R,V) (R = (__u8)((R & (__u8)(M_FIFO_NUM ^ 0xFF)) | (__u8)((V & 0x0F) << 1)))
- #define GET_V_FIFO_NUM(R) (__u8)((R & M_FIFO_NUM) >> 1)
+ #define SET_V_FIFO_NUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_NUM ^ 0xFF)) | (__u8)(((V) & 0x0F) << 1)))
+ #define GET_V_FIFO_NUM(R) (__u8)(((R) & M_FIFO_NUM) >> 1)
#define M_REV 0x80 // mask bit 7
- #define SET_V_REV(R,V) (R = (__u8)((R & (__u8)(M_REV ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_REV(R) (__u8)((R & M_REV) >> 7)
+ #define SET_V_REV(R,V) ((R) = (__u8)(((R) & (__u8)(M_REV ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_REV(R) (__u8)(((R) & M_REV) >> 7)
#define R_SLOT 0x10 // register address, write only
#define M_SL_DIR 0x01 // mask bit 0
- #define SET_V_SL_DIR(R,V) (R = (__u8)((R & (__u8)(M_SL_DIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_SL_DIR(R) (__u8)(R & M_SL_DIR)
+ #define SET_V_SL_DIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_SL_DIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_SL_DIR(R) (__u8)((R) & M_SL_DIR)
#define M_SL_NUM 0xFE // mask bits 1..7
- #define SET_V_SL_NUM(R,V) (R = (__u8)((R & (__u8)(M_SL_NUM ^ 0xFF)) | (__u8)((V & 0x7F) << 1)))
- #define GET_V_SL_NUM(R) (__u8)((R & M_SL_NUM) >> 1)
+ #define SET_V_SL_NUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_SL_NUM ^ 0xFF)) | (__u8)(((V) & 0x7F) << 1)))
+ #define GET_V_SL_NUM(R) (__u8)(((R) & M_SL_NUM) >> 1)
#define R_IRQ_OVIEW 0x10 // register address, read only
#define M_FIFO_BL0_IRQ 0x01 // mask bit 0
- #define GET_V_FIFO_BL0_IRQ(R) (__u8)(R & M_FIFO_BL0_IRQ)
+ #define GET_V_FIFO_BL0_IRQ(R) (__u8)((R) & M_FIFO_BL0_IRQ)
#define M_FIFO_BL1_IRQ 0x02 // mask bit 1
- #define GET_V_FIFO_BL1_IRQ(R) (__u8)((R & M_FIFO_BL1_IRQ) >> 1)
+ #define GET_V_FIFO_BL1_IRQ(R) (__u8)(((R) & M_FIFO_BL1_IRQ) >> 1)
#define M_FIFO_BL2_IRQ 0x04 // mask bit 2
- #define GET_V_FIFO_BL2_IRQ(R) (__u8)((R & M_FIFO_BL2_IRQ) >> 2)
+ #define GET_V_FIFO_BL2_IRQ(R) (__u8)(((R) & M_FIFO_BL2_IRQ) >> 2)
#define M_FIFO_BL3_IRQ 0x08 // mask bit 3
- #define GET_V_FIFO_BL3_IRQ(R) (__u8)((R & M_FIFO_BL3_IRQ) >> 3)
+ #define GET_V_FIFO_BL3_IRQ(R) (__u8)(((R) & M_FIFO_BL3_IRQ) >> 3)
#define M_MISC_IRQ 0x10 // mask bit 4
- #define GET_V_MISC_IRQ(R) (__u8)((R & M_MISC_IRQ) >> 4)
+ #define GET_V_MISC_IRQ(R) (__u8)(((R) & M_MISC_IRQ) >> 4)
#define M_STUP_IRQ 0x20 // mask bit 5
- #define GET_V_STUP_IRQ(R) (__u8)((R & M_STUP_IRQ) >> 5)
+ #define GET_V_STUP_IRQ(R) (__u8)(((R) & M_STUP_IRQ) >> 5)
#define R_MISC_IRQMSK 0x11 // register address, write only
#define M_SLIP_IRQMSK 0x01 // mask bit 0
- #define SET_V_SLIP_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_SLIP_IRQMSK ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_SLIP_IRQMSK(R) (__u8)(R & M_SLIP_IRQMSK)
+ #define SET_V_SLIP_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SLIP_IRQMSK ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_SLIP_IRQMSK(R) (__u8)((R) & M_SLIP_IRQMSK)
#define M_TI_IRQMSK 0x02 // mask bit 1
- #define SET_V_TI_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_TI_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_TI_IRQMSK(R) (__u8)((R & M_TI_IRQMSK) >> 1)
+ #define SET_V_TI_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_TI_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_TI_IRQMSK(R) (__u8)(((R) & M_TI_IRQMSK) >> 1)
#define M_PROC_IRQMSK 0x04 // mask bit 2
- #define SET_V_PROC_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_PROC_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_PROC_IRQMSK(R) (__u8)((R & M_PROC_IRQMSK) >> 2)
+ #define SET_V_PROC_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_PROC_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_PROC_IRQMSK(R) (__u8)(((R) & M_PROC_IRQMSK) >> 2)
#define M_CI_IRQMSK 0x10 // mask bit 4
- #define SET_V_CI_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_CI_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_CI_IRQMSK(R) (__u8)((R & M_CI_IRQMSK) >> 4)
+ #define SET_V_CI_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_CI_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_CI_IRQMSK(R) (__u8)(((R) & M_CI_IRQMSK) >> 4)
#define M_WAK_IRQMSK 0x20 // mask bit 5
- #define SET_V_WAK_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_WAK_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_WAK_IRQMSK(R) (__u8)((R & M_WAK_IRQMSK) >> 5)
+ #define SET_V_WAK_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_WAK_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_WAK_IRQMSK(R) (__u8)(((R) & M_WAK_IRQMSK) >> 5)
#define M_MON_TX_IRQMSK 0x40 // mask bit 6
- #define SET_V_MON_TX_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_MON_TX_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_MON_TX_IRQMSK(R) (__u8)((R & M_MON_TX_IRQMSK) >> 6)
+ #define SET_V_MON_TX_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_TX_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_MON_TX_IRQMSK(R) (__u8)(((R) & M_MON_TX_IRQMSK) >> 6)
#define M_MON_RX_IRQMSK 0x80 // mask bit 7
- #define SET_V_MON_RX_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_MON_RX_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_MON_RX_IRQMSK(R) (__u8)((R & M_MON_RX_IRQMSK) >> 7)
+ #define SET_V_MON_RX_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_RX_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_MON_RX_IRQMSK(R) (__u8)(((R) & M_MON_RX_IRQMSK) >> 7)
#define R_MISC_IRQ 0x11 // register address, read only
#define M_SLIP_IRQ 0x01 // mask bit 0
- #define GET_V_SLIP_IRQ(R) (__u8)(R & M_SLIP_IRQ)
+ #define GET_V_SLIP_IRQ(R) (__u8)((R) & M_SLIP_IRQ)
#define M_TI_IRQ 0x02 // mask bit 1
- #define GET_V_TI_IRQ(R) (__u8)((R & M_TI_IRQ) >> 1)
+ #define GET_V_TI_IRQ(R) (__u8)(((R) & M_TI_IRQ) >> 1)
#define M_PROC_IRQ 0x04 // mask bit 2
- #define GET_V_PROC_IRQ(R) (__u8)((R & M_PROC_IRQ) >> 2)
+ #define GET_V_PROC_IRQ(R) (__u8)(((R) & M_PROC_IRQ) >> 2)
#define M_CI_IRQ 0x10 // mask bit 4
- #define GET_V_CI_IRQ(R) (__u8)((R & M_CI_IRQ) >> 4)
+ #define GET_V_CI_IRQ(R) (__u8)(((R) & M_CI_IRQ) >> 4)
#define M_WAK_IRQ 0x20 // mask bit 5
- #define GET_V_WAK_IRQ(R) (__u8)((R & M_WAK_IRQ) >> 5)
+ #define GET_V_WAK_IRQ(R) (__u8)(((R) & M_WAK_IRQ) >> 5)
#define M_MON_TX_IRQ 0x40 // mask bit 6
- #define GET_V_MON_TX_IRQ(R) (__u8)((R & M_MON_TX_IRQ) >> 6)
+ #define GET_V_MON_TX_IRQ(R) (__u8)(((R) & M_MON_TX_IRQ) >> 6)
#define M_MON_RX_IRQ 0x80 // mask bit 7
- #define GET_V_MON_RX_IRQ(R) (__u8)((R & M_MON_RX_IRQ) >> 7)
+ #define GET_V_MON_RX_IRQ(R) (__u8)(((R) & M_MON_RX_IRQ) >> 7)
#define R_SU_IRQ 0x12 // register address, read only
#define M_SU0_IRQ 0x01 // mask bit 0
- #define GET_V_SU0_IRQ(R) (__u8)(R & M_SU0_IRQ)
+ #define GET_V_SU0_IRQ(R) (__u8)((R) & M_SU0_IRQ)
#define M_SU1_IRQ 0x02 // mask bit 1
- #define GET_V_SU1_IRQ(R) (__u8)((R & M_SU1_IRQ) >> 1)
+ #define GET_V_SU1_IRQ(R) (__u8)(((R) & M_SU1_IRQ) >> 1)
#define M_SU2_IRQ 0x04 // mask bit 2
- #define GET_V_SU2_IRQ(R) (__u8)((R & M_SU2_IRQ) >> 2)
+ #define GET_V_SU2_IRQ(R) (__u8)(((R) & M_SU2_IRQ) >> 2)
#define M_SU3_IRQ 0x08 // mask bit 3
- #define GET_V_SU3_IRQ(R) (__u8)((R & M_SU3_IRQ) >> 3)
+ #define GET_V_SU3_IRQ(R) (__u8)(((R) & M_SU3_IRQ) >> 3)
#define R_SU_IRQMSK 0x12 // register address, write only
#define M_SU0_IRQMSK 0x01 // mask bit 0
- #define SET_V_SU0_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_SU0_IRQMSK ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_SU0_IRQMSK(R) (__u8)(R & M_SU0_IRQMSK)
+ #define SET_V_SU0_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU0_IRQMSK ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_SU0_IRQMSK(R) (__u8)((R) & M_SU0_IRQMSK)
#define M_SU1_IRQMSK 0x02 // mask bit 1
- #define SET_V_SU1_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_SU1_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_SU1_IRQMSK(R) (__u8)((R & M_SU1_IRQMSK) >> 1)
+ #define SET_V_SU1_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU1_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_SU1_IRQMSK(R) (__u8)(((R) & M_SU1_IRQMSK) >> 1)
#define M_SU2_IRQMSK 0x04 // mask bit 2
- #define SET_V_SU2_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_SU2_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_SU2_IRQMSK(R) (__u8)((R & M_SU2_IRQMSK) >> 2)
+ #define SET_V_SU2_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU2_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_SU2_IRQMSK(R) (__u8)(((R) & M_SU2_IRQMSK) >> 2)
#define M_SU3_IRQMSK 0x08 // mask bit 3
- #define SET_V_SU3_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_SU3_IRQMSK ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_SU3_IRQMSK(R) (__u8)((R & M_SU3_IRQMSK) >> 3)
+ #define SET_V_SU3_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU3_IRQMSK ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_SU3_IRQMSK(R) (__u8)(((R) & M_SU3_IRQMSK) >> 3)
#define R_AF0_OVIEW 0x13 // register address, read only
#define M_SU0_AF0 0x01 // mask bit 0
- #define GET_V_SU0_AF0(R) (__u8)(R & M_SU0_AF0)
+ #define GET_V_SU0_AF0(R) (__u8)((R) & M_SU0_AF0)
#define M_SU1_AF0 0x02 // mask bit 1
- #define GET_V_SU1_AF0(R) (__u8)((R & M_SU1_AF0) >> 1)
+ #define GET_V_SU1_AF0(R) (__u8)(((R) & M_SU1_AF0) >> 1)
#define M_SU2_AF0 0x04 // mask bit 2
- #define GET_V_SU2_AF0(R) (__u8)((R & M_SU2_AF0) >> 2)
+ #define GET_V_SU2_AF0(R) (__u8)(((R) & M_SU2_AF0) >> 2)
#define M_SU3_AF0 0x08 // mask bit 3
- #define GET_V_SU3_AF0(R) (__u8)((R & M_SU3_AF0) >> 3)
+ #define GET_V_SU3_AF0(R) (__u8)(((R) & M_SU3_AF0) >> 3)
#define R_IRQ_CTRL 0x13 // register address, write only
#define M_FIFO_IRQ_EN 0x01 // mask bit 0
- #define SET_V_FIFO_IRQ_EN(R,V) (R = (__u8)((R & (__u8)(M_FIFO_IRQ_EN ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_FIFO_IRQ_EN(R) (__u8)(R & M_FIFO_IRQ_EN)
+ #define SET_V_FIFO_IRQ_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_IRQ_EN ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_FIFO_IRQ_EN(R) (__u8)((R) & M_FIFO_IRQ_EN)
#define M_GLOB_IRQ_EN 0x08 // mask bit 3
- #define SET_V_GLOB_IRQ_EN(R,V) (R = (__u8)((R & (__u8)(M_GLOB_IRQ_EN ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GLOB_IRQ_EN(R) (__u8)((R & M_GLOB_IRQ_EN) >> 3)
+ #define SET_V_GLOB_IRQ_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_GLOB_IRQ_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GLOB_IRQ_EN(R) (__u8)(((R) & M_GLOB_IRQ_EN) >> 3)
#define M_IRQ_POL 0x10 // mask bit 4
- #define SET_V_IRQ_POL(R,V) (R = (__u8)((R & (__u8)(M_IRQ_POL ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_IRQ_POL(R) (__u8)((R & M_IRQ_POL) >> 4)
+ #define SET_V_IRQ_POL(R,V) ((R) = (__u8)(((R) & (__u8)(M_IRQ_POL ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_IRQ_POL(R) (__u8)(((R) & M_IRQ_POL) >> 4)
#define A_USAGE 0x14 // register address, read only
#define M_USAGE 0xFF // mask bits 0..7
- #define GET_V_USAGE(R) (__u8)(R & M_USAGE)
+ #define GET_V_USAGE(R) (__u8)((R) & M_USAGE)
#define R_PCM_MD0 0x14 // register address, write only
#define M_PCM_MD 0x01 // mask bit 0
- #define SET_V_PCM_MD(R,V) (R = (__u8)((R & (__u8)(M_PCM_MD ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_PCM_MD(R) (__u8)(R & M_PCM_MD)
+ #define SET_V_PCM_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_MD ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_PCM_MD(R) (__u8)((R) & M_PCM_MD)
#define M_C4_POL 0x02 // mask bit 1
- #define SET_V_C4_POL(R,V) (R = (__u8)((R & (__u8)(M_C4_POL ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_C4_POL(R) (__u8)((R & M_C4_POL) >> 1)
+ #define SET_V_C4_POL(R,V) ((R) = (__u8)(((R) & (__u8)(M_C4_POL ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_C4_POL(R) (__u8)(((R) & M_C4_POL) >> 1)
#define M_F0_NEG 0x04 // mask bit 2
- #define SET_V_F0_NEG(R,V) (R = (__u8)((R & (__u8)(M_F0_NEG ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_F0_NEG(R) (__u8)((R & M_F0_NEG) >> 2)
+ #define SET_V_F0_NEG(R,V) ((R) = (__u8)(((R) & (__u8)(M_F0_NEG ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_F0_NEG(R) (__u8)(((R) & M_F0_NEG) >> 2)
#define M_F0_LEN 0x08 // mask bit 3
- #define SET_V_F0_LEN(R,V) (R = (__u8)((R & (__u8)(M_F0_LEN ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_F0_LEN(R) (__u8)((R & M_F0_LEN) >> 3)
+ #define SET_V_F0_LEN(R,V) ((R) = (__u8)(((R) & (__u8)(M_F0_LEN ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_F0_LEN(R) (__u8)(((R) & M_F0_LEN) >> 3)
#define M_PCM_IDX 0xF0 // mask bits 4..7
- #define SET_V_PCM_IDX(R,V) (R = (__u8)((R & (__u8)(M_PCM_IDX ^ 0xFF)) | (__u8)((V & 0x0F) << 4)))
- #define GET_V_PCM_IDX(R) (__u8)((R & M_PCM_IDX) >> 4)
+ #define SET_V_PCM_IDX(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_IDX ^ 0xFF)) | (__u8)(((V) & 0x0F) << 4)))
+ #define GET_V_PCM_IDX(R) (__u8)(((R) & M_PCM_IDX) >> 4)
#define R_SL_SEL0 0x15 // register address, write only
#define M_SL_SEL0 0x7F // mask bits 0..6
- #define SET_V_SL_SEL0(R,V) (R = (__u8)((R & (__u8)(M_SL_SEL0 ^ 0xFF)) | (__u8)(V & 0x7F)))
- #define GET_V_SL_SEL0(R) (__u8)(R & M_SL_SEL0)
+ #define SET_V_SL_SEL0(R,V) ((R) = (__u8)(((R) & (__u8)(M_SL_SEL0 ^ 0xFF)) | (__u8)((V) & 0x7F)))
+ #define GET_V_SL_SEL0(R) (__u8)((R) & M_SL_SEL0)
#define M_SH_SEL0 0x80 // mask bit 7
- #define SET_V_SH_SEL0(R,V) (R = (__u8)((R & (__u8)(M_SH_SEL0 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_SH_SEL0(R) (__u8)((R & M_SH_SEL0) >> 7)
+ #define SET_V_SH_SEL0(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH_SEL0 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_SH_SEL0(R) (__u8)(((R) & M_SH_SEL0) >> 7)
#define R_SL_SEL1 0x15 // register address, write only
#define M_SL_SEL1 0x7F // mask bits 0..6
- #define SET_V_SL_SEL1(R,V) (R = (__u8)((R & (__u8)(M_SL_SEL1 ^ 0xFF)) | (__u8)(V & 0x7F)))
- #define GET_V_SL_SEL1(R) (__u8)(R & M_SL_SEL1)
+ #define SET_V_SL_SEL1(R,V) ((R) = (__u8)(((R) & (__u8)(M_SL_SEL1 ^ 0xFF)) | (__u8)((V) & 0x7F)))
+ #define GET_V_SL_SEL1(R) (__u8)((R) & M_SL_SEL1)
#define M_SH_SEL1 0x80 // mask bit 7
- #define SET_V_SH_SEL1(R,V) (R = (__u8)((R & (__u8)(M_SH_SEL1 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_SH_SEL1(R) (__u8)((R & M_SH_SEL1) >> 7)
+ #define SET_V_SH_SEL1(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH_SEL1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_SH_SEL1(R) (__u8)(((R) & M_SH_SEL1) >> 7)
#define R_SL_SEL7 0x15 // register address, write only
#define M_SL_SEL7 0x7F // mask bits 0..6
- #define SET_V_SL_SEL7(R,V) (R = (__u8)((R & (__u8)(M_SL_SEL7 ^ 0xFF)) | (__u8)(V & 0x7F)))
- #define GET_V_SL_SEL7(R) (__u8)(R & M_SL_SEL7)
+ #define SET_V_SL_SEL7(R,V) ((R) = (__u8)(((R) & (__u8)(M_SL_SEL7 ^ 0xFF)) | (__u8)((V) & 0x7F)))
+ #define GET_V_SL_SEL7(R) (__u8)((R) & M_SL_SEL7)
#define R_MSS0 0x15 // register address, write only
#define M_MSS_MOD 0x01 // mask bit 0
- #define SET_V_MSS_MOD(R,V) (R = (__u8)((R & (__u8)(M_MSS_MOD ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_MSS_MOD(R) (__u8)(R & M_MSS_MOD)
+ #define SET_V_MSS_MOD(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_MOD ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_MSS_MOD(R) (__u8)((R) & M_MSS_MOD)
#define M_MSS_MOD_REP 0x02 // mask bit 1
- #define SET_V_MSS_MOD_REP(R,V) (R = (__u8)((R & (__u8)(M_MSS_MOD_REP ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_MSS_MOD_REP(R) (__u8)((R & M_MSS_MOD_REP) >> 1)
+ #define SET_V_MSS_MOD_REP(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_MOD_REP ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_MSS_MOD_REP(R) (__u8)(((R) & M_MSS_MOD_REP) >> 1)
#define M_MSS_SRC_EN 0x04 // mask bit 2
- #define SET_V_MSS_SRC_EN(R,V) (R = (__u8)((R & (__u8)(M_MSS_SRC_EN ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_MSS_SRC_EN(R) (__u8)((R & M_MSS_SRC_EN) >> 2)
+ #define SET_V_MSS_SRC_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_SRC_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_MSS_SRC_EN(R) (__u8)(((R) & M_MSS_SRC_EN) >> 2)
#define M_MSS_SRC_GRD 0x08 // mask bit 3
- #define SET_V_MSS_SRC_GRD(R,V) (R = (__u8)((R & (__u8)(M_MSS_SRC_GRD ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_MSS_SRC_GRD(R) (__u8)((R & M_MSS_SRC_GRD) >> 3)
+ #define SET_V_MSS_SRC_GRD(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_SRC_GRD ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_MSS_SRC_GRD(R) (__u8)(((R) & M_MSS_SRC_GRD) >> 3)
#define M_MSS_OUT_EN 0x10 // mask bit 4
- #define SET_V_MSS_OUT_EN(R,V) (R = (__u8)((R & (__u8)(M_MSS_OUT_EN ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_MSS_OUT_EN(R) (__u8)((R & M_MSS_OUT_EN) >> 4)
+ #define SET_V_MSS_OUT_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_OUT_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_MSS_OUT_EN(R) (__u8)(((R) & M_MSS_OUT_EN) >> 4)
#define M_MSS_OUT_REP 0x20 // mask bit 5
- #define SET_V_MSS_OUT_REP(R,V) (R = (__u8)((R & (__u8)(M_MSS_OUT_REP ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_MSS_OUT_REP(R) (__u8)((R & M_MSS_OUT_REP) >> 5)
+ #define SET_V_MSS_OUT_REP(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_OUT_REP ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_MSS_OUT_REP(R) (__u8)(((R) & M_MSS_OUT_REP) >> 5)
#define M_MSS_SRC 0xC0 // mask bits 6..7
- #define SET_V_MSS_SRC(R,V) (R = (__u8)((R & (__u8)(M_MSS_SRC ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_MSS_SRC(R) (__u8)((R & M_MSS_SRC) >> 6)
+ #define SET_V_MSS_SRC(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_SRC ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_MSS_SRC(R) (__u8)(((R) & M_MSS_SRC) >> 6)
#define R_PCM_MD1 0x15 // register address, write only
#define M_PCM_OD 0x02 // mask bit 1
- #define SET_V_PCM_OD(R,V) (R = (__u8)((R & (__u8)(M_PCM_OD ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_PCM_OD(R) (__u8)((R & M_PCM_OD) >> 1)
+ #define SET_V_PCM_OD(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_OD ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_PCM_OD(R) (__u8)(((R) & M_PCM_OD) >> 1)
#define M_PLL_ADJ 0x0C // mask bits 2..3
- #define SET_V_PLL_ADJ(R,V) (R = (__u8)((R & (__u8)(M_PLL_ADJ ^ 0xFF)) | (__u8)((V & 0x03) << 2)))
- #define GET_V_PLL_ADJ(R) (__u8)((R & M_PLL_ADJ) >> 2)
+ #define SET_V_PLL_ADJ(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_ADJ ^ 0xFF)) | (__u8)(((V) & 0x03) << 2)))
+ #define GET_V_PLL_ADJ(R) (__u8)(((R) & M_PLL_ADJ) >> 2)
#define M_PCM_DR 0x30 // mask bits 4..5
- #define SET_V_PCM_DR(R,V) (R = (__u8)((R & (__u8)(M_PCM_DR ^ 0xFF)) | (__u8)((V & 0x03) << 4)))
- #define GET_V_PCM_DR(R) (__u8)((R & M_PCM_DR) >> 4)
+ #define SET_V_PCM_DR(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_DR ^ 0xFF)) | (__u8)(((V) & 0x03) << 4)))
+ #define GET_V_PCM_DR(R) (__u8)(((R) & M_PCM_DR) >> 4)
#define M_PCM_LOOP 0x40 // mask bit 6
- #define SET_V_PCM_LOOP(R,V) (R = (__u8)((R & (__u8)(M_PCM_LOOP ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_PCM_LOOP(R) (__u8)((R & M_PCM_LOOP) >> 6)
+ #define SET_V_PCM_LOOP(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_LOOP ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_PCM_LOOP(R) (__u8)(((R) & M_PCM_LOOP) >> 6)
#define M_PCM_SMPL 0x80 // mask bit 7
- #define SET_V_PCM_SMPL(R,V) (R = (__u8)((R & (__u8)(M_PCM_SMPL ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_PCM_SMPL(R) (__u8)((R & M_PCM_SMPL) >> 7)
+ #define SET_V_PCM_SMPL(R,V) ((R) = (__u8)(((R) & (__u8)(M_PCM_SMPL ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_PCM_SMPL(R) (__u8)(((R) & M_PCM_SMPL) >> 7)
#define R_PCM_MD2 0x15 // register address, write only
#define M_SYNC_OUT1 0x02 // mask bit 1
- #define SET_V_SYNC_OUT1(R,V) (R = (__u8)((R & (__u8)(M_SYNC_OUT1 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_SYNC_OUT1(R) (__u8)((R & M_SYNC_OUT1) >> 1)
+ #define SET_V_SYNC_OUT1(R,V) ((R) = (__u8)(((R) & (__u8)(M_SYNC_OUT1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_SYNC_OUT1(R) (__u8)(((R) & M_SYNC_OUT1) >> 1)
#define M_SYNC_SRC 0x04 // mask bit 2
- #define SET_V_SYNC_SRC(R,V) (R = (__u8)((R & (__u8)(M_SYNC_SRC ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_SYNC_SRC(R) (__u8)((R & M_SYNC_SRC) >> 2)
+ #define SET_V_SYNC_SRC(R,V) ((R) = (__u8)(((R) & (__u8)(M_SYNC_SRC ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_SYNC_SRC(R) (__u8)(((R) & M_SYNC_SRC) >> 2)
#define M_SYNC_OUT2 0x08 // mask bit 3
- #define SET_V_SYNC_OUT2(R,V) (R = (__u8)((R & (__u8)(M_SYNC_OUT2 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_SYNC_OUT2(R) (__u8)((R & M_SYNC_OUT2) >> 3)
+ #define SET_V_SYNC_OUT2(R,V) ((R) = (__u8)(((R) & (__u8)(M_SYNC_OUT2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_SYNC_OUT2(R) (__u8)(((R) & M_SYNC_OUT2) >> 3)
#define M_C2O_EN 0x10 // mask bit 4
- #define SET_V_C2O_EN(R,V) (R = (__u8)((R & (__u8)(M_C2O_EN ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_C2O_EN(R) (__u8)((R & M_C2O_EN) >> 4)
+ #define SET_V_C2O_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_C2O_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_C2O_EN(R) (__u8)(((R) & M_C2O_EN) >> 4)
#define M_C2I_EN 0x20 // mask bit 5
- #define SET_V_C2I_EN(R,V) (R = (__u8)((R & (__u8)(M_C2I_EN ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_C2I_EN(R) (__u8)((R & M_C2I_EN) >> 5)
+ #define SET_V_C2I_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_C2I_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_C2I_EN(R) (__u8)(((R) & M_C2I_EN) >> 5)
#define M_PLL_ICR 0x40 // mask bit 6
- #define SET_V_PLL_ICR(R,V) (R = (__u8)((R & (__u8)(M_PLL_ICR ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_PLL_ICR(R) (__u8)((R & M_PLL_ICR) >> 6)
+ #define SET_V_PLL_ICR(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_ICR ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_PLL_ICR(R) (__u8)(((R) & M_PLL_ICR) >> 6)
#define M_PLL_MAN 0x80 // mask bit 7
- #define SET_V_PLL_MAN(R,V) (R = (__u8)((R & (__u8)(M_PLL_MAN ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_PLL_MAN(R) (__u8)((R & M_PLL_MAN) >> 7)
+ #define SET_V_PLL_MAN(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_MAN ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_PLL_MAN(R) (__u8)(((R) & M_PLL_MAN) >> 7)
#define R_MSS1 0x15 // register address, write only
#define M_MSS_OFFS 0x07 // mask bits 0..2
- #define SET_V_MSS_OFFS(R,V) (R = (__u8)((R & (__u8)(M_MSS_OFFS ^ 0xFF)) | (__u8)(V & 0x07)))
- #define GET_V_MSS_OFFS(R) (__u8)(R & M_MSS_OFFS)
+ #define SET_V_MSS_OFFS(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_OFFS ^ 0xFF)) | (__u8)((V) & 0x07)))
+ #define GET_V_MSS_OFFS(R) (__u8)((R) & M_MSS_OFFS)
#define M_MS_SSYNC1 0x08 // mask bit 3
- #define SET_V_MS_SSYNC1(R,V) (R = (__u8)((R & (__u8)(M_MS_SSYNC1 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_MS_SSYNC1(R) (__u8)((R & M_MS_SSYNC1) >> 3)
+ #define SET_V_MS_SSYNC1(R,V) ((R) = (__u8)(((R) & (__u8)(M_MS_SSYNC1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_MS_SSYNC1(R) (__u8)(((R) & M_MS_SSYNC1) >> 3)
#define M_MSS_DLY 0xF0 // mask bits 4..7
- #define SET_V_MSS_DLY(R,V) (R = (__u8)((R & (__u8)(M_MSS_DLY ^ 0xFF)) | (__u8)((V & 0x0F) << 4)))
- #define GET_V_MSS_DLY(R) (__u8)((R & M_MSS_DLY) >> 4)
+ #define SET_V_MSS_DLY(R,V) ((R) = (__u8)(((R) & (__u8)(M_MSS_DLY ^ 0xFF)) | (__u8)(((V) & 0x0F) << 4)))
+ #define GET_V_MSS_DLY(R) (__u8)(((R) & M_MSS_DLY) >> 4)
#define R_SH0L 0x15 // register address, write only
#define M_SH0L 0xFF // mask bits 0..7
- #define SET_V_SH0L(R,V) (R = (__u8)((R & (__u8)(M_SH0L ^ 0xFF)) | (__u8)V))
- #define GET_V_SH0L(R) (__u8)(R & M_SH0L)
+ #define SET_V_SH0L(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH0L ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_SH0L(R) (__u8)((R) & M_SH0L)
#define R_SH0H 0x15 // register address, write only
#define M_SH0H 0xFF // mask bits 0..7
- #define SET_V_SH0H(R,V) (R = (__u8)((R & (__u8)(M_SH0H ^ 0xFF)) | (__u8)V))
- #define GET_V_SH0H(R) (__u8)(R & M_SH0H)
+ #define SET_V_SH0H(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH0H ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_SH0H(R) (__u8)((R) & M_SH0H)
#define R_SH1L 0x15 // register address, write only
#define M_SH1L 0xFF // mask bits 0..7
- #define SET_V_SH1L(R,V) (R = (__u8)((R & (__u8)(M_SH1L ^ 0xFF)) | (__u8)V))
- #define GET_V_SH1L(R) (__u8)(R & M_SH1L)
+ #define SET_V_SH1L(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH1L ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_SH1L(R) (__u8)((R) & M_SH1L)
#define R_SH1H 0x15 // register address, write only
#define M_SH1H 0xFF // mask bits 0..7
- #define SET_V_SH1H(R,V) (R = (__u8)((R & (__u8)(M_SH1H ^ 0xFF)) | (__u8)V))
- #define GET_V_SH1H(R) (__u8)(R & M_SH1H)
+ #define SET_V_SH1H(R,V) ((R) = (__u8)(((R) & (__u8)(M_SH1H ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_SH1H(R) (__u8)((R) & M_SH1H)
#define R_RAM_USE 0x15 // register address, read only
#define M_SRAM_USE 0xFF // mask bits 0..7
- #define GET_V_SRAM_USE(R) (__u8)(R & M_SRAM_USE)
+ #define GET_V_SRAM_USE(R) (__u8)((R) & M_SRAM_USE)
#define R_SU_SEL 0x16 // register address, write only
#define M_SU_SEL 0x03 // mask bits 0..1
- #define SET_V_SU_SEL(R,V) (R = (__u8)((R & (__u8)(M_SU_SEL ^ 0xFF)) | (__u8)(V & 0x03)))
- #define GET_V_SU_SEL(R) (__u8)(R & M_SU_SEL)
+ #define SET_V_SU_SEL(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_SEL ^ 0xFF)) | (__u8)((V) & 0x03)))
+ #define GET_V_SU_SEL(R) (__u8)((R) & M_SU_SEL)
#define M_MULT_SU 0x08 // mask bit 3
- #define SET_V_MULT_SU(R,V) (R = (__u8)((R & (__u8)(M_MULT_SU ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_MULT_SU(R) (__u8)((R & M_MULT_SU) >> 3)
+ #define SET_V_MULT_SU(R,V) ((R) = (__u8)(((R) & (__u8)(M_MULT_SU ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_MULT_SU(R) (__u8)(((R) & M_MULT_SU) >> 3)
#define R_CHIP_ID 0x16 // register address, read only
#define M_CHIP_ID 0xFF // mask bits 0..7
- #define GET_V_CHIP_ID(R) (__u8)(R & M_CHIP_ID)
+ #define GET_V_CHIP_ID(R) (__u8)((R) & M_CHIP_ID)
#define R_BERT_STA 0x17 // register address, read only
#define M_RD_SYNC_SRC 0x07 // mask bits 0..2
- #define GET_V_RD_SYNC_SRC(R) (__u8)(R & M_RD_SYNC_SRC)
+ #define GET_V_RD_SYNC_SRC(R) (__u8)((R) & M_RD_SYNC_SRC)
#define M_BERT_SYNC 0x10 // mask bit 4
- #define GET_V_BERT_SYNC(R) (__u8)((R & M_BERT_SYNC) >> 4)
+ #define GET_V_BERT_SYNC(R) (__u8)(((R) & M_BERT_SYNC) >> 4)
#define M_BERT_INV_DATA 0x20 // mask bit 5
- #define GET_V_BERT_INV_DATA(R) (__u8)((R & M_BERT_INV_DATA) >> 5)
+ #define GET_V_BERT_INV_DATA(R) (__u8)(((R) & M_BERT_INV_DATA) >> 5)
#define R_SU_SYNC 0x17 // register address, write only
#define M_SYNC_SEL 0x07 // mask bits 0..2
- #define SET_V_SYNC_SEL(R,V) (R = (__u8)((R & (__u8)(M_SYNC_SEL ^ 0xFF)) | (__u8)(V & 0x07)))
- #define GET_V_SYNC_SEL(R) (__u8)(R & M_SYNC_SEL)
+ #define SET_V_SYNC_SEL(R,V) ((R) = (__u8)(((R) & (__u8)(M_SYNC_SEL ^ 0xFF)) | (__u8)((V) & 0x07)))
+ #define GET_V_SYNC_SEL(R) (__u8)((R) & M_SYNC_SEL)
#define M_MAN_SYNC 0x08 // mask bit 3
- #define SET_V_MAN_SYNC(R,V) (R = (__u8)((R & (__u8)(M_MAN_SYNC ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_MAN_SYNC(R) (__u8)((R & M_MAN_SYNC) >> 3)
+ #define SET_V_MAN_SYNC(R,V) ((R) = (__u8)(((R) & (__u8)(M_MAN_SYNC ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_MAN_SYNC(R) (__u8)(((R) & M_MAN_SYNC) >> 3)
#define M_AUTO_SYNCI 0x10 // mask bit 4
- #define SET_V_AUTO_SYNCI(R,V) (R = (__u8)((R & (__u8)(M_AUTO_SYNCI ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_AUTO_SYNCI(R) (__u8)((R & M_AUTO_SYNCI) >> 4)
+ #define SET_V_AUTO_SYNCI(R,V) ((R) = (__u8)(((R) & (__u8)(M_AUTO_SYNCI ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_AUTO_SYNCI(R) (__u8)(((R) & M_AUTO_SYNCI) >> 4)
#define M_D_MERGE_TX 0x20 // mask bit 5
- #define SET_V_D_MERGE_TX(R,V) (R = (__u8)((R & (__u8)(M_D_MERGE_TX ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_D_MERGE_TX(R) (__u8)((R & M_D_MERGE_TX) >> 5)
+ #define SET_V_D_MERGE_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_MERGE_TX ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_D_MERGE_TX(R) (__u8)(((R) & M_D_MERGE_TX) >> 5)
#define M_E_MERGE_RX 0x40 // mask bit 6
- #define SET_V_E_MERGE_RX(R,V) (R = (__u8)((R & (__u8)(M_E_MERGE_RX ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_E_MERGE_RX(R) (__u8)((R & M_E_MERGE_RX) >> 6)
+ #define SET_V_E_MERGE_RX(R,V) ((R) = (__u8)(((R) & (__u8)(M_E_MERGE_RX ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_E_MERGE_RX(R) (__u8)(((R) & M_E_MERGE_RX) >> 6)
#define M_D_MERGE_RX 0x80 // mask bit 7
- #define SET_V_D_MERGE_RX(R,V) (R = (__u8)((R & (__u8)(M_D_MERGE_RX ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_D_MERGE_RX(R) (__u8)((R & M_D_MERGE_RX) >> 7)
+ #define SET_V_D_MERGE_RX(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_MERGE_RX ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_D_MERGE_RX(R) (__u8)(((R) & M_D_MERGE_RX) >> 7)
#define R_F0_CNTL 0x18 // register address, read only
#define M_F0_CNTL 0xFF // mask bits 0..7
- #define GET_V_F0_CNTL(R) (__u8)(R & M_F0_CNTL)
+ #define GET_V_F0_CNTL(R) (__u8)((R) & M_F0_CNTL)
#define R_F0_CNTH 0x19 // register address, read only
#define M_F0_CNTH 0xFF // mask bits 0..7
- #define GET_V_F0_CNTH(R) (__u8)(R & M_F0_CNTH)
+ #define GET_V_F0_CNTH(R) (__u8)((R) & M_F0_CNTH)
#define R_BERT_ECL 0x1A // register address, read only
#define M_BERT_ECL 0xFF // mask bits 0..7
- #define GET_V_BERT_ECL(R) (__u8)(R & M_BERT_ECL)
+ #define GET_V_BERT_ECL(R) (__u8)((R) & M_BERT_ECL)
#define R_TI_WD 0x1A // register address, write only
#define M_EV_TS 0x0F // mask bits 0..3
- #define SET_V_EV_TS(R,V) (R = (__u8)((R & (__u8)(M_EV_TS ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_EV_TS(R) (__u8)(R & M_EV_TS)
+ #define SET_V_EV_TS(R,V) ((R) = (__u8)(((R) & (__u8)(M_EV_TS ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_EV_TS(R) (__u8)((R) & M_EV_TS)
#define M_WD_TS 0xF0 // mask bits 4..7
- #define SET_V_WD_TS(R,V) (R = (__u8)((R & (__u8)(M_WD_TS ^ 0xFF)) | (__u8)((V & 0x0F) << 4)))
- #define GET_V_WD_TS(R) (__u8)((R & M_WD_TS) >> 4)
+ #define SET_V_WD_TS(R,V) ((R) = (__u8)(((R) & (__u8)(M_WD_TS ^ 0xFF)) | (__u8)(((V) & 0x0F) << 4)))
+ #define GET_V_WD_TS(R) (__u8)(((R) & M_WD_TS) >> 4)
#define R_BERT_ECH 0x1B // register address, read only
#define M_BERT_ECH 0xFF // mask bits 0..7
- #define GET_V_BERT_ECH(R) (__u8)(R & M_BERT_ECH)
+ #define GET_V_BERT_ECH(R) (__u8)((R) & M_BERT_ECH)
#define R_BERT_WD_MD 0x1B // register address, write only
#define M_PAT_SEQ 0x07 // mask bits 0..2
- #define SET_V_PAT_SEQ(R,V) (R = (__u8)((R & (__u8)(M_PAT_SEQ ^ 0xFF)) | (__u8)(V & 0x07)))
- #define GET_V_PAT_SEQ(R) (__u8)(R & M_PAT_SEQ)
+ #define SET_V_PAT_SEQ(R,V) ((R) = (__u8)(((R) & (__u8)(M_PAT_SEQ ^ 0xFF)) | (__u8)((V) & 0x07)))
+ #define GET_V_PAT_SEQ(R) (__u8)((R) & M_PAT_SEQ)
#define M_BERT_ERR 0x08 // mask bit 3
- #define SET_V_BERT_ERR(R,V) (R = (__u8)((R & (__u8)(M_BERT_ERR ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_BERT_ERR(R) (__u8)((R & M_BERT_ERR) >> 3)
+ #define SET_V_BERT_ERR(R,V) ((R) = (__u8)(((R) & (__u8)(M_BERT_ERR ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_BERT_ERR(R) (__u8)(((R) & M_BERT_ERR) >> 3)
#define M_AUTO_WD_RES 0x20 // mask bit 5
- #define SET_V_AUTO_WD_RES(R,V) (R = (__u8)((R & (__u8)(M_AUTO_WD_RES ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_AUTO_WD_RES(R) (__u8)((R & M_AUTO_WD_RES) >> 5)
+ #define SET_V_AUTO_WD_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_AUTO_WD_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_AUTO_WD_RES(R) (__u8)(((R) & M_AUTO_WD_RES) >> 5)
#define M_WD_RES 0x80 // mask bit 7
- #define SET_V_WD_RES(R,V) (R = (__u8)((R & (__u8)(M_WD_RES ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_WD_RES(R) (__u8)((R & M_WD_RES) >> 7)
+ #define SET_V_WD_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_WD_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_WD_RES(R) (__u8)(((R) & M_WD_RES) >> 7)
#define R_STATUS 0x1C // register address, read only
#define M_BUSY 0x01 // mask bit 0
- #define GET_V_BUSY(R) (__u8)(R & M_BUSY)
+ #define GET_V_BUSY(R) (__u8)((R) & M_BUSY)
#define M_PROC 0x02 // mask bit 1
- #define GET_V_PROC(R) (__u8)((R & M_PROC) >> 1)
+ #define GET_V_PROC(R) (__u8)(((R) & M_PROC) >> 1)
#define M_LOST_STA 0x08 // mask bit 3
- #define GET_V_LOST_STA(R) (__u8)((R & M_LOST_STA) >> 3)
+ #define GET_V_LOST_STA(R) (__u8)(((R) & M_LOST_STA) >> 3)
#define M_PCM_INIT 0x10 // mask bit 4
- #define GET_V_PCM_INIT(R) (__u8)((R & M_PCM_INIT) >> 4)
+ #define GET_V_PCM_INIT(R) (__u8)(((R) & M_PCM_INIT) >> 4)
#define M_WAK_STA 0x20 // mask bit 5
- #define GET_V_WAK_STA(R) (__u8)((R & M_WAK_STA) >> 5)
+ #define GET_V_WAK_STA(R) (__u8)(((R) & M_WAK_STA) >> 5)
#define M_MISC_IRQSTA 0x40 // mask bit 6
- #define GET_V_MISC_IRQSTA(R) (__u8)((R & M_MISC_IRQSTA) >> 6)
+ #define GET_V_MISC_IRQSTA(R) (__u8)(((R) & M_MISC_IRQSTA) >> 6)
#define M_FIFO_IRQSTA 0x80 // mask bit 7
- #define GET_V_FIFO_IRQSTA(R) (__u8)((R & M_FIFO_IRQSTA) >> 7)
+ #define GET_V_FIFO_IRQSTA(R) (__u8)(((R) & M_FIFO_IRQSTA) >> 7)
#define R_SL_MAX 0x1D // register address, read only
#define M_SL_MAX 0xFF // mask bits 0..7
- #define GET_V_SL_MAX(R) (__u8)(R & M_SL_MAX)
+ #define GET_V_SL_MAX(R) (__u8)((R) & M_SL_MAX)
#define R_PWM_CFG 0x1E // register address, write only
#define M_PWM0_16KHZ 0x10 // mask bit 4
- #define SET_V_PWM0_16KHZ(R,V) (R = (__u8)((R & (__u8)(M_PWM0_16KHZ ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_PWM0_16KHZ(R) (__u8)((R & M_PWM0_16KHZ) >> 4)
+ #define SET_V_PWM0_16KHZ(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM0_16KHZ ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_PWM0_16KHZ(R) (__u8)(((R) & M_PWM0_16KHZ) >> 4)
#define M_PWM1_16KHZ 0x20 // mask bit 5
- #define SET_V_PWM1_16KHZ(R,V) (R = (__u8)((R & (__u8)(M_PWM1_16KHZ ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_PWM1_16KHZ(R) (__u8)((R & M_PWM1_16KHZ) >> 5)
+ #define SET_V_PWM1_16KHZ(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM1_16KHZ ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_PWM1_16KHZ(R) (__u8)(((R) & M_PWM1_16KHZ) >> 5)
#define M_PWM_FRQ 0xC0 // mask bits 6..7
- #define SET_V_PWM_FRQ(R,V) (R = (__u8)((R & (__u8)(M_PWM_FRQ ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_PWM_FRQ(R) (__u8)((R & M_PWM_FRQ) >> 6)
+ #define SET_V_PWM_FRQ(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM_FRQ ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_PWM_FRQ(R) (__u8)(((R) & M_PWM_FRQ) >> 6)
#define R_CHIP_RV 0x1F // register address, read only
#define M_CHIP_RV 0x0F // mask bits 0..3
- #define GET_V_CHIP_RV(R) (__u8)(R & M_CHIP_RV)
+ #define GET_V_CHIP_RV(R) (__u8)((R) & M_CHIP_RV)
#define R_FIFO_BL0_IRQ 0x20 // register address, read only
#define M_FIFO0_TX_IRQ 0x01 // mask bit 0
- #define GET_V_FIFO0_TX_IRQ(R) (__u8)(R & M_FIFO0_TX_IRQ)
+ #define GET_V_FIFO0_TX_IRQ(R) (__u8)((R) & M_FIFO0_TX_IRQ)
#define M_FIFO0_RX_IRQ 0x02 // mask bit 1
- #define GET_V_FIFO0_RX_IRQ(R) (__u8)((R & M_FIFO0_RX_IRQ) >> 1)
+ #define GET_V_FIFO0_RX_IRQ(R) (__u8)(((R) & M_FIFO0_RX_IRQ) >> 1)
#define M_FIFO1_TX_IRQ 0x04 // mask bit 2
- #define GET_V_FIFO1_TX_IRQ(R) (__u8)((R & M_FIFO1_TX_IRQ) >> 2)
+ #define GET_V_FIFO1_TX_IRQ(R) (__u8)(((R) & M_FIFO1_TX_IRQ) >> 2)
#define M_FIFO1_RX_IRQ 0x08 // mask bit 3
- #define GET_V_FIFO1_RX_IRQ(R) (__u8)((R & M_FIFO1_RX_IRQ) >> 3)
+ #define GET_V_FIFO1_RX_IRQ(R) (__u8)(((R) & M_FIFO1_RX_IRQ) >> 3)
#define M_FIFO2_TX_IRQ 0x10 // mask bit 4
- #define GET_V_FIFO2_TX_IRQ(R) (__u8)((R & M_FIFO2_TX_IRQ) >> 4)
+ #define GET_V_FIFO2_TX_IRQ(R) (__u8)(((R) & M_FIFO2_TX_IRQ) >> 4)
#define M_FIFO2_RX_IRQ 0x20 // mask bit 5
- #define GET_V_FIFO2_RX_IRQ(R) (__u8)((R & M_FIFO2_RX_IRQ) >> 5)
+ #define GET_V_FIFO2_RX_IRQ(R) (__u8)(((R) & M_FIFO2_RX_IRQ) >> 5)
#define M_FIFO3_TX_IRQ 0x40 // mask bit 6
- #define GET_V_FIFO3_TX_IRQ(R) (__u8)((R & M_FIFO3_TX_IRQ) >> 6)
+ #define GET_V_FIFO3_TX_IRQ(R) (__u8)(((R) & M_FIFO3_TX_IRQ) >> 6)
#define M_FIFO3_RX_IRQ 0x80 // mask bit 7
- #define GET_V_FIFO3_RX_IRQ(R) (__u8)((R & M_FIFO3_RX_IRQ) >> 7)
+ #define GET_V_FIFO3_RX_IRQ(R) (__u8)(((R) & M_FIFO3_RX_IRQ) >> 7)
#define R_FIFO_BL1_IRQ 0x21 // register address, read only
#define M_FIFO4_TX_IRQ 0x01 // mask bit 0
- #define GET_V_FIFO4_TX_IRQ(R) (__u8)(R & M_FIFO4_TX_IRQ)
+ #define GET_V_FIFO4_TX_IRQ(R) (__u8)((R) & M_FIFO4_TX_IRQ)
#define M_FIFO4_RX_IRQ 0x02 // mask bit 1
- #define GET_V_FIFO4_RX_IRQ(R) (__u8)((R & M_FIFO4_RX_IRQ) >> 1)
+ #define GET_V_FIFO4_RX_IRQ(R) (__u8)(((R) & M_FIFO4_RX_IRQ) >> 1)
#define M_FIFO5_TX_IRQ 0x04 // mask bit 2
- #define GET_V_FIFO5_TX_IRQ(R) (__u8)((R & M_FIFO5_TX_IRQ) >> 2)
+ #define GET_V_FIFO5_TX_IRQ(R) (__u8)(((R) & M_FIFO5_TX_IRQ) >> 2)
#define M_FIFO5_RX_IRQ 0x08 // mask bit 3
- #define GET_V_FIFO5_RX_IRQ(R) (__u8)((R & M_FIFO5_RX_IRQ) >> 3)
+ #define GET_V_FIFO5_RX_IRQ(R) (__u8)(((R) & M_FIFO5_RX_IRQ) >> 3)
#define M_FIFO6_TX_IRQ 0x10 // mask bit 4
- #define GET_V_FIFO6_TX_IRQ(R) (__u8)((R & M_FIFO6_TX_IRQ) >> 4)
+ #define GET_V_FIFO6_TX_IRQ(R) (__u8)(((R) & M_FIFO6_TX_IRQ) >> 4)
#define M_FIFO6_RX_IRQ 0x20 // mask bit 5
- #define GET_V_FIFO6_RX_IRQ(R) (__u8)((R & M_FIFO6_RX_IRQ) >> 5)
+ #define GET_V_FIFO6_RX_IRQ(R) (__u8)(((R) & M_FIFO6_RX_IRQ) >> 5)
#define M_FIFO7_TX_IRQ 0x40 // mask bit 6
- #define GET_V_FIFO7_TX_IRQ(R) (__u8)((R & M_FIFO7_TX_IRQ) >> 6)
+ #define GET_V_FIFO7_TX_IRQ(R) (__u8)(((R) & M_FIFO7_TX_IRQ) >> 6)
#define M_FIFO7_RX_IRQ 0x80 // mask bit 7
- #define GET_V_FIFO7_RX_IRQ(R) (__u8)((R & M_FIFO7_RX_IRQ) >> 7)
+ #define GET_V_FIFO7_RX_IRQ(R) (__u8)(((R) & M_FIFO7_RX_IRQ) >> 7)
#define R_FIFO_BL2_IRQ 0x22 // register address, read only
#define M_FIFO8_TX_IRQ 0x01 // mask bit 0
- #define GET_V_FIFO8_TX_IRQ(R) (__u8)(R & M_FIFO8_TX_IRQ)
+ #define GET_V_FIFO8_TX_IRQ(R) (__u8)((R) & M_FIFO8_TX_IRQ)
#define M_FIFO8_RX_IRQ 0x02 // mask bit 1
- #define GET_V_FIFO8_RX_IRQ(R) (__u8)((R & M_FIFO8_RX_IRQ) >> 1)
+ #define GET_V_FIFO8_RX_IRQ(R) (__u8)(((R) & M_FIFO8_RX_IRQ) >> 1)
#define M_FIFO9_TX_IRQ 0x04 // mask bit 2
- #define GET_V_FIFO9_TX_IRQ(R) (__u8)((R & M_FIFO9_TX_IRQ) >> 2)
+ #define GET_V_FIFO9_TX_IRQ(R) (__u8)(((R) & M_FIFO9_TX_IRQ) >> 2)
#define M_FIFO9_RX_IRQ 0x08 // mask bit 3
- #define GET_V_FIFO9_RX_IRQ(R) (__u8)((R & M_FIFO9_RX_IRQ) >> 3)
+ #define GET_V_FIFO9_RX_IRQ(R) (__u8)(((R) & M_FIFO9_RX_IRQ) >> 3)
#define M_FIFO10_TX_IRQ 0x10 // mask bit 4
- #define GET_V_FIFO10_TX_IRQ(R) (__u8)((R & M_FIFO10_TX_IRQ) >> 4)
+ #define GET_V_FIFO10_TX_IRQ(R) (__u8)(((R) & M_FIFO10_TX_IRQ) >> 4)
#define M_FIFO10_RX_IRQ 0x20 // mask bit 5
- #define GET_V_FIFO10_RX_IRQ(R) (__u8)((R & M_FIFO10_RX_IRQ) >> 5)
+ #define GET_V_FIFO10_RX_IRQ(R) (__u8)(((R) & M_FIFO10_RX_IRQ) >> 5)
#define M_FIFO11_TX_IRQ 0x40 // mask bit 6
- #define GET_V_FIFO11_TX_IRQ(R) (__u8)((R & M_FIFO11_TX_IRQ) >> 6)
+ #define GET_V_FIFO11_TX_IRQ(R) (__u8)(((R) & M_FIFO11_TX_IRQ) >> 6)
#define M_FIFO11_RX_IRQ 0x80 // mask bit 7
- #define GET_V_FIFO11_RX_IRQ(R) (__u8)((R & M_FIFO11_RX_IRQ) >> 7)
+ #define GET_V_FIFO11_RX_IRQ(R) (__u8)(((R) & M_FIFO11_RX_IRQ) >> 7)
#define R_FIFO_BL3_IRQ 0x23 // register address, read only
#define M_FIFO12_TX_IRQ 0x01 // mask bit 0
- #define GET_V_FIFO12_TX_IRQ(R) (__u8)(R & M_FIFO12_TX_IRQ)
+ #define GET_V_FIFO12_TX_IRQ(R) (__u8)((R) & M_FIFO12_TX_IRQ)
#define M_FIFO12_RX_IRQ 0x02 // mask bit 1
- #define GET_V_FIFO12_RX_IRQ(R) (__u8)((R & M_FIFO12_RX_IRQ) >> 1)
+ #define GET_V_FIFO12_RX_IRQ(R) (__u8)(((R) & M_FIFO12_RX_IRQ) >> 1)
#define M_FIFO13_TX_IRQ 0x04 // mask bit 2
- #define GET_V_FIFO13_TX_IRQ(R) (__u8)((R & M_FIFO13_TX_IRQ) >> 2)
+ #define GET_V_FIFO13_TX_IRQ(R) (__u8)(((R) & M_FIFO13_TX_IRQ) >> 2)
#define M_FIFO13_RX_IRQ 0x08 // mask bit 3
- #define GET_V_FIFO13_RX_IRQ(R) (__u8)((R & M_FIFO13_RX_IRQ) >> 3)
+ #define GET_V_FIFO13_RX_IRQ(R) (__u8)(((R) & M_FIFO13_RX_IRQ) >> 3)
#define M_FIFO14_TX_IRQ 0x10 // mask bit 4
- #define GET_V_FIFO14_TX_IRQ(R) (__u8)((R & M_FIFO14_TX_IRQ) >> 4)
+ #define GET_V_FIFO14_TX_IRQ(R) (__u8)(((R) & M_FIFO14_TX_IRQ) >> 4)
#define M_FIFO14_RX_IRQ 0x20 // mask bit 5
- #define GET_V_FIFO14_RX_IRQ(R) (__u8)((R & M_FIFO14_RX_IRQ) >> 5)
+ #define GET_V_FIFO14_RX_IRQ(R) (__u8)(((R) & M_FIFO14_RX_IRQ) >> 5)
#define M_FIFO15_TX_IRQ 0x40 // mask bit 6
- #define GET_V_FIFO15_TX_IRQ(R) (__u8)((R & M_FIFO15_TX_IRQ) >> 6)
+ #define GET_V_FIFO15_TX_IRQ(R) (__u8)(((R) & M_FIFO15_TX_IRQ) >> 6)
#define M_FIFO15_RX_IRQ 0x80 // mask bit 7
- #define GET_V_FIFO15_RX_IRQ(R) (__u8)((R & M_FIFO15_RX_IRQ) >> 7)
+ #define GET_V_FIFO15_RX_IRQ(R) (__u8)(((R) & M_FIFO15_RX_IRQ) >> 7)
#define R_FILL_BL0 0x24 // register address, read only
#define M_FILL_FIFO0_TX 0x01 // mask bit 0
- #define GET_V_FILL_FIFO0_TX(R) (__u8)(R & M_FILL_FIFO0_TX)
+ #define GET_V_FILL_FIFO0_TX(R) (__u8)((R) & M_FILL_FIFO0_TX)
#define M_FILL_FIFO0_RX 0x02 // mask bit 1
- #define GET_V_FILL_FIFO0_RX(R) (__u8)((R & M_FILL_FIFO0_RX) >> 1)
+ #define GET_V_FILL_FIFO0_RX(R) (__u8)(((R) & M_FILL_FIFO0_RX) >> 1)
#define M_FILL_FIFO1_TX 0x04 // mask bit 2
- #define GET_V_FILL_FIFO1_TX(R) (__u8)((R & M_FILL_FIFO1_TX) >> 2)
+ #define GET_V_FILL_FIFO1_TX(R) (__u8)(((R) & M_FILL_FIFO1_TX) >> 2)
#define M_FILL_FIFO1_RX 0x08 // mask bit 3
- #define GET_V_FILL_FIFO1_RX(R) (__u8)((R & M_FILL_FIFO1_RX) >> 3)
+ #define GET_V_FILL_FIFO1_RX(R) (__u8)(((R) & M_FILL_FIFO1_RX) >> 3)
#define M_FILL_FIFO2_TX 0x10 // mask bit 4
- #define GET_V_FILL_FIFO2_TX(R) (__u8)((R & M_FILL_FIFO2_TX) >> 4)
+ #define GET_V_FILL_FIFO2_TX(R) (__u8)(((R) & M_FILL_FIFO2_TX) >> 4)
#define M_FILL_FIFO2_RX 0x20 // mask bit 5
- #define GET_V_FILL_FIFO2_RX(R) (__u8)((R & M_FILL_FIFO2_RX) >> 5)
+ #define GET_V_FILL_FIFO2_RX(R) (__u8)(((R) & M_FILL_FIFO2_RX) >> 5)
#define M_FILL_FIFO3_TX 0x40 // mask bit 6
- #define GET_V_FILL_FIFO3_TX(R) (__u8)((R & M_FILL_FIFO3_TX) >> 6)
+ #define GET_V_FILL_FIFO3_TX(R) (__u8)(((R) & M_FILL_FIFO3_TX) >> 6)
#define M_FILL_FIFO3_RX 0x80 // mask bit 7
- #define GET_V_FILL_FIFO3_RX(R) (__u8)((R & M_FILL_FIFO3_RX) >> 7)
+ #define GET_V_FILL_FIFO3_RX(R) (__u8)(((R) & M_FILL_FIFO3_RX) >> 7)
#define R_FILL_BL1 0x25 // register address, read only
#define M_FILL_FIFO4_TX 0x01 // mask bit 0
- #define GET_V_FILL_FIFO4_TX(R) (__u8)(R & M_FILL_FIFO4_TX)
+ #define GET_V_FILL_FIFO4_TX(R) (__u8)((R) & M_FILL_FIFO4_TX)
#define M_FILL_FIFO4_RX 0x02 // mask bit 1
- #define GET_V_FILL_FIFO4_RX(R) (__u8)((R & M_FILL_FIFO4_RX) >> 1)
+ #define GET_V_FILL_FIFO4_RX(R) (__u8)(((R) & M_FILL_FIFO4_RX) >> 1)
#define M_FILL_FIFO5_TX 0x04 // mask bit 2
- #define GET_V_FILL_FIFO5_TX(R) (__u8)((R & M_FILL_FIFO5_TX) >> 2)
+ #define GET_V_FILL_FIFO5_TX(R) (__u8)(((R) & M_FILL_FIFO5_TX) >> 2)
#define M_FILL_FIFO5_RX 0x08 // mask bit 3
- #define GET_V_FILL_FIFO5_RX(R) (__u8)((R & M_FILL_FIFO5_RX) >> 3)
+ #define GET_V_FILL_FIFO5_RX(R) (__u8)(((R) & M_FILL_FIFO5_RX) >> 3)
#define M_FILL_FIFO6_TX 0x10 // mask bit 4
- #define GET_V_FILL_FIFO6_TX(R) (__u8)((R & M_FILL_FIFO6_TX) >> 4)
+ #define GET_V_FILL_FIFO6_TX(R) (__u8)(((R) & M_FILL_FIFO6_TX) >> 4)
#define M_FILL_FIFO6_RX 0x20 // mask bit 5
- #define GET_V_FILL_FIFO6_RX(R) (__u8)((R & M_FILL_FIFO6_RX) >> 5)
+ #define GET_V_FILL_FIFO6_RX(R) (__u8)(((R) & M_FILL_FIFO6_RX) >> 5)
#define M_FILL_FIFO7_TX 0x40 // mask bit 6
- #define GET_V_FILL_FIFO7_TX(R) (__u8)((R & M_FILL_FIFO7_TX) >> 6)
+ #define GET_V_FILL_FIFO7_TX(R) (__u8)(((R) & M_FILL_FIFO7_TX) >> 6)
#define M_FILL_FIFO7_RX 0x80 // mask bit 7
- #define GET_V_FILL_FIFO7_RX(R) (__u8)((R & M_FILL_FIFO7_RX) >> 7)
+ #define GET_V_FILL_FIFO7_RX(R) (__u8)(((R) & M_FILL_FIFO7_RX) >> 7)
#define R_FILL_BL2 0x26 // register address, read only
#define M_FILL_FIFO8_TX 0x01 // mask bit 0
- #define GET_V_FILL_FIFO8_TX(R) (__u8)(R & M_FILL_FIFO8_TX)
+ #define GET_V_FILL_FIFO8_TX(R) (__u8)((R) & M_FILL_FIFO8_TX)
#define M_FILL_FIFO8_RX 0x02 // mask bit 1
- #define GET_V_FILL_FIFO8_RX(R) (__u8)((R & M_FILL_FIFO8_RX) >> 1)
+ #define GET_V_FILL_FIFO8_RX(R) (__u8)(((R) & M_FILL_FIFO8_RX) >> 1)
#define M_FILL_FIFO9_TX 0x04 // mask bit 2
- #define GET_V_FILL_FIFO9_TX(R) (__u8)((R & M_FILL_FIFO9_TX) >> 2)
+ #define GET_V_FILL_FIFO9_TX(R) (__u8)(((R) & M_FILL_FIFO9_TX) >> 2)
#define M_FILL_FIFO9_RX 0x08 // mask bit 3
- #define GET_V_FILL_FIFO9_RX(R) (__u8)((R & M_FILL_FIFO9_RX) >> 3)
+ #define GET_V_FILL_FIFO9_RX(R) (__u8)(((R) & M_FILL_FIFO9_RX) >> 3)
#define M_FILL_FIFO10_TX 0x10 // mask bit 4
- #define GET_V_FILL_FIFO10_TX(R) (__u8)((R & M_FILL_FIFO10_TX) >> 4)
+ #define GET_V_FILL_FIFO10_TX(R) (__u8)(((R) & M_FILL_FIFO10_TX) >> 4)
#define M_FILL_FIFO10_RX 0x20 // mask bit 5
- #define GET_V_FILL_FIFO10_RX(R) (__u8)((R & M_FILL_FIFO10_RX) >> 5)
+ #define GET_V_FILL_FIFO10_RX(R) (__u8)(((R) & M_FILL_FIFO10_RX) >> 5)
#define M_FILL_FIFO11_TX 0x40 // mask bit 6
- #define GET_V_FILL_FIFO11_TX(R) (__u8)((R & M_FILL_FIFO11_TX) >> 6)
+ #define GET_V_FILL_FIFO11_TX(R) (__u8)(((R) & M_FILL_FIFO11_TX) >> 6)
#define M_FILL_FIFO11_RX 0x80 // mask bit 7
- #define GET_V_FILL_FIFO11_RX(R) (__u8)((R & M_FILL_FIFO11_RX) >> 7)
+ #define GET_V_FILL_FIFO11_RX(R) (__u8)(((R) & M_FILL_FIFO11_RX) >> 7)
#define R_FILL_BL3 0x27 // register address, read only
#define M_FILL_FIFO12_TX 0x01 // mask bit 0
- #define GET_V_FILL_FIFO12_TX(R) (__u8)(R & M_FILL_FIFO12_TX)
+ #define GET_V_FILL_FIFO12_TX(R) (__u8)((R) & M_FILL_FIFO12_TX)
#define M_FILL_FIFO12_RX 0x02 // mask bit 1
- #define GET_V_FILL_FIFO12_RX(R) (__u8)((R & M_FILL_FIFO12_RX) >> 1)
+ #define GET_V_FILL_FIFO12_RX(R) (__u8)(((R) & M_FILL_FIFO12_RX) >> 1)
#define M_FILL_FIFO13_TX 0x04 // mask bit 2
- #define GET_V_FILL_FIFO13_TX(R) (__u8)((R & M_FILL_FIFO13_TX) >> 2)
+ #define GET_V_FILL_FIFO13_TX(R) (__u8)(((R) & M_FILL_FIFO13_TX) >> 2)
#define M_FILL_FIFO13_RX 0x08 // mask bit 3
- #define GET_V_FILL_FIFO13_RX(R) (__u8)((R & M_FILL_FIFO13_RX) >> 3)
+ #define GET_V_FILL_FIFO13_RX(R) (__u8)(((R) & M_FILL_FIFO13_RX) >> 3)
#define M_FILL_FIFO14_TX 0x10 // mask bit 4
- #define GET_V_FILL_FIFO14_TX(R) (__u8)((R & M_FILL_FIFO14_TX) >> 4)
+ #define GET_V_FILL_FIFO14_TX(R) (__u8)(((R) & M_FILL_FIFO14_TX) >> 4)
#define M_FILL_FIFO14_RX 0x20 // mask bit 5
- #define GET_V_FILL_FIFO14_RX(R) (__u8)((R & M_FILL_FIFO14_RX) >> 5)
+ #define GET_V_FILL_FIFO14_RX(R) (__u8)(((R) & M_FILL_FIFO14_RX) >> 5)
#define M_FILL_FIFO15_TX 0x40 // mask bit 6
- #define GET_V_FILL_FIFO15_TX(R) (__u8)((R & M_FILL_FIFO15_TX) >> 6)
+ #define GET_V_FILL_FIFO15_TX(R) (__u8)(((R) & M_FILL_FIFO15_TX) >> 6)
#define M_FILL_FIFO15_RX 0x80 // mask bit 7
- #define GET_V_FILL_FIFO15_RX(R) (__u8)((R & M_FILL_FIFO15_RX) >> 7)
+ #define GET_V_FILL_FIFO15_RX(R) (__u8)(((R) & M_FILL_FIFO15_RX) >> 7)
#define R_CI_TX 0x28 // register address, write only
#define M_GCI_C 0x3F // mask bits 0..5
- #define SET_V_GCI_C(R,V) (R = (__u8)((R & (__u8)(M_GCI_C ^ 0xFF)) | (__u8)(V & 0x3F)))
- #define GET_V_GCI_C(R) (__u8)(R & M_GCI_C)
+ #define SET_V_GCI_C(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_C ^ 0xFF)) | (__u8)((V) & 0x3F)))
+ #define GET_V_GCI_C(R) (__u8)((R) & M_GCI_C)
#define R_CI_RX 0x28 // register address, read only
#define M_GCI_I 0x3F // mask bits 0..5
- #define GET_V_GCI_I(R) (__u8)(R & M_GCI_I)
+ #define GET_V_GCI_I(R) (__u8)((R) & M_GCI_I)
#define R_GCI_CFG0 0x29 // register address, write only
#define M_MON_END 0x01 // mask bit 0
- #define SET_V_MON_END(R,V) (R = (__u8)((R & (__u8)(M_MON_END ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_MON_END(R) (__u8)(R & M_MON_END)
+ #define SET_V_MON_END(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_END ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_MON_END(R) (__u8)((R) & M_MON_END)
#define M_MON_SLOW 0x02 // mask bit 1
- #define SET_V_MON_SLOW(R,V) (R = (__u8)((R & (__u8)(M_MON_SLOW ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_MON_SLOW(R) (__u8)((R & M_MON_SLOW) >> 1)
+ #define SET_V_MON_SLOW(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_SLOW ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_MON_SLOW(R) (__u8)(((R) & M_MON_SLOW) >> 1)
#define M_MON_DLL 0x04 // mask bit 2
- #define SET_V_MON_DLL(R,V) (R = (__u8)((R & (__u8)(M_MON_DLL ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_MON_DLL(R) (__u8)((R & M_MON_DLL) >> 2)
+ #define SET_V_MON_DLL(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_DLL ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_MON_DLL(R) (__u8)(((R) & M_MON_DLL) >> 2)
#define M_MON_CI6 0x08 // mask bit 3
- #define SET_V_MON_CI6(R,V) (R = (__u8)((R & (__u8)(M_MON_CI6 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_MON_CI6(R) (__u8)((R & M_MON_CI6) >> 3)
+ #define SET_V_MON_CI6(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_CI6 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_MON_CI6(R) (__u8)(((R) & M_MON_CI6) >> 3)
#define M_GCI_SWAP_TXHS 0x10 // mask bit 4
- #define SET_V_GCI_SWAP_TXHS(R,V) (R = (__u8)((R & (__u8)(M_GCI_SWAP_TXHS ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GCI_SWAP_TXHS(R) (__u8)((R & M_GCI_SWAP_TXHS) >> 4)
+ #define SET_V_GCI_SWAP_TXHS(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_SWAP_TXHS ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GCI_SWAP_TXHS(R) (__u8)(((R) & M_GCI_SWAP_TXHS) >> 4)
#define M_GCI_SWAP_RXHS 0x20 // mask bit 5
- #define SET_V_GCI_SWAP_RXHS(R,V) (R = (__u8)((R & (__u8)(M_GCI_SWAP_RXHS ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GCI_SWAP_RXHS(R) (__u8)((R & M_GCI_SWAP_RXHS) >> 5)
+ #define SET_V_GCI_SWAP_RXHS(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_SWAP_RXHS ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GCI_SWAP_RXHS(R) (__u8)(((R) & M_GCI_SWAP_RXHS) >> 5)
#define M_GCI_SWAP_STIO 0x40 // mask bit 6
- #define SET_V_GCI_SWAP_STIO(R,V) (R = (__u8)((R & (__u8)(M_GCI_SWAP_STIO ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GCI_SWAP_STIO(R) (__u8)((R & M_GCI_SWAP_STIO) >> 6)
+ #define SET_V_GCI_SWAP_STIO(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_SWAP_STIO ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GCI_SWAP_STIO(R) (__u8)(((R) & M_GCI_SWAP_STIO) >> 6)
#define M_GCI_EN 0x80 // mask bit 7
- #define SET_V_GCI_EN(R,V) (R = (__u8)((R & (__u8)(M_GCI_EN ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GCI_EN(R) (__u8)((R & M_GCI_EN) >> 7)
+ #define SET_V_GCI_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GCI_EN(R) (__u8)(((R) & M_GCI_EN) >> 7)
#define R_GCI_STA 0x29 // register address, read only
#define M_MON_RXR 0x01 // mask bit 0
- #define GET_V_MON_RXR(R) (__u8)(R & M_MON_RXR)
+ #define GET_V_MON_RXR(R) (__u8)((R) & M_MON_RXR)
#define M_MON_TXR 0x02 // mask bit 1
- #define GET_V_MON_TXR(R) (__u8)((R & M_MON_TXR) >> 1)
+ #define GET_V_MON_TXR(R) (__u8)(((R) & M_MON_TXR) >> 1)
#define M_GCI_MX 0x04 // mask bit 2
- #define GET_V_GCI_MX(R) (__u8)((R & M_GCI_MX) >> 2)
+ #define GET_V_GCI_MX(R) (__u8)(((R) & M_GCI_MX) >> 2)
#define M_GCI_MR 0x08 // mask bit 3
- #define GET_V_GCI_MR(R) (__u8)((R & M_GCI_MR) >> 3)
+ #define GET_V_GCI_MR(R) (__u8)(((R) & M_GCI_MR) >> 3)
#define M_GCI_RX 0x10 // mask bit 4
- #define GET_V_GCI_RX(R) (__u8)((R & M_GCI_RX) >> 4)
+ #define GET_V_GCI_RX(R) (__u8)(((R) & M_GCI_RX) >> 4)
#define M_GCI_ABO 0x20 // mask bit 5
- #define GET_V_GCI_ABO(R) (__u8)((R & M_GCI_ABO) >> 5)
+ #define GET_V_GCI_ABO(R) (__u8)(((R) & M_GCI_ABO) >> 5)
#define R_GCI_CFG1 0x2A // register address, write only
#define M_GCI_SL 0x1F // mask bits 0..4
- #define SET_V_GCI_SL(R,V) (R = (__u8)((R & (__u8)(M_GCI_SL ^ 0xFF)) | (__u8)(V & 0x1F)))
- #define GET_V_GCI_SL(R) (__u8)(R & M_GCI_SL)
+ #define SET_V_GCI_SL(R,V) ((R) = (__u8)(((R) & (__u8)(M_GCI_SL ^ 0xFF)) | (__u8)((V) & 0x1F)))
+ #define GET_V_GCI_SL(R) (__u8)((R) & M_GCI_SL)
#define R_MON_RX 0x2A // register address, read only
#define M_MON_RX 0xFF // mask bits 0..7
- #define GET_V_MON_RX(R) (__u8)(R & M_MON_RX)
+ #define GET_V_MON_RX(R) (__u8)((R) & M_MON_RX)
#define R_MON_TX 0x2B // register address, write only
#define M_MON_TX 0xFF // mask bits 0..7
- #define SET_V_MON_TX(R,V) (R = (__u8)((R & (__u8)(M_MON_TX ^ 0xFF)) | (__u8)V))
- #define GET_V_MON_TX(R) (__u8)(R & M_MON_TX)
+ #define SET_V_MON_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_MON_TX ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_MON_TX(R) (__u8)((R) & M_MON_TX)
#define A_SU_WR_STA 0x30 // register address, write only
#define M_SU_SET_STA 0x0F // mask bits 0..3
- #define SET_V_SU_SET_STA(R,V) (R = (__u8)((R & (__u8)(M_SU_SET_STA ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_SU_SET_STA(R) (__u8)(R & M_SU_SET_STA)
+ #define SET_V_SU_SET_STA(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_SET_STA ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_SU_SET_STA(R) (__u8)((R) & M_SU_SET_STA)
#define M_SU_LD_STA 0x10 // mask bit 4
- #define SET_V_SU_LD_STA(R,V) (R = (__u8)((R & (__u8)(M_SU_LD_STA ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_SU_LD_STA(R) (__u8)((R & M_SU_LD_STA) >> 4)
+ #define SET_V_SU_LD_STA(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_LD_STA ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_SU_LD_STA(R) (__u8)(((R) & M_SU_LD_STA) >> 4)
#define M_SU_ACT 0x60 // mask bits 5..6
- #define SET_V_SU_ACT(R,V) (R = (__u8)((R & (__u8)(M_SU_ACT ^ 0xFF)) | (__u8)((V & 0x03) << 5)))
- #define GET_V_SU_ACT(R) (__u8)((R & M_SU_ACT) >> 5)
+ #define SET_V_SU_ACT(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_ACT ^ 0xFF)) | (__u8)(((V) & 0x03) << 5)))
+ #define GET_V_SU_ACT(R) (__u8)(((R) & M_SU_ACT) >> 5)
#define M_SU_SET_G2_G3 0x80 // mask bit 7
- #define SET_V_SU_SET_G2_G3(R,V) (R = (__u8)((R & (__u8)(M_SU_SET_G2_G3 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_SU_SET_G2_G3(R) (__u8)((R & M_SU_SET_G2_G3) >> 7)
+ #define SET_V_SU_SET_G2_G3(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_SET_G2_G3 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_SU_SET_G2_G3(R) (__u8)(((R) & M_SU_SET_G2_G3) >> 7)
#define A_SU_RD_STA 0x30 // register address, read only
#define M_SU_STA 0x0F // mask bits 0..3
- #define GET_V_SU_STA(R) (__u8)(R & M_SU_STA)
+ #define GET_V_SU_STA(R) (__u8)((R) & M_SU_STA)
#define M_SU_FR_SYNC 0x10 // mask bit 4
- #define GET_V_SU_FR_SYNC(R) (__u8)((R & M_SU_FR_SYNC) >> 4)
+ #define GET_V_SU_FR_SYNC(R) (__u8)(((R) & M_SU_FR_SYNC) >> 4)
#define M_SU_T2_EXP 0x20 // mask bit 5
- #define GET_V_SU_T2_EXP(R) (__u8)((R & M_SU_T2_EXP) >> 5)
+ #define GET_V_SU_T2_EXP(R) (__u8)(((R) & M_SU_T2_EXP) >> 5)
#define M_SU_INFO0 0x40 // mask bit 6
- #define GET_V_SU_INFO0(R) (__u8)((R & M_SU_INFO0) >> 6)
+ #define GET_V_SU_INFO0(R) (__u8)(((R) & M_SU_INFO0) >> 6)
#define M_G2_G3 0x80 // mask bit 7
- #define GET_V_G2_G3(R) (__u8)((R & M_G2_G3) >> 7)
+ #define GET_V_G2_G3(R) (__u8)(((R) & M_G2_G3) >> 7)
#define A_SU_CTRL0 0x31 // register address, write only
#define M_B1_TX_EN 0x01 // mask bit 0
- #define SET_V_B1_TX_EN(R,V) (R = (__u8)((R & (__u8)(M_B1_TX_EN ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_B1_TX_EN(R) (__u8)(R & M_B1_TX_EN)
+ #define SET_V_B1_TX_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_B1_TX_EN ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_B1_TX_EN(R) (__u8)((R) & M_B1_TX_EN)
#define M_B2_TX_EN 0x02 // mask bit 1
- #define SET_V_B2_TX_EN(R,V) (R = (__u8)((R & (__u8)(M_B2_TX_EN ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_B2_TX_EN(R) (__u8)((R & M_B2_TX_EN) >> 1)
+ #define SET_V_B2_TX_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_B2_TX_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_B2_TX_EN(R) (__u8)(((R) & M_B2_TX_EN) >> 1)
#define M_SU_MD 0x04 // mask bit 2
- #define SET_V_SU_MD(R,V) (R = (__u8)((R & (__u8)(M_SU_MD ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_SU_MD(R) (__u8)((R & M_SU_MD) >> 2)
+ #define SET_V_SU_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_MD ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_SU_MD(R) (__u8)(((R) & M_SU_MD) >> 2)
#define M_ST_D_LPRIO 0x08 // mask bit 3
- #define SET_V_ST_D_LPRIO(R,V) (R = (__u8)((R & (__u8)(M_ST_D_LPRIO ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_ST_D_LPRIO(R) (__u8)((R & M_ST_D_LPRIO) >> 3)
+ #define SET_V_ST_D_LPRIO(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_D_LPRIO ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_ST_D_LPRIO(R) (__u8)(((R) & M_ST_D_LPRIO) >> 3)
#define M_ST_SQ_EN 0x10 // mask bit 4
- #define SET_V_ST_SQ_EN(R,V) (R = (__u8)((R & (__u8)(M_ST_SQ_EN ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_ST_SQ_EN(R) (__u8)((R & M_ST_SQ_EN) >> 4)
+ #define SET_V_ST_SQ_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_SQ_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_ST_SQ_EN(R) (__u8)(((R) & M_ST_SQ_EN) >> 4)
#define M_SU_TST_SIG 0x20 // mask bit 5
- #define SET_V_SU_TST_SIG(R,V) (R = (__u8)((R & (__u8)(M_SU_TST_SIG ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_SU_TST_SIG(R) (__u8)((R & M_SU_TST_SIG) >> 5)
+ #define SET_V_SU_TST_SIG(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_TST_SIG ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_SU_TST_SIG(R) (__u8)(((R) & M_SU_TST_SIG) >> 5)
#define M_ST_PU_CTRL 0x40 // mask bit 6
- #define SET_V_ST_PU_CTRL(R,V) (R = (__u8)((R & (__u8)(M_ST_PU_CTRL ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_ST_PU_CTRL(R) (__u8)((R & M_ST_PU_CTRL) >> 6)
+ #define SET_V_ST_PU_CTRL(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_PU_CTRL ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_ST_PU_CTRL(R) (__u8)(((R) & M_ST_PU_CTRL) >> 6)
#define M_SU_STOP 0x80 // mask bit 7
- #define SET_V_SU_STOP(R,V) (R = (__u8)((R & (__u8)(M_SU_STOP ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_SU_STOP(R) (__u8)((R & M_SU_STOP) >> 7)
+ #define SET_V_SU_STOP(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_STOP ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_SU_STOP(R) (__u8)(((R) & M_SU_STOP) >> 7)
#define A_SU_DLYL 0x31 // register address, read only
#define M_SU_DLYL 0x1F // mask bits 0..4
- #define GET_V_SU_DLYL(R) (__u8)(R & M_SU_DLYL)
+ #define GET_V_SU_DLYL(R) (__u8)((R) & M_SU_DLYL)
#define A_SU_CTRL1 0x32 // register address, write only
#define M_G2_G3_EN 0x01 // mask bit 0
- #define SET_V_G2_G3_EN(R,V) (R = (__u8)((R & (__u8)(M_G2_G3_EN ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_G2_G3_EN(R) (__u8)(R & M_G2_G3_EN)
+ #define SET_V_G2_G3_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_G2_G3_EN ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_G2_G3_EN(R) (__u8)((R) & M_G2_G3_EN)
#define M_D_RES 0x04 // mask bit 2
- #define SET_V_D_RES(R,V) (R = (__u8)((R & (__u8)(M_D_RES ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_D_RES(R) (__u8)((R & M_D_RES) >> 2)
+ #define SET_V_D_RES(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_RES ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_D_RES(R) (__u8)(((R) & M_D_RES) >> 2)
#define M_ST_E_IGNO 0x08 // mask bit 3
- #define SET_V_ST_E_IGNO(R,V) (R = (__u8)((R & (__u8)(M_ST_E_IGNO ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_ST_E_IGNO(R) (__u8)((R & M_ST_E_IGNO) >> 3)
+ #define SET_V_ST_E_IGNO(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_E_IGNO ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_ST_E_IGNO(R) (__u8)(((R) & M_ST_E_IGNO) >> 3)
#define M_ST_E_LO 0x10 // mask bit 4
- #define SET_V_ST_E_LO(R,V) (R = (__u8)((R & (__u8)(M_ST_E_LO ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_ST_E_LO(R) (__u8)((R & M_ST_E_LO) >> 4)
+ #define SET_V_ST_E_LO(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_E_LO ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_ST_E_LO(R) (__u8)(((R) & M_ST_E_LO) >> 4)
#define M_BAC_D 0x40 // mask bit 6
- #define SET_V_BAC_D(R,V) (R = (__u8)((R & (__u8)(M_BAC_D ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_BAC_D(R) (__u8)((R & M_BAC_D) >> 6)
+ #define SET_V_BAC_D(R,V) ((R) = (__u8)(((R) & (__u8)(M_BAC_D ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_BAC_D(R) (__u8)(((R) & M_BAC_D) >> 6)
#define M_B12_SWAP 0x80 // mask bit 7
- #define SET_V_B12_SWAP(R,V) (R = (__u8)((R & (__u8)(M_B12_SWAP ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_B12_SWAP(R) (__u8)((R & M_B12_SWAP) >> 7)
+ #define SET_V_B12_SWAP(R,V) ((R) = (__u8)(((R) & (__u8)(M_B12_SWAP ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_B12_SWAP(R) (__u8)(((R) & M_B12_SWAP) >> 7)
#define A_SU_DLYH 0x32 // register address, read only
#define M_SU_DLYH 0x1F // mask bits 0..4
- #define GET_V_SU_DLYH(R) (__u8)(R & M_SU_DLYH)
+ #define GET_V_SU_DLYH(R) (__u8)((R) & M_SU_DLYH)
#define A_SU_CTRL2 0x33 // register address, write only
#define M_B1_RX_EN 0x01 // mask bit 0
- #define SET_V_B1_RX_EN(R,V) (R = (__u8)((R & (__u8)(M_B1_RX_EN ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_B1_RX_EN(R) (__u8)(R & M_B1_RX_EN)
+ #define SET_V_B1_RX_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_B1_RX_EN ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_B1_RX_EN(R) (__u8)((R) & M_B1_RX_EN)
#define M_B2_RX_EN 0x02 // mask bit 1
- #define SET_V_B2_RX_EN(R,V) (R = (__u8)((R & (__u8)(M_B2_RX_EN ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_B2_RX_EN(R) (__u8)((R & M_B2_RX_EN) >> 1)
+ #define SET_V_B2_RX_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_B2_RX_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_B2_RX_EN(R) (__u8)(((R) & M_B2_RX_EN) >> 1)
#define M_MS_SSYNC2 0x04 // mask bit 2
- #define SET_V_MS_SSYNC2(R,V) (R = (__u8)((R & (__u8)(M_MS_SSYNC2 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_MS_SSYNC2(R) (__u8)((R & M_MS_SSYNC2) >> 2)
+ #define SET_V_MS_SSYNC2(R,V) ((R) = (__u8)(((R) & (__u8)(M_MS_SSYNC2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_MS_SSYNC2(R) (__u8)(((R) & M_MS_SSYNC2) >> 2)
#define M_BAC_S_SEL 0x08 // mask bit 3
- #define SET_V_BAC_S_SEL(R,V) (R = (__u8)((R & (__u8)(M_BAC_S_SEL ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_BAC_S_SEL(R) (__u8)((R & M_BAC_S_SEL) >> 3)
+ #define SET_V_BAC_S_SEL(R,V) ((R) = (__u8)(((R) & (__u8)(M_BAC_S_SEL ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_BAC_S_SEL(R) (__u8)(((R) & M_BAC_S_SEL) >> 3)
#define M_SU_SYNC_NT 0x10 // mask bit 4
- #define SET_V_SU_SYNC_NT(R,V) (R = (__u8)((R & (__u8)(M_SU_SYNC_NT ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_SU_SYNC_NT(R) (__u8)((R & M_SU_SYNC_NT) >> 4)
+ #define SET_V_SU_SYNC_NT(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_SYNC_NT ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_SU_SYNC_NT(R) (__u8)(((R) & M_SU_SYNC_NT) >> 4)
#define M_SU_2KHZ 0x20 // mask bit 5
- #define SET_V_SU_2KHZ(R,V) (R = (__u8)((R & (__u8)(M_SU_2KHZ ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_SU_2KHZ(R) (__u8)((R & M_SU_2KHZ) >> 5)
+ #define SET_V_SU_2KHZ(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_2KHZ ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_SU_2KHZ(R) (__u8)(((R) & M_SU_2KHZ) >> 5)
#define M_SU_TRI 0x40 // mask bit 6
- #define SET_V_SU_TRI(R,V) (R = (__u8)((R & (__u8)(M_SU_TRI ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_SU_TRI(R) (__u8)((R & M_SU_TRI) >> 6)
+ #define SET_V_SU_TRI(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_TRI ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_SU_TRI(R) (__u8)(((R) & M_SU_TRI) >> 6)
#define M_SU_EXCHG 0x80 // mask bit 7
- #define SET_V_SU_EXCHG(R,V) (R = (__u8)((R & (__u8)(M_SU_EXCHG ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_SU_EXCHG(R) (__u8)((R & M_SU_EXCHG) >> 7)
+ #define SET_V_SU_EXCHG(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_EXCHG ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_SU_EXCHG(R) (__u8)(((R) & M_SU_EXCHG) >> 7)
#define A_MS_TX 0x34 // register address, write only
#define M_MS_TX 0x0F // mask bits 0..3
- #define SET_V_MS_TX(R,V) (R = (__u8)((R & (__u8)(M_MS_TX ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_MS_TX(R) (__u8)(R & M_MS_TX)
+ #define SET_V_MS_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_MS_TX ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_MS_TX(R) (__u8)((R) & M_MS_TX)
#define M_UP_S_TX 0x40 // mask bit 6
- #define SET_V_UP_S_TX(R,V) (R = (__u8)((R & (__u8)(M_UP_S_TX ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_UP_S_TX(R) (__u8)((R & M_UP_S_TX) >> 6)
+ #define SET_V_UP_S_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_S_TX ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_UP_S_TX(R) (__u8)(((R) & M_UP_S_TX) >> 6)
#define A_MS_RX 0x34 // register address, read only
#define M_MS_RX 0x0F // mask bits 0..3
- #define GET_V_MS_RX(R) (__u8)(R & M_MS_RX)
+ #define GET_V_MS_RX(R) (__u8)((R) & M_MS_RX)
#define M_MS_RX_RDY 0x10 // mask bit 4
- #define GET_V_MS_RX_RDY(R) (__u8)((R & M_MS_RX_RDY) >> 4)
+ #define GET_V_MS_RX_RDY(R) (__u8)(((R) & M_MS_RX_RDY) >> 4)
#define M_UP_S_RX 0x40 // mask bit 6
- #define GET_V_UP_S_RX(R) (__u8)((R & M_UP_S_RX) >> 6)
+ #define GET_V_UP_S_RX(R) (__u8)(((R) & M_UP_S_RX) >> 6)
#define M_MS_TX_RDY 0x80 // mask bit 7
- #define GET_V_MS_TX_RDY(R) (__u8)((R & M_MS_TX_RDY) >> 7)
+ #define GET_V_MS_TX_RDY(R) (__u8)(((R) & M_MS_TX_RDY) >> 7)
#define A_ST_CTRL3 0x35 // register address, write only
#define M_ST_SEL 0x01 // mask bit 0
- #define SET_V_ST_SEL(R,V) (R = (__u8)((R & (__u8)(M_ST_SEL ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_ST_SEL(R) (__u8)(R & M_ST_SEL)
+ #define SET_V_ST_SEL(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_SEL ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_ST_SEL(R) (__u8)((R) & M_ST_SEL)
#define M_ST_PULSE 0xFE // mask bits 1..7
- #define SET_V_ST_PULSE(R,V) (R = (__u8)((R & (__u8)(M_ST_PULSE ^ 0xFF)) | (__u8)((V & 0x7F) << 1)))
- #define GET_V_ST_PULSE(R) (__u8)((R & M_ST_PULSE) >> 1)
+ #define SET_V_ST_PULSE(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_PULSE ^ 0xFF)) | (__u8)(((V) & 0x7F) << 1)))
+ #define GET_V_ST_PULSE(R) (__u8)(((R) & M_ST_PULSE) >> 1)
#define A_UP_CTRL3 0x35 // register address, write only
#define M_UP_SEL 0x01 // mask bit 0
- #define SET_V_UP_SEL(R,V) (R = (__u8)((R & (__u8)(M_UP_SEL ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_UP_SEL(R) (__u8)(R & M_UP_SEL)
+ #define SET_V_UP_SEL(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_SEL ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_UP_SEL(R) (__u8)((R) & M_UP_SEL)
#define M_UP_VIO 0x02 // mask bit 1
- #define SET_V_UP_VIO(R,V) (R = (__u8)((R & (__u8)(M_UP_VIO ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_UP_VIO(R) (__u8)((R & M_UP_VIO) >> 1)
+ #define SET_V_UP_VIO(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_VIO ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_UP_VIO(R) (__u8)(((R) & M_UP_VIO) >> 1)
#define M_UP_DC_STR 0x04 // mask bit 2
- #define SET_V_UP_DC_STR(R,V) (R = (__u8)((R & (__u8)(M_UP_DC_STR ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_UP_DC_STR(R) (__u8)((R & M_UP_DC_STR) >> 2)
+ #define SET_V_UP_DC_STR(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_DC_STR ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_UP_DC_STR(R) (__u8)(((R) & M_UP_DC_STR) >> 2)
#define M_UP_DC_OFF 0x08 // mask bit 3
- #define SET_V_UP_DC_OFF(R,V) (R = (__u8)((R & (__u8)(M_UP_DC_OFF ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_UP_DC_OFF(R) (__u8)((R & M_UP_DC_OFF) >> 3)
+ #define SET_V_UP_DC_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_DC_OFF ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_UP_DC_OFF(R) (__u8)(((R) & M_UP_DC_OFF) >> 3)
#define M_UP_RPT_PAT 0x10 // mask bit 4
- #define SET_V_UP_RPT_PAT(R,V) (R = (__u8)((R & (__u8)(M_UP_RPT_PAT ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_UP_RPT_PAT(R) (__u8)((R & M_UP_RPT_PAT) >> 4)
+ #define SET_V_UP_RPT_PAT(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_RPT_PAT ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_UP_RPT_PAT(R) (__u8)(((R) & M_UP_RPT_PAT) >> 4)
#define M_UP_SCRM_MD 0x20 // mask bit 5
- #define SET_V_UP_SCRM_MD(R,V) (R = (__u8)((R & (__u8)(M_UP_SCRM_MD ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_UP_SCRM_MD(R) (__u8)((R & M_UP_SCRM_MD) >> 5)
+ #define SET_V_UP_SCRM_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_SCRM_MD ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_UP_SCRM_MD(R) (__u8)(((R) & M_UP_SCRM_MD) >> 5)
#define M_UP_SCRM_TX_OFF 0x40 // mask bit 6
- #define SET_V_UP_SCRM_TX_OFF(R,V) (R = (__u8)((R & (__u8)(M_UP_SCRM_TX_OFF ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_UP_SCRM_TX_OFF(R) (__u8)((R & M_UP_SCRM_TX_OFF) >> 6)
+ #define SET_V_UP_SCRM_TX_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_SCRM_TX_OFF ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_UP_SCRM_TX_OFF(R) (__u8)(((R) & M_UP_SCRM_TX_OFF) >> 6)
#define M_UP_SCRM_RX_OFF 0x80 // mask bit 7
- #define SET_V_UP_SCRM_RX_OFF(R,V) (R = (__u8)((R & (__u8)(M_UP_SCRM_RX_OFF ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_UP_SCRM_RX_OFF(R) (__u8)((R & M_UP_SCRM_RX_OFF) >> 7)
+ #define SET_V_UP_SCRM_RX_OFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_UP_SCRM_RX_OFF ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_UP_SCRM_RX_OFF(R) (__u8)(((R) & M_UP_SCRM_RX_OFF) >> 7)
#define A_SU_STA 0x35 // register address, read only
#define M_ST_D_HPRIO9 0x01 // mask bit 0
- #define GET_V_ST_D_HPRIO9(R) (__u8)(R & M_ST_D_HPRIO9)
+ #define GET_V_ST_D_HPRIO9(R) (__u8)((R) & M_ST_D_HPRIO9)
#define M_ST_D_LPRIO11 0x02 // mask bit 1
- #define GET_V_ST_D_LPRIO11(R) (__u8)((R & M_ST_D_LPRIO11) >> 1)
+ #define GET_V_ST_D_LPRIO11(R) (__u8)(((R) & M_ST_D_LPRIO11) >> 1)
#define M_ST_D_CONT 0x04 // mask bit 2
- #define GET_V_ST_D_CONT(R) (__u8)((R & M_ST_D_CONT) >> 2)
+ #define GET_V_ST_D_CONT(R) (__u8)(((R) & M_ST_D_CONT) >> 2)
#define M_ST_D_ACT 0x08 // mask bit 3
- #define GET_V_ST_D_ACT(R) (__u8)((R & M_ST_D_ACT) >> 3)
+ #define GET_V_ST_D_ACT(R) (__u8)(((R) & M_ST_D_ACT) >> 3)
#define M_SU_AF0 0x80 // mask bit 7
- #define GET_V_SU_AF0(R) (__u8)((R & M_SU_AF0) >> 7)
+ #define GET_V_SU_AF0(R) (__u8)(((R) & M_SU_AF0) >> 7)
#define A_MS_DF 0x36 // register address, write only
#define M_BAC_NINV 0x01 // mask bit 0
- #define SET_V_BAC_NINV(R,V) (R = (__u8)((R & (__u8)(M_BAC_NINV ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_BAC_NINV(R) (__u8)(R & M_BAC_NINV)
+ #define SET_V_BAC_NINV(R,V) ((R) = (__u8)(((R) & (__u8)(M_BAC_NINV ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_BAC_NINV(R) (__u8)((R) & M_BAC_NINV)
#define M_SG_AB_INV 0x02 // mask bit 1
- #define SET_V_SG_AB_INV(R,V) (R = (__u8)((R & (__u8)(M_SG_AB_INV ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_SG_AB_INV(R) (__u8)((R & M_SG_AB_INV) >> 1)
+ #define SET_V_SG_AB_INV(R,V) ((R) = (__u8)(((R) & (__u8)(M_SG_AB_INV ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_SG_AB_INV(R) (__u8)(((R) & M_SG_AB_INV) >> 1)
#define M_SQ_T_SRC 0x04 // mask bit 2
- #define SET_V_SQ_T_SRC(R,V) (R = (__u8)((R & (__u8)(M_SQ_T_SRC ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_SQ_T_SRC(R) (__u8)((R & M_SQ_T_SRC) >> 2)
+ #define SET_V_SQ_T_SRC(R,V) ((R) = (__u8)(((R) & (__u8)(M_SQ_T_SRC ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_SQ_T_SRC(R) (__u8)(((R) & M_SQ_T_SRC) >> 2)
#define M_M_S_SRC 0x08 // mask bit 3
- #define SET_V_M_S_SRC(R,V) (R = (__u8)((R & (__u8)(M_M_S_SRC ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_M_S_SRC(R) (__u8)((R & M_M_S_SRC) >> 3)
+ #define SET_V_M_S_SRC(R,V) ((R) = (__u8)(((R) & (__u8)(M_M_S_SRC ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_M_S_SRC(R) (__u8)(((R) & M_M_S_SRC) >> 3)
#define M_SQ_T_DST 0x10 // mask bit 4
- #define SET_V_SQ_T_DST(R,V) (R = (__u8)((R & (__u8)(M_SQ_T_DST ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_SQ_T_DST(R) (__u8)((R & M_SQ_T_DST) >> 4)
+ #define SET_V_SQ_T_DST(R,V) ((R) = (__u8)(((R) & (__u8)(M_SQ_T_DST ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_SQ_T_DST(R) (__u8)(((R) & M_SQ_T_DST) >> 4)
#define M_SU_RX_VAL 0x20 // mask bit 5
- #define SET_V_SU_RX_VAL(R,V) (R = (__u8)((R & (__u8)(M_SU_RX_VAL ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_SU_RX_VAL(R) (__u8)((R & M_SU_RX_VAL) >> 5)
+ #define SET_V_SU_RX_VAL(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_RX_VAL ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_SU_RX_VAL(R) (__u8)(((R) & M_SU_RX_VAL) >> 5)
#define A_SU_CLK_DLY 0x37 // register address, write only
#define M_SU_CLK_DLY 0x0F // mask bits 0..3
- #define SET_V_SU_CLK_DLY(R,V) (R = (__u8)((R & (__u8)(M_SU_CLK_DLY ^ 0xFF)) | (__u8)(V & 0x0F)))
- #define GET_V_SU_CLK_DLY(R) (__u8)(R & M_SU_CLK_DLY)
+ #define SET_V_SU_CLK_DLY(R,V) ((R) = (__u8)(((R) & (__u8)(M_SU_CLK_DLY ^ 0xFF)) | (__u8)((V) & 0x0F)))
+ #define GET_V_SU_CLK_DLY(R) (__u8)((R) & M_SU_CLK_DLY)
#define M_ST_SMPL 0x70 // mask bits 4..6
- #define SET_V_ST_SMPL(R,V) (R = (__u8)((R & (__u8)(M_ST_SMPL ^ 0xFF)) | (__u8)((V & 0x07) << 4)))
- #define GET_V_ST_SMPL(R) (__u8)((R & M_ST_SMPL) >> 4)
+ #define SET_V_ST_SMPL(R,V) ((R) = (__u8)(((R) & (__u8)(M_ST_SMPL ^ 0xFF)) | (__u8)(((V) & 0x07) << 4)))
+ #define GET_V_ST_SMPL(R) (__u8)(((R) & M_ST_SMPL) >> 4)
#define R_PWM0 0x38 // register address, write only
#define M_PWM0 0xFF // mask bits 0..7
- #define SET_V_PWM0(R,V) (R = (__u8)((R & (__u8)(M_PWM0 ^ 0xFF)) | (__u8)V))
- #define GET_V_PWM0(R) (__u8)(R & M_PWM0)
+ #define SET_V_PWM0(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM0 ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_PWM0(R) (__u8)((R) & M_PWM0)
#define R_PWM1 0x39 // register address, write only
#define M_PWM1 0xFF // mask bits 0..7
- #define SET_V_PWM1(R,V) (R = (__u8)((R & (__u8)(M_PWM1 ^ 0xFF)) | (__u8)V))
- #define GET_V_PWM1(R) (__u8)(R & M_PWM1)
+ #define SET_V_PWM1(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM1 ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_PWM1(R) (__u8)((R) & M_PWM1)
#define A_B1_TX 0x3C // register address, write only
#define M_B1_TX 0xFF // mask bits 0..7
- #define SET_V_B1_TX(R,V) (R = (__u8)((R & (__u8)(M_B1_TX ^ 0xFF)) | (__u8)V))
- #define GET_V_B1_TX(R) (__u8)(R & M_B1_TX)
+ #define SET_V_B1_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_B1_TX ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_B1_TX(R) (__u8)((R) & M_B1_TX)
#define A_B1_RX 0x3C // register address, read only
#define M_B1_RX 0xFF // mask bits 0..7
- #define GET_V_B1_RX(R) (__u8)(R & M_B1_RX)
+ #define GET_V_B1_RX(R) (__u8)((R) & M_B1_RX)
#define A_B2_TX 0x3D // register address, write only
#define M_B2_TX 0xFF // mask bits 0..7
- #define SET_V_B2_TX(R,V) (R = (__u8)((R & (__u8)(M_B2_TX ^ 0xFF)) | (__u8)V))
- #define GET_V_B2_TX(R) (__u8)(R & M_B2_TX)
+ #define SET_V_B2_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_B2_TX ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_B2_TX(R) (__u8)((R) & M_B2_TX)
#define A_B2_RX 0x3D // register address, read only
#define M_B2_RX 0xFF // mask bits 0..7
- #define GET_V_B2_RX(R) (__u8)(R & M_B2_RX)
+ #define GET_V_B2_RX(R) (__u8)((R) & M_B2_RX)
#define A_D_TX 0x3E // register address, write only
#define M_D_TX_S 0x01 // mask bit 0
- #define SET_V_D_TX_S(R,V) (R = (__u8)((R & (__u8)(M_D_TX_S ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_D_TX_S(R) (__u8)(R & M_D_TX_S)
+ #define SET_V_D_TX_S(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_TX_S ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_D_TX_S(R) (__u8)((R) & M_D_TX_S)
#define M_D_TX_BAC 0x20 // mask bit 5
- #define SET_V_D_TX_BAC(R,V) (R = (__u8)((R & (__u8)(M_D_TX_BAC ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_D_TX_BAC(R) (__u8)((R & M_D_TX_BAC) >> 5)
+ #define SET_V_D_TX_BAC(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_TX_BAC ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_D_TX_BAC(R) (__u8)(((R) & M_D_TX_BAC) >> 5)
#define M_D_TX 0xC0 // mask bits 6..7
- #define SET_V_D_TX(R,V) (R = (__u8)((R & (__u8)(M_D_TX ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_D_TX(R) (__u8)((R & M_D_TX) >> 6)
+ #define SET_V_D_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_D_TX ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_D_TX(R) (__u8)(((R) & M_D_TX) >> 6)
#define A_D_RX 0x3E // register address, read only
#define M_D_RX_S 0x01 // mask bit 0
- #define GET_V_D_RX_S(R) (__u8)(R & M_D_RX_S)
+ #define GET_V_D_RX_S(R) (__u8)((R) & M_D_RX_S)
#define M_D_RX_AB 0x10 // mask bit 4
- #define GET_V_D_RX_AB(R) (__u8)((R & M_D_RX_AB) >> 4)
+ #define GET_V_D_RX_AB(R) (__u8)(((R) & M_D_RX_AB) >> 4)
#define M_D_RX_SG 0x20 // mask bit 5
- #define GET_V_D_RX_SG(R) (__u8)((R & M_D_RX_SG) >> 5)
+ #define GET_V_D_RX_SG(R) (__u8)(((R) & M_D_RX_SG) >> 5)
#define M_D_RX 0xC0 // mask bits 6..7
- #define GET_V_D_RX(R) (__u8)((R & M_D_RX) >> 6)
+ #define GET_V_D_RX(R) (__u8)(((R) & M_D_RX) >> 6)
#define A_E_RX 0x3F // register address, read only
#define M_E_RX_S 0x01 // mask bit 0
- #define GET_V_E_RX_S(R) (__u8)(R & M_E_RX_S)
+ #define GET_V_E_RX_S(R) (__u8)((R) & M_E_RX_S)
#define M_E_RX_AB 0x10 // mask bit 4
- #define GET_V_E_RX_AB(R) (__u8)((R & M_E_RX_AB) >> 4)
+ #define GET_V_E_RX_AB(R) (__u8)(((R) & M_E_RX_AB) >> 4)
#define M_E_RX_SG 0x20 // mask bit 5
- #define GET_V_E_RX_SG(R) (__u8)((R & M_E_RX_SG) >> 5)
+ #define GET_V_E_RX_SG(R) (__u8)(((R) & M_E_RX_SG) >> 5)
#define M_E_RX 0xC0 // mask bits 6..7
- #define GET_V_E_RX(R) (__u8)((R & M_E_RX) >> 6)
+ #define GET_V_E_RX(R) (__u8)(((R) & M_E_RX) >> 6)
#define A_BAC_S_TX 0x3F // register address, write only
#define M_S_TX 0x01 // mask bit 0
- #define SET_V_S_TX(R,V) (R = (__u8)((R & (__u8)(M_S_TX ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_S_TX(R) (__u8)(R & M_S_TX)
+ #define SET_V_S_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_S_TX ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_S_TX(R) (__u8)((R) & M_S_TX)
#define M_BAC_TX 0x20 // mask bit 5
- #define SET_V_BAC_TX(R,V) (R = (__u8)((R & (__u8)(M_BAC_TX ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_BAC_TX(R) (__u8)((R & M_BAC_TX) >> 5)
+ #define SET_V_BAC_TX(R,V) ((R) = (__u8)(((R) & (__u8)(M_BAC_TX ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_BAC_TX(R) (__u8)(((R) & M_BAC_TX) >> 5)
#define R_GPIO_OUT1 0x40 // register address, write only
#define M_GPIO_OUT8 0x01 // mask bit 0
- #define SET_V_GPIO_OUT8(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT8 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_OUT8(R) (__u8)(R & M_GPIO_OUT8)
+ #define SET_V_GPIO_OUT8(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT8 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_OUT8(R) (__u8)((R) & M_GPIO_OUT8)
#define M_GPIO_OUT9 0x02 // mask bit 1
- #define SET_V_GPIO_OUT9(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT9 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_OUT9(R) (__u8)((R & M_GPIO_OUT9) >> 1)
+ #define SET_V_GPIO_OUT9(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT9 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_OUT9(R) (__u8)(((R) & M_GPIO_OUT9) >> 1)
#define M_GPIO_OUT10 0x04 // mask bit 2
- #define SET_V_GPIO_OUT10(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT10 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_OUT10(R) (__u8)((R & M_GPIO_OUT10) >> 2)
+ #define SET_V_GPIO_OUT10(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT10 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_OUT10(R) (__u8)(((R) & M_GPIO_OUT10) >> 2)
#define M_GPIO_OUT11 0x08 // mask bit 3
- #define SET_V_GPIO_OUT11(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT11 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_OUT11(R) (__u8)((R & M_GPIO_OUT11) >> 3)
+ #define SET_V_GPIO_OUT11(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT11 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_OUT11(R) (__u8)(((R) & M_GPIO_OUT11) >> 3)
#define M_GPIO_OUT12 0x10 // mask bit 4
- #define SET_V_GPIO_OUT12(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT12 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_OUT12(R) (__u8)((R & M_GPIO_OUT12) >> 4)
+ #define SET_V_GPIO_OUT12(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT12 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_OUT12(R) (__u8)(((R) & M_GPIO_OUT12) >> 4)
#define M_GPIO_OUT13 0x20 // mask bit 5
- #define SET_V_GPIO_OUT13(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT13 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_OUT13(R) (__u8)((R & M_GPIO_OUT13) >> 5)
+ #define SET_V_GPIO_OUT13(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT13 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_OUT13(R) (__u8)(((R) & M_GPIO_OUT13) >> 5)
#define M_GPIO_OUT14 0x40 // mask bit 6
- #define SET_V_GPIO_OUT14(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT14 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_OUT14(R) (__u8)((R & M_GPIO_OUT14) >> 6)
+ #define SET_V_GPIO_OUT14(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT14 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_OUT14(R) (__u8)(((R) & M_GPIO_OUT14) >> 6)
#define M_GPIO_OUT15 0x80 // mask bit 7
- #define SET_V_GPIO_OUT15(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT15 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_OUT15(R) (__u8)((R & M_GPIO_OUT15) >> 7)
+ #define SET_V_GPIO_OUT15(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT15 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_OUT15(R) (__u8)(((R) & M_GPIO_OUT15) >> 7)
#define R_GPIO_IN1 0x40 // register address, read only
#define M_GPIO_IN8 0x01 // mask bit 0
- #define GET_V_GPIO_IN8(R) (__u8)(R & M_GPIO_IN8)
+ #define GET_V_GPIO_IN8(R) (__u8)((R) & M_GPIO_IN8)
#define M_GPIO_IN9 0x02 // mask bit 1
- #define GET_V_GPIO_IN9(R) (__u8)((R & M_GPIO_IN9) >> 1)
+ #define GET_V_GPIO_IN9(R) (__u8)(((R) & M_GPIO_IN9) >> 1)
#define M_GPIO_IN10 0x04 // mask bit 2
- #define GET_V_GPIO_IN10(R) (__u8)((R & M_GPIO_IN10) >> 2)
+ #define GET_V_GPIO_IN10(R) (__u8)(((R) & M_GPIO_IN10) >> 2)
#define M_GPIO_IN11 0x08 // mask bit 3
- #define GET_V_GPIO_IN11(R) (__u8)((R & M_GPIO_IN11) >> 3)
+ #define GET_V_GPIO_IN11(R) (__u8)(((R) & M_GPIO_IN11) >> 3)
#define M_GPIO_IN12 0x10 // mask bit 4
- #define GET_V_GPIO_IN12(R) (__u8)((R & M_GPIO_IN12) >> 4)
+ #define GET_V_GPIO_IN12(R) (__u8)(((R) & M_GPIO_IN12) >> 4)
#define M_GPIO_IN13 0x20 // mask bit 5
- #define GET_V_GPIO_IN13(R) (__u8)((R & M_GPIO_IN13) >> 5)
+ #define GET_V_GPIO_IN13(R) (__u8)(((R) & M_GPIO_IN13) >> 5)
#define M_GPIO_IN14 0x40 // mask bit 6
- #define GET_V_GPIO_IN14(R) (__u8)((R & M_GPIO_IN14) >> 6)
+ #define GET_V_GPIO_IN14(R) (__u8)(((R) & M_GPIO_IN14) >> 6)
#define M_GPIO_IN15 0x80 // mask bit 7
- #define GET_V_GPIO_IN15(R) (__u8)((R & M_GPIO_IN15) >> 7)
+ #define GET_V_GPIO_IN15(R) (__u8)(((R) & M_GPIO_IN15) >> 7)
#define R_GPIO_OUT3 0x41 // register address, write only
#define M_GPIO_OUT24 0x01 // mask bit 0
- #define SET_V_GPIO_OUT24(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT24 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_OUT24(R) (__u8)(R & M_GPIO_OUT24)
+ #define SET_V_GPIO_OUT24(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT24 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_OUT24(R) (__u8)((R) & M_GPIO_OUT24)
#define M_GPIO_OUT25 0x02 // mask bit 1
- #define SET_V_GPIO_OUT25(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT25 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_OUT25(R) (__u8)((R & M_GPIO_OUT25) >> 1)
+ #define SET_V_GPIO_OUT25(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT25 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_OUT25(R) (__u8)(((R) & M_GPIO_OUT25) >> 1)
#define M_GPIO_OUT26 0x04 // mask bit 2
- #define SET_V_GPIO_OUT26(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT26 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_OUT26(R) (__u8)((R & M_GPIO_OUT26) >> 2)
+ #define SET_V_GPIO_OUT26(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT26 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_OUT26(R) (__u8)(((R) & M_GPIO_OUT26) >> 2)
#define M_GPIO_OUT27 0x08 // mask bit 3
- #define SET_V_GPIO_OUT27(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT27 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_OUT27(R) (__u8)((R & M_GPIO_OUT27) >> 3)
+ #define SET_V_GPIO_OUT27(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT27 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_OUT27(R) (__u8)(((R) & M_GPIO_OUT27) >> 3)
#define M_GPIO_OUT28 0x10 // mask bit 4
- #define SET_V_GPIO_OUT28(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT28 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_OUT28(R) (__u8)((R & M_GPIO_OUT28) >> 4)
+ #define SET_V_GPIO_OUT28(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT28 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_OUT28(R) (__u8)(((R) & M_GPIO_OUT28) >> 4)
#define M_GPIO_OUT29 0x20 // mask bit 5
- #define SET_V_GPIO_OUT29(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT29 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_OUT29(R) (__u8)((R & M_GPIO_OUT29) >> 5)
+ #define SET_V_GPIO_OUT29(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT29 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_OUT29(R) (__u8)(((R) & M_GPIO_OUT29) >> 5)
#define M_GPIO_OUT30 0x40 // mask bit 6
- #define SET_V_GPIO_OUT30(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT30 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_OUT30(R) (__u8)((R & M_GPIO_OUT30) >> 6)
+ #define SET_V_GPIO_OUT30(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT30 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_OUT30(R) (__u8)(((R) & M_GPIO_OUT30) >> 6)
#define M_GPIO_OUT31 0x80 // mask bit 7
- #define SET_V_GPIO_OUT31(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT31 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_OUT31(R) (__u8)((R & M_GPIO_OUT31) >> 7)
+ #define SET_V_GPIO_OUT31(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT31 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_OUT31(R) (__u8)(((R) & M_GPIO_OUT31) >> 7)
#define R_GPIO_IN3 0x41 // register address, read only
#define M_GPIO_IN24 0x01 // mask bit 0
- #define GET_V_GPIO_IN24(R) (__u8)(R & M_GPIO_IN24)
+ #define GET_V_GPIO_IN24(R) (__u8)((R) & M_GPIO_IN24)
#define M_GPIO_IN25 0x02 // mask bit 1
- #define GET_V_GPIO_IN25(R) (__u8)((R & M_GPIO_IN25) >> 1)
+ #define GET_V_GPIO_IN25(R) (__u8)(((R) & M_GPIO_IN25) >> 1)
#define M_GPIO_IN26 0x04 // mask bit 2
- #define GET_V_GPIO_IN26(R) (__u8)((R & M_GPIO_IN26) >> 2)
+ #define GET_V_GPIO_IN26(R) (__u8)(((R) & M_GPIO_IN26) >> 2)
#define M_GPIO_IN27 0x08 // mask bit 3
- #define GET_V_GPIO_IN27(R) (__u8)((R & M_GPIO_IN27) >> 3)
+ #define GET_V_GPIO_IN27(R) (__u8)(((R) & M_GPIO_IN27) >> 3)
#define M_GPIO_IN28 0x10 // mask bit 4
- #define GET_V_GPIO_IN28(R) (__u8)((R & M_GPIO_IN28) >> 4)
+ #define GET_V_GPIO_IN28(R) (__u8)(((R) & M_GPIO_IN28) >> 4)
#define M_GPIO_IN29 0x20 // mask bit 5
- #define GET_V_GPIO_IN29(R) (__u8)((R & M_GPIO_IN29) >> 5)
+ #define GET_V_GPIO_IN29(R) (__u8)(((R) & M_GPIO_IN29) >> 5)
#define M_GPIO_IN30 0x40 // mask bit 6
- #define GET_V_GPIO_IN30(R) (__u8)((R & M_GPIO_IN30) >> 6)
+ #define GET_V_GPIO_IN30(R) (__u8)(((R) & M_GPIO_IN30) >> 6)
#define M_GPIO_IN31 0x80 // mask bit 7
- #define GET_V_GPIO_IN31(R) (__u8)((R & M_GPIO_IN31) >> 7)
+ #define GET_V_GPIO_IN31(R) (__u8)(((R) & M_GPIO_IN31) >> 7)
#define R_GPIO_EN1 0x42 // register address, write only
#define M_GPIO_EN8 0x01 // mask bit 0
- #define SET_V_GPIO_EN8(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN8 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_EN8(R) (__u8)(R & M_GPIO_EN8)
+ #define SET_V_GPIO_EN8(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN8 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_EN8(R) (__u8)((R) & M_GPIO_EN8)
#define M_GPIO_EN9 0x02 // mask bit 1
- #define SET_V_GPIO_EN9(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN9 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_EN9(R) (__u8)((R & M_GPIO_EN9) >> 1)
+ #define SET_V_GPIO_EN9(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN9 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_EN9(R) (__u8)(((R) & M_GPIO_EN9) >> 1)
#define M_GPIO_EN10 0x04 // mask bit 2
- #define SET_V_GPIO_EN10(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN10 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_EN10(R) (__u8)((R & M_GPIO_EN10) >> 2)
+ #define SET_V_GPIO_EN10(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN10 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_EN10(R) (__u8)(((R) & M_GPIO_EN10) >> 2)
#define M_GPIO_EN11 0x08 // mask bit 3
- #define SET_V_GPIO_EN11(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN11 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_EN11(R) (__u8)((R & M_GPIO_EN11) >> 3)
+ #define SET_V_GPIO_EN11(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN11 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_EN11(R) (__u8)(((R) & M_GPIO_EN11) >> 3)
#define M_GPIO_EN12 0x10 // mask bit 4
- #define SET_V_GPIO_EN12(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN12 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_EN12(R) (__u8)((R & M_GPIO_EN12) >> 4)
+ #define SET_V_GPIO_EN12(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN12 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_EN12(R) (__u8)(((R) & M_GPIO_EN12) >> 4)
#define M_GPIO_EN13 0x20 // mask bit 5
- #define SET_V_GPIO_EN13(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN13 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_EN13(R) (__u8)((R & M_GPIO_EN13) >> 5)
+ #define SET_V_GPIO_EN13(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN13 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_EN13(R) (__u8)(((R) & M_GPIO_EN13) >> 5)
#define M_GPIO_EN14 0x40 // mask bit 6
- #define SET_V_GPIO_EN14(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN14 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_EN14(R) (__u8)((R & M_GPIO_EN14) >> 6)
+ #define SET_V_GPIO_EN14(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN14 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_EN14(R) (__u8)(((R) & M_GPIO_EN14) >> 6)
#define M_GPIO_EN15 0x80 // mask bit 7
- #define SET_V_GPIO_EN15(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN15 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_EN15(R) (__u8)((R & M_GPIO_EN15) >> 7)
+ #define SET_V_GPIO_EN15(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN15 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_EN15(R) (__u8)(((R) & M_GPIO_EN15) >> 7)
#define R_GPIO_EN3 0x43 // register address, write only
#define M_GPIO_EN24 0x01 // mask bit 0
- #define SET_V_GPIO_EN24(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN24 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_EN24(R) (__u8)(R & M_GPIO_EN24)
+ #define SET_V_GPIO_EN24(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN24 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_EN24(R) (__u8)((R) & M_GPIO_EN24)
#define M_GPIO_EN25 0x02 // mask bit 1
- #define SET_V_GPIO_EN25(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN25 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_EN25(R) (__u8)((R & M_GPIO_EN25) >> 1)
+ #define SET_V_GPIO_EN25(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN25 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_EN25(R) (__u8)(((R) & M_GPIO_EN25) >> 1)
#define M_GPIO_EN26 0x04 // mask bit 2
- #define SET_V_GPIO_EN26(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN26 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_EN26(R) (__u8)((R & M_GPIO_EN26) >> 2)
+ #define SET_V_GPIO_EN26(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN26 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_EN26(R) (__u8)(((R) & M_GPIO_EN26) >> 2)
#define M_GPIO_EN27 0x08 // mask bit 3
- #define SET_V_GPIO_EN27(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN27 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_EN27(R) (__u8)((R & M_GPIO_EN27) >> 3)
+ #define SET_V_GPIO_EN27(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN27 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_EN27(R) (__u8)(((R) & M_GPIO_EN27) >> 3)
#define M_GPIO_EN28 0x10 // mask bit 4
- #define SET_V_GPIO_EN28(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN28 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_EN28(R) (__u8)((R & M_GPIO_EN28) >> 4)
+ #define SET_V_GPIO_EN28(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN28 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_EN28(R) (__u8)(((R) & M_GPIO_EN28) >> 4)
#define M_GPIO_EN29 0x20 // mask bit 5
- #define SET_V_GPIO_EN29(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN29 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_EN29(R) (__u8)((R & M_GPIO_EN29) >> 5)
+ #define SET_V_GPIO_EN29(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN29 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_EN29(R) (__u8)(((R) & M_GPIO_EN29) >> 5)
#define M_GPIO_EN30 0x40 // mask bit 6
- #define SET_V_GPIO_EN30(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN30 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_EN30(R) (__u8)((R & M_GPIO_EN30) >> 6)
+ #define SET_V_GPIO_EN30(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN30 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_EN30(R) (__u8)(((R) & M_GPIO_EN30) >> 6)
#define M_GPIO_EN31 0x80 // mask bit 7
- #define SET_V_GPIO_EN31(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN31 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_EN31(R) (__u8)((R & M_GPIO_EN31) >> 7)
+ #define SET_V_GPIO_EN31(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN31 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_EN31(R) (__u8)(((R) & M_GPIO_EN31) >> 7)
#define R_GPIO_SEL_BL 0x44 // register address, write only
#define M_GPIO_BL0 0x01 // mask bit 0
- #define SET_V_GPIO_BL0(R,V) (R = (__u8)((R & (__u8)(M_GPIO_BL0 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_BL0(R) (__u8)(R & M_GPIO_BL0)
+ #define SET_V_GPIO_BL0(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_BL0 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_BL0(R) (__u8)((R) & M_GPIO_BL0)
#define M_GPIO_BL1 0x02 // mask bit 1
- #define SET_V_GPIO_BL1(R,V) (R = (__u8)((R & (__u8)(M_GPIO_BL1 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_BL1(R) (__u8)((R & M_GPIO_BL1) >> 1)
+ #define SET_V_GPIO_BL1(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_BL1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_BL1(R) (__u8)(((R) & M_GPIO_BL1) >> 1)
#define M_GPIO_BL2 0x04 // mask bit 2
- #define SET_V_GPIO_BL2(R,V) (R = (__u8)((R & (__u8)(M_GPIO_BL2 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_BL2(R) (__u8)((R & M_GPIO_BL2) >> 2)
+ #define SET_V_GPIO_BL2(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_BL2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_BL2(R) (__u8)(((R) & M_GPIO_BL2) >> 2)
#define M_GPIO_BL3 0x08 // mask bit 3
- #define SET_V_GPIO_BL3(R,V) (R = (__u8)((R & (__u8)(M_GPIO_BL3 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_BL3(R) (__u8)((R & M_GPIO_BL3) >> 3)
+ #define SET_V_GPIO_BL3(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_BL3 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_BL3(R) (__u8)(((R) & M_GPIO_BL3) >> 3)
#define R_GPIO_OUT2 0x45 // register address, write only
#define M_GPIO_OUT16 0x01 // mask bit 0
- #define SET_V_GPIO_OUT16(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT16 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_OUT16(R) (__u8)(R & M_GPIO_OUT16)
+ #define SET_V_GPIO_OUT16(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT16 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_OUT16(R) (__u8)((R) & M_GPIO_OUT16)
#define M_GPIO_OUT17 0x02 // mask bit 1
- #define SET_V_GPIO_OUT17(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT17 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_OUT17(R) (__u8)((R & M_GPIO_OUT17) >> 1)
+ #define SET_V_GPIO_OUT17(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT17 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_OUT17(R) (__u8)(((R) & M_GPIO_OUT17) >> 1)
#define M_GPIO_OUT18 0x04 // mask bit 2
- #define SET_V_GPIO_OUT18(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT18 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_OUT18(R) (__u8)((R & M_GPIO_OUT18) >> 2)
+ #define SET_V_GPIO_OUT18(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT18 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_OUT18(R) (__u8)(((R) & M_GPIO_OUT18) >> 2)
#define M_GPIO_OUT19 0x08 // mask bit 3
- #define SET_V_GPIO_OUT19(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT19 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_OUT19(R) (__u8)((R & M_GPIO_OUT19) >> 3)
+ #define SET_V_GPIO_OUT19(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT19 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_OUT19(R) (__u8)(((R) & M_GPIO_OUT19) >> 3)
#define M_GPIO_OUT20 0x10 // mask bit 4
- #define SET_V_GPIO_OUT20(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT20 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_OUT20(R) (__u8)((R & M_GPIO_OUT20) >> 4)
+ #define SET_V_GPIO_OUT20(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT20 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_OUT20(R) (__u8)(((R) & M_GPIO_OUT20) >> 4)
#define M_GPIO_OUT21 0x20 // mask bit 5
- #define SET_V_GPIO_OUT21(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT21 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_OUT21(R) (__u8)((R & M_GPIO_OUT21) >> 5)
+ #define SET_V_GPIO_OUT21(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT21 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_OUT21(R) (__u8)(((R) & M_GPIO_OUT21) >> 5)
#define M_GPIO_OUT22 0x40 // mask bit 6
- #define SET_V_GPIO_OUT22(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT22 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_OUT22(R) (__u8)((R & M_GPIO_OUT22) >> 6)
+ #define SET_V_GPIO_OUT22(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT22 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_OUT22(R) (__u8)(((R) & M_GPIO_OUT22) >> 6)
#define M_GPIO_OUT23 0x80 // mask bit 7
- #define SET_V_GPIO_OUT23(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT23 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_OUT23(R) (__u8)((R & M_GPIO_OUT23) >> 7)
+ #define SET_V_GPIO_OUT23(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT23 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_OUT23(R) (__u8)(((R) & M_GPIO_OUT23) >> 7)
#define R_GPIO_IN2 0x45 // register address, read only
#define M_GPIO_IN16 0x01 // mask bit 0
- #define GET_V_GPIO_IN16(R) (__u8)(R & M_GPIO_IN16)
+ #define GET_V_GPIO_IN16(R) (__u8)((R) & M_GPIO_IN16)
#define M_GPIO_IN17 0x02 // mask bit 1
- #define GET_V_GPIO_IN17(R) (__u8)((R & M_GPIO_IN17) >> 1)
+ #define GET_V_GPIO_IN17(R) (__u8)(((R) & M_GPIO_IN17) >> 1)
#define M_GPIO_IN18 0x04 // mask bit 2
- #define GET_V_GPIO_IN18(R) (__u8)((R & M_GPIO_IN18) >> 2)
+ #define GET_V_GPIO_IN18(R) (__u8)(((R) & M_GPIO_IN18) >> 2)
#define M_GPIO_IN19 0x08 // mask bit 3
- #define GET_V_GPIO_IN19(R) (__u8)((R & M_GPIO_IN19) >> 3)
+ #define GET_V_GPIO_IN19(R) (__u8)(((R) & M_GPIO_IN19) >> 3)
#define M_GPIO_IN20 0x10 // mask bit 4
- #define GET_V_GPIO_IN20(R) (__u8)((R & M_GPIO_IN20) >> 4)
+ #define GET_V_GPIO_IN20(R) (__u8)(((R) & M_GPIO_IN20) >> 4)
#define M_GPIO_IN21 0x20 // mask bit 5
- #define GET_V_GPIO_IN21(R) (__u8)((R & M_GPIO_IN21) >> 5)
+ #define GET_V_GPIO_IN21(R) (__u8)(((R) & M_GPIO_IN21) >> 5)
#define M_GPIO_IN22 0x40 // mask bit 6
- #define GET_V_GPIO_IN22(R) (__u8)((R & M_GPIO_IN22) >> 6)
+ #define GET_V_GPIO_IN22(R) (__u8)(((R) & M_GPIO_IN22) >> 6)
#define M_GPIO_IN23 0x80 // mask bit 7
- #define GET_V_GPIO_IN23(R) (__u8)((R & M_GPIO_IN23) >> 7)
+ #define GET_V_GPIO_IN23(R) (__u8)(((R) & M_GPIO_IN23) >> 7)
#define R_PWM_MD 0x46 // register address, write only
#define M_WAK_EN 0x02 // mask bit 1
- #define SET_V_WAK_EN(R,V) (R = (__u8)((R & (__u8)(M_WAK_EN ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_WAK_EN(R) (__u8)((R & M_WAK_EN) >> 1)
+ #define SET_V_WAK_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_WAK_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_WAK_EN(R) (__u8)(((R) & M_WAK_EN) >> 1)
#define M_PWM0_MD 0x30 // mask bits 4..5
- #define SET_V_PWM0_MD(R,V) (R = (__u8)((R & (__u8)(M_PWM0_MD ^ 0xFF)) | (__u8)((V & 0x03) << 4)))
- #define GET_V_PWM0_MD(R) (__u8)((R & M_PWM0_MD) >> 4)
+ #define SET_V_PWM0_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM0_MD ^ 0xFF)) | (__u8)(((V) & 0x03) << 4)))
+ #define GET_V_PWM0_MD(R) (__u8)(((R) & M_PWM0_MD) >> 4)
#define M_PWM1_MD 0xC0 // mask bits 6..7
- #define SET_V_PWM1_MD(R,V) (R = (__u8)((R & (__u8)(M_PWM1_MD ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_PWM1_MD(R) (__u8)((R & M_PWM1_MD) >> 6)
+ #define SET_V_PWM1_MD(R,V) ((R) = (__u8)(((R) & (__u8)(M_PWM1_MD ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_PWM1_MD(R) (__u8)(((R) & M_PWM1_MD) >> 6)
#define R_GPIO_EN2 0x47 // register address, write only
#define M_GPIO_EN16 0x01 // mask bit 0
- #define SET_V_GPIO_EN16(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN16 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_EN16(R) (__u8)(R & M_GPIO_EN16)
+ #define SET_V_GPIO_EN16(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN16 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_EN16(R) (__u8)((R) & M_GPIO_EN16)
#define M_GPIO_EN17 0x02 // mask bit 1
- #define SET_V_GPIO_EN17(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN17 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_EN17(R) (__u8)((R & M_GPIO_EN17) >> 1)
+ #define SET_V_GPIO_EN17(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN17 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_EN17(R) (__u8)(((R) & M_GPIO_EN17) >> 1)
#define M_GPIO_EN18 0x04 // mask bit 2
- #define SET_V_GPIO_EN18(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN18 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_EN18(R) (__u8)((R & M_GPIO_EN18) >> 2)
+ #define SET_V_GPIO_EN18(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN18 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_EN18(R) (__u8)(((R) & M_GPIO_EN18) >> 2)
#define M_GPIO_EN19 0x08 // mask bit 3
- #define SET_V_GPIO_EN19(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN19 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_EN19(R) (__u8)((R & M_GPIO_EN19) >> 3)
+ #define SET_V_GPIO_EN19(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN19 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_EN19(R) (__u8)(((R) & M_GPIO_EN19) >> 3)
#define M_GPIO_EN20 0x10 // mask bit 4
- #define SET_V_GPIO_EN20(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN20 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_EN20(R) (__u8)((R & M_GPIO_EN20) >> 4)
+ #define SET_V_GPIO_EN20(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN20 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_EN20(R) (__u8)(((R) & M_GPIO_EN20) >> 4)
#define M_GPIO_EN21 0x20 // mask bit 5
- #define SET_V_GPIO_EN21(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN21 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_EN21(R) (__u8)((R & M_GPIO_EN21) >> 5)
+ #define SET_V_GPIO_EN21(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN21 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_EN21(R) (__u8)(((R) & M_GPIO_EN21) >> 5)
#define M_GPIO_EN22 0x40 // mask bit 6
- #define SET_V_GPIO_EN22(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN22 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_EN22(R) (__u8)((R & M_GPIO_EN22) >> 6)
+ #define SET_V_GPIO_EN22(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN22 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_EN22(R) (__u8)(((R) & M_GPIO_EN22) >> 6)
#define M_GPIO_EN23 0x80 // mask bit 7
- #define SET_V_GPIO_EN23(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN23 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_EN23(R) (__u8)((R & M_GPIO_EN23) >> 7)
+ #define SET_V_GPIO_EN23(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN23 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_EN23(R) (__u8)(((R) & M_GPIO_EN23) >> 7)
#define R_GPIO_IN0 0x48 // register address, read only
#define M_GPIO_IN0 0x01 // mask bit 0
- #define GET_V_GPIO_IN0(R) (__u8)(R & M_GPIO_IN0)
+ #define GET_V_GPIO_IN0(R) (__u8)((R) & M_GPIO_IN0)
#define M_GPIO_IN1 0x02 // mask bit 1
- #define GET_V_GPIO_IN1(R) (__u8)((R & M_GPIO_IN1) >> 1)
+ #define GET_V_GPIO_IN1(R) (__u8)(((R) & M_GPIO_IN1) >> 1)
#define M_GPIO_IN2 0x04 // mask bit 2
- #define GET_V_GPIO_IN2(R) (__u8)((R & M_GPIO_IN2) >> 2)
+ #define GET_V_GPIO_IN2(R) (__u8)(((R) & M_GPIO_IN2) >> 2)
#define M_GPIO_IN3 0x08 // mask bit 3
- #define GET_V_GPIO_IN3(R) (__u8)((R & M_GPIO_IN3) >> 3)
+ #define GET_V_GPIO_IN3(R) (__u8)(((R) & M_GPIO_IN3) >> 3)
#define M_GPIO_IN4 0x10 // mask bit 4
- #define GET_V_GPIO_IN4(R) (__u8)((R & M_GPIO_IN4) >> 4)
+ #define GET_V_GPIO_IN4(R) (__u8)(((R) & M_GPIO_IN4) >> 4)
#define M_GPIO_IN5 0x20 // mask bit 5
- #define GET_V_GPIO_IN5(R) (__u8)((R & M_GPIO_IN5) >> 5)
+ #define GET_V_GPIO_IN5(R) (__u8)(((R) & M_GPIO_IN5) >> 5)
#define M_GPIO_IN6 0x40 // mask bit 6
- #define GET_V_GPIO_IN6(R) (__u8)((R & M_GPIO_IN6) >> 6)
+ #define GET_V_GPIO_IN6(R) (__u8)(((R) & M_GPIO_IN6) >> 6)
#define M_GPIO_IN7 0x80 // mask bit 7
- #define GET_V_GPIO_IN7(R) (__u8)((R & M_GPIO_IN7) >> 7)
+ #define GET_V_GPIO_IN7(R) (__u8)(((R) & M_GPIO_IN7) >> 7)
#define R_GPIO_OUT0 0x48 // register address, write only
#define M_GPIO_OUT0 0x01 // mask bit 0
- #define SET_V_GPIO_OUT0(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT0 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_OUT0(R) (__u8)(R & M_GPIO_OUT0)
+ #define SET_V_GPIO_OUT0(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT0 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_OUT0(R) (__u8)((R) & M_GPIO_OUT0)
#define M_GPIO_OUT1 0x02 // mask bit 1
- #define SET_V_GPIO_OUT1(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT1 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_OUT1(R) (__u8)((R & M_GPIO_OUT1) >> 1)
+ #define SET_V_GPIO_OUT1(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_OUT1(R) (__u8)(((R) & M_GPIO_OUT1) >> 1)
#define M_GPIO_OUT2 0x04 // mask bit 2
- #define SET_V_GPIO_OUT2(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT2 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_OUT2(R) (__u8)((R & M_GPIO_OUT2) >> 2)
+ #define SET_V_GPIO_OUT2(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_OUT2(R) (__u8)(((R) & M_GPIO_OUT2) >> 2)
#define M_GPIO_OUT3 0x08 // mask bit 3
- #define SET_V_GPIO_OUT3(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT3 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_OUT3(R) (__u8)((R & M_GPIO_OUT3) >> 3)
+ #define SET_V_GPIO_OUT3(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT3 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_OUT3(R) (__u8)(((R) & M_GPIO_OUT3) >> 3)
#define M_GPIO_OUT4 0x10 // mask bit 4
- #define SET_V_GPIO_OUT4(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT4 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_OUT4(R) (__u8)((R & M_GPIO_OUT4) >> 4)
+ #define SET_V_GPIO_OUT4(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT4 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_OUT4(R) (__u8)(((R) & M_GPIO_OUT4) >> 4)
#define M_GPIO_OUT5 0x20 // mask bit 5
- #define SET_V_GPIO_OUT5(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT5 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_OUT5(R) (__u8)((R & M_GPIO_OUT5) >> 5)
+ #define SET_V_GPIO_OUT5(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT5 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_OUT5(R) (__u8)(((R) & M_GPIO_OUT5) >> 5)
#define M_GPIO_OUT6 0x40 // mask bit 6
- #define SET_V_GPIO_OUT6(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT6 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_OUT6(R) (__u8)((R & M_GPIO_OUT6) >> 6)
+ #define SET_V_GPIO_OUT6(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT6 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_OUT6(R) (__u8)(((R) & M_GPIO_OUT6) >> 6)
#define M_GPIO_OUT7 0x80 // mask bit 7
- #define SET_V_GPIO_OUT7(R,V) (R = (__u8)((R & (__u8)(M_GPIO_OUT7 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_OUT7(R) (__u8)((R & M_GPIO_OUT7) >> 7)
+ #define SET_V_GPIO_OUT7(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_OUT7 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_OUT7(R) (__u8)(((R) & M_GPIO_OUT7) >> 7)
#define R_GPIO_EN0 0x4A // register address, write only
#define M_GPIO_EN0 0x01 // mask bit 0
- #define SET_V_GPIO_EN0(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN0 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_EN0(R) (__u8)(R & M_GPIO_EN0)
+ #define SET_V_GPIO_EN0(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN0 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_EN0(R) (__u8)((R) & M_GPIO_EN0)
#define M_GPIO_EN1 0x02 // mask bit 1
- #define SET_V_GPIO_EN1(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN1 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_EN1(R) (__u8)((R & M_GPIO_EN1) >> 1)
+ #define SET_V_GPIO_EN1(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_EN1(R) (__u8)(((R) & M_GPIO_EN1) >> 1)
#define M_GPIO_EN2 0x04 // mask bit 2
- #define SET_V_GPIO_EN2(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN2 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_EN2(R) (__u8)((R & M_GPIO_EN2) >> 2)
+ #define SET_V_GPIO_EN2(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_EN2(R) (__u8)(((R) & M_GPIO_EN2) >> 2)
#define M_GPIO_EN3 0x08 // mask bit 3
- #define SET_V_GPIO_EN3(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN3 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_EN3(R) (__u8)((R & M_GPIO_EN3) >> 3)
+ #define SET_V_GPIO_EN3(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN3 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_EN3(R) (__u8)(((R) & M_GPIO_EN3) >> 3)
#define M_GPIO_EN4 0x10 // mask bit 4
- #define SET_V_GPIO_EN4(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN4 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_EN4(R) (__u8)((R & M_GPIO_EN4) >> 4)
+ #define SET_V_GPIO_EN4(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN4 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_EN4(R) (__u8)(((R) & M_GPIO_EN4) >> 4)
#define M_GPIO_EN5 0x20 // mask bit 5
- #define SET_V_GPIO_EN5(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN5 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_EN5(R) (__u8)((R & M_GPIO_EN5) >> 5)
+ #define SET_V_GPIO_EN5(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN5 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_EN5(R) (__u8)(((R) & M_GPIO_EN5) >> 5)
#define M_GPIO_EN6 0x40 // mask bit 6
- #define SET_V_GPIO_EN6(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN6 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_EN6(R) (__u8)((R & M_GPIO_EN6) >> 6)
+ #define SET_V_GPIO_EN6(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN6 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_EN6(R) (__u8)(((R) & M_GPIO_EN6) >> 6)
#define M_GPIO_EN7 0x80 // mask bit 7
- #define SET_V_GPIO_EN7(R,V) (R = (__u8)((R & (__u8)(M_GPIO_EN7 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_EN7(R) (__u8)((R & M_GPIO_EN7) >> 7)
+ #define SET_V_GPIO_EN7(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_EN7 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_EN7(R) (__u8)(((R) & M_GPIO_EN7) >> 7)
#define R_GPIO_SEL 0x4C // register address, write only
#define M_GPIO_SEL0 0x01 // mask bit 0
- #define SET_V_GPIO_SEL0(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL0 ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_GPIO_SEL0(R) (__u8)(R & M_GPIO_SEL0)
+ #define SET_V_GPIO_SEL0(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL0 ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_GPIO_SEL0(R) (__u8)((R) & M_GPIO_SEL0)
#define M_GPIO_SEL1 0x02 // mask bit 1
- #define SET_V_GPIO_SEL1(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL1 ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_GPIO_SEL1(R) (__u8)((R & M_GPIO_SEL1) >> 1)
+ #define SET_V_GPIO_SEL1(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL1 ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_GPIO_SEL1(R) (__u8)(((R) & M_GPIO_SEL1) >> 1)
#define M_GPIO_SEL2 0x04 // mask bit 2
- #define SET_V_GPIO_SEL2(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL2 ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_GPIO_SEL2(R) (__u8)((R & M_GPIO_SEL2) >> 2)
+ #define SET_V_GPIO_SEL2(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL2 ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_GPIO_SEL2(R) (__u8)(((R) & M_GPIO_SEL2) >> 2)
#define M_GPIO_SEL3 0x08 // mask bit 3
- #define SET_V_GPIO_SEL3(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL3 ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_GPIO_SEL3(R) (__u8)((R & M_GPIO_SEL3) >> 3)
+ #define SET_V_GPIO_SEL3(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL3 ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_GPIO_SEL3(R) (__u8)(((R) & M_GPIO_SEL3) >> 3)
#define M_GPIO_SEL4 0x10 // mask bit 4
- #define SET_V_GPIO_SEL4(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL4 ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_GPIO_SEL4(R) (__u8)((R & M_GPIO_SEL4) >> 4)
+ #define SET_V_GPIO_SEL4(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL4 ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_GPIO_SEL4(R) (__u8)(((R) & M_GPIO_SEL4) >> 4)
#define M_GPIO_SEL5 0x20 // mask bit 5
- #define SET_V_GPIO_SEL5(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL5 ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_GPIO_SEL5(R) (__u8)((R & M_GPIO_SEL5) >> 5)
+ #define SET_V_GPIO_SEL5(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL5 ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_GPIO_SEL5(R) (__u8)(((R) & M_GPIO_SEL5) >> 5)
#define M_GPIO_SEL6 0x40 // mask bit 6
- #define SET_V_GPIO_SEL6(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL6 ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_GPIO_SEL6(R) (__u8)((R & M_GPIO_SEL6) >> 6)
+ #define SET_V_GPIO_SEL6(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL6 ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_GPIO_SEL6(R) (__u8)(((R) & M_GPIO_SEL6) >> 6)
#define M_GPIO_SEL7 0x80 // mask bit 7
- #define SET_V_GPIO_SEL7(R,V) (R = (__u8)((R & (__u8)(M_GPIO_SEL7 ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_GPIO_SEL7(R) (__u8)((R & M_GPIO_SEL7) >> 7)
+ #define SET_V_GPIO_SEL7(R,V) ((R) = (__u8)(((R) & (__u8)(M_GPIO_SEL7 ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_GPIO_SEL7(R) (__u8)(((R) & M_GPIO_SEL7) >> 7)
#define R_PLL_STA 0x50 // register address, read only
#define M_PLL_LOCK 0x80 // mask bit 7
- #define GET_V_PLL_LOCK(R) (__u8)((R & M_PLL_LOCK) >> 7)
+ #define GET_V_PLL_LOCK(R) (__u8)(((R) & M_PLL_LOCK) >> 7)
#define R_PLL_CTRL 0x50 // register address, write only
#define M_PLL_NRES 0x01 // mask bit 0
- #define SET_V_PLL_NRES(R,V) (R = (__u8)((R & (__u8)(M_PLL_NRES ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_PLL_NRES(R) (__u8)(R & M_PLL_NRES)
+ #define SET_V_PLL_NRES(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_NRES ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_PLL_NRES(R) (__u8)((R) & M_PLL_NRES)
#define M_PLL_TST 0x02 // mask bit 1
- #define SET_V_PLL_TST(R,V) (R = (__u8)((R & (__u8)(M_PLL_TST ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_PLL_TST(R) (__u8)((R & M_PLL_TST) >> 1)
+ #define SET_V_PLL_TST(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_TST ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_PLL_TST(R) (__u8)(((R) & M_PLL_TST) >> 1)
#define M_PLL_FREEZE 0x20 // mask bit 5
- #define SET_V_PLL_FREEZE(R,V) (R = (__u8)((R & (__u8)(M_PLL_FREEZE ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_PLL_FREEZE(R) (__u8)((R & M_PLL_FREEZE) >> 5)
+ #define SET_V_PLL_FREEZE(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_FREEZE ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_PLL_FREEZE(R) (__u8)(((R) & M_PLL_FREEZE) >> 5)
#define M_PLL_M 0xC0 // mask bits 6..7
- #define SET_V_PLL_M(R,V) (R = (__u8)((R & (__u8)(M_PLL_M ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_PLL_M(R) (__u8)((R & M_PLL_M) >> 6)
+ #define SET_V_PLL_M(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_M ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_PLL_M(R) (__u8)(((R) & M_PLL_M) >> 6)
#define R_PLL_P 0x51 // register address, read/write
#define M_PLL_P 0xFF // mask bits 0..7
- #define SET_V_PLL_P(R,V) (R = (__u8)((R & (__u8)(M_PLL_P ^ 0xFF)) | (__u8)V))
- #define GET_V_PLL_P(R) (__u8)(R & M_PLL_P)
+ #define SET_V_PLL_P(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_P ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_PLL_P(R) (__u8)((R) & M_PLL_P)
#define R_PLL_N 0x52 // register address, read/write
#define M_PLL_N 0xFF // mask bits 0..7
- #define SET_V_PLL_N(R,V) (R = (__u8)((R & (__u8)(M_PLL_N ^ 0xFF)) | (__u8)V))
- #define GET_V_PLL_N(R) (__u8)(R & M_PLL_N)
+ #define SET_V_PLL_N(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_N ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_PLL_N(R) (__u8)((R) & M_PLL_N)
#define R_PLL_S 0x53 // register address, read/write
#define M_PLL_S 0xFF // mask bits 0..7
- #define SET_V_PLL_S(R,V) (R = (__u8)((R & (__u8)(M_PLL_S ^ 0xFF)) | (__u8)V))
- #define GET_V_PLL_S(R) (__u8)(R & M_PLL_S)
+ #define SET_V_PLL_S(R,V) ((R) = (__u8)(((R) & (__u8)(M_PLL_S ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_PLL_S(R) (__u8)((R) & M_PLL_S)
#define A_FIFO_DATA 0x80 // register address, read/write
#define M_FIFO_DATA 0xFF // mask bits 0..7
- #define SET_V_FIFO_DATA(R,V) (R = (__u8)((R & (__u8)(M_FIFO_DATA ^ 0xFF)) | (__u8)V))
- #define GET_V_FIFO_DATA(R) (__u8)(R & M_FIFO_DATA)
+ #define SET_V_FIFO_DATA(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_DATA ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_FIFO_DATA(R) (__u8)((R) & M_FIFO_DATA)
#define A_FIFO_DATA_NOINC 0x84 // register address, read/write
#define M_FIFO_DATA_NOINC 0xFF // mask bits 0..7
- #define SET_V_FIFO_DATA_NOINC(R,V) (R = (__u8)((R & (__u8)(M_FIFO_DATA_NOINC ^ 0xFF)) | (__u8)V))
- #define GET_V_FIFO_DATA_NOINC(R) (__u8)(R & M_FIFO_DATA_NOINC)
+ #define SET_V_FIFO_DATA_NOINC(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_DATA_NOINC ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_FIFO_DATA_NOINC(R) (__u8)((R) & M_FIFO_DATA_NOINC)
#define R_INT_DATA 0x88 // register address, read only
#define M_INT_DATA 0xFF // mask bits 0..7
- #define GET_V_INT_DATA(R) (__u8)(R & M_INT_DATA)
+ #define GET_V_INT_DATA(R) (__u8)((R) & M_INT_DATA)
#define R_RAM_DATA 0xC0 // register address, r*/w
#define M_RAM_DATA 0xFF // mask bits 0..7
- #define SET_V_RAM_DATA(R,V) (R = (__u8)((R & (__u8)(M_RAM_DATA ^ 0xFF)) | (__u8)V))
- #define GET_V_RAM_DATA(R) (__u8)(R & M_RAM_DATA)
+ #define SET_V_RAM_DATA(R,V) ((R) = (__u8)(((R) & (__u8)(M_RAM_DATA ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_RAM_DATA(R) (__u8)((R) & M_RAM_DATA)
#define A_SL_CFG 0xD0 // register address, r*/w
#define M_CH_SDIR 0x01 // mask bit 0
- #define SET_V_CH_SDIR(R,V) (R = (__u8)((R & (__u8)(M_CH_SDIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_CH_SDIR(R) (__u8)(R & M_CH_SDIR)
+ #define SET_V_CH_SDIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_CH_SDIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_CH_SDIR(R) (__u8)((R) & M_CH_SDIR)
#define M_CH_SNUM 0x3E // mask bits 1..5
- #define SET_V_CH_SNUM(R,V) (R = (__u8)((R & (__u8)(M_CH_SNUM ^ 0xFF)) | (__u8)((V & 0x1F) << 1)))
- #define GET_V_CH_SNUM(R) (__u8)((R & M_CH_SNUM) >> 1)
+ #define SET_V_CH_SNUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_CH_SNUM ^ 0xFF)) | (__u8)(((V) & 0x1F) << 1)))
+ #define GET_V_CH_SNUM(R) (__u8)(((R) & M_CH_SNUM) >> 1)
#define M_ROUT 0xC0 // mask bits 6..7
- #define SET_V_ROUT(R,V) (R = (__u8)((R & (__u8)(M_ROUT ^ 0xFF)) | (__u8)((V & 0x03) << 6)))
- #define GET_V_ROUT(R) (__u8)((R & M_ROUT) >> 6)
+ #define SET_V_ROUT(R,V) ((R) = (__u8)(((R) & (__u8)(M_ROUT ^ 0xFF)) | (__u8)(((V) & 0x03) << 6)))
+ #define GET_V_ROUT(R) (__u8)(((R) & M_ROUT) >> 6)
#define A_CH_MSK 0xF4 // register address, r*/w
#define M_CH_MSK 0xFF // mask bits 0..7
- #define SET_V_CH_MSK(R,V) (R = (__u8)((R & (__u8)(M_CH_MSK ^ 0xFF)) | (__u8)V))
- #define GET_V_CH_MSK(R) (__u8)(R & M_CH_MSK)
+ #define SET_V_CH_MSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_CH_MSK ^ 0xFF)) | (__u8)(V)))
+ #define GET_V_CH_MSK(R) (__u8)((R) & M_CH_MSK)
#define A_CON_HDLC 0xFA // register address, r*/w
#define M_IFF 0x01 // mask bit 0
- #define SET_V_IFF(R,V) (R = (__u8)((R & (__u8)(M_IFF ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_IFF(R) (__u8)(R & M_IFF)
+ #define SET_V_IFF(R,V) ((R) = (__u8)(((R) & (__u8)(M_IFF ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_IFF(R) (__u8)((R) & M_IFF)
#define M_HDLC_TRP 0x02 // mask bit 1
- #define SET_V_HDLC_TRP(R,V) (R = (__u8)((R & (__u8)(M_HDLC_TRP ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_HDLC_TRP(R) (__u8)((R & M_HDLC_TRP) >> 1)
+ #define SET_V_HDLC_TRP(R,V) ((R) = (__u8)(((R) & (__u8)(M_HDLC_TRP ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_HDLC_TRP(R) (__u8)(((R) & M_HDLC_TRP) >> 1)
#define M_FIFO_IRQ 0x1C // mask bits 2..4
- #define SET_V_FIFO_IRQ(R,V) (R = (__u8)((R & (__u8)(M_FIFO_IRQ ^ 0xFF)) | (__u8)((V & 0x07) << 2)))
- #define GET_V_FIFO_IRQ(R) (__u8)((R & M_FIFO_IRQ) >> 2)
+ #define SET_V_FIFO_IRQ(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_IRQ ^ 0xFF)) | (__u8)(((V) & 0x07) << 2)))
+ #define GET_V_FIFO_IRQ(R) (__u8)(((R) & M_FIFO_IRQ) >> 2)
#define M_DATA_FLOW 0xE0 // mask bits 5..7
- #define SET_V_DATA_FLOW(R,V) (R = (__u8)((R & (__u8)(M_DATA_FLOW ^ 0xFF)) | (__u8)((V & 0x07) << 5)))
- #define GET_V_DATA_FLOW(R) (__u8)((R & M_DATA_FLOW) >> 5)
+ #define SET_V_DATA_FLOW(R,V) ((R) = (__u8)(((R) & (__u8)(M_DATA_FLOW ^ 0xFF)) | (__u8)(((V) & 0x07) << 5)))
+ #define GET_V_DATA_FLOW(R) (__u8)(((R) & M_DATA_FLOW) >> 5)
#define A_SUBCH_CFG 0xFB // register address, r*/w
#define M_BIT_CNT 0x07 // mask bits 0..2
- #define SET_V_BIT_CNT(R,V) (R = (__u8)((R & (__u8)(M_BIT_CNT ^ 0xFF)) | (__u8)(V & 0x07)))
- #define GET_V_BIT_CNT(R) (__u8)(R & M_BIT_CNT)
+ #define SET_V_BIT_CNT(R,V) ((R) = (__u8)(((R) & (__u8)(M_BIT_CNT ^ 0xFF)) | (__u8)((V) & 0x07)))
+ #define GET_V_BIT_CNT(R) (__u8)((R) & M_BIT_CNT)
#define M_START_BIT 0x38 // mask bits 3..5
- #define SET_V_START_BIT(R,V) (R = (__u8)((R & (__u8)(M_START_BIT ^ 0xFF)) | (__u8)((V & 0x07) << 3)))
- #define GET_V_START_BIT(R) (__u8)((R & M_START_BIT) >> 3)
+ #define SET_V_START_BIT(R,V) ((R) = (__u8)(((R) & (__u8)(M_START_BIT ^ 0xFF)) | (__u8)(((V) & 0x07) << 3)))
+ #define GET_V_START_BIT(R) (__u8)(((R) & M_START_BIT) >> 3)
#define M_LOOP_FIFO 0x40 // mask bit 6
- #define SET_V_LOOP_FIFO(R,V) (R = (__u8)((R & (__u8)(M_LOOP_FIFO ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_LOOP_FIFO(R) (__u8)((R & M_LOOP_FIFO) >> 6)
+ #define SET_V_LOOP_FIFO(R,V) ((R) = (__u8)(((R) & (__u8)(M_LOOP_FIFO ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_LOOP_FIFO(R) (__u8)(((R) & M_LOOP_FIFO) >> 6)
#define M_INV_DATA 0x80 // mask bit 7
- #define SET_V_INV_DATA(R,V) (R = (__u8)((R & (__u8)(M_INV_DATA ^ 0xFF)) | (__u8)((V & 0x01) << 7)))
- #define GET_V_INV_DATA(R) (__u8)((R & M_INV_DATA) >> 7)
+ #define SET_V_INV_DATA(R,V) ((R) = (__u8)(((R) & (__u8)(M_INV_DATA ^ 0xFF)) | (__u8)(((V) & 0x01) << 7)))
+ #define GET_V_INV_DATA(R) (__u8)(((R) & M_INV_DATA) >> 7)
#define A_CHANNEL 0xFC // register address, r*/w
#define M_CH_FDIR 0x01 // mask bit 0
- #define SET_V_CH_FDIR(R,V) (R = (__u8)((R & (__u8)(M_CH_FDIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_CH_FDIR(R) (__u8)(R & M_CH_FDIR)
+ #define SET_V_CH_FDIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_CH_FDIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_CH_FDIR(R) (__u8)((R) & M_CH_FDIR)
#define M_CH_FNUM 0x1E // mask bits 1..4
- #define SET_V_CH_FNUM(R,V) (R = (__u8)((R & (__u8)(M_CH_FNUM ^ 0xFF)) | (__u8)((V & 0x0F) << 1)))
- #define GET_V_CH_FNUM(R) (__u8)((R & M_CH_FNUM) >> 1)
+ #define SET_V_CH_FNUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_CH_FNUM ^ 0xFF)) | (__u8)(((V) & 0x0F) << 1)))
+ #define GET_V_CH_FNUM(R) (__u8)(((R) & M_CH_FNUM) >> 1)
#define A_FIFO_SEQ 0xFD // register address, r*/w
#define M_NEXT_FIFO_DIR 0x01 // mask bit 0
- #define SET_V_NEXT_FIFO_DIR(R,V) (R = (__u8)((R & (__u8)(M_NEXT_FIFO_DIR ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_NEXT_FIFO_DIR(R) (__u8)(R & M_NEXT_FIFO_DIR)
+ #define SET_V_NEXT_FIFO_DIR(R,V) ((R) = (__u8)(((R) & (__u8)(M_NEXT_FIFO_DIR ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_NEXT_FIFO_DIR(R) (__u8)((R) & M_NEXT_FIFO_DIR)
#define M_NEXT_FIFO_NUM 0x1E // mask bits 1..4
- #define SET_V_NEXT_FIFO_NUM(R,V) (R = (__u8)((R & (__u8)(M_NEXT_FIFO_NUM ^ 0xFF)) | (__u8)((V & 0x0F) << 1)))
- #define GET_V_NEXT_FIFO_NUM(R) (__u8)((R & M_NEXT_FIFO_NUM) >> 1)
+ #define SET_V_NEXT_FIFO_NUM(R,V) ((R) = (__u8)(((R) & (__u8)(M_NEXT_FIFO_NUM ^ 0xFF)) | (__u8)(((V) & 0x0F) << 1)))
+ #define GET_V_NEXT_FIFO_NUM(R) (__u8)(((R) & M_NEXT_FIFO_NUM) >> 1)
#define M_SEQ_END 0x40 // mask bit 6
- #define SET_V_SEQ_END(R,V) (R = (__u8)((R & (__u8)(M_SEQ_END ^ 0xFF)) | (__u8)((V & 0x01) << 6)))
- #define GET_V_SEQ_END(R) (__u8)((R & M_SEQ_END) >> 6)
+ #define SET_V_SEQ_END(R,V) ((R) = (__u8)(((R) & (__u8)(M_SEQ_END ^ 0xFF)) | (__u8)(((V) & 0x01) << 6)))
+ #define GET_V_SEQ_END(R) (__u8)(((R) & M_SEQ_END) >> 6)
#define A_FIFO_CTRL 0xFF // register address, r*/w
#define M_FIFO_IRQMSK 0x01 // mask bit 0
- #define SET_V_FIFO_IRQMSK(R,V) (R = (__u8)((R & (__u8)(M_FIFO_IRQMSK ^ 0xFF)) | (__u8)(V & 0x01)))
- #define GET_V_FIFO_IRQMSK(R) (__u8)(R & M_FIFO_IRQMSK)
+ #define SET_V_FIFO_IRQMSK(R,V) ((R) = (__u8)(((R) & (__u8)(M_FIFO_IRQMSK ^ 0xFF)) | (__u8)((V) & 0x01)))
+ #define GET_V_FIFO_IRQMSK(R) (__u8)((R) & M_FIFO_IRQMSK)
#define M_BERT_EN 0x02 // mask bit 1
- #define SET_V_BERT_EN(R,V) (R = (__u8)((R & (__u8)(M_BERT_EN ^ 0xFF)) | (__u8)((V & 0x01) << 1)))
- #define GET_V_BERT_EN(R) (__u8)((R & M_BERT_EN) >> 1)
+ #define SET_V_BERT_EN(R,V) ((R) = (__u8)(((R) & (__u8)(M_BERT_EN ^ 0xFF)) | (__u8)(((V) & 0x01) << 1)))
+ #define GET_V_BERT_EN(R) (__u8)(((R) & M_BERT_EN) >> 1)
#define M_MIX_IRQ 0x04 // mask bit 2
- #define SET_V_MIX_IRQ(R,V) (R = (__u8)((R & (__u8)(M_MIX_IRQ ^ 0xFF)) | (__u8)((V & 0x01) << 2)))
- #define GET_V_MIX_IRQ(R) (__u8)((R & M_MIX_IRQ) >> 2)
+ #define SET_V_MIX_IRQ(R,V) ((R) = (__u8)(((R) & (__u8)(M_MIX_IRQ ^ 0xFF)) | (__u8)(((V) & 0x01) << 2)))
+ #define GET_V_MIX_IRQ(R) (__u8)(((R) & M_MIX_IRQ) >> 2)
#define M_FR_ABO 0x08 // mask bit 3
- #define SET_V_FR_ABO(R,V) (R = (__u8)((R & (__u8)(M_FR_ABO ^ 0xFF)) | (__u8)((V & 0x01) << 3)))
- #define GET_V_FR_ABO(R) (__u8)((R & M_FR_ABO) >> 3)
+ #define SET_V_FR_ABO(R,V) ((R) = (__u8)(((R) & (__u8)(M_FR_ABO ^ 0xFF)) | (__u8)(((V) & 0x01) << 3)))
+ #define GET_V_FR_ABO(R) (__u8)(((R) & M_FR_ABO) >> 3)
#define M_NO_CRC 0x10 // mask bit 4
- #define SET_V_NO_CRC(R,V) (R = (__u8)((R & (__u8)(M_NO_CRC ^ 0xFF)) | (__u8)((V & 0x01) << 4)))
- #define GET_V_NO_CRC(R) (__u8)((R & M_NO_CRC) >> 4)
+ #define SET_V_NO_CRC(R,V) ((R) = (__u8)(((R) & (__u8)(M_NO_CRC ^ 0xFF)) | (__u8)(((V) & 0x01) << 4)))
+ #define GET_V_NO_CRC(R) (__u8)(((R) & M_NO_CRC) >> 4)
#define M_NO_REP 0x20 // mask bit 5
- #define SET_V_NO_REP(R,V) (R = (__u8)((R & (__u8)(M_NO_REP ^ 0xFF)) | (__u8)((V & 0x01) << 5)))
- #define GET_V_NO_REP(R) (__u8)((R & M_NO_REP) >> 5)
+ #define SET_V_NO_REP(R,V) ((R) = (__u8)(((R) & (__u8)(M_NO_REP ^ 0xFF)) | (__u8)(((V) & 0x01) << 5)))
+ #define GET_V_NO_REP(R) (__u8)(((R) & M_NO_REP) >> 5)
#endif /* _XHFC24SUCD_H_ */
diff --git a/xhfc/xhfc_leb.h b/xhfc/xhfc_leb.h
index 0c1bfb8..9e25f00 100644
--- a/xhfc/xhfc_leb.h
+++ b/xhfc/xhfc_leb.h
@@ -34,6 +34,7 @@
#define LEB_MMBAR 1
#define IRQ_TLP_GPIO_30 31
+#define IRQ_TLP_GPIO_24 29
void leb_init(struct xhfc_pi *leb);
@@ -59,9 +60,9 @@ static inline void write_xhfc(struct xhfc * xhfc, u8 reg_addr, u8 value)
_res; \
})
-#define write_xhfc(x, reg, val) ({ \
- if (DBG_REGS) printk(KERN_INFO #reg " <- %02x\n", val); \
- write_xhfc(x, reg, val); \
+#define write_xhfc(x, reg, val) ({ \
+ if (DBG_REGS) printk(KERN_INFO #reg " <- %02x\n", val); \
+ write_xhfc(x, reg, val); \
})
#endif
#endif
diff --git a/xhfc/xhfc_timers_state.c b/xhfc/xhfc_timers_state.c
index 8ac53c7..916ba0f 100644
--- a/xhfc/xhfc_timers_state.c
+++ b/xhfc/xhfc_timers_state.c
@@ -270,7 +270,7 @@ void hfc_handle_state(struct xhfc_span *s)
state = read_xhfc(x, A_SU_RD_STA);
sta = GET_V_SU_STA(state);
- if (DBG_ST && ((1 << s->port) & dbg_spanfilter) /*&& s->oldstate != state*/) {
+ if (DBG_ST && ((1 << s->port) & dbg_spanfilter) /* && s->oldstate != state <--- WHAT IS THIS STUFF COMMENTED OUT??? */) {
char *str;
str = hfc_decode_st_state(x, s, state, 1);