|
17 | 17 |
|
18 | 18 | #define ACP_PAD_PULLDOWN_CTRL 0x0001448
|
19 | 19 | #define ACP_SW_PAD_KEEPER_EN 0x0001454
|
20 |
| -#define AMD_SDW_PAD_PULLDOWN_CTRL_ENABLE_MASK 0x7f9a |
21 |
| -#define AMD_SDW0_PAD_PULLDOWN_CTRL_ENABLE_MASK 0x7f9f |
22 |
| -#define AMD_SDW1_PAD_PULLDOWN_CTRL_ENABLE_MASK 0x7ffa |
23 |
| -#define AMD_SDW0_PAD_EN_MASK 1 |
24 |
| -#define AMD_SDW1_PAD_EN_MASK 0x10 |
25 |
| -#define AMD_SDW_PAD_EN_MASK (AMD_SDW0_PAD_EN_MASK | AMD_SDW1_PAD_EN_MASK) |
| 20 | +#define AMD_SDW0_PAD_CTRL_MASK 0x60 |
| 21 | +#define AMD_SDW1_PAD_CTRL_MASK 5 |
| 22 | +#define AMD_SDW_PAD_CTRL_MASK (AMD_SDW0_PAD_CTRL_MASK | AMD_SDW1_PAD_CTRL_MASK) |
| 23 | +#define AMD_SDW0_PAD_EN 1 |
| 24 | +#define AMD_SDW1_PAD_EN 0x10 |
| 25 | +#define AMD_SDW_PAD_EN (AMD_SDW0_PAD_EN | AMD_SDW1_PAD_EN) |
26 | 26 |
|
27 | 27 | static int amd_enable_sdw_pads(void __iomem *mmio, u32 link_mask, struct device *dev)
|
28 | 28 | {
|
29 |
| - u32 val; |
30 |
| - u32 pad_keeper_en_mask, pad_pulldown_ctrl_mask; |
| 29 | + u32 pad_keeper_en, pad_pulldown_ctrl_mask; |
31 | 30 |
|
32 | 31 | switch (link_mask) {
|
33 | 32 | case 1:
|
34 |
| - pad_keeper_en_mask = AMD_SDW0_PAD_EN_MASK; |
35 |
| - pad_pulldown_ctrl_mask = AMD_SDW0_PAD_PULLDOWN_CTRL_ENABLE_MASK; |
| 33 | + pad_keeper_en = AMD_SDW0_PAD_EN; |
| 34 | + pad_pulldown_ctrl_mask = AMD_SDW0_PAD_CTRL_MASK; |
36 | 35 | break;
|
37 | 36 | case 2:
|
38 |
| - pad_keeper_en_mask = AMD_SDW1_PAD_EN_MASK; |
39 |
| - pad_pulldown_ctrl_mask = AMD_SDW1_PAD_PULLDOWN_CTRL_ENABLE_MASK; |
| 37 | + pad_keeper_en = AMD_SDW1_PAD_EN; |
| 38 | + pad_pulldown_ctrl_mask = AMD_SDW1_PAD_CTRL_MASK; |
40 | 39 | break;
|
41 | 40 | case 3:
|
42 |
| - pad_keeper_en_mask = AMD_SDW_PAD_EN_MASK; |
43 |
| - pad_pulldown_ctrl_mask = AMD_SDW_PAD_PULLDOWN_CTRL_ENABLE_MASK; |
| 41 | + pad_keeper_en = AMD_SDW_PAD_EN; |
| 42 | + pad_pulldown_ctrl_mask = AMD_SDW_PAD_CTRL_MASK; |
44 | 43 | break;
|
45 | 44 | default:
|
46 | 45 | dev_err(dev, "No SDW Links are enabled\n");
|
47 | 46 | return -ENODEV;
|
48 | 47 | }
|
49 | 48 |
|
50 |
| - val = readl(mmio + ACP_SW_PAD_KEEPER_EN); |
51 |
| - val |= pad_keeper_en_mask; |
52 |
| - writel(val, mmio + ACP_SW_PAD_KEEPER_EN); |
53 |
| - val = readl(mmio + ACP_PAD_PULLDOWN_CTRL); |
54 |
| - val &= pad_pulldown_ctrl_mask; |
55 |
| - writel(val, mmio + ACP_PAD_PULLDOWN_CTRL); |
| 49 | + amd_updatel(mmio, ACP_SW_PAD_KEEPER_EN, pad_keeper_en, pad_keeper_en); |
| 50 | + amd_updatel(mmio, ACP_PAD_PULLDOWN_CTRL, pad_pulldown_ctrl_mask, 0); |
| 51 | + |
56 | 52 | return 0;
|
57 | 53 | }
|
58 | 54 |
|
|
0 commit comments