diff options
author | Jean-Francois Moine <moinejf@free.fr> | 2014-01-25 12:14:40 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-02-13 14:43:39 -0500 |
commit | 10df1a95d6457ead03ed804c9abece79023f3f77 (patch) | |
tree | 063aa5fb37918c3fd22ce7fade8f9e9fb8e88550 /drivers/gpu/drm/i2c | |
parent | 12473b7d8e6074c7d4c2816afa6027354ce9a502 (diff) |
drm/i2c: tda998x: make the audio code more readable
This patch adds a definition of the values of the MUX_AP register and
simplifies the macro's defining the fields of the AIP_CLKSEL register.
This makes the format specific audio init sequence more readable.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/i2c')
-rw-r--r-- | drivers/gpu/drm/i2c/tda998x_drv.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index c9882246d81f..99d210bbf4e2 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c | |||
@@ -127,6 +127,8 @@ struct tda998x_priv { | |||
127 | # define VIP_CNTRL_5_CKCASE (1 << 0) | 127 | # define VIP_CNTRL_5_CKCASE (1 << 0) |
128 | # define VIP_CNTRL_5_SP_CNT(x) (((x) & 3) << 1) | 128 | # define VIP_CNTRL_5_SP_CNT(x) (((x) & 3) << 1) |
129 | #define REG_MUX_AP REG(0x00, 0x26) /* read/write */ | 129 | #define REG_MUX_AP REG(0x00, 0x26) /* read/write */ |
130 | # define MUX_AP_SELECT_I2S 0x64 | ||
131 | # define MUX_AP_SELECT_SPDIF 0x40 | ||
130 | #define REG_MUX_VP_VIP_OUT REG(0x00, 0x27) /* read/write */ | 132 | #define REG_MUX_VP_VIP_OUT REG(0x00, 0x27) /* read/write */ |
131 | #define REG_MAT_CONTRL REG(0x00, 0x80) /* write */ | 133 | #define REG_MAT_CONTRL REG(0x00, 0x80) /* write */ |
132 | # define MAT_CONTRL_MAT_SC(x) (((x) & 3) << 0) | 134 | # define MAT_CONTRL_MAT_SC(x) (((x) & 3) << 0) |
@@ -204,10 +206,11 @@ struct tda998x_priv { | |||
204 | #define REG_I2S_FORMAT REG(0x00, 0xfc) /* read/write */ | 206 | #define REG_I2S_FORMAT REG(0x00, 0xfc) /* read/write */ |
205 | # define I2S_FORMAT(x) (((x) & 3) << 0) | 207 | # define I2S_FORMAT(x) (((x) & 3) << 0) |
206 | #define REG_AIP_CLKSEL REG(0x00, 0xfd) /* write */ | 208 | #define REG_AIP_CLKSEL REG(0x00, 0xfd) /* write */ |
207 | # define AIP_CLKSEL_FS(x) (((x) & 3) << 0) | 209 | # define AIP_CLKSEL_AIP_SPDIF (0 << 3) |
208 | # define AIP_CLKSEL_CLK_POL(x) (((x) & 1) << 2) | 210 | # define AIP_CLKSEL_AIP_I2S (1 << 3) |
209 | # define AIP_CLKSEL_AIP(x) (((x) & 7) << 3) | 211 | # define AIP_CLKSEL_FS_ACLK (0 << 0) |
210 | 212 | # define AIP_CLKSEL_FS_MCLK (1 << 0) | |
213 | # define AIP_CLKSEL_FS_FS64SPDIF (2 << 0) | ||
211 | 214 | ||
212 | /* Page 02h: PLL settings */ | 215 | /* Page 02h: PLL settings */ |
213 | #define REG_PLL_SERIAL_1 REG(0x02, 0x00) /* read/write */ | 216 | #define REG_PLL_SERIAL_1 REG(0x02, 0x00) /* read/write */ |
@@ -647,19 +650,17 @@ tda998x_configure_audio(struct tda998x_priv *priv, | |||
647 | /* Set audio input source */ | 650 | /* Set audio input source */ |
648 | switch (p->audio_format) { | 651 | switch (p->audio_format) { |
649 | case AFMT_SPDIF: | 652 | case AFMT_SPDIF: |
650 | reg_write(priv, REG_MUX_AP, 0x40); | 653 | reg_write(priv, REG_MUX_AP, MUX_AP_SELECT_SPDIF); |
651 | clksel_aip = AIP_CLKSEL_AIP(0); | 654 | clksel_aip = AIP_CLKSEL_AIP_SPDIF; |
652 | /* FS64SPDIF */ | 655 | clksel_fs = AIP_CLKSEL_FS_FS64SPDIF; |
653 | clksel_fs = AIP_CLKSEL_FS(2); | ||
654 | cts_n = CTS_N_M(3) | CTS_N_K(3); | 656 | cts_n = CTS_N_M(3) | CTS_N_K(3); |
655 | ca_i2s = 0; | 657 | ca_i2s = 0; |
656 | break; | 658 | break; |
657 | 659 | ||
658 | case AFMT_I2S: | 660 | case AFMT_I2S: |
659 | reg_write(priv, REG_MUX_AP, 0x64); | 661 | reg_write(priv, REG_MUX_AP, MUX_AP_SELECT_I2S); |
660 | clksel_aip = AIP_CLKSEL_AIP(1); | 662 | clksel_aip = AIP_CLKSEL_AIP_I2S; |
661 | /* ACLK */ | 663 | clksel_fs = AIP_CLKSEL_FS_ACLK; |
662 | clksel_fs = AIP_CLKSEL_FS(0); | ||
663 | cts_n = CTS_N_M(3) | CTS_N_K(3); | 664 | cts_n = CTS_N_M(3) | CTS_N_K(3); |
664 | ca_i2s = CA_I2S_CA_I2S(0); | 665 | ca_i2s = CA_I2S_CA_I2S(0); |
665 | break; | 666 | break; |