Lines Matching full:peb2466
3 // peb2466.c -- Infineon PEB2466 ALSA SoC driver
39 struct peb2466 { struct
134 static int peb2466_write_byte(struct peb2466 *peb2466, u8 cmd, u8 val) in peb2466_write_byte() argument
137 .tx_buf = &peb2466->spi_tx_buf, in peb2466_write_byte()
141 peb2466->spi_tx_buf[0] = cmd | PEB2466_CMD_W; in peb2466_write_byte()
142 peb2466->spi_tx_buf[1] = val; in peb2466_write_byte()
144 dev_dbg(&peb2466->spi->dev, "write byte (cmd %02x) %02x\n", in peb2466_write_byte()
145 peb2466->spi_tx_buf[0], peb2466->spi_tx_buf[1]); in peb2466_write_byte()
147 return spi_sync_transfer(peb2466->spi, &xfer, 1); in peb2466_write_byte()
150 static int peb2466_read_byte(struct peb2466 *peb2466, u8 cmd, u8 *val) in peb2466_read_byte() argument
153 .tx_buf = &peb2466->spi_tx_buf, in peb2466_read_byte()
154 .rx_buf = &peb2466->spi_rx_buf, in peb2466_read_byte()
159 peb2466->spi_tx_buf[0] = cmd | PEB2466_CMD_R; in peb2466_read_byte()
161 ret = spi_sync_transfer(peb2466->spi, &xfer, 1); in peb2466_read_byte()
165 if (peb2466->spi_rx_buf[1] != 0x81) { in peb2466_read_byte()
166 dev_err(&peb2466->spi->dev, in peb2466_read_byte()
168 peb2466->spi_tx_buf[0], peb2466->spi_rx_buf[1]); in peb2466_read_byte()
172 *val = peb2466->spi_rx_buf[2]; in peb2466_read_byte()
174 dev_dbg(&peb2466->spi->dev, "read byte (cmd %02x) %02x\n", in peb2466_read_byte()
175 peb2466->spi_tx_buf[0], *val); in peb2466_read_byte()
180 static int peb2466_write_buf(struct peb2466 *peb2466, u8 cmd, const u8 *buf, unsigned int len) in peb2466_write_buf() argument
183 .tx_buf = &peb2466->spi_tx_buf, in peb2466_write_buf()
190 peb2466->spi_tx_buf[0] = cmd | PEB2466_CMD_W; in peb2466_write_buf()
191 memcpy(&peb2466->spi_tx_buf[1], buf, len); in peb2466_write_buf()
193 dev_dbg(&peb2466->spi->dev, "write buf (cmd %02x, %u) %*ph\n", in peb2466_write_buf()
194 peb2466->spi_tx_buf[0], len, len, &peb2466->spi_tx_buf[1]); in peb2466_write_buf()
196 return spi_sync_transfer(peb2466->spi, &xfer, 1); in peb2466_write_buf()
201 struct peb2466 *peb2466 = context; in peb2466_reg_write() local
211 ret = peb2466_write_byte(peb2466, reg, val); in peb2466_reg_write()
214 dev_err(&peb2466->spi->dev, "Not a XOP or SOP command\n"); in peb2466_reg_write()
223 struct peb2466 *peb2466 = context; in peb2466_reg_read() local
231 ret = peb2466_read_byte(peb2466, reg, &tmp); in peb2466_reg_read()
236 dev_err(&peb2466->spi->dev, "Not a XOP or SOP command\n"); in peb2466_reg_read()
281 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_lkup_ctrl_put() local
292 ret = peb2466_write_buf(peb2466, lkup_ctrl->reg, in peb2466_lkup_ctrl_put()
382 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_tg_freq_get() local
387 ucontrol->value.enumerated.item[0] = peb2466->ch[0].tg1_freq_item; in peb2466_tg_freq_get()
390 ucontrol->value.enumerated.item[0] = peb2466->ch[0].tg2_freq_item; in peb2466_tg_freq_get()
393 ucontrol->value.enumerated.item[0] = peb2466->ch[1].tg1_freq_item; in peb2466_tg_freq_get()
396 ucontrol->value.enumerated.item[0] = peb2466->ch[1].tg2_freq_item; in peb2466_tg_freq_get()
399 ucontrol->value.enumerated.item[0] = peb2466->ch[2].tg1_freq_item; in peb2466_tg_freq_get()
402 ucontrol->value.enumerated.item[0] = peb2466->ch[2].tg2_freq_item; in peb2466_tg_freq_get()
405 ucontrol->value.enumerated.item[0] = peb2466->ch[3].tg1_freq_item; in peb2466_tg_freq_get()
408 ucontrol->value.enumerated.item[0] = peb2466->ch[3].tg2_freq_item; in peb2466_tg_freq_get()
420 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_tg_freq_put() local
434 tg_freq_item = &peb2466->ch[0].tg1_freq_item; in peb2466_tg_freq_put()
439 tg_freq_item = &peb2466->ch[0].tg2_freq_item; in peb2466_tg_freq_put()
444 tg_freq_item = &peb2466->ch[1].tg1_freq_item; in peb2466_tg_freq_put()
449 tg_freq_item = &peb2466->ch[1].tg2_freq_item; in peb2466_tg_freq_put()
454 tg_freq_item = &peb2466->ch[2].tg1_freq_item; in peb2466_tg_freq_put()
459 tg_freq_item = &peb2466->ch[2].tg2_freq_item; in peb2466_tg_freq_put()
464 tg_freq_item = &peb2466->ch[3].tg1_freq_item; in peb2466_tg_freq_put()
469 tg_freq_item = &peb2466->ch[3].tg2_freq_item; in peb2466_tg_freq_put()
481 ret = regmap_update_bits(peb2466->regmap, cr1_reg, cr1_mask, 0); in peb2466_tg_freq_put()
485 ret = peb2466_write_buf(peb2466, e->reg, peb2466_tone_lookup[index], 4); in peb2466_tg_freq_put()
488 ret = regmap_update_bits(peb2466->regmap, cr1_reg, cr1_mask, cr1_mask); in peb2466_tg_freq_put()
669 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(dai->component); in peb2466_dai_set_tdm_slot() local
690 ret = regmap_write(peb2466->regmap, PEB2466_CR5(chan), slot); in peb2466_dai_set_tdm_slot()
706 peb2466->max_chan_playback = chan; in peb2466_dai_set_tdm_slot()
713 ret = regmap_write(peb2466->regmap, PEB2466_CR4(chan), slot); in peb2466_dai_set_tdm_slot()
729 peb2466->max_chan_capture = chan; in peb2466_dai_set_tdm_slot()
736 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(dai->component); in peb2466_dai_set_fmt() local
751 return regmap_write(peb2466->regmap, PEB2466_XR6, xr6); in peb2466_dai_set_fmt()
758 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(dai->component); in peb2466_dai_hw_params() local
771 dev_err(&peb2466->spi->dev, "Unsupported format 0x%x\n", in peb2466_dai_hw_params()
777 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR1(ch), in peb2466_dai_hw_params()
796 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(dai->component); in peb2466_dai_startup() local
801 peb2466->max_chan_playback : peb2466->max_chan_capture; in peb2466_dai_startup()
833 .name = "peb2466",
851 static int peb2466_reset_audio(struct peb2466 *peb2466) in peb2466_reset_audio() argument
890 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_reset_audio()
891 peb2466->ch[i].tg1_freq_item = PEB2466_TONE_1000HZ; in peb2466_reset_audio()
892 peb2466->ch[i].tg2_freq_item = PEB2466_TONE_1000HZ; in peb2466_reset_audio()
901 ret = peb2466_write_buf(peb2466, PEB2466_IMR1_FILTER_P1(i), imr1_p1, 8); in peb2466_reset_audio()
904 ret = peb2466_write_buf(peb2466, PEB2466_IMR1_FILTER_P2(i), imr1_p2, 8); in peb2466_reset_audio()
909 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P1(i), zero, 8); in peb2466_reset_audio()
912 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P2(i), zero, 8); in peb2466_reset_audio()
915 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P3(i), zero, 8); in peb2466_reset_audio()
918 ret = peb2466_write_buf(peb2466, PEB2466_FRX_FILTER(i), zero, 8); in peb2466_reset_audio()
921 ret = peb2466_write_buf(peb2466, PEB2466_FRR_FILTER(i), zero, 8); in peb2466_reset_audio()
924 ret = peb2466_write_buf(peb2466, PEB2466_AX_FILTER(i), zero, 4); in peb2466_reset_audio()
927 ret = peb2466_write_buf(peb2466, PEB2466_AR_FILTER(i), zero, 4); in peb2466_reset_audio()
932 return regmap_multi_reg_write(peb2466->regmap, reg_reset, ARRAY_SIZE(reg_reset)); in peb2466_reset_audio()
938 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_thfilter() local
954 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_thfilter()
958 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_thfilter()
963 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P1(i), data + 1, 8); in peb2466_fw_parse_thfilter()
967 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P2(i), data + 9, 8); in peb2466_fw_parse_thfilter()
971 ret = peb2466_write_buf(peb2466, PEB2466_TH_FILTER_P3(i), data + 17, 8); in peb2466_fw_parse_thfilter()
975 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_thfilter()
987 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_imr1filter() local
1002 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_imr1filter()
1006 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_imr1filter()
1011 ret = peb2466_write_buf(peb2466, PEB2466_IMR1_FILTER_P1(i), data + 1, 8); in peb2466_fw_parse_imr1filter()
1015 ret = peb2466_write_buf(peb2466, PEB2466_IMR1_FILTER_P2(i), data + 9, 8); in peb2466_fw_parse_imr1filter()
1019 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_imr1filter()
1030 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_frxfilter() local
1044 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_frxfilter()
1048 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_frxfilter()
1053 ret = peb2466_write_buf(peb2466, PEB2466_FRX_FILTER(i), data + 1, 8); in peb2466_fw_parse_frxfilter()
1057 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_frxfilter()
1068 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_frrfilter() local
1082 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_frrfilter()
1086 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_frrfilter()
1091 ret = peb2466_write_buf(peb2466, PEB2466_FRR_FILTER(i), data + 1, 8); in peb2466_fw_parse_frrfilter()
1095 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_frrfilter()
1106 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_axfilter() local
1120 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_axfilter()
1124 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_axfilter()
1129 ret = peb2466_write_buf(peb2466, PEB2466_AX_FILTER(i), data + 1, 4); in peb2466_fw_parse_axfilter()
1133 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_axfilter()
1144 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_arfilter() local
1158 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_arfilter()
1162 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_arfilter()
1167 ret = peb2466_write_buf(peb2466, PEB2466_AR_FILTER(i), data + 1, 4); in peb2466_fw_parse_arfilter()
1171 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_arfilter()
1189 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_axtable() local
1239 table = devm_kzalloc(&peb2466->spi->dev, table_size, GFP_KERNEL); in peb2466_fw_parse_axtable()
1245 BUILD_BUG_ON(ARRAY_SIZE(peb2466_ax_ctrl_names) != ARRAY_SIZE(peb2466->ch)); in peb2466_fw_parse_axtable()
1246 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_axtable()
1250 lookup = &peb2466->ch[i].ax_lookup; in peb2466_fw_parse_axtable()
1254 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_axtable()
1259 ret = peb2466_write_buf(peb2466, PEB2466_AX_FILTER(i), in peb2466_fw_parse_axtable()
1264 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_axtable()
1269 lkup_ctrl = &peb2466->ch[i].ax_lkup_ctrl; in peb2466_fw_parse_axtable()
1293 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_fw_parse_artable() local
1343 table = devm_kzalloc(&peb2466->spi->dev, table_size, GFP_KERNEL); in peb2466_fw_parse_artable()
1349 BUILD_BUG_ON(ARRAY_SIZE(peb2466_ar_ctrl_names) != ARRAY_SIZE(peb2466->ch)); in peb2466_fw_parse_artable()
1350 for (i = 0; i < ARRAY_SIZE(peb2466->ch); i++) { in peb2466_fw_parse_artable()
1354 lookup = &peb2466->ch[i].ar_lookup; in peb2466_fw_parse_artable()
1358 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_artable()
1363 ret = peb2466_write_buf(peb2466, PEB2466_AR_FILTER(i), in peb2466_fw_parse_artable()
1368 ret = regmap_update_bits(peb2466->regmap, PEB2466_CR0(i), in peb2466_fw_parse_artable()
1373 lkup_ctrl = &peb2466->ch[i].ar_lkup_ctrl; in peb2466_fw_parse_artable()
1554 struct peb2466 *peb2466 = snd_soc_component_get_drvdata(component); in peb2466_component_probe() local
1558 /* reset peb2466 audio part */ in peb2466_component_probe()
1559 ret = peb2466_reset_audio(peb2466); in peb2466_component_probe()
1563 ret = of_property_read_string(peb2466->spi->dev.of_node, in peb2466_component_probe()
1667 static unsigned int *peb2466_chip_gpio_get_cache(struct peb2466 *peb2466, in peb2466_chip_gpio_get_cache() argument
1674 cache = &peb2466->gpio.cache.xr0; in peb2466_chip_gpio_get_cache()
1677 cache = &peb2466->gpio.cache.xr1; in peb2466_chip_gpio_get_cache()
1680 cache = &peb2466->gpio.cache.xr2; in peb2466_chip_gpio_get_cache()
1683 cache = &peb2466->gpio.cache.xr3; in peb2466_chip_gpio_get_cache()
1692 static int peb2466_chip_gpio_update_bits(struct peb2466 *peb2466, unsigned int xr_reg, in peb2466_chip_gpio_update_bits() argument
1700 * Read and write accesses use different peb2466 internal signals (input in peb2466_chip_gpio_update_bits()
1706 mutex_lock(&peb2466->gpio.lock); in peb2466_chip_gpio_update_bits()
1708 cache = peb2466_chip_gpio_get_cache(peb2466, xr_reg); in peb2466_chip_gpio_update_bits()
1718 ret = regmap_write(peb2466->regmap, xr_reg, tmp); in peb2466_chip_gpio_update_bits()
1726 mutex_unlock(&peb2466->gpio.lock); in peb2466_chip_gpio_update_bits()
1732 struct peb2466 *peb2466 = gpiochip_get_data(c); in peb2466_chip_gpio_set() local
1742 dev_warn(&peb2466->spi->dev, "cannot set gpio %d (read-only)\n", in peb2466_chip_gpio_set()
1749 dev_err(&peb2466->spi->dev, "cannot set gpio %d (%d)\n", in peb2466_chip_gpio_set()
1754 ret = peb2466_chip_gpio_update_bits(peb2466, xr_reg, mask, val ? mask : 0); in peb2466_chip_gpio_set()
1756 dev_err(&peb2466->spi->dev, "set gpio %d (0x%x, 0x%x) failed (%d)\n", in peb2466_chip_gpio_set()
1763 struct peb2466 *peb2466 = gpiochip_get_data(c); in peb2466_chip_gpio_get() local
1782 dev_err(&peb2466->spi->dev, "cannot get gpio %d (%d)\n", in peb2466_chip_gpio_get()
1788 cache = peb2466_chip_gpio_get_cache(peb2466, xr_reg); in peb2466_chip_gpio_get()
1793 ret = regmap_read(peb2466->regmap, xr_reg, &val); in peb2466_chip_gpio_get()
1795 dev_err(&peb2466->spi->dev, "get gpio %d (0x%x, 0x%x) failed (%d)\n", in peb2466_chip_gpio_get()
1806 struct peb2466 *peb2466 = gpiochip_get_data(c); in peb2466_chip_get_direction() local
1823 dev_err(&peb2466->spi->dev, "cannot get gpio %d direction (%d)\n", in peb2466_chip_get_direction()
1828 ret = regmap_read(peb2466->regmap, xr_reg, &val); in peb2466_chip_get_direction()
1830 dev_err(&peb2466->spi->dev, "get dir gpio %d (0x%x, 0x%x) failed (%d)\n", in peb2466_chip_get_direction()
1840 struct peb2466 *peb2466 = gpiochip_get_data(c); in peb2466_chip_direction_input() local
1856 dev_err(&peb2466->spi->dev, "cannot set gpio %d direction (%d)\n", in peb2466_chip_direction_input()
1861 ret = peb2466_chip_gpio_update_bits(peb2466, xr_reg, mask, 0); in peb2466_chip_direction_input()
1863 dev_err(&peb2466->spi->dev, "Set dir in gpio %d (0x%x, 0x%x) failed (%d)\n", in peb2466_chip_direction_input()
1873 struct peb2466 *peb2466 = gpiochip_get_data(c); in peb2466_chip_direction_output() local
1892 dev_err(&peb2466->spi->dev, "cannot set gpio %d direction (%d)\n", in peb2466_chip_direction_output()
1897 ret = peb2466_chip_gpio_update_bits(peb2466, xr_reg, mask, mask); in peb2466_chip_direction_output()
1899 dev_err(&peb2466->spi->dev, "Set dir in gpio %d (0x%x, 0x%x) failed (%d)\n", in peb2466_chip_direction_output()
1907 static int peb2466_reset_gpio(struct peb2466 *peb2466) in peb2466_reset_gpio() argument
1917 peb2466->gpio.cache.xr0 = 0; in peb2466_reset_gpio()
1918 peb2466->gpio.cache.xr1 = 0; in peb2466_reset_gpio()
1919 peb2466->gpio.cache.xr2 = 0; in peb2466_reset_gpio()
1920 peb2466->gpio.cache.xr3 = 0; in peb2466_reset_gpio()
1922 return regmap_multi_reg_write(peb2466->regmap, reg_reset, ARRAY_SIZE(reg_reset)); in peb2466_reset_gpio()
1925 static int peb2466_gpio_init(struct peb2466 *peb2466) in peb2466_gpio_init() argument
1929 mutex_init(&peb2466->gpio.lock); in peb2466_gpio_init()
1931 ret = peb2466_reset_gpio(peb2466); in peb2466_gpio_init()
1935 peb2466->gpio.gpio_chip.owner = THIS_MODULE; in peb2466_gpio_init()
1936 peb2466->gpio.gpio_chip.label = dev_name(&peb2466->spi->dev); in peb2466_gpio_init()
1937 peb2466->gpio.gpio_chip.parent = &peb2466->spi->dev; in peb2466_gpio_init()
1938 peb2466->gpio.gpio_chip.base = -1; in peb2466_gpio_init()
1939 peb2466->gpio.gpio_chip.ngpio = 28; in peb2466_gpio_init()
1940 peb2466->gpio.gpio_chip.get_direction = peb2466_chip_get_direction; in peb2466_gpio_init()
1941 peb2466->gpio.gpio_chip.direction_input = peb2466_chip_direction_input; in peb2466_gpio_init()
1942 peb2466->gpio.gpio_chip.direction_output = peb2466_chip_direction_output; in peb2466_gpio_init()
1943 peb2466->gpio.gpio_chip.get = peb2466_chip_gpio_get; in peb2466_gpio_init()
1944 peb2466->gpio.gpio_chip.set = peb2466_chip_gpio_set; in peb2466_gpio_init()
1945 peb2466->gpio.gpio_chip.can_sleep = true; in peb2466_gpio_init()
1947 return devm_gpiochip_add_data(&peb2466->spi->dev, &peb2466->gpio.gpio_chip, in peb2466_gpio_init()
1948 peb2466); in peb2466_gpio_init()
1953 struct peb2466 *peb2466; in peb2466_spi_probe() local
1963 peb2466 = devm_kzalloc(&spi->dev, sizeof(*peb2466), GFP_KERNEL); in peb2466_spi_probe()
1964 if (!peb2466) in peb2466_spi_probe()
1967 peb2466->spi = spi; in peb2466_spi_probe()
1969 peb2466->regmap = devm_regmap_init(&peb2466->spi->dev, NULL, peb2466, in peb2466_spi_probe()
1971 if (IS_ERR(peb2466->regmap)) in peb2466_spi_probe()
1972 return PTR_ERR(peb2466->regmap); in peb2466_spi_probe()
1974 peb2466->reset_gpio = devm_gpiod_get_optional(&peb2466->spi->dev, in peb2466_spi_probe()
1976 if (IS_ERR(peb2466->reset_gpio)) in peb2466_spi_probe()
1977 return PTR_ERR(peb2466->reset_gpio); in peb2466_spi_probe()
1979 peb2466->mclk = devm_clk_get_enabled(&peb2466->spi->dev, "mclk"); in peb2466_spi_probe()
1980 if (IS_ERR(peb2466->mclk)) in peb2466_spi_probe()
1981 return PTR_ERR(peb2466->mclk); in peb2466_spi_probe()
1983 if (peb2466->reset_gpio) { in peb2466_spi_probe()
1984 gpiod_set_value_cansleep(peb2466->reset_gpio, 1); in peb2466_spi_probe()
1986 gpiod_set_value_cansleep(peb2466->reset_gpio, 0); in peb2466_spi_probe()
1990 spi_set_drvdata(spi, peb2466); in peb2466_spi_probe()
1992 mclk_rate = clk_get_rate(peb2466->mclk); in peb2466_spi_probe()
2007 dev_err(&peb2466->spi->dev, "Unsupported clock rate %lu\n", in peb2466_spi_probe()
2012 ret = regmap_write(peb2466->regmap, PEB2466_XR5, xr5); in peb2466_spi_probe()
2014 dev_err(&peb2466->spi->dev, "Setting MCLK failed (%d)\n", ret); in peb2466_spi_probe()
2024 ret = peb2466_gpio_init(peb2466); in peb2466_spi_probe()
2036 { .compatible = "infineon,peb2466", },
2042 { "peb2466", 0 },
2049 .name = "peb2466",
2059 MODULE_DESCRIPTION("PEB2466 ALSA SoC driver");