load(":audio_modules.bzl", "audio_modules")
load(":module_mgr.bzl", "define_target_modules")
load("//msm-kernel:target_variants.bzl", "get_all_lunch_target_base_target_variants")
load("//msm-kernel:target_variants.bzl", "get_all_la_variants", "get_all_le_variants", "get_all_lxc_variants")

def define_blair(t, v, lt=None):
    print(t)
    define_target_modules(
        target = "blair",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "machine_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "wcd9xxx_dlkm",
            "stub_dlkm",
            "bolero_cdc_dlkm",
            "va_macro_dlkm",
            "tx_macro_dlkm",
            "rx_macro_dlkm",
            "wsa881x_analog_dlkm",
            "wcd937x_dlkm",
            "wcd937x_slave_dlkm",
            "wcd938x_dlkm",
            "wcd938x_slave_dlkm",
        ],
        config_options = [
            "CONFIG_SND_SOC_HOLI",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
        ],
        lunch_target = lt,
    )

def define_niobe(t, v, lt=None):
    define_target_modules(
        target = "niobe",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "machine_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "swr_dmic_dlkm",
            "wcd9xxx_dlkm",
            "swr_haptics_dlkm",
            "stub_dlkm",
            "hdmi_dlkm",
            "lpass_cdc_dlkm",
            "lpass_cdc_wsa_macro_dlkm",
            "lpass_cdc_wsa2_macro_dlkm",
            "lpass_cdc_va_macro_dlkm",
            "lpass_cdc_rx_macro_dlkm",
            "lpass_cdc_tx_macro_dlkm",
            "wsa883x_dlkm",
            "wsa884x_dlkm",
            "wcd937x_dlkm",
            "wcd937x_slave_dlkm",
            "wcd938x_dlkm",
            "wcd938x_slave_dlkm",
        ],
        config_options = [
            "CONFIG_SND_SOC_NIOBE",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_SWRM_VER_2P0",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
            "CONFIG_MSM_EXT_DISPLAY",
        ],
        lunch_target = lt,
    )

def define_pineapple(t, v, lt=None):
    print(t)
    define_target_modules(
        target = "pineapple",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "machine_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "swr_dmic_dlkm",
            "wcd9xxx_dlkm",
            "swr_haptics_dlkm",
            "stub_dlkm",
            "hdmi_dlkm",
            "lpass_cdc_dlkm",
            "lpass_cdc_wsa_macro_dlkm",
            "lpass_cdc_wsa2_macro_dlkm",
            "lpass_cdc_va_macro_dlkm",
            "lpass_cdc_rx_macro_dlkm",
            "lpass_cdc_tx_macro_dlkm",
            "wsa883x_dlkm",
            "wsa884x_dlkm",
            "wcd937x_dlkm",
            "wcd937x_slave_dlkm",
            "wcd938x_dlkm",
            "wcd938x_slave_dlkm",
            "wcd939x_dlkm",
            "wcd939x_slave_dlkm",
            "wcd9378_dlkm",
            "wcd9378_slave_dlkm"
        ],
        config_options = [
            "CONFIG_SND_SOC_PINEAPPLE",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_SWRM_VER_2P0",
            "CONFIG_BOLERO_VER_2P6",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
            "CONFIG_MSM_EXT_DISPLAY",
        ],
        lunch_target = lt,
    )

def define_kalama(t, v, lt=None):
    define_target_modules(
        target = "kalama",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "machine_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "swr_dmic_dlkm",
            "wcd9xxx_dlkm",
            "swr_haptics_dlkm",
            "stub_dlkm",
            "hdmi_dlkm",
            "lpass_cdc_dlkm",
            "lpass_cdc_wsa_macro_dlkm",
            "lpass_cdc_wsa2_macro_dlkm",
            "lpass_cdc_va_macro_dlkm",
            "lpass_cdc_rx_macro_dlkm",
            "lpass_cdc_tx_macro_dlkm",
            "wsa883x_dlkm",
            "wsa884x_dlkm",
            "wcd938x_dlkm",
            "wcd938x_slave_dlkm"
        ],
        config_options = [
            "CONFIG_SND_SOC_KALAMA",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_SWRM_VER_2P0",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
            "CONFIG_MSM_EXT_DISPLAY",
        ],
        lunch_target = lt,
    )

