Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: arizona: Add ASYNC_SAMPLE_RATE_2 registers

Some arizona devices have a second asynchronous sample rate, add the
registers necessary to support this.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

authored by

Charles Keepax and committed by
Lee Jones
c24084db 9bb9e29c

+30 -7
+3
drivers/mfd/wm5102-tables.c
··· 1059 1059 case ARIZONA_ASYNC_CLOCK_1: 1060 1060 case ARIZONA_ASYNC_SAMPLE_RATE_1: 1061 1061 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS: 1062 + case ARIZONA_ASYNC_SAMPLE_RATE_2: 1063 + case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS: 1062 1064 case ARIZONA_OUTPUT_SYSTEM_CLOCK: 1063 1065 case ARIZONA_OUTPUT_ASYNC_CLOCK: 1064 1066 case ARIZONA_RATE_ESTIMATOR_1: ··· 1894 1892 case ARIZONA_SAMPLE_RATE_3_STATUS: 1895 1893 case ARIZONA_HAPTICS_STATUS: 1896 1894 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS: 1895 + case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS: 1897 1896 case ARIZONA_FLL1_NCO_TEST_0: 1898 1897 case ARIZONA_FLL2_NCO_TEST_0: 1899 1898 case ARIZONA_DAC_COMP_1:
+4
drivers/mfd/wm5110-tables.c
··· 702 702 { 0x00000104, 0x0011 }, /* R260 - Sample rate 3 */ 703 703 { 0x00000112, 0x0305 }, /* R274 - Async clock 1 */ 704 704 { 0x00000113, 0x0011 }, /* R275 - Async sample rate 1 */ 705 + { 0x00000114, 0x0011 }, /* R276 - Async sample rate 2 */ 705 706 { 0x00000149, 0x0000 }, /* R329 - Output system clock */ 706 707 { 0x0000014A, 0x0000 }, /* R330 - Output async clock */ 707 708 { 0x00000152, 0x0000 }, /* R338 - Rate Estimator 1 */ ··· 1739 1738 case ARIZONA_ASYNC_CLOCK_1: 1740 1739 case ARIZONA_ASYNC_SAMPLE_RATE_1: 1741 1740 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS: 1741 + case ARIZONA_ASYNC_SAMPLE_RATE_2: 1742 + case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS: 1742 1743 case ARIZONA_OUTPUT_SYSTEM_CLOCK: 1743 1744 case ARIZONA_OUTPUT_ASYNC_CLOCK: 1744 1745 case ARIZONA_RATE_ESTIMATOR_1: ··· 2823 2820 case ARIZONA_SAMPLE_RATE_2_STATUS: 2824 2821 case ARIZONA_SAMPLE_RATE_3_STATUS: 2825 2822 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS: 2823 + case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS: 2826 2824 case ARIZONA_MIC_DETECT_3: 2827 2825 case ARIZONA_HEADPHONE_DETECT_2: 2828 2826 case ARIZONA_INPUT_ENABLES_STATUS:
+22 -6
include/linux/mfd/arizona/registers.h
··· 71 71 #define ARIZONA_SAMPLE_RATE_3_STATUS 0x10C 72 72 #define ARIZONA_ASYNC_CLOCK_1 0x112 73 73 #define ARIZONA_ASYNC_SAMPLE_RATE_1 0x113 74 + #define ARIZONA_ASYNC_SAMPLE_RATE_2 0x114 74 75 #define ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS 0x11B 76 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS 0x11C 75 77 #define ARIZONA_OUTPUT_SYSTEM_CLOCK 0x149 76 78 #define ARIZONA_OUTPUT_ASYNC_CLOCK 0x14A 77 79 #define ARIZONA_RATE_ESTIMATOR_1 0x152 ··· 1667 1665 /* 1668 1666 * R275 (0x113) - Async sample rate 1 1669 1667 */ 1670 - #define ARIZONA_ASYNC_SAMPLE_RATE_MASK 0x001F /* ASYNC_SAMPLE_RATE - [4:0] */ 1671 - #define ARIZONA_ASYNC_SAMPLE_RATE_SHIFT 0 /* ASYNC_SAMPLE_RATE - [4:0] */ 1672 - #define ARIZONA_ASYNC_SAMPLE_RATE_WIDTH 5 /* ASYNC_SAMPLE_RATE - [4:0] */ 1668 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_MASK 0x001F /* ASYNC_SAMPLE_RATE_1 - [4:0] */ 1669 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_SHIFT 0 /* ASYNC_SAMPLE_RATE_1 - [4:0] */ 1670 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_WIDTH 5 /* ASYNC_SAMPLE_RATE_1 - [4:0] */ 1671 + 1672 + /* 1673 + * R276 (0x114) - Async sample rate 2 1674 + */ 1675 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_MASK 0x001F /* ASYNC_SAMPLE_RATE_2 - [4:0] */ 1676 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_SHIFT 0 /* ASYNC_SAMPLE_RATE_2 - [4:0] */ 1677 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_WIDTH 5 /* ASYNC_SAMPLE_RATE_2 - [4:0] */ 1673 1678 1674 1679 /* 1675 1680 * R283 (0x11B) - Async sample rate 1 status 1676 1681 */ 1677 - #define ARIZONA_ASYNC_SAMPLE_RATE_STS_MASK 0x001F /* ASYNC_SAMPLE_RATE_STS - [4:0] */ 1678 - #define ARIZONA_ASYNC_SAMPLE_RATE_STS_SHIFT 0 /* ASYNC_SAMPLE_RATE_STS - [4:0] */ 1679 - #define ARIZONA_ASYNC_SAMPLE_RATE_STS_WIDTH 5 /* ASYNC_SAMPLE_RATE_STS - [4:0] */ 1682 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_STS_MASK 0x001F /* ASYNC_SAMPLE_RATE_1_STS - [4:0] */ 1683 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_STS_SHIFT 0 /* ASYNC_SAMPLE_RATE_1_STS - [4:0] */ 1684 + #define ARIZONA_ASYNC_SAMPLE_RATE_1_STS_WIDTH 5 /* ASYNC_SAMPLE_RATE_1_STS - [4:0] */ 1685 + 1686 + /* 1687 + * R284 (0x11C) - Async sample rate 2 status 1688 + */ 1689 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_STS_MASK 0x001F /* ASYNC_SAMPLE_RATE_2_STS - [4:0] */ 1690 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_STS_SHIFT 0 /* ASYNC_SAMPLE_RATE_2_STS - [4:0] */ 1691 + #define ARIZONA_ASYNC_SAMPLE_RATE_2_STS_WIDTH 5 /* ASYNC_SAMPLE_RATE_2_STS - [4:0] */ 1680 1692 1681 1693 /* 1682 1694 * R329 (0x149) - Output system clock
+1 -1
sound/soc/codecs/arizona.c
··· 1220 1220 break; 1221 1221 case ARIZONA_CLK_ASYNCCLK: 1222 1222 snd_soc_update_bits(codec, ARIZONA_ASYNC_SAMPLE_RATE_1, 1223 - ARIZONA_ASYNC_SAMPLE_RATE_MASK, sr_val); 1223 + ARIZONA_ASYNC_SAMPLE_RATE_1_MASK, sr_val); 1224 1224 if (base) 1225 1225 snd_soc_update_bits(codec, base + ARIZONA_AIF_RATE_CTRL, 1226 1226 ARIZONA_AIF1_RATE_MASK,