注:适用于基于4.4内核版本开发的RK系列SDK

虚拟声卡的注册主要应用于硬解码芯片的使用,硬件设计上主控I2S直接接到该类芯片,硬解码芯片能够将数字信号直接转换成模拟信号输出。同时,这类芯片需要主控提供mclk、bclk,那么就需要注册个虚拟声卡来控制I2S的输出,才能保证正常工作。

DTS配置

RK3399平台:

/{dummy_codec: dummy-codec {status = "okay";compatible = "rockchip,dummy-codec";#sound-dai-cells = <0>;clocks = <&cru SCLK_I2S_8CH_OUT>;clock-names = "mclk";pinctrl-names = "default";pinctrl-0 = <&i2s_8ch_mclk>;};rk_sound: rk-sound {status = "okay";compatible = "simple-audio-card";simple-audio-card,name = "rockchip,dummycodec";simple-audio-card,format = "i2s";simple-audio-card,mclk-fs = <256>;simple-audio-card,cpu {sound-dai = <&i2s0>;};simple-audio-card,codec {sound-dai = <&dummy_codec>;};};
}&i2s0{status = "okay";
};

RK3288平台:

/{dummy_codec: dummy-codec {#sound-dai-cells = <0>;compatible = "rockchip,dummy-codec";clocks = <&cru SCLK_I2S0_OUT>;clock-names = "mclk";pinctrl-names = "default";pinctrl-0 = <&i2s0_mclk>;};rk_sound:rk-sound {status = "okay";compatible = "simple-audio-card";simple-audio-card,name = "rockchip,dummycodec";simple-audio-card,format = "i2s";simple-audio-card,mclk-fs = <256>;simple-audio-card,cpu {sound-dai = <&i2s>;};simple-audio-card,codec {sound-dai = <&dummy_codec>;};};
}&i2s {#sound-dai-cells = <0>;status = "okay";
};

dummy codec 驱动

/** dummy_codec.c  --  dummy audio codec for rockchip** Copyright (C) 2018 Fuzhou Rockchip Electronics Co., Ltd** This software is licensed under the terms of the GNU General Public* License version 2, as published by the Free Software Foundation, and* may be copied, distributed, and modified under those terms.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.**/#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <sound/soc.h>
#include <sound/pcm.h>
#include <sound/initval.h>struct snd_soc_dai_driver dummy_dai = {.name = "dummy_codec",.playback = {.stream_name = "Dummy Playback",.channels_min = 2,.channels_max = 8,.rates = SNDRV_PCM_RATE_8000_192000,.formats = (SNDRV_PCM_FMTBIT_S16_LE |SNDRV_PCM_FMTBIT_S20_3LE |SNDRV_PCM_FMTBIT_S24_LE |SNDRV_PCM_FMTBIT_S32_LE),},.capture = {.stream_name = "Dummy Capture",.channels_min = 2,.channels_max = 8,.rates = SNDRV_PCM_RATE_8000_192000,.formats = (SNDRV_PCM_FMTBIT_S16_LE |SNDRV_PCM_FMTBIT_S20_3LE |SNDRV_PCM_FMTBIT_S24_LE |SNDRV_PCM_FMTBIT_S32_LE),},
};static struct snd_soc_codec_driver soc_dummy_codec;static int rockchip_dummy_codec_probe(struct platform_device *pdev)
{return snd_soc_register_codec(&pdev->dev, &soc_dummy_codec,&dummy_dai, 1);
}static int rockchip_dummy_codec_remove(struct platform_device *pdev)
{snd_soc_unregister_codec(&pdev->dev);return 0;
}static const struct of_device_id rockchip_dummy_codec_of_match[] = {{ .compatible = "rockchip,dummy-codec", },{},
};
MODULE_DEVICE_TABLE(of, rockchip_dummy_codec_of_match);static struct platform_driver rockchip_dummy_codec_driver = {.driver = {.name = "dummy_codec",.of_match_table = of_match_ptr(rockchip_dummy_codec_of_match),},.probe = rockchip_dummy_codec_probe,.remove = rockchip_dummy_codec_remove,
};module_platform_driver(rockchip_dummy_codec_driver);MODULE_AUTHOR("Sugar <sugar.zhang@rock-chips.com>");
MODULE_DESCRIPTION("Rockchip Dummy Codec Driver");
MODULE_LICENSE("GPL v2");

RK系列SDK -- dummy codec虚拟声卡注册相关推荐

  1. Rk系列主板 Android 隐藏底部工具栏虚拟按键

    ztlManager = new ZtlManager(mContext);ztlManager.setCloseSystemBar(); //开启隐藏工具栏ztlManager.setOpenSys ...

  2. RK系列开发板音频驱动适配指南(二)

    背景: 上一篇文章RK系列开发板音频驱动适配指南-DAI模块适配中已经阐述音频驱动适配的DAI模块适配步骤以及核心代码的展示,本次主要介绍音频驱动适配中的DMA模块适配. RK系列开发板 DMA模块适 ...

  3. RK系列开发板音频驱动适配指南(一)

    背景: 多媒体系统目前在Linux操作系统,windows操作系统已经非常成熟,并且应用场景广泛,但是,基于OpenAtom OpenHarmony(以下简称"OpenHarmony&quo ...

  4. 云服务器怎么安装声音驱动_Windows服务器怎么装虚拟声卡驱动呢

    小秋哟大佬: 搞了个腾讯云的Windows学生鸡 小秋哟大佬: [img]%5Burl [/img] 图片上这几个装了好像没啥用--. 小秋哟大佬: 搞了个腾讯云的Windows学生鸡 小秋哟大佬: ...

  5. ALSA子系统(七)------simple_card添加虚拟声卡

    你好!这里是风筝的博客, 欢迎和我一起交流. 我们知道,asoc框架里面主要包含machine codec platform 这三大部分, (1)machine:单板相关内容,表明声卡中所用的主芯片( ...

  6. Linux/Android下的虚拟声卡

    应用工程师需要用到一张虚拟声卡,以前没有接触过,这里mark一下. 内核配置如下: │     -> Device Drivers                                ...

  7. 声卡注册流程(linux-5.4)

    结构体介绍 先介绍声卡相关结构体 struct asoc_simple_priv {struct snd_soc_card snd_card;struct simple_dai_props {stru ...

  8. 服务器如何安装虚拟声卡,虚拟声卡如何运作起来 分享介绍虚拟声卡安装使用方法...

    虚拟声卡怎么用?当我们在电脑中开启了虚拟声卡之后,该如何进行设置才能让虚拟声卡正常使用呢?虚拟声卡是一个软件,通过这个软件我们可以让电脑中发出各种好玩有趣的声音.那么我们该如何让虚拟声卡运作起来呢?本 ...

  9. 服务器如何安装虚拟声卡,虚拟声卡驱动安装步骤_虚拟声卡驱动有什么使用要求...

    这音频设备应用过程中经常是需要使用一些虚拟声卡驱动软件的,因为只有有了这种软件的支持,对于没有内录功能的笔记本电脑也是特别有用的一种工具.使用虚拟声卡驱动软件过程中,非常方便的让用户用来架设虚拟的线路 ...

最新文章

  1. 文件分区格式化及挂载
  2. 助力健康中国,国内首个中文医疗信息处理挑战榜正式发布
  3. 无厘头的mysql故障排除
  4. 被娱乐在线报道的“唐骏造假门事件”
  5. .NetCoreLinuxDockerPortainer踩坑历险记
  6. 大数据可视化模板、模板框架、动态控件、可视化大数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、大数据驾驶舱、大屏展示、联勤治理、旅游、运输、车辆、校园、舆情、信息监测看板原型
  7. 开启IIS的WebGarden、WebFarm和StateServer之旅
  8. linux 磁盘管理三部曲——(1)磁盘结构,认识分区
  9. Bone Collector(hdoj--2602--01背包)
  10. 抖音、快手无水印视频下载【现已支持所有平台】
  11. Rockwell AB PLC 控制器EDS 更新下载更新方法
  12. ps两张图片合在一起
  13. 服务器虚拟化双活,分布式双活数据中心部署模式
  14. 躺平减脂减重法补充篇——无需控制碳水摄入的有效方法,另推一种健康的运动和防止老年慢性病的方式...
  15. Windows怎么把视频变成GIF,动态图怎么制作
  16. 猿创征文 |汇编语言基础知识
  17. 流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行
  18. DBeaver启动报错和DBeaver安装配置
  19. Quill编辑器内置样式配置
  20. Java设计模式-单一职责原则

热门文章

  1. 高阶低通滤波算法_高/低算法
  2. 计算几百个数据相乘之积末尾0的个数
  3. Web3.0初探:一个基于区块链技术、用户主导、去中心化的网络生态
  4. 彻底摒弃流量主导的发展模式 才能真正让电商走出流量的怪圈
  5. selenium自动登录QQ空间(无头、规避)
  6. 机器人自我恢复(一) Hod Lipson的论文解读
  7. 进程间通信:管道(1)
  8. Ubuntu运行多个命令
  9. 在物流信息系统中,物联网主要应用于哪些领域
  10. GoogleMap的简单用法