1 // SPDX-License-Identifier: GPL-2.0-only << 2 /* 1 /* 3 * ADAV801 audio driver 2 * ADAV801 audio driver 4 * 3 * 5 * Copyright 2014 Analog Devices Inc. 4 * Copyright 2014 Analog Devices Inc. >> 5 * >> 6 * Licensed under the GPL-2. 6 */ 7 */ 7 8 8 #include <linux/module.h> 9 #include <linux/module.h> 9 #include <linux/spi/spi.h> 10 #include <linux/spi/spi.h> 10 #include <linux/regmap.h> 11 #include <linux/regmap.h> 11 12 12 #include <sound/soc.h> 13 #include <sound/soc.h> 13 14 14 #include "adav80x.h" 15 #include "adav80x.h" 15 16 16 static const struct spi_device_id adav80x_spi_ 17 static const struct spi_device_id adav80x_spi_id[] = { 17 { "adav801", 0 }, 18 { "adav801", 0 }, 18 { } 19 { } 19 }; 20 }; 20 MODULE_DEVICE_TABLE(spi, adav80x_spi_id); 21 MODULE_DEVICE_TABLE(spi, adav80x_spi_id); 21 22 22 static int adav80x_spi_probe(struct spi_device 23 static int adav80x_spi_probe(struct spi_device *spi) 23 { 24 { 24 struct regmap_config config; 25 struct regmap_config config; 25 26 26 config = adav80x_regmap_config; 27 config = adav80x_regmap_config; 27 config.read_flag_mask = 0x01; 28 config.read_flag_mask = 0x01; 28 29 29 return adav80x_bus_probe(&spi->dev, de 30 return adav80x_bus_probe(&spi->dev, devm_regmap_init_spi(spi, &config)); 30 } 31 } 31 32 >> 33 static int adav80x_spi_remove(struct spi_device *spi) >> 34 { >> 35 snd_soc_unregister_codec(&spi->dev); >> 36 return 0; >> 37 } >> 38 32 static struct spi_driver adav80x_spi_driver = 39 static struct spi_driver adav80x_spi_driver = { 33 .driver = { 40 .driver = { 34 .name = "adav801", 41 .name = "adav801", 35 }, 42 }, 36 .probe = adav80x_spi_probe, 43 .probe = adav80x_spi_probe, >> 44 .remove = adav80x_spi_remove, 37 .id_table = adav80x_spi_id, 45 .id_table = adav80x_spi_id, 38 }; 46 }; 39 module_spi_driver(adav80x_spi_driver); 47 module_spi_driver(adav80x_spi_driver); 40 48 41 MODULE_DESCRIPTION("ASoC ADAV801 driver"); 49 MODULE_DESCRIPTION("ASoC ADAV801 driver"); 42 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafo 50 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>"); 43 MODULE_AUTHOR("Yi Li <yi.li@analog.com>>"); 51 MODULE_AUTHOR("Yi Li <yi.li@analog.com>>"); 44 MODULE_LICENSE("GPL"); 52 MODULE_LICENSE("GPL"); 45 53
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.