跟一下msm8953音频的dts。

msm8953-audio-mtp.dtsi

&int_codec {
status = "okay";
qcom,model = "msm8953-snd-card-mtp";
qcom,msm-hs-micbias-type = "internal"; // 具有内部MICBIAS
qcom,msm-spk-ext-pa = <&tlmm 96 0>;
action,enable-aw8738;
qcom,audio-routing =
"RX_BIAS", "MCLK",
"SPK_RX_BIAS", "MCLK",
"INT_LDO_H", "MCLK",
"MIC BIAS Internal1", "Handset Mic", // 听筒采用内部MICBIAS
"MIC BIAS Internal2", "Headset Mic", // 耳机采用内部MICBIAS
"MIC BIAS Internal3", "Secondary Mic",
"AMIC1", "MIC BIAS Internal1",
"AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS Internal3";
};

msm-audio.dtsi

	int_codec: sound {
status = "disabled";
compatible = "qcom,msm8952-audio-codec";
qcom,model = "msm8952-snd-card-mtp";
reg = <0xc051000 0x4>,
<0xc051004 0x4>,
<0xc055000 0x4>,
<0xc052000 0x4>;
reg-names = "csr_gp_io_mux_mic_ctl",
"csr_gp_io_mux_spkr_ctl",
"csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel",
"csr_gp_io_mux_quin_ctl"; qcom,msm-ext-pa = "primary";
qcom,msm-mclk-freq = <9600000>; // 驱动编解码器的所需的时钟
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
qcom,msm-hs-micbias-type = "external";
qcom,msm-micbias1-ext-cap; // 听筒具有外部电容
qcom,audio-routing =
"RX_BIAS", "MCLK",
"SPK_RX_BIAS", "MCLK",
"INT_LDO_H", "MCLK",
"MIC BIAS External", "Handset Mic",
"MIC BIAS External2", "Headset Mic",
"MIC BIAS External", "Secondary Mic",
"AMIC1", "MIC BIAS External",
"AMIC2", "MIC BIAS External2",
"AMIC3", "MIC BIAS External",
"WSA_SPK OUT", "VDD_WSA_SWITCH",
"SpkrMono WSA_IN", "WSA_SPK OUT"; // 扬声器 qcom,hdmi-dba-codec-rx; qcom,msm-gpios =
"pri_i2s",
"us_eu_gpio",
"quin_i2s";
qcom,pinctrl-names =
"all_off",
"pri_i2s_act",
"us_eu_gpio_act",
"pri_i2s_us_eu_gpio_act",
"quin_act",
"quin_pri_i2s_act",
"quin_us_eu_gpio_act",
"quin_us_eu_gpio_pri_i2s_act";
// 8种功能,不同的功能使用的引脚见pinctrl-x
pinctrl-names =
"all_off",
"pri_i2s_act",
"us_eu_gpio_act",
"pri_i2s_us_eu_gpio_act",
"quin_act",
"quin_pri_i2s_act",
"quin_us_eu_gpio_act",
"quin_us_eu_gpio_pri_i2s_act";
// 对应all_off功能, 使用3组pin,总共7个引脚
pinctrl-0 = <&cdc_pdm_lines_sus
&cdc_pdm_lines_2_sus &cross_conn_det_sus>;
// pri_i2s_act, 7个引脚
pinctrl-1 = <&cdc_pdm_lines_act
&cdc_pdm_lines_2_act &cross_conn_det_sus>;
// "us_eu_gpio_act",
pinctrl-2 = <&cdc_pdm_lines_sus
&cdc_pdm_lines_2_sus &cross_conn_det_act>;
// "pri_i2s_us_eu_gpio_act",
pinctrl-3 = <&cdc_pdm_lines_act
&cdc_pdm_lines_2_act &cross_conn_det_act>;
// "quin_act",
pinctrl-4 = <&cdc_pdm_lines_sus
&cdc_pdm_lines_2_sus &cross_conn_det_sus>;
// "quin_pri_i2s_act",
pinctrl-5 = <&cdc_pdm_lines_act
&cdc_pdm_lines_2_act &cross_conn_det_sus>;
// "quin_us_eu_gpio_act",
pinctrl-6 = <&cdc_pdm_lines_sus
&cdc_pdm_lines_2_sus &cross_conn_det_act>;
// "quin_us_eu_gpio_pri_i2s_act";
pinctrl-7 = <&cdc_pdm_lines_act
&cdc_pdm_lines_2_act &cross_conn_det_act>; asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
<&loopback>, <&compress>, <&hostless>,
<&afe>, <&lsm>, <&routing>, <&lpa>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-pcm-dsp.2", "msm-voip-dsp",
"msm-pcm-voice", "msm-pcm-loopback",
"msm-compress-dsp", "msm-pcm-hostless",
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-pcm-lpa";
asoc-cpu = <&dai_pri_auxpcm>,
<&dai_mi2s0>, <&dai_mi2s1>,
<&dai_mi2s2>, <&dai_mi2s3>,
<&dai_mi2s5>, <&dai_mi2s6>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
<&bt_sco_rx>, <&bt_sco_tx>,
<&int_fm_rx>, <&int_fm_tx>,
<&afe_pcm_rx>, <&afe_pcm_tx>,
<&afe_proxy_rx>, <&afe_proxy_tx>,
<&incall_record_rx>, <&incall_record_tx>,
<&incall_music_rx>, <&incall_music_2_rx>;
asoc-cpu-names = "msm-dai-q6-auxpcm.1",
"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
"msm-dai-q6-mi2s.5", "msm-dai-q6-mi2s.6",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
};

