|
2 | 2 | /* |
3 | 3 | * ALSA SoC Audio Layer - Rockchip SPDIF transceiver driver |
4 | 4 | * |
5 | | - * Copyright (c) 2015 Collabora Ltd. |
| 5 | + * Copyright (c) 2015-2026 Collabora Ltd. |
6 | 6 | * Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk> |
7 | 7 | */ |
8 | 8 |
|
|
13 | 13 | * CFGR |
14 | 14 | * transfer configuration register |
15 | 15 | */ |
16 | | -#define SPDIF_CFGR_CLK_DIV_SHIFT (16) |
17 | | -#define SPDIF_CFGR_CLK_DIV_MASK (0xff << SPDIF_CFGR_CLK_DIV_SHIFT) |
18 | | -#define SPDIF_CFGR_CLK_DIV(x) ((x-1) << SPDIF_CFGR_CLK_DIV_SHIFT) |
| 16 | +#define SPDIF_CFGR_CLK_DIV_MASK GENMASK(23, 16) |
| 17 | +#define SPDIF_CFGR_CLK_DIV(x) FIELD_PREP(SPDIF_CFGR_CLK_DIV_MASK, x-1) |
19 | 18 |
|
20 | 19 | #define SPDIF_CFGR_CLR_MASK BIT(7) |
21 | | -#define SPDIF_CFGR_CLR_EN BIT(7) |
22 | | -#define SPDIF_CFGR_CLR_DIS 0 |
| 20 | +#define SPDIF_CFGR_CLR_EN FIELD_PREP(SPDIF_CFGR_CLR_MASK, 1) |
| 21 | +#define SPDIF_CFGR_CLR_DIS FIELD_PREP(SPDIF_CFGR_CLR_MASK, 0) |
23 | 22 |
|
24 | 23 | #define SPDIF_CFGR_CSE_MASK BIT(6) |
25 | | -#define SPDIF_CFGR_CSE_EN BIT(6) |
26 | | -#define SPDIF_CFGR_CSE_DIS 0 |
| 24 | +#define SPDIF_CFGR_CSE_EN FIELD_PREP(SPDIF_CFGR_CSE_MASK, 1) |
| 25 | +#define SPDIF_CFGR_CSE_DIS FIELD_PREP(SPDIF_CFGR_CSE_MASK, 0) |
27 | 26 |
|
28 | 27 | #define SPDIF_CFGR_ADJ_MASK BIT(3) |
29 | | -#define SPDIF_CFGR_ADJ_LEFT_J BIT(3) |
30 | | -#define SPDIF_CFGR_ADJ_RIGHT_J 0 |
| 28 | +#define SPDIF_CFGR_ADJ_LEFT_J FIELD_PREP(SPDIF_CFGR_ADJ_MASK, 1) |
| 29 | +#define SPDIF_CFGR_ADJ_RIGHT_J FIELD_PREP(SPDIF_CFGR_ADJ_MASK, 0) |
31 | 30 |
|
32 | | -#define SPDIF_CFGR_HALFWORD_SHIFT 2 |
33 | | -#define SPDIF_CFGR_HALFWORD_DISABLE (0 << SPDIF_CFGR_HALFWORD_SHIFT) |
34 | | -#define SPDIF_CFGR_HALFWORD_ENABLE (1 << SPDIF_CFGR_HALFWORD_SHIFT) |
| 31 | +#define SPDIF_CFGR_HALFWORD_MASK BIT(2) |
| 32 | +#define SPDIF_CFGR_HALFWORD_DISABLE FIELD_PREP(SPDIF_CFGR_HALFWORD_MASK, 0) |
| 33 | +#define SPDIF_CFGR_HALFWORD_ENABLE FIELD_PREP(SPDIF_CFGR_HALFWORD_MASK, 1) |
35 | 34 |
|
36 | | -#define SPDIF_CFGR_VDW_SHIFT 0 |
37 | | -#define SPDIF_CFGR_VDW(x) (x << SPDIF_CFGR_VDW_SHIFT) |
38 | | -#define SDPIF_CFGR_VDW_MASK (0xf << SPDIF_CFGR_VDW_SHIFT) |
| 35 | +#define SDPIF_CFGR_VDW_MASK GENMASK(1, 0) |
| 36 | +#define SPDIF_CFGR_VDW(x) FIELD_PREP(SDPIF_CFGR_VDW_MASK, x) |
39 | 37 |
|
40 | | -#define SPDIF_CFGR_VDW_16 SPDIF_CFGR_VDW(0x0) |
41 | | -#define SPDIF_CFGR_VDW_20 SPDIF_CFGR_VDW(0x1) |
42 | | -#define SPDIF_CFGR_VDW_24 SPDIF_CFGR_VDW(0x2) |
| 38 | +#define SPDIF_CFGR_VDW_16 SPDIF_CFGR_VDW(0x0) |
| 39 | +#define SPDIF_CFGR_VDW_20 SPDIF_CFGR_VDW(0x1) |
| 40 | +#define SPDIF_CFGR_VDW_24 SPDIF_CFGR_VDW(0x2) |
43 | 41 |
|
44 | 42 | /* |
45 | 43 | * DMACR |
46 | 44 | * DMA control register |
47 | 45 | */ |
48 | | -#define SPDIF_DMACR_TDE_SHIFT 5 |
49 | | -#define SPDIF_DMACR_TDE_DISABLE (0 << SPDIF_DMACR_TDE_SHIFT) |
50 | | -#define SPDIF_DMACR_TDE_ENABLE (1 << SPDIF_DMACR_TDE_SHIFT) |
| 46 | +#define SPDIF_DMACR_TDE_MASK BIT(5) |
| 47 | +#define SPDIF_DMACR_TDE_DISABLE FIELD_PREP(SPDIF_DMACR_TDE_MASK, 0) |
| 48 | +#define SPDIF_DMACR_TDE_ENABLE FIELD_PREP(SPDIF_DMACR_TDE_MASK, 1) |
51 | 49 |
|
52 | | -#define SPDIF_DMACR_TDL_SHIFT 0 |
53 | | -#define SPDIF_DMACR_TDL(x) ((x) << SPDIF_DMACR_TDL_SHIFT) |
54 | | -#define SPDIF_DMACR_TDL_MASK (0x1f << SPDIF_DMACR_TDL_SHIFT) |
| 50 | +#define SPDIF_DMACR_TDL_MASK GENMASK(4, 0) |
| 51 | +#define SPDIF_DMACR_TDL(x) FIELD_PREP(SPDIF_DMACR_TDL_MASK, x) |
55 | 52 |
|
56 | 53 | /* |
57 | 54 | * XFER |
58 | 55 | * Transfer control register |
59 | 56 | */ |
60 | | -#define SPDIF_XFER_TXS_SHIFT 0 |
61 | | -#define SPDIF_XFER_TXS_STOP (0 << SPDIF_XFER_TXS_SHIFT) |
62 | | -#define SPDIF_XFER_TXS_START (1 << SPDIF_XFER_TXS_SHIFT) |
| 57 | +#define SPDIF_XFER_TXS_MASK BIT(0) |
| 58 | +#define SPDIF_XFER_TXS_STOP FIELD_PREP(SPDIF_XFER_TXS_MASK, 0) |
| 59 | +#define SPDIF_XFER_TXS_START FIELD_PREP(SPDIF_XFER_TXS_MASK, 1) |
63 | 60 |
|
64 | 61 | #define SPDIF_CFGR (0x0000) |
65 | 62 | #define SPDIF_SDBLR (0x0004) |
|
0 commit comments