def define_pitti(t, v, lt=None):
    print(t)
    define_target_modules(
        target = "pitti",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "machine_dlkm",
            "swr_haptics_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "wcd9xxx_dlkm",
            "stub_dlkm",
            "hdmi_dlkm",
            "lpass_cdc_dlkm",
            "lpass_cdc_va_macro_dlkm",
            "lpass_cdc_rx_macro_dlkm",
            "lpass_cdc_tx_macro_dlkm",
            "lpass_cdc_wsa_macro_dlkm",
            "lpass_cdc_wsa2_macro_dlkm",
            "wsa881x_analog_dlkm",
            "wcd9378_dlkm",
            "wcd9378_slave_dlkm"
        ],
        config_options = [
            "CONFIG_SND_SOC_PITTI",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_BOLERO_VER_2P1",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
            "CONFIG_MSM_EXT_DISPLAY",
        ],
        lunch_target = lt,
    )

def define_volcano(t, v, lt=None):
    print(t)
    define_target_modules(
        target = "volcano",
        variant = v,
        registry = audio_modules,
        modules = [
            "q6_dlkm",
            "spf_core_dlkm",
            "audpkt_ion_dlkm",
            "q6_notifier_dlkm",
            "adsp_loader_dlkm",
            "audio_prm_dlkm",
            "q6_pdr_dlkm",
            "gpr_dlkm",
            "audio_pkt_dlkm",
            "pinctrl_lpi_dlkm",
            "swr_dlkm",
            "swr_ctrl_dlkm",
            "snd_event_dlkm",
            "wcd_core_dlkm",
            "mbhc_dlkm",
            "machine_dlkm",
            "swr_dmic_dlkm",
            "wcd9xxx_dlkm",
            "swr_haptics_dlkm",
            "stub_dlkm",
            "hdmi_dlkm",
            "lpass_cdc_dlkm",
            "lpass_cdc_wsa_macro_dlkm",
            "lpass_cdc_wsa2_macro_dlkm",
            "lpass_cdc_va_macro_dlkm",
            "lpass_cdc_rx_macro_dlkm",
            "lpass_cdc_tx_macro_dlkm",
            "wsa883x_dlkm",
            "wsa884x_dlkm",
            "wcd937x_dlkm",
            "wcd937x_slave_dlkm",
            "wcd938x_dlkm",
            "wcd938x_slave_dlkm",
            "wcd939x_dlkm",
            "wcd939x_slave_dlkm",
            "wcd9378_dlkm",
            "wcd9378_slave_dlkm"
        ],
        config_options = [
            "CONFIG_SND_SOC_VOLCANO",
            "CONFIG_SND_SOC_MSM_QDSP6V2_INTF",
            "CONFIG_MSM_QDSP6_SSR",
            "CONFIG_DIGITAL_CDC_RSC_MGR",
            "CONFIG_SOUNDWIRE_MSTR_CTRL",
            "CONFIG_SWRM_VER_1P7",
            "CONFIG_BOLERO_VER_2P6",
            "CONFIG_WCD9XXX_CODEC_CORE_V2",
            "CONFIG_MSM_CDC_PINCTRL",
            "CONFIG_SND_SOC_WCD_IRQ",
            "CONFIG_SND_SOC_WCD9XXX_V2",
            "CONFIG_SND_SOC_WCD_MBHC_ADC",
            "CONFIG_MSM_EXT_DISPLAY",
        ],
        lunch_target = lt,
    )

def define_audio_target():
    for (t, v) in get_all_la_variants():
        print(t)
        print(v)
        if t == "blair":
            define_blair(t, v)
        if t == "pitti":
            define_pitti(t, v)
        if t == "pineapple":
            define_pineapple(t, v)
        if t == "kalama":
            define_kalama(t, v)
        if t == "niobe":
            define_niobe(t, v)

    for (lt, t, v) in get_all_lunch_target_base_target_variants():
        print(lt)
        if lt == "volcano":
            define_volcano(t, v, lt)