// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
soong_namespace {}

// Lontium lt9611uxc

// See: http://go/android-license-faq
package {
    default_applicable_licenses: [
        "linux-firmware_LICENSE_QualcommAtheros_ath10k_license",
    ],
}

license_kind {
    name: "linux-firmware_LICENSE_qcom",
    conditions: ["notice", "proprietary"], // by exception only
}

license {
    name: "linux-firmware_LICENSE_qcom_license",
    package_name: "Linux Firmware",
    visibility: [":__subpackages__"],
    license_kinds: ["linux-firmware_LICENSE_qcom"],
    license_text: ["LICENSE.qcom"],
}

license_kind {
    name: "linux-firmware_LICENSE_Lontium",
    conditions: ["permissive", "proprietary"],  // by exception only
}

license {
    name: "linux-firmware_LICENSE_Lontium_license",
    package_name: "Linux Firmware",
    visibility: [":__subpackages__"],
    license_kinds: ["linux-firmware_LICENSE_Lontium"],
    license_text: ["LICENSE.Lontium"],
}

license_kind {
    // BSD binary-only variant with patent clauses
    name: "linux-firmware_LICENSE_QualcommAtheros_ath10k",
    conditions: ["notice", "by_exception_only", "proprietary"],  // by exception only
}

license {
    name: "linux-firmware_LICENSE_QualcommAtheros_ath10k_license",
    package_name: "Linux Firmware",
    visibility: [":__subpackages__"],
    license_kinds: [
        "linux-firmware_LICENSE_QualcommAtheros_ath10k", // by exception only
    ],
    license_text: ["LICENSE.QualcommAtheros_ath10k"],
}

license_kind {
    name: "linux-firmware_ath10k_WCN3990_hw1.0_wlanmdsp",
    conditions: ["notice", "by_exception_only", "proprietary"],
}

license {
    name: "linux-firmware_ath10k_WCN3990_hw1.0_wlanmdsp_license",
    package_name: "Linux Firmware",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-Zlib",
        "linux-firmware_ath10k_WCN3990_hw1.0_wlanmdsp",
    ],
    license_text: ["ath10k/WCN3990/hw1.0/notice.txt_wlanmdsp"],
}


prebuilt_firmware {
    name: "lt9611uxc_fw.bin",
    vendor: true,
    src: "lt9611uxc_fw.bin",
    licenses: ["linux-firmware_LICENSE_Lontium_license"],
}

// WLAN
// ath10k
prebuilt_firmware {
    name: "board-2.bin",
    vendor: true,
    src: "ath10k/WCN3990/hw1.0/board-2.bin",
    relative_install_path: "ath10k/WCN3990/hw1.0",
}

prebuilt_firmware {
    name: "firmware-5.bin",
    vendor: true,
    src: "ath10k/WCN3990/hw1.0/firmware-5.bin",
    relative_install_path: "ath10k/WCN3990/hw1.0/",
}

prebuilt_firmware {
    name: "wlanmdsp.mbn",
    vendor: true,
    src: "ath10k/WCN3990/hw1.0/wlanmdsp.mbn",
    relative_install_path: "qcom/sdm845",
    licenses: ["linux-firmware_ath10k_WCN3990_hw1.0_wlanmdsp_license"],
}

// ath11k
prebuilt_firmware {
    name: "amss.bin",
    vendor: true,
    src: "ath11k/QCA6390/hw2.0/amss.bin",
    relative_install_path: "ath11k/QCA6390/hw2.0",
}

prebuilt_firmware {
    name: "m3.bin",
    vendor: true,
    src: "ath11k/QCA6390/hw2.0/m3.bin",
    relative_install_path: "ath11k/QCA6390/hw2.0",
}

// Bluetooth
// QCA
prebuilt_firmware {
    name: "crbtfw21.tlv",
    vendor: true,
    src: "qca/crbtfw21.tlv",
    relative_install_path: "qca",
}

prebuilt_firmware {
    name: "crnv21.bin",
    vendor: true,
    src: "qca/crnv21.bin",
    relative_install_path: "qca",
}

prebuilt_firmware {
    name: "htbtfw20.tlv",
    vendor: true,
    src: "qca/htbtfw20.tlv",
    relative_install_path: "qca",
}

prebuilt_firmware {
    name: "htnv20.bin",
    vendor: true,
    src: "qca/htnv20.bin",
    relative_install_path: "qca",
}

subdirs = [
    "qcom",
]