msm8953-pinctrl.dtsi

		cdc_reset_ctrl {
cdc_reset_sleep: cdc_reset_sleep {
mux {
pins = "gpio67";
function = "gpio";
};
config {
pins = "gpio67";
drive-strength = <16>;
bias-disable;
output-low;
};
};
cdc_reset_active:cdc_reset_active {
mux {
pins = "gpio67";
function = "gpio";
};
config {
pins = "gpio67";
drive-strength = <16>;
bias-pull-down;
output-high;
};
};
}; cdc_mclk2_pin {
cdc_mclk2_sleep: cdc_mclk2_sleep {
mux {
pins = "gpio66";
function = "pri_mi2s";
};
config {
pins = "gpio66";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
cdc_mclk2_active: cdc_mclk2_active {
mux {
pins = "gpio66";
function = "pri_mi2s";
};
config {
pins = "gpio66";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
cdc-pdm-2-lines {
cdc_pdm_lines_2_act: pdm_lines_2_on {
mux {
pins = "gpio70", "gpio71", "gpio72";
function = "cdc_pdm0";
}; config {
pins = "gpio70", "gpio71", "gpio72";
drive-strength = <8>;
};
}; cdc_pdm_lines_2_sus: pdm_lines_2_off {
mux {
pins = "gpio70", "gpio71", "gpio72";
function = "cdc_pdm0";
}; config {
pins = "gpio70", "gpio71", "gpio72";
drive-strength = <2>;
bias-disable;
};
};
}; cdc-pdm-lines {
cdc_pdm_lines_act: pdm_lines_on {
mux {
pins = "gpio69", "gpio73", "gpio74";
function = "cdc_pdm0";
}; config {
pins = "gpio69", "gpio73", "gpio74";
drive-strength = <8>;
};
};
cdc_pdm_lines_sus: pdm_lines_off {
mux {
pins = "gpio69", "gpio73", "gpio74";
function = "cdc_pdm0";
}; config {
pins = "gpio69", "gpio73", "gpio74";
drive-strength = <2>;
bias-disable;
};
};
}; cdc-pdm-comp-lines {
cdc_pdm_comp_lines_act: pdm_comp_lines_on {
mux {
pins = "gpio67", "gpio68";
function = "cdc_pdm0";
}; config {
pins = "gpio67", "gpio68";
drive-strength = <8>;
};
}; cdc_pdm_comp_lines_sus: pdm_comp_lines_off {
mux {
pins = "gpio67", "gpio68";
function = "cdc_pdm0";
}; config {
pins = "gpio67", "gpio68";
drive-strength = <2>;
bias-disable;
};
};
}; cross-conn-det {
cross_conn_det_act: lines_on {
mux {
pins = "gpio63";
function = "gpio";
}; config {
pins = "gpio63";
drive-strength = <8>;
output-low;
bias-pull-down;
};
}; cross_conn_det_sus: lines_off {
mux {
pins = "gpio63";
function = "gpio";
}; config {
pins = "gpio63";
drive-strength = <2>;
bias-pull-down;
};
};
};

msm-pm8953.dtsi

&spmi_bus {

	qcom,pm8953@0 {
spmi-slave-container;
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>; pm8953_revid: qcom,revid@100 {
compatible = "qcom,qpnp-revid";
reg = <0x100 0x100>;
}; qcom,power-on@800 {
compatible = "qcom,qpnp-power-on";
reg = <0x800 0x100>;
interrupts = <0x0 0x8 0x0>,
<0x0 0x8 0x1>,
<0x0 0x8 0x4>,
<0x0 0x8 0x5>;
interrupt-names = "kpdpwr", "resin",
"resin-bark", "kpdpwr-resin-bark";
qcom,pon-dbc-delay = <15625>;
qcom,system-reset; qcom,pon_1 {
qcom,pon-type = <0>;
qcom,support-reset = <1>;
qcom,s1-timer = <6720>;//<10256>;
qcom,s2-timer = <2000>;
qcom,s2-type = <7>;
//default 1 warm reset,4 is shutdown,7 is hard reset
qcom,pull-up = <1>;
linux,code = <116>;
}; qcom,pon_2 {
qcom,pon-type = <1>;
qcom,pull-up = <1>;
linux,code = <114>;
};
}; pm8953_temp_alarm: qcom,temp-alarm@2400 {
compatible = "qcom,qpnp-temp-alarm";
reg = <0x2400 0x100>;
interrupts = <0x0 0x24 0x0>;
label = "pm8953_tz";
qcom,channel-num = <8>;
qcom,threshold-set = <0>;
qcom,temp_alarm-vadc = <&pm8953_vadc>;
}; pm8953_coincell: qcom,coincell@2800 {
compatible = "qcom,qpnp-coincell";
reg = <0x2800 0x100>;
}; pm8953_mpps: mpps {
compatible = "qcom,qpnp-pin";
spmi-dev-container;
gpio-controller;
#gpio-cells = <2>;
#address-cells = <1>;
#size-cells = <1>;
label = "pm8953-mpp"; mpp@a000 {
reg = <0xa000 0x100>;
qcom,pin-num = <1>;
status = "disabled";
}; mpp@a100 {
reg = <0xa100 0x100>;
qcom,pin-num = <2>;
}; mpp@a200 {
reg = <0xa200 0x100>;
qcom,pin-num = <3>;
status = "disabled";
}; mpp@a300 {
reg = <0xa300 0x100>;
qcom,pin-num = <4>;
};
}; pm8953_gpios: gpios {
spmi-dev-container;
compatible = "qcom,qpnp-pin";
gpio-controller;
#gpio-cells = <2>;
#address-cells = <1>;
#size-cells = <1>;
label = "pm8953-gpio"; gpio@c000 {
reg = <0xc000 0x100>;
qcom,pin-num = <1>;
status = "disabled";
}; gpio@c100 {
reg = <0xc100 0x100>;
qcom,pin-num = <2>;
status = "disabled";
}; gpio@c200 {
reg = <0xc200 0x100>;
qcom,pin-num = <3>;
status = "disabled";
}; gpio@c300 {
reg = <0xc300 0x100>;
qcom,pin-num = <4>;
status = "disabled";
}; gpio@c400 {
reg = <0xc400 0x100>;
qcom,pin-num = <5>;
status = "disabled";
}; gpio@c500 {
reg = <0xc500 0x100>;
qcom,pin-num = <6>;
status = "disabled";
}; gpio@c600 {
reg = <0xc600 0x100>;
qcom,pin-num = <7>;
status = "disabled";
}; gpio@c700 {
reg = <0xc700 0x100>;
qcom,pin-num = <8>;
status = "disabled";
};
}; pm8953_vadc: vadc@3100 {
compatible = "qcom,qpnp-vadc";
reg = <0x3100 0x100>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0x0 0x31 0x0>;
interrupt-names = "eoc-int-en-set";
qcom,adc-bit-resolution = <15>;
qcom,adc-vdd-reference = <1800>;
qcom,vadc-poll-eoc; chan@8 {
label = "die_temp";
reg = <8>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <3>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
}; chan@9 {
label = "ref_625mv";
reg = <9>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
}; chan@a {
label = "ref_1250v";
reg = <0xa>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
}; chan@c {
label = "ref_buf_625mv";
reg = <0xc>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
}; pm8953_adc_tm: vadc@3400 {
compatible = "qcom,qpnp-adc-tm";
reg = <0x3400 0x100>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0x0 0x34 0x0>,
<0x0 0x34 0x3>,
<0x0 0x34 0x4>;
interrupt-names = "eoc-int-en-set",
"high-thr-en-set",
"low-thr-en-set";
qcom,adc-bit-resolution = <15>;
qcom,adc-vdd-reference = <1800>;
qcom,adc_tm-vadc = <&pm8953_vadc>; }; pm8953_rtc: qcom,pm8953_rtc {
spmi-dev-container;
compatible = "qcom,qpnp-rtc";
#address-cells = <1>;
#size-cells = <1>;
qcom,qpnp-rtc-write = <0>;
qcom,qpnp-rtc-alarm-pwrup = <0>; qcom,pm8953_rtc_rw@6000 {
reg = <0x6000 0x100>;
}; qcom,pm8953_rtc_alarm@6100 {
reg = <0x6100 0x100>;
interrupts = <0x0 0x61 0x1>;
};
}; pm8953_typec: qcom,pm8953_typec@bf00 {
status = "disable";
compatible = "qcom,qpnp-typec";
reg = <0xbf00 0x100>;
interrupts = <0x0 0xbf 0x0>,
<0x0 0xbf 0x1>,
<0x0 0xbf 0x2>,
<0x0 0xbf 0x3>,
<0x0 0xbf 0x4>,
<0x0 0xbf 0x6>,
<0x0 0xbf 0x7>; interrupt-names = "vrd-change",
"ufp-detect",
"ufp-detach",
"dfp-detect",
"dfp-detach",
"vbus-err",
"vconn-oc";
};
}; pm8953_1: qcom,pm8953@1 {
spmi-slave-container;
reg = <0x1>;
#address-cells = <1>;
#size-cells = <1>; pm8953_pwm: pwm@bc00 {
status = "disabled";
compatible = "qcom,qpnp-pwm";
reg = <0xbc00 0x100>;
reg-names = "qpnp-lpg-channel-base";
qcom,channel-id = <0>;
qcom,supported-sizes = <6>, <9>;
#pwm-cells = <2>;
};
};
};

Liu Tao

2019-3-5

MSM8953 audio dts 代码跟踪的更多相关文章

  1. msm audio machine 代码跟踪

    sound/soc/msm/msm8952.c // 注册平台设备 static int __init msm8952_machine_init(void) { return platform_dri ...

  2. AM335x tscadc platform driver 相关代码跟踪

    TI AM335x ti am335x_tsc.c 代码跟踪 在kernel 首层目录: 先运行make ARCH=arm tags 这个作用是建立tags文件,只含有arm架构的,利用ctag即可进 ...

  3. openstack学习笔记一 虚拟机启动过程代码跟踪

    openstack学习笔记一 虚拟机启动过程代码跟踪 本文主要通过对虚拟机创建过程的代码跟踪.观察虚拟机启动任务状态的变化,来透彻理解openstack各组件之间的作用过程. 当从horizon界面发 ...

  4. 简单 php 代码跟踪调试实现

    简单 php 代码跟踪调试实现 debug_backtrace:生成回溯 debug_print_backtrace:打印回溯 1. debug_backtrace ($options = DEBUG ...

  5. msm audio platform 驱动代码跟踪

    sound/soc/soc-core.c static int __init snd_soc_init(void) { #ifdef CONFIG_DEBUG_FS snd_soc_debugfs_r ...

  6. trace与代码跟踪服务

    首先开篇引用<MVC2 2 in action>里面一段关于这个跟踪服务的话 When you called Trace.Write() in Web Forms, you were in ...

  7. Linux 内核高-低端内存设置代码跟踪(ARM构架)

    对于ARM中内核如何在启动的时候设置高低端内存的分界线(也是逻辑地址与虚拟地址分界线(虚拟地址)减去那个固定的偏移),这里我稍微引导下(内核分析使用Linux-3.0): 首先定位设置内核虚拟地址起始 ...

  8. saiku执行过程代码跟踪

    使用了很久的saiku,决定跟踪一下代码,看看它的执行核心过程: 一.入口controller代码 1.1.页面打开之后,会发送一个ajax请求 Request URL: http://l-tdata ...

  9. 【实习记】2014-08-10(上)代码跟踪git的想法+归并排序的debug过程

        (冒泡,选择,插入,希尔,快速,归并,堆排)周末加班学习C++,打算用C++写七大经典排序代码.发现3个月前自己写的七大经典排序代码(C Language)突然运行出错. Makefile内容 ...

随机推荐

  1. u3d 逐个点运动,路径运动。 U3d one by one, path motion.

    u3d 逐个点运动,路径运动. U3d one by one, path motion. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-m ...

  2. HDU.4352.XHXJ's LIS(数位DP 状压 LIS)

    题目链接 \(Description\) 求\([l,r]\)中有多少个数,满足把这个数的每一位从高位到低位写下来,其LIS长度为\(k\). \(Solution\) 数位DP. 至于怎么求LIS, ...

  3. BZOJ.2069.[POI2004]ZAW(最短路Dijkstra 按位划分)

    题目链接 \(Description\) 给定一张带权图(边是双向的,但不同方向长度不同).求从1出发,至少经过除1外的一个点,再回到1的最短路.点和边不能重复经过. \(n\leq5000,m\le ...

  4. php 抽象类 静态 单体设计模式

    php oop----抽象类 抽象类机制使得子类可共用基类的某些信息,具体细节会留给子类,典型用在这样情形中,抽象类并不定义全部的方法,部分方法的实现推迟到子类继承抽象类时.它是介于接口和具体类间的一 ...

  5. reveal查看任意APP

    链接: 使用Reveal查看任意App的技巧 使用Reveal查看任意App最省步骤的技巧 如何利用Reveal神器查看各大APP UI搭建层级 使用Reveal查看别人app的UI组成 Reveal ...

  6. mongodb crud

    //添加数据 db.users.insert({,"gender":"男"}); db.users.insert({"name":" ...

  7. css 类选择器结合元素选择器和多类选择器

    1.结合元素选择器 <p class="important">css</p> p.important {color: red} 匹配class属性包含imp ...

  8. How to modify analog output range of Arduino Due

    Voltage Translation for Analog to Digital Interface ADC How to modify analog output range of Arduino ...

  9. Java获取系统日期时间

    方法一:利用Calendar类来获取当前日期和时间,代码如下: /** * 获取系统时间 * @return */ public String getDate(){ Calendar calendar ...

  10. su 与 su - 比较

    原文地址:http://blog.chinaunix.net/uid-25557346-id-2889329.html   今天有一同事说在切换用户的时候,找不到该用户下用户命令,后来仔细检查了一下过 ...