随笔分类 - Linux内核
摘要:SMMU 驱动中的系统 I/O 设备探测 要使系统 I/O 设备的 DMA 内存访问能通过 IOMMU,需要将系统 I/O 设备和 IOMMU 设备绑定起来,也就是执行 SMMU 驱动中的系统 I/O 设备探测。总线发现系统 I/O 设备并和对应的驱动程序绑定,与 IOMMU 设备驱动程序注册并为
阅读全文
摘要:概述 从 ALSA API 的早期开始,它就被定义为支持 PCM,或考虑到了 IEC61937 等固定比特率的载荷。参数和返回值以帧计算是常态,这使得扩展已有的 API 以支持压缩数据流充满挑战。 最近这些年,音频数字信号处理器 (DSP) 常常被集成进片上系统 (SoC) 设计中,且 DSPs 也
阅读全文
摘要:Linux 内核设备驱动程序通过 `devm_regmap_init_mmio()` 等函数获得 `struct regmap` 结构对象,该对象包含可用于访问设备寄存器的全部信息,包括定义访问操作如何执行的 bus,定义了各个设备寄存器的读写属性的 config,以及加速设备寄存器访问的 cach
阅读全文
摘要:Linux 内核 ASoC 框架,在概念上将嵌入式音频系统拆分为多个可复用的组件驱动程序,包括 Codec 类驱动程序、平台类驱动程序和机器类驱动程序。在实现上,机器类驱动程序用 `struct snd_soc_card` 和 `struct snd_soc_dai_link` 结构描述,属于平台类
阅读全文
摘要:Linux 内核提供了一套可缓存的设备 IO 寄存器访问机制,即 **regmap**。**regmap** 机制支持以统一的接口,访问多种不同类型的设备 IO 寄存器,如内存映射的设备 IO 寄存器,需要通过 I2C、I3C、SPI、AC97 和 SLIMBUS 等总线访问的设备 IO 寄存器等。
阅读全文
摘要:这种绑定依然处于开发中,并且基于 benh[1] 的一些实验性工作。 时钟信号源可以由设备树中的任何节点表示。这些节点被指定为时钟提供者。时钟消费者节点使用 `phandle` 和时钟指示符对将时钟提供者输出连接到时钟输入。与 gpio 指示符类似,时钟指示符是 0 个、1 个或多个标识设备上的时钟
阅读全文
摘要:Linux 内核 ALSA 框架通过向用户空间导出多个设备文件,以使用户空间程序可以与内核的音频子系统交互,可以访问音频硬件设备。 ## Linux 内核 ALSA 音频框架初始化 Linux 内核 ALSA 音频框架初始化时,注册字符设备驱动,并在 `/proc` 文件系统中,创建音频设备信息相关
阅读全文