18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * ADAV801 audio driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright 2014 Analog Devices Inc. 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/module.h> 98c2ecf20Sopenharmony_ci#include <linux/spi/spi.h> 108c2ecf20Sopenharmony_ci#include <linux/regmap.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <sound/soc.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include "adav80x.h" 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistatic const struct spi_device_id adav80x_spi_id[] = { 178c2ecf20Sopenharmony_ci { "adav801", 0 }, 188c2ecf20Sopenharmony_ci { } 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(spi, adav80x_spi_id); 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistatic int adav80x_spi_probe(struct spi_device *spi) 238c2ecf20Sopenharmony_ci{ 248c2ecf20Sopenharmony_ci struct regmap_config config; 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci config = adav80x_regmap_config; 278c2ecf20Sopenharmony_ci config.read_flag_mask = 0x01; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci return adav80x_bus_probe(&spi->dev, devm_regmap_init_spi(spi, &config)); 308c2ecf20Sopenharmony_ci} 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistatic struct spi_driver adav80x_spi_driver = { 338c2ecf20Sopenharmony_ci .driver = { 348c2ecf20Sopenharmony_ci .name = "adav801", 358c2ecf20Sopenharmony_ci }, 368c2ecf20Sopenharmony_ci .probe = adav80x_spi_probe, 378c2ecf20Sopenharmony_ci .id_table = adav80x_spi_id, 388c2ecf20Sopenharmony_ci}; 398c2ecf20Sopenharmony_cimodule_spi_driver(adav80x_spi_driver); 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("ASoC ADAV801 driver"); 428c2ecf20Sopenharmony_ciMODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>"); 438c2ecf20Sopenharmony_ciMODULE_AUTHOR("Yi Li <yi.li@analog.com>>"); 448c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL"); 45