<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.uotan.cn/index.php?action=history&amp;feed=atom&amp;title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D</id>
	<title>高通Windows平台音频驱动适配 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uotan.cn/index.php?action=history&amp;feed=atom&amp;title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D"/>
	<link rel="alternate" type="text/html" href="https://wiki.uotan.cn/index.php?title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D&amp;action=history"/>
	<updated>2026-06-13T21:07:17Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.uotan.cn/index.php?title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D&amp;diff=548&amp;oldid=prev</id>
		<title>Sunflower2333：​新增ACDB配置</title>
		<link rel="alternate" type="text/html" href="https://wiki.uotan.cn/index.php?title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D&amp;diff=548&amp;oldid=prev"/>
		<updated>2024-02-18T10:46:16Z</updated>

		<summary type="html">&lt;p&gt;新增ACDB配置&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年2月18日 (日) 18:46的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;第31行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第31行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* ACDB: Audio Calibration Database 高通平台音频配置&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* ACDB: Audio Calibration Database 高通平台音频配置&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* amp: 下文对Amplifier即功放芯片的简称&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* amp: 下文对Amplifier即功放芯片的简称&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* LA: Linux Android平台&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* WP: WIndows平台&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l316&quot;&gt;第316行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第318行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;相信根据前面的操作，你现在能过熟练使用TLMMGPIO这个Package来配置gpio状态了。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;相信根据前面的操作，你现在能过熟练使用TLMMGPIO这个Package来配置gpio状态了。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;''一：在设备树中寻找属性:''&amp;lt;/u&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;''一：在设备树中寻找属性:''&amp;lt;/u&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;要配置正确的I2S，我们首先需要在源码中dts中，或者反编译后的dts中寻找到[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/1dd473abda05a72f6978c47b2a7d80828db6b426/arch/arm64/boot/dts/qcom/sm8150-oem.dtsi#L212 codec对应的节点]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，此处为quat，故使用了Quaternary组的I2S，通过观察可知mi2s_quat在active时137、138均启用，但是由于缺乏原理图无法确定使用SD0、SD1、SD2还是SD3，可以先考虑将几个gpio都写进去，日后再acdb中进行尝试。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;要配置正确的I2S，我们首先需要在源码中dts中，或者反编译后的dts中寻找到[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/1dd473abda05a72f6978c47b2a7d80828db6b426/arch/arm64/boot/dts/qcom/sm8150-oem.dtsi#L212 codec对应的节点]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，此处为&amp;lt;code&amp;gt;quat&amp;lt;/code&amp;gt;，故使用了&amp;lt;code&amp;gt;Quaternary&amp;lt;/code&amp;gt;组的I2S，通过观察可知&amp;lt;code&amp;gt;mi2s_quat&amp;lt;/code&amp;gt;在active时&amp;lt;code&amp;gt;137、138&amp;lt;/code&amp;gt;均启用，但是由于缺乏原理图DATA线无法确定是使用SD0、SD1、SD2还是SD3(详见pinctrl dts里面的描述)，可以先考虑将几个gpio都写进去，日后再acdb中进行尝试。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;当然如果你有原理图，直接搜索amp的名称，观察其BCK、WCK、DO、DI走线即可。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;当然如果你有原理图，直接搜索amp的名称，观察其BCK、WCK、DO、DI走线对应的gpio编号即可。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;''二：在DSDT中的合适位置添加资源:''&amp;lt;/u&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;''二：在DSDT中的合适位置添加资源:''&amp;lt;/u&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在DSDT.dsl中搜索&amp;lt;code&amp;gt;\\_SB.ADSP.SLM1.ADCM.AUDD&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，找到对应的资源配置Package，找到Quaternary对应Component ID，这通常为0xD，你可以通过查阅&lt;/del&gt;&amp;lt;code&amp;gt;auddev_ext.inf&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;COMPONENT_GPIOUID&amp;lt;/code&amp;gt;与其对应的&amp;lt;code&amp;gt;GroupID_DeviceID&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;来确定，具体方法在之后说到ACDB配置时会详细阐述。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在DSDT.dsl中搜索&amp;lt;code&amp;gt;\\_SB.ADSP.SLM1.ADCM.AUDD&amp;lt;/code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，找到对应的资源配置Package。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[文件:Search Resource of AUDD.png|缩略图|1102x1102像素]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;在此Package中寻找正确的Component ID，在本例中，&amp;lt;code&amp;gt;Quaternary&amp;lt;/code&amp;gt;对应&amp;lt;code&amp;gt;Component ID&amp;lt;/code&amp;gt;为&amp;lt;code&amp;gt;0xD。&amp;lt;/code&amp;gt;你可以通过查阅&lt;/ins&gt;&amp;lt;code&amp;gt;auddev_ext.inf&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;COMPONENT_GPIOUID&amp;lt;/code&amp;gt;与其对应的&amp;lt;code&amp;gt;GroupID_DeviceID&amp;lt;/code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;来确定其对应关系，具体方法在之后说到'''ACDB配置'''时会详细阐述。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[文件:Quaternary RX I2S Component.png|缩略图|666x666像素]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;通常的对应关系为：&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&quot;wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|+&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!RX I2S ID&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Component ID&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Quaternary &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0xD&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Tertiary &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0xB&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Secondary &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x9&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Primary &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|0x7&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;右侧图示为整理并添加完I2S相关的GPIO之后的Component 0xD，之前已经介绍过TLMMGPIO Package内部各个参数的含义，故不在赘述。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;请'''务必'''将'''dts'''和'''源码'''中定义的'''对应的'''I2S的GPIO添加到这里，并且指定正确的Function，否则声音信号无法传输到Amp。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;自此，我们已经完成了对DSDT方面的修改，下面我们介绍驱动所需要的修改，以及如何书写一个驱动控制Amplifier。&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''&amp;lt;big&amp;gt;配置ACDB&amp;lt;/big&amp;gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;WP平台的ACDB与LA平台的ACDB并不兼容，即便是同样的SOC。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;旧平台的ACDB通常可以在'''QACT v7.4'''中进行编辑。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;你可以在[https://developer.qualcomm.com/software/qact-platform 这里下载QACT]。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[文件:QACT.png|缩略图|1085x1085像素]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;这是'''QACT 7.4'''正常打开时候的精神面貌，点击&amp;lt;code&amp;gt;Open ACDB From Disk&amp;lt;/code&amp;gt;， 再选择解压后的&amp;lt;code&amp;gt;qcacsp_xxxx.cab&amp;lt;/code&amp;gt;包里面的&amp;lt;code&amp;gt;workspaceFile.qwsp&amp;lt;/code&amp;gt;。如果没问题的话你会看到这个页面：&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[文件:QACT OPEN DEVICE MGR.png|缩略图|1080x1080像素]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;选择上方的Tools -&amp;gt; Device Designer 进入设备设计器中。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;打开qcaudminiport.inf，搜索TopologySpeaker, 找到&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;HKR,QCAUD\TopologySpeaker\Device0\,DeviceID,0x00010001,0x000000FF&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;未完待续.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;这里写的Device ID即为扬声器设备的Device ID，同时也就串联起了之前我们提到的&amp;lt;code&amp;gt;auddev_ext&amp;lt;/code&amp;gt;里面的Device ID，一个device中包含了其使用的I2S，以及Data Line是SD0还是SD1、SD2、SD3。Device 存储在ACDB中，通过QACT的Device Designer中我们可以修改原来设备的属性或者添加删除设备。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;推荐尽量不要修改qcaudminiport.inf中的Device ID，通过默认配置的方式达到我们的目的，这些DeviceID和ComponentID之类的如果一处配置出错都会导致驱动异常（表现为音量条自动调到最大，且无法控制）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sunflower2333</name></author>
	</entry>
	<entry>
		<id>https://wiki.uotan.cn/index.php?title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D&amp;diff=537&amp;oldid=prev</id>
		<title>Sunflower2333：​添加了基础dsdt配置方法</title>
		<link rel="alternate" type="text/html" href="https://wiki.uotan.cn/index.php?title=%E9%AB%98%E9%80%9AWindows%E5%B9%B3%E5%8F%B0%E9%9F%B3%E9%A2%91%E9%A9%B1%E5%8A%A8%E9%80%82%E9%85%8D&amp;diff=537&amp;oldid=prev"/>
		<updated>2024-02-17T18:17:01Z</updated>

		<summary type="html">&lt;p&gt;添加了基础dsdt配置方法&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;''&amp;lt;u&amp;gt;声明：本篇中可能存在大量错误，欢迎指正。&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;前言&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
在高通平台上，常见的扬声器解决方案主要有：&lt;br /&gt;
&lt;br /&gt;
# WCD -- SWR --&amp;gt; WSA --&amp;gt; Speaker（例如WCD9340 + WSA8815）&lt;br /&gt;
# WCD -- I2S --&amp;gt; 3rd-party Amplifier --&amp;gt; Speaker（例如WCD9340 + TFA9874）&lt;br /&gt;
&lt;br /&gt;
大多数OEM机器采用三方功放，部分厂商采用高通的WSA方案，高通工程机绝大部分采用WCD + WSA方案。&lt;br /&gt;
&lt;br /&gt;
本文讨论方案2，也就是WCD + 三方功放方案。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;基础知识&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;常见英文简写/名词说明:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* AP: Application Processor，应用处理器，这里指处理器&lt;br /&gt;
* WCD: 高通的Audio CodeC&lt;br /&gt;
* [[wikipedia:I²C|I2C]]: 也常写作I²C/IIC， 只需要两根线就可以双向传输数据&lt;br /&gt;
* [[wikipedia:I²S|I2S]]: 集成电路内置音频总线，传输音频数据&lt;br /&gt;
* SWR: SoundWire，MIPI 2014年定义的音频接口&lt;br /&gt;
* SLIMBus: MIPI 2007年定义的音频接口&lt;br /&gt;
* DSDT: Differentiated System Description Table，ACPI表中的一个，用以描述平台的外围设备和系统硬件&lt;br /&gt;
* ASL: ACPI源语言&lt;br /&gt;
* Microsoft asl: 微软的ASL编译器&lt;br /&gt;
* iasl: Intel的ASL语言编译器&lt;br /&gt;
* AML: ACPI计算机语言，即ASL编译后产物&lt;br /&gt;
* dsl: iasl反编译AML之后产出的反编译源代码文件&lt;br /&gt;
* ACDB: Audio Calibration Database 高通平台音频配置&lt;br /&gt;
* amp: 下文对Amplifier即功放芯片的简称&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;硬件相关:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* WCD通过SPI, SLIMBus 与AP进行通信。&lt;br /&gt;
* 功放芯片通常通过I2C与AP进行通信，即我们可以通过i2c传输命令配置和控制功放芯片。&lt;br /&gt;
* AP通过I2S向功放芯片传输音频数据。&lt;br /&gt;
* I2S一般连接四根线，即BCK, WCK, DATAO, DATAI。&lt;br /&gt;
* 在Linux内核或者安卓内核源码中可以找到平台GPIO的功能配置等信息，例如[https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/pinctrl/qcom/pinctrl-sm8150.c#n1313 SM8150]。&lt;br /&gt;
* 高通的I2S不只一组，其命名编号通常为Primary，Secondary，Tertiary，Quaternary或其简写。&lt;br /&gt;
* 在Linux内核或者安卓内核中的设备树源码中可以寻找到I2C相关的属性，例如[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/oneplus/SM8150_SDX50M_Q_10.0/arch/arm64/boot/dts/qcom/sm8150-qupv3.dtsi SM8150]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;软件相关:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
高通Windows平台已经提供了大部分音频相关的DSDT配置和驱动，即：&lt;br /&gt;
&lt;br /&gt;
# 基础的DSDT&lt;br /&gt;
# 音频相关驱动以及inf中的默认配置&lt;br /&gt;
# 默认的ACDB&lt;br /&gt;
&lt;br /&gt;
我们能够在Windows Update，或者[[WOA-Project]]的[https://github.com/WOA-Project/Qualcomm-Reference-Drivers Qualcomm-Reference-Drivers]上下载到的参考平台驱动和固件，其中对应关系：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!移动PC平台&lt;br /&gt;
!移动平台&lt;br /&gt;
|-&lt;br /&gt;
|SD850&lt;br /&gt;
|SD845&lt;br /&gt;
|-&lt;br /&gt;
|7c Gen1/Gen2&lt;br /&gt;
|SD720&lt;br /&gt;
|-&lt;br /&gt;
|7c Gen3&lt;br /&gt;
|SD778&lt;br /&gt;
|-&lt;br /&gt;
|SD835&lt;br /&gt;
|SD835&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
对于&lt;br /&gt;
&lt;br /&gt;
* 如何从firmware cab中解包出ACPI表&lt;br /&gt;
* 如何反编译DSDT&lt;br /&gt;
* 如何反编译dtb&lt;br /&gt;
* 如何解决回编译.dsl中遇到的error&lt;br /&gt;
* 如何反编译AeoB&lt;br /&gt;
* 如何回编译AeoBSL&lt;br /&gt;
&lt;br /&gt;
均不在本文探讨范围之内。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;所以，在阅读下述内容时，假设你已经拥有DSDT表和Audio相关驱动，并且说实在的，这是最常见的情况。&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;配置DSDT表&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
对于使用三方功放的平台，我们需要在DSDT中定义：&lt;br /&gt;
&lt;br /&gt;
* 功放设备，其中包含了功放的硬件连接的资源描述，主要为I2C和Gpio中断（如果你的驱动不处理中断，可以不定义）&lt;br /&gt;
* 功放设备的电源管理配置，其中包含功放的Reset脚以及电源配置（如果你的功放在dts中未定义电源，此处也不需要定义）&lt;br /&gt;
* I2S Gpio功能配置&lt;br /&gt;
* I2C Master设备定义&lt;br /&gt;
* I2C Master设备资源定义&lt;br /&gt;
&lt;br /&gt;
下面我们以一加7T Pro为例，具体说说如何定义。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;定义功放设备:&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
要在DSDT中定义我们的功放设备，首先我们需要了解其基本的连接属性，即挂在哪个i2c master下面，中断gpio是多少，reset gpio是多少，reset gpio是高电平使能还是低电平使能等等，这些通常在设备树中有所定义。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''一：在设备树中寻找属性:''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在安卓里面，打开&amp;lt;code&amp;gt;Device Info HW&amp;lt;/code&amp;gt;软件，点击右上角&amp;lt;code&amp;gt;设置&amp;lt;/code&amp;gt;，打开&amp;lt;code&amp;gt;显示i2c地址&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;使用Root&amp;lt;/code&amp;gt;在首页，我们可以看到设备的音频那一栏写着诸如&amp;lt;code&amp;gt;tfa98xx (i2c 0-0034)&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;tas2557 (i2c 1-004c)&amp;lt;/code&amp;gt; 、cs35l41 &amp;lt;code&amp;gt;(i2c 0-0040)&amp;lt;/code&amp;gt;之类的字样，此时我们打开反编译之后的dts，搜索相关字段，例如我在一加7T Pro的dts中搜索tfaxx，可以找到相关节点：&amp;lt;blockquote&amp;gt;        i2c@890000 {&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
            tfa98xx_right@34 {&lt;br /&gt;
&lt;br /&gt;
                compatible = &amp;quot;nxp,tfa98xx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                reg = &amp;lt;0x34&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
                reset-gpio = &amp;lt;0x38 0x25 0x00&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
                status = &amp;quot;ok&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                phandle = &amp;lt;0x761&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
            };&lt;br /&gt;
&lt;br /&gt;
            tfa98xx_left@35 {&lt;br /&gt;
&lt;br /&gt;
                compatible = &amp;quot;nxp,tfa98xx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                reg = &amp;lt;0x35&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
                reset-gpio = &amp;lt;0x38 0x64 0x00&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
                status = &amp;quot;ok&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                phandle = &amp;lt;0x762&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
            };&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
};&amp;lt;/blockquote&amp;gt;一加7T Pro拥有双扬声器，故此处定义了左右两个tfa98xx设备。观察上下文即可得出tfa98xx设备位于&amp;lt;code&amp;gt;i2c@890000&amp;lt;/code&amp;gt;下，reset 脚分别为&amp;lt;code&amp;gt;gpio37&amp;lt;/code&amp;gt;(hex: 0x25)和&amp;lt;code&amp;gt;gpio100&amp;lt;/code&amp;gt; (hex: 0x64)，并且这两个slave设备在i2c上地址/ID分别为&amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;0x35&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''二：使用asl创建设备:''&amp;lt;/u&amp;gt;&lt;br /&gt;
新建文本文件cust_spkr.asl并粘贴如以下内容：&amp;lt;blockquote&amp;gt;    Device (SPK1)&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        Name (_HID, &amp;quot;PLHD0001&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        Name (_UID, 0)&lt;br /&gt;
&lt;br /&gt;
        Alias(\_SB.PSUB, _SUB)&lt;br /&gt;
&lt;br /&gt;
        Name (_DEP, Package()&lt;br /&gt;
&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
            \_SB.GIO0,&lt;br /&gt;
&lt;br /&gt;
            \_SB.I2CX&lt;br /&gt;
&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        Method (_CRS, 0x0, NotSerialized)&lt;br /&gt;
&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
            Name (RBUF, ResourceTemplate()&lt;br /&gt;
&lt;br /&gt;
            {&lt;br /&gt;
&lt;br /&gt;
                I2CSerialBus(0xAA, , 400000, AddressingMode7Bit, &amp;quot;\\_SB.I2CX&amp;quot;,,,,)&lt;br /&gt;
&lt;br /&gt;
            })&lt;br /&gt;
&lt;br /&gt;
            Return (RBUF)&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&amp;lt;/blockquote&amp;gt;粘贴进去之后，我们需要修改几个地方，&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;Device (SPK1)&amp;lt;/code&amp;gt; 中的1修改为实际数值，例如有两个amp，则第二个设备名应该为&amp;lt;code&amp;gt;SPK2&amp;lt;/code&amp;gt;，以此类推。&lt;br /&gt;
# 将&amp;lt;code&amp;gt;Name (_HID, &amp;quot;PLHD0001&amp;quot;)&amp;lt;/code&amp;gt;将此处的&amp;lt;code&amp;gt;PLHD0001&amp;lt;/code&amp;gt;改成你的设备的名称，例如对于一加7TPro, 此处为&amp;lt;code&amp;gt;GTFA9874&amp;lt;/code&amp;gt;，请记住你定义的_HID，下文驱动中还需要用到。&lt;br /&gt;
# &amp;lt;code&amp;gt;Name (_UID, 0)&amp;lt;/code&amp;gt; 中的0修改为实际数值，例如有两个amp，则第二个设备的_UID应该为&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;，以此类推。&lt;br /&gt;
# &amp;lt;code&amp;gt;\_SB.I2CX&amp;lt;/code&amp;gt; 中的X修改为实际数值，例如本文中amp挂在&amp;lt;code&amp;gt;i2c@890000&amp;lt;/code&amp;gt;下，通过观察[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/31bebb6ffc476f51986bd04502a76ffbd9e2fa7a/arch/arm64/boot/dts/qcom/sm8150-qupv3.dtsi#L111 xxx-qupv3.dtsi源码]可知其属于qupv3_se4_i2c，故此处的&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;为 &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;（se号+1）。&lt;br /&gt;
# &amp;lt;code&amp;gt;I2CSerialBus(0xAA, , 400000, AddressingMode7Bit, &amp;quot;\\_SB.I2CX&amp;quot;,,,,)&amp;lt;/code&amp;gt; 中的&amp;lt;code&amp;gt;0xAA&amp;lt;/code&amp;gt;修改为实际值，例如本文中第一个tfa98xx地址为&amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt;，则此处修改为&amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;400000&amp;lt;/code&amp;gt;为频率，通常为&amp;lt;code&amp;gt;400khz&amp;lt;/code&amp;gt;或者&amp;lt;code&amp;gt;100khz，&amp;quot;\\_SB.I2CX&amp;quot;&amp;lt;/code&amp;gt; 中的&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;需要修改为实际值，参考上条。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自此，我们已经在asl中完成了amp设备的定义。接下来，我们需要在DSDT.dsl中添加&amp;lt;code&amp;gt;Include(&amp;quot;cust_spkr.asl&amp;quot;)&amp;lt;/code&amp;gt; 将我们的文件包含在DSDT.dsl中。&lt;br /&gt;
&lt;br /&gt;
需要注意的是，这条Include语句必须位于  &amp;lt;code&amp;gt;Scope (\_SB){ ... }&amp;lt;/code&amp;gt;内。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''定义I2C Master设备:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上文中我们使用了&amp;lt;code&amp;gt;\_SB.I2CX&amp;lt;/code&amp;gt;这个设备，但是大部分情况下这个设备都是没有被定义的，我们需要手动在dsdt中添加这个设备。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
打开的DSDT.dsl，搜索&amp;lt;code&amp;gt;Device (I2C&amp;lt;/code&amp;gt;，此时应当有较多和候选结果，如图：&lt;br /&gt;
[[文件:Search I2C Device.png|缩略图|1077x1077像素]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
此时我们将&amp;lt;code&amp;gt;Device (I2CX) {&amp;lt;/code&amp;gt; 到对应的 &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt; 复制并粘贴一份，依照我们的需求做相应修改:&lt;br /&gt;
&lt;br /&gt;
# 修改粘贴后的文本中的&amp;lt;code&amp;gt;I2CX&amp;lt;/code&amp;gt;的&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;为我们需要的se号+1。由于上文我们已经在dts中找到了i2c对应的se号，此处不在赘述。在一加7T Pro例子中，我们得到的是&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; 。注意，如果这里的&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;是两位数，你应当写作&amp;lt;code&amp;gt;ICX&amp;lt;/code&amp;gt;，例如&amp;lt;code&amp;gt;IC17&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 修改&amp;lt;code&amp;gt;_UID&amp;lt;/code&amp;gt;为实际值。此处与上文'''&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;'''的值保持相同，在一加7T Pro例子中，此处是&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 修改&amp;lt;code&amp;gt;Memory32Fixed&amp;lt;/code&amp;gt;中的Address Base为实际值。在一加7T Pro的例子中，我们找到的&amp;lt;code&amp;gt;i2c@890000&amp;lt;/code&amp;gt; 里面的&amp;lt;code&amp;gt;890000&amp;lt;/code&amp;gt;即为此处的值，注意此数字为16精致数字，我们补上0x后，此处填写&amp;lt;code&amp;gt;0x890000&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 修改&amp;lt;code&amp;gt;Interrupt&amp;lt;/code&amp;gt;里面的中断号。在上文中提到的[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/31bebb6ffc476f51986bd04502a76ffbd9e2fa7a/arch/arm64/boot/dts/qcom/sm8150-qupv3.dtsi#L114 xxxx-quiv3.dtsi]中有此中断号的定义，需要注意的是，对于GIC_SPI，此处的值需要+32，即 &amp;lt;code&amp;gt;605 + 32= 637&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''配置I2CMaster设备的硬件资源'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在DSDT.dsl中，我们再次搜索&amp;lt;code&amp;gt;\\_SB.I2C&amp;lt;/code&amp;gt;，我们会找到一个类似如下结构的地方（注意，此处我将缩进和可省略代码整理了一下以便能够放在这里）：&lt;br /&gt;
[[文件:Sorted I2C resource.png|缩略图|1099x1099像素]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
将你的搜索结果中的这一个&amp;lt;code&amp;gt;Package{...}&amp;lt;/code&amp;gt;复制并粘贴这个&amp;lt;code&amp;gt;Package{...}&amp;lt;/code&amp;gt;下方，然后修改这里的一些字符串和Gpio配置为我们需要的实际值：&lt;br /&gt;
&lt;br /&gt;
# 修改此处的&amp;lt;code&amp;gt;&amp;quot;\\_SB.I2CX&amp;quot;&amp;lt;/code&amp;gt;为实际值，此处&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;应当与你在上方所得的&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;值保持一致。&lt;br /&gt;
# 修改上下两方的&amp;lt;code&amp;gt;QUP_Y、wrap_Y&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;sZ_clk&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;与&amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;为实际值。你仍然需要参考安卓[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/31bebb6ffc476f51986bd04502a76ffbd9e2fa7a/arch/arm64/boot/dts/qcom/sm8150-qupv3.dtsi#L118 xxxx-qupv3.dts中的一个宏]来确定这里的值，例如此处的&amp;lt;code&amp;gt;GCC_QUPV3_WRAP0_S4_CLK&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;WARP0&amp;lt;/code&amp;gt;中的0即为Y的值，&amp;lt;code&amp;gt;S4&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;为此处的&amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 修改TLMM Gpio的值为正确的值，你可以在安卓内核源码中的[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/31bebb6ffc476f51986bd04502a76ffbd9e2fa7a/arch/arm64/boot/dts/qcom/sm8150-pinctrl.dtsi#L782 xxxx-pinctrl.dtsi]和[https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/pinctrl/qcom/pinctrl-sm8150.c#n1365 linux内核源码]中找到对应的gpio以及当其配置为qup时对应的func编号，在本文一加7T Pro的例子中，i2c_se4在pinctrl.dtsi中对应的gpio编号为51和52，gpio51、gpio52在内核源码中qup4功能对应的func为1。注意，PINGROUP(...)从左往右数依次为：(PIN编号，块，func1，func2，func3 ..... )。&lt;br /&gt;
# 此处TLMMGPIO内的Package释义如下：{PIN编号，电平，func，方向，上下拉，驱动电流强度}，具体使用参考DSDT.dsl内其他TLMMGPIO Package在DSTATE0和DSTATE3的区别即可知。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''配置Amp设备的硬件资源'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
通过上述操作，我们已经成功定义了I2C从设备和I2C主设备，并且掌握了如何在Package中定义一个gpio状态。&lt;br /&gt;
&lt;br /&gt;
如果我们此时进入系统并安装上I2C驱动，应当会在设备管理器中出现一个未知设备，且通过查看其详细信息可知此设备为SPK1。&lt;br /&gt;
&lt;br /&gt;
假如此时使用SPBTool能够获取到Amp的回传数据，则此条目可忽略。当然，为了追求更高效率的电源管理，还是建议配置。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
通常参考设备的dsdt的中PEP会保留OPMD方法，我们可以尝试在DSDT.dsl中搜索此OPMD，如果没有搜索结果，你可以新建一个文件，并且将他Include到你的DSDT中，文件内容大致如下：&amp;lt;blockquote&amp;gt;Scope(\_SB_.PEP0){&lt;br /&gt;
&lt;br /&gt;
    Method(OPMD){ Return(OPCC) }&lt;br /&gt;
&lt;br /&gt;
    Name(OPCC, Package () {&lt;br /&gt;
&lt;br /&gt;
        Package(){&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;DEVICE&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;\\_SB.SPK1&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
            Package(){&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;DSTATE&amp;quot;, 0,&lt;br /&gt;
&lt;br /&gt;
                // Set your Reset gpio here, IC should be enabled in this DSTATE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;                // Package(){&amp;quot;TLMMGPIO&amp;quot;,Package(){123, 1, 0, 1, 0, 0}},&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                // Delay in ms if you need it, in most time not needed.&lt;br /&gt;
&lt;br /&gt;
                //Package() { &amp;quot;DELAY&amp;quot;, Package() {2} },&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Package(){&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;DSTATE&amp;quot;, 3,&lt;br /&gt;
&lt;br /&gt;
                // Set your Reset gpio here, IC should be shutdown in this DSTATE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;                // Package(){&amp;quot;TLMMGPIO&amp;quot;,Package(){123, 0, 0, 0, 0, 0}},&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                // Delay in ms if you need it, in most time not needed.&lt;br /&gt;
&lt;br /&gt;
                //Package() { &amp;quot;DELAY&amp;quot;, Package() {2} },&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/blockquote&amp;gt;根据上文中所述的TLMMGPIO Package配置方法，并且按照你从dts中获得的Reset Gpio编号，你可以很轻松的按照这里的提示填写对应的数值。&lt;br /&gt;
&lt;br /&gt;
在本文一加7T Pro的例子中，Reset Gpio编号为gpio37，我们将其TLMMGPIO的package前面的//删掉以取消注释，并将pin编号（第一个数字）改为37，由于此例中配置Reset脚为高电平时IC关闭（注意，通常情况下是Reset高电平时IC正常工作，此例是特殊），故将第二个数据改为0，在D3状态下，则将第二个数字改为1，第四个数字改为1。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;添加I2S配置&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
恭喜你，已经成功完成了大部分配置了。现在我们即将完成最后一步，配置I2S所需的硬件资源。&lt;br /&gt;
&lt;br /&gt;
相信根据前面的操作，你现在能过熟练使用TLMMGPIO这个Package来配置gpio状态了。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''一：在设备树中寻找属性:''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
要配置正确的I2S，我们首先需要在源码中dts中，或者反编译后的dts中寻找到[https://github.com/OnePlusOSS/android_kernel_oneplus_sm8150/blob/1dd473abda05a72f6978c47b2a7d80828db6b426/arch/arm64/boot/dts/qcom/sm8150-oem.dtsi#L212 codec对应的节点]，此处为quat，故使用了Quaternary组的I2S，通过观察可知mi2s_quat在active时137、138均启用，但是由于缺乏原理图无法确定使用SD0、SD1、SD2还是SD3，可以先考虑将几个gpio都写进去，日后再acdb中进行尝试。&lt;br /&gt;
&lt;br /&gt;
当然如果你有原理图，直接搜索amp的名称，观察其BCK、WCK、DO、DI走线即可。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''二：在DSDT中的合适位置添加资源:''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在DSDT.dsl中搜索&amp;lt;code&amp;gt;\\_SB.ADSP.SLM1.ADCM.AUDD&amp;lt;/code&amp;gt;，找到对应的资源配置Package，找到Quaternary对应Component ID，这通常为0xD，你可以通过查阅&amp;lt;code&amp;gt;auddev_ext.inf&amp;lt;/code&amp;gt;中的&amp;lt;code&amp;gt;COMPONENT_GPIOUID&amp;lt;/code&amp;gt;与其对应的&amp;lt;code&amp;gt;GroupID_DeviceID&amp;lt;/code&amp;gt;来确定，具体方法在之后说到ACDB配置时会详细阐述。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
未完待续.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sunflower2333</name></author>
	</entry>
</feed>