45 #if dg_configUSE_HW_SRC
50 #define BASE_TYPE SRC1_Type
55 #define HW_SRC1 ((void *)SRC1_BASE)
56 #define HW_SRC2 ((void *)SRC2_BASE)
59 #define SRCBA(id) ((BASE_TYPE *)id)
61 typedef void * HW_SRC_ID;
63 #define MUX_REG SRC1_MUX_REG
65 #define CTRL_REG SRC1_CTRL_REG
77 #define HW_SRC_REG_GETF(id, base, reg, field) \
78 ((SRCBA(id)->SRC1_##reg & (base##_SRC1_##reg##_##field##_Msk)) >> (base##_SRC1_##reg##_##field##_Pos))
90 #define HW_SRC_REG_SETF(id, base, reg, field, val) \
91 SRCBA(id)->SRC1_##reg = ((SRCBA(id)->SRC1_##reg & ~(base##_SRC1_##reg##_##field##_Msk)) | \
92 ((base##_SRC1_##reg##_##field##_Msk) & ((val) << (base##_SRC1_##reg##_##field##_Pos))))
108 #define HW_SRC_REG_SET_FIELD(base, reg, field, var, val) \
109 var = (((var & ~(base##_SRC1_##reg##_##field##_Msk))) | \
110 (((val) << (base##_SRC1_##reg##_##field##_Pos)) & \
111 (base##_SRC1_##reg##_##field##_Msk)))
127 #define HW_SRC_REG_GET_FIELD(base, reg, field, var) \
128 ((var & (base##_SRC1_##reg##_##field##_Msk)) >> \
129 (base##_SRC1_##reg##_##field##_Pos))
144 #define HW_SRC_REG_CLR_FIELD(base, reg, field, var) \
145 var &= ~(base##_SRC1_##reg##_##field##_Msk)
155 #define HW_SRC_REG_SET_BIT(id, base, reg, field) \
157 SRCBA(id)->SRC1_##reg |= (1 << (base##_SRC1_##reg##_##field##_Pos)); \
169 #define HW_SRC_REG_CLR_BIT(id, base, reg, field) \
171 SRCBA(id)->SRC1_##reg &= ~(base##_SRC1_##reg##_##field##_Msk); \
199 # if dg_configUSE_HW_SDADC
202 HW_SRC_SELECTION_SIZE
256 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
263 SRCBA(
id)->SRC1_CTRL_REG |=
REG_MSK(SRC1, SRC1_CTRL_REG, SRC_IN_FLOWCLR) |
264 REG_MSK(SRC1, SRC1_CTRL_REG, SRC_OUT_FLOWCLR) |
265 REG_MSK(SRC1, SRC1_CTRL_REG, SRC_EN);
267 while (!(SRCBA(
id)->SRC1_CTRL_REG & (
REG_MSK(SRC1, SRC1_CTRL_REG, SRC_IN_OK) |
268 REG_MSK(SRC1, SRC1_CTRL_REG, SRC_OUT_OK))));
270 SRCBA(
id)->SRC1_CTRL_REG &= ~(
REG_MSK(SRC1, SRC1_CTRL_REG, SRC_IN_FLOWCLR) |
271 REG_MSK(SRC1, SRC1_CTRL_REG, SRC_OUT_FLOWCLR));
282 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
299 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
315 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
317 uint32_t src1_ctrl_reg = SRCBA(
id)->SRC1_CTRL_REG;
321 REG_CLR_FIELD(SRC1, SRC1_CTRL_REG, SRC_FIFO_DIRECTION, src1_ctrl_reg);
324 src1_ctrl_reg |=
REG_MSK(SRC1, SRC1_CTRL_REG, SRC_FIFO_DIRECTION);
330 src1_ctrl_reg |=
REG_MSK(SRC1, SRC1_CTRL_REG, SRC_FIFO_ENABLE);
331 SRCBA(
id)->SRC1_CTRL_REG = src1_ctrl_reg;
342 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
358 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
379 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
398 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
417 ASSERT_WARNING(input < HW_SRC_SELECTION_SIZE);
421 ASSERT_WARNING(config->
id ==
HW_SRC1 || config->
id == HW_SRC2);
422 uint32_t address = SRCBA(config->
id)->MUX_REG;
437 # if dg_configUSE_HW_SDADC
447 SRCBA(config->
id)->MUX_REG = address;
460 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
493 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);
513 ASSERT_WARNING(
id ==
HW_SRC1 ||
id == HW_SRC2);