Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 85 lines 2.2 kB view raw
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2022, 2023 Linaro Limited 4 */ 5 6#include <linux/clk-provider.h> 7#include <linux/err.h> 8#include <linux/kernel.h> 9#include <linux/module.h> 10#include <linux/mod_devicetable.h> 11#include <linux/platform_device.h> 12#include <linux/regmap.h> 13 14#include <dt-bindings/clock/qcom,sm6115-lpasscc.h> 15 16#include "common.h" 17#include "reset.h" 18 19static const struct qcom_reset_map lpass_audiocc_sm6115_resets[] = { 20 [LPASS_AUDIO_SWR_RX_CGCR] = { .reg = 0x98, .bit = 1, .udelay = 500 }, 21}; 22 23static struct regmap_config lpass_audiocc_sm6115_regmap_config = { 24 .reg_bits = 32, 25 .reg_stride = 4, 26 .val_bits = 32, 27 .name = "lpass-audio-csr", 28 .max_register = 0x1000, 29}; 30 31static const struct qcom_cc_desc lpass_audiocc_sm6115_reset_desc = { 32 .config = &lpass_audiocc_sm6115_regmap_config, 33 .resets = lpass_audiocc_sm6115_resets, 34 .num_resets = ARRAY_SIZE(lpass_audiocc_sm6115_resets), 35}; 36 37static const struct qcom_reset_map lpasscc_sm6115_resets[] = { 38 [LPASS_SWR_TX_CONFIG_CGCR] = { .reg = 0x100, .bit = 1, .udelay = 500 }, 39}; 40 41static struct regmap_config lpasscc_sm6115_regmap_config = { 42 .reg_bits = 32, 43 .reg_stride = 4, 44 .val_bits = 32, 45 .name = "lpass-tcsr", 46 .max_register = 0x1000, 47}; 48 49static const struct qcom_cc_desc lpasscc_sm6115_reset_desc = { 50 .config = &lpasscc_sm6115_regmap_config, 51 .resets = lpasscc_sm6115_resets, 52 .num_resets = ARRAY_SIZE(lpasscc_sm6115_resets), 53}; 54 55static const struct of_device_id lpasscc_sm6115_match_table[] = { 56 { 57 .compatible = "qcom,sm6115-lpassaudiocc", 58 .data = &lpass_audiocc_sm6115_reset_desc, 59 }, { 60 .compatible = "qcom,sm6115-lpasscc", 61 .data = &lpasscc_sm6115_reset_desc, 62 }, 63 { }, 64}; 65MODULE_DEVICE_TABLE(of, lpasscc_sm6115_match_table); 66 67static int lpasscc_sm6115_probe(struct platform_device *pdev) 68{ 69 const struct qcom_cc_desc *desc = of_device_get_match_data(&pdev->dev); 70 71 return qcom_cc_probe_by_index(pdev, 0, desc); 72} 73 74static struct platform_driver lpasscc_sm6115_driver = { 75 .probe = lpasscc_sm6115_probe, 76 .driver = { 77 .name = "lpasscc-sm6115", 78 .of_match_table = lpasscc_sm6115_match_table, 79 }, 80}; 81 82module_platform_driver(lpasscc_sm6115_driver); 83 84MODULE_DESCRIPTION("QTI LPASSCC SM6115 Driver"); 85MODULE_LICENSE("GPL");