3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-15 11:45:54 +00:00
Brooklyn/sound/pci/hda/cs35l41_hda_spi.c
crowetic a94b3d14aa Brooklyn+ (PLUS) changes
Changes included (and more):

1. Dynamic RAM merge

2. Real-time page scan and allocation

3. Cache compression

4. Real-time IRQ checks

5. Dynamic I/O allocation for Java heap

6. Java page migration

7. Contiguous memory allocation

8. Idle pages tracking

9. Per CPU RAM usage tracking

10. ARM NEON scalar multiplication library

11. NEON/ARMv8 crypto extensions

12. NEON SHA, Blake, RIPEMD crypto extensions

13. Parallel NEON crypto engine for multi-algo based CPU stress reduction
2022-05-12 10:47:00 -07:00

64 lines
1.5 KiB
C

// SPDX-License-Identifier: GPL-2.0
//
// cs35l41.c -- CS35l41 HDA SPI driver
//
// Copyright 2021 Cirrus Logic, Inc.
//
// Author: Lucas Tanure <tanureal@opensource.cirrus.com>
#include <linux/acpi.h>
#include <linux/module.h>
#include <linux/spi/spi.h>
#include "cs35l41_hda.h"
static int cs35l41_hda_spi_probe(struct spi_device *spi)
{
const char *device_name;
/* Compare against the device name so it works for SPI, normal ACPI
* and for ACPI by spi-multi-instantiate matching cases
*/
if (strstr(dev_name(&spi->dev), "CSC3551"))
device_name = "CSC3551";
else
return -ENODEV;
return cs35l41_hda_probe(&spi->dev, device_name, spi->chip_select, spi->irq,
devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
}
static void cs35l41_hda_spi_remove(struct spi_device *spi)
{
cs35l41_hda_remove(&spi->dev);
}
static const struct spi_device_id cs35l41_hda_spi_id[] = {
{ "cs35l41-hda", 0 },
{}
};
#ifdef CONFIG_ACPI
static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
{ "CSC3551", 0 },
{},
};
MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
#endif
static struct spi_driver cs35l41_spi_driver = {
.driver = {
.name = "cs35l41_hda",
.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
},
.id_table = cs35l41_hda_spi_id,
.probe = cs35l41_hda_spi_probe,
.remove = cs35l41_hda_spi_remove,
};
module_spi_driver(cs35l41_spi_driver);
MODULE_DESCRIPTION("HDA CS35L41 driver");
MODULE_IMPORT_NS(SND_HDA_SCODEC_CS35L41);
MODULE_AUTHOR("Lucas Tanure <tanureal@opensource.cirrus.com>");
MODULE_LICENSE("GPL");