| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * wm8998.c -- ALSA SoC Audio driver for WM8998 codecs |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright 2015 Cirrus Logic, Inc. |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Author: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 10 | | - * published by the Free Software Foundation. |
|---|
| 11 | 8 | */ |
|---|
| 12 | 9 | |
|---|
| 13 | 10 | #include <linux/module.h> |
|---|
| .. | .. |
|---|
| 46 | 43 | |
|---|
| 47 | 44 | switch (event) { |
|---|
| 48 | 45 | case SND_SOC_DAPM_PRE_PMU: |
|---|
| 49 | | - val = snd_soc_component_read32(component, ARIZONA_ASRC_RATE1); |
|---|
| 46 | + val = snd_soc_component_read(component, ARIZONA_ASRC_RATE1); |
|---|
| 50 | 47 | val &= ARIZONA_ASRC_RATE1_MASK; |
|---|
| 51 | 48 | val >>= ARIZONA_ASRC_RATE1_SHIFT; |
|---|
| 52 | 49 | |
|---|
| .. | .. |
|---|
| 54 | 51 | case 0: |
|---|
| 55 | 52 | case 1: |
|---|
| 56 | 53 | case 2: |
|---|
| 57 | | - val = snd_soc_component_read32(component, |
|---|
| 54 | + val = snd_soc_component_read(component, |
|---|
| 58 | 55 | ARIZONA_SAMPLE_RATE_1 + val); |
|---|
| 59 | 56 | if (val >= 0x11) { |
|---|
| 60 | 57 | dev_warn(component->dev, |
|---|
| 61 | 58 | "Unsupported ASRC rate1 (%s)\n", |
|---|
| 62 | 59 | arizona_sample_rate_val_to_name(val)); |
|---|
| 63 | | - return -EINVAL; |
|---|
| 60 | + return -EINVAL; |
|---|
| 64 | 61 | } |
|---|
| 65 | 62 | break; |
|---|
| 66 | 63 | default: |
|---|
| .. | .. |
|---|
| 70 | 67 | return -EINVAL; |
|---|
| 71 | 68 | } |
|---|
| 72 | 69 | |
|---|
| 73 | | - val = snd_soc_component_read32(component, ARIZONA_ASRC_RATE2); |
|---|
| 70 | + val = snd_soc_component_read(component, ARIZONA_ASRC_RATE2); |
|---|
| 74 | 71 | val &= ARIZONA_ASRC_RATE2_MASK; |
|---|
| 75 | 72 | val >>= ARIZONA_ASRC_RATE2_SHIFT; |
|---|
| 76 | 73 | |
|---|
| .. | .. |
|---|
| 78 | 75 | case 8: |
|---|
| 79 | 76 | case 9: |
|---|
| 80 | 77 | val -= 0x8; |
|---|
| 81 | | - val = snd_soc_component_read32(component, |
|---|
| 78 | + val = snd_soc_component_read(component, |
|---|
| 82 | 79 | ARIZONA_ASYNC_SAMPLE_RATE_1 + val); |
|---|
| 83 | 80 | if (val >= 0x11) { |
|---|
| 84 | 81 | dev_warn(component->dev, |
|---|
| .. | .. |
|---|
| 626 | 623 | |
|---|
| 627 | 624 | SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0, |
|---|
| 628 | 625 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0), |
|---|
| 629 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0, |
|---|
| 626 | +SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1, |
|---|
| 630 | 627 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX2_ENA_SHIFT, 0), |
|---|
| 631 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 0, |
|---|
| 628 | +SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2, |
|---|
| 632 | 629 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX3_ENA_SHIFT, 0), |
|---|
| 633 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 0, |
|---|
| 630 | +SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3, |
|---|
| 634 | 631 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX4_ENA_SHIFT, 0), |
|---|
| 635 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 0, |
|---|
| 632 | +SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4, |
|---|
| 636 | 633 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX5_ENA_SHIFT, 0), |
|---|
| 637 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 0, |
|---|
| 634 | +SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5, |
|---|
| 638 | 635 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX6_ENA_SHIFT, 0), |
|---|
| 639 | 636 | |
|---|
| 640 | 637 | SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0, |
|---|
| 641 | 638 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX1_ENA_SHIFT, 0), |
|---|
| 642 | | -SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 0, |
|---|
| 639 | +SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1, |
|---|
| 643 | 640 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX2_ENA_SHIFT, 0), |
|---|
| 644 | | -SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 0, |
|---|
| 641 | +SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2, |
|---|
| 645 | 642 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX3_ENA_SHIFT, 0), |
|---|
| 646 | | -SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 0, |
|---|
| 643 | +SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3, |
|---|
| 647 | 644 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX4_ENA_SHIFT, 0), |
|---|
| 648 | | -SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 0, |
|---|
| 645 | +SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4, |
|---|
| 649 | 646 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX5_ENA_SHIFT, 0), |
|---|
| 650 | | -SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 0, |
|---|
| 647 | +SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5, |
|---|
| 651 | 648 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX6_ENA_SHIFT, 0), |
|---|
| 652 | 649 | |
|---|
| 653 | 650 | SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0, |
|---|
| 654 | 651 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX1_ENA_SHIFT, 0), |
|---|
| 655 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 0, |
|---|
| 652 | +SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1, |
|---|
| 656 | 653 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0), |
|---|
| 657 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 0, |
|---|
| 654 | +SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 2, |
|---|
| 658 | 655 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX3_ENA_SHIFT, 0), |
|---|
| 659 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 0, |
|---|
| 656 | +SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 3, |
|---|
| 660 | 657 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX4_ENA_SHIFT, 0), |
|---|
| 661 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 0, |
|---|
| 658 | +SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 4, |
|---|
| 662 | 659 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX5_ENA_SHIFT, 0), |
|---|
| 663 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 0, |
|---|
| 660 | +SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 5, |
|---|
| 664 | 661 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX6_ENA_SHIFT, 0), |
|---|
| 665 | 662 | |
|---|
| 666 | 663 | SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0, |
|---|
| 667 | 664 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX1_ENA_SHIFT, 0), |
|---|
| 668 | | -SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 0, |
|---|
| 665 | +SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1, |
|---|
| 669 | 666 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0), |
|---|
| 670 | | -SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 0, |
|---|
| 667 | +SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 2, |
|---|
| 671 | 668 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX3_ENA_SHIFT, 0), |
|---|
| 672 | | -SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 0, |
|---|
| 669 | +SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 3, |
|---|
| 673 | 670 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX4_ENA_SHIFT, 0), |
|---|
| 674 | | -SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 0, |
|---|
| 671 | +SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 4, |
|---|
| 675 | 672 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX5_ENA_SHIFT, 0), |
|---|
| 676 | | -SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 0, |
|---|
| 673 | +SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 5, |
|---|
| 677 | 674 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX6_ENA_SHIFT, 0), |
|---|
| 678 | 675 | |
|---|
| 679 | 676 | SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0, |
|---|
| 680 | 677 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 681 | 678 | ARIZONA_SLIMRX1_ENA_SHIFT, 0), |
|---|
| 682 | | -SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 0, |
|---|
| 679 | +SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1, |
|---|
| 683 | 680 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 684 | 681 | ARIZONA_SLIMRX2_ENA_SHIFT, 0), |
|---|
| 685 | | -SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 0, |
|---|
| 682 | +SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2, |
|---|
| 686 | 683 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 687 | 684 | ARIZONA_SLIMRX3_ENA_SHIFT, 0), |
|---|
| 688 | | -SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 0, |
|---|
| 685 | +SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3, |
|---|
| 689 | 686 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 690 | 687 | ARIZONA_SLIMRX4_ENA_SHIFT, 0), |
|---|
| 691 | 688 | |
|---|
| 692 | 689 | SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0, |
|---|
| 693 | 690 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 694 | 691 | ARIZONA_SLIMTX1_ENA_SHIFT, 0), |
|---|
| 695 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 0, |
|---|
| 692 | +SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1, |
|---|
| 696 | 693 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 697 | 694 | ARIZONA_SLIMTX2_ENA_SHIFT, 0), |
|---|
| 698 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 0, |
|---|
| 695 | +SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2, |
|---|
| 699 | 696 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 700 | 697 | ARIZONA_SLIMTX3_ENA_SHIFT, 0), |
|---|
| 701 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 0, |
|---|
| 698 | +SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3, |
|---|
| 702 | 699 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 703 | 700 | ARIZONA_SLIMTX4_ENA_SHIFT, 0), |
|---|
| 704 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 0, |
|---|
| 701 | +SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4, |
|---|
| 705 | 702 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 706 | 703 | ARIZONA_SLIMTX5_ENA_SHIFT, 0), |
|---|
| 707 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 0, |
|---|
| 704 | +SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5, |
|---|
| 708 | 705 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 709 | 706 | ARIZONA_SLIMTX6_ENA_SHIFT, 0), |
|---|
| 710 | 707 | |
|---|
| 711 | 708 | SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0, |
|---|
| 712 | 709 | ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX1_ENA_SHIFT, 0), |
|---|
| 713 | | -SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 0, |
|---|
| 710 | +SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1, |
|---|
| 714 | 711 | ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX2_ENA_SHIFT, 0), |
|---|
| 715 | 712 | |
|---|
| 716 | 713 | SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0, |
|---|
| 717 | 714 | ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX1_ENA_SHIFT, 0), |
|---|
| 718 | | -SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0, |
|---|
| 715 | +SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1, |
|---|
| 719 | 716 | ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0), |
|---|
| 720 | 717 | |
|---|
| 721 | 718 | SND_SOC_DAPM_PGA_E("OUT1L", SND_SOC_NOPM, |
|---|