Ok, I understand your approach, but below logs are after changes:
- I made mistake in choose address of I2C. It should be i2c@7000c500 (earlierI set i2c@7000c700, because I made mistake in count when i2c@7000c500 didn’t exist i source)
- I set SND_SOC_SPDIF, snd-compress, snd-soc-core build in kernel Image. snd-soc-tas2505 I compile as module.
After these changes I see that register 0x4c on I2C is “UU”, but sound card doesn’t exist.
Logs:
$ dmesg |grep “ASoC”
[ 1.899952] snd-soc-dummy snd-soc-dummy: ASoC: dai register snd-soc-dummy #1
[ 1.899955] snd-soc-dummy snd-soc-dummy: ASoC: dynamically register DAI snd-soc-dummy
[ 1.899960] snd-soc-dummy snd-soc-dummy: ASoC: Registered DAI ‘snd-soc-dummy-dai’
[ 1.899964] snd-soc-dummy snd-soc-dummy: ASoC: Registered codec ‘snd-soc-dummy’
[ 1.899967] snd-soc-dummy snd-soc-dummy: ASoC: platform register snd-soc-dummy
[ 1.899972] snd-soc-dummy snd-soc-dummy: ASoC: Registered platform ‘snd-soc-dummy’
[ 1.900270] spdif-dit 0.spdif-dit.0: ASoC: dai register 0.spdif-dit.0 #1
[ 1.900273] spdif-dit 0.spdif-dit.0: ASoC: dynamically register DAI 0.spdif-dit.0
[ 1.900277] spdif-dit 0.spdif-dit.0: ASoC: Registered DAI ‘dit-hifi’
[ 1.900280] spdif-dit 0.spdif-dit.0: ASoC: Registered codec ‘0.spdif-dit.0’
[ 1.900307] spdif-dit 1.spdif-dit.1: ASoC: dai register 1.spdif-dit.1 #1
[ 1.900310] spdif-dit 1.spdif-dit.1: ASoC: dynamically register DAI 1.spdif-dit.1
[ 1.900313] spdif-dit 1.spdif-dit.1: ASoC: Registered DAI ‘dit-hifi’
[ 1.900316] spdif-dit 1.spdif-dit.1: ASoC: Registered codec ‘1.spdif-dit.1’
[ 1.900342] spdif-dit 2.spdif-dit.2: ASoC: dai register 2.spdif-dit.2 #1
[ 1.900345] spdif-dit 2.spdif-dit.2: ASoC: dynamically register DAI 2.spdif-dit.2
[ 1.900349] spdif-dit 2.spdif-dit.2: ASoC: Registered DAI ‘dit-hifi’
[ 1.900352] spdif-dit 2.spdif-dit.2: ASoC: Registered codec ‘2.spdif-dit.2’
[ 1.900378] spdif-dit 3.spdif-dit.3: ASoC: dai register 3.spdif-dit.3 #1
[ 1.900381] spdif-dit 3.spdif-dit.3: ASoC: dynamically register DAI 3.spdif-dit.3
[ 1.900384] spdif-dit 3.spdif-dit.3: ASoC: Registered DAI ‘dit-hifi’
[ 1.900387] spdif-dit 3.spdif-dit.3: ASoC: Registered codec ‘3.spdif-dit.3’
[ 1.900412] spdif-dit 4.spdif-dit.4: ASoC: dai register 4.spdif-dit.4 #1
[ 1.900415] spdif-dit 4.spdif-dit.4: ASoC: dynamically register DAI 4.spdif-dit.4
[ 1.900418] spdif-dit 4.spdif-dit.4: ASoC: Registered DAI ‘dit-hifi’
[ 1.900421] spdif-dit 4.spdif-dit.4: ASoC: Registered codec ‘4.spdif-dit.4’
[ 1.900447] spdif-dit 5.spdif-dit.5: ASoC: dai register 5.spdif-dit.5 #1
[ 1.900449] spdif-dit 5.spdif-dit.5: ASoC: dynamically register DAI 5.spdif-dit.5
[ 1.900452] spdif-dit 5.spdif-dit.5: ASoC: Registered DAI ‘dit-hifi’
[ 1.900455] spdif-dit 5.spdif-dit.5: ASoC: Registered codec ‘5.spdif-dit.5’
[ 1.900480] spdif-dit 6.spdif-dit.6: ASoC: dai register 6.spdif-dit.6 #1
[ 1.900483] spdif-dit 6.spdif-dit.6: ASoC: dynamically register DAI 6.spdif-dit.6
[ 1.900486] spdif-dit 6.spdif-dit.6: ASoC: Registered DAI ‘dit-hifi’
[ 1.900489] spdif-dit 6.spdif-dit.6: ASoC: Registered codec ‘6.spdif-dit.6’
[ 1.900545] spdif-dit 7.spdif-dit.7: ASoC: dai register 7.spdif-dit.7 #1
[ 1.900548] spdif-dit 7.spdif-dit.7: ASoC: dynamically register DAI 7.spdif-dit.7
[ 1.900551] spdif-dit 7.spdif-dit.7: ASoC: Registered DAI ‘dit-hifi’
[ 1.900554] spdif-dit 7.spdif-dit.7: ASoC: Registered codec ‘7.spdif-dit.7’
[ 2.537115] tas2505-codec 2-004c: ASoC: dai register 2-004c #1
[ 2.537119] tas2505-codec 2-004c: ASoC: dynamically register DAI 2-004c
[ 2.537123] tas2505-codec 2-004c: ASoC: Registered DAI ‘tas2505-hifi’
[ 2.537128] tas2505-codec 2-004c: ASoC: Registered codec ‘tas2505-codec.2-004c’
$ sudo zcat /proc/config.gz | egrep -i 'tas2505
CONFIG_SND_SOC_TAS2505=m
$sudo zcat /proc/config.gz | grep CONFIG_SND_SOC_SPDIF
CONFIG_SND_SOC_SPDIF=y
$ sudo cat /proc/asound/cards
0 [tegrahda ]: tegra-hda - tegra-hda
tegra-hda at 0x70038000 irq 82
Below is logs after boot system (module is automaticali loaded via - /etc/modules-load.d file), when driver is registered → unregistered → registered
$ lsmod
Module Size Used by
bnep 16562 2
fuse 104554 3
xt_conntrack 3609 1
ipt_MASQUERADE 2346 1
nf_nat_masquerade_ipv4 3111 1 ipt_MASQUERADE
nf_conntrack_netlink 29413 0
nfnetlink 7959 2 nf_conntrack_netlink
xt_addrtype 3670 2
iptable_filter 2481 1
iptable_nat 2882 1
nf_conntrack_ipv4 11992 2
nf_defrag_ipv4 1836 1 nf_conntrack_ipv4
nf_nat_ipv4 6712 1 iptable_nat
nf_nat 20406 2 nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack 106659 6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
br_netfilter 16216 0
userspace_alert 5828 0
zram 25920 4
overlay 48718 0
snd_soc_tas2505 10572 0
nvgpu 1589200 18
ip_tables 19441 2 iptable_filter,iptable_nat
x_tables 28951 5 ip_tables,iptable_filter,ipt_MASQUERADE,xt_addrtype,xt_conntrack
$dmesg
[ 131.466580] tas2505-codec 2-004c: ASoC: Unregistered codec ‘tas2505-codec.2-004c’
[ 131.466585] tas2505-codec 2-004c: ASoC: Unregistered DAI ‘tas2505-hifi’
$sudo insmod snd-soc-tas2505.ko
$dmesg
[ 187.461282] tas2505-codec 2-004c: codec register 2-004c
[ 187.461300] tas2505-codec 2-004c: ASoC: dai register 2-004c #1
[ 187.461308] tas2505-codec 2-004c: ASoC: dynamically register DAI 2-004c
[ 187.461316] tas2505-codec 2-004c: ASoC: Registered DAI ‘tas2505-hifi’
[ 187.461325] tas2505-codec 2-004c: ASoC: Registered codec ‘tas2505-codec.2-004c’
$ lsmod
Module Size Used by
snd_soc_tas2505 10572 0
bnep 16562 2
fuse 104554 3
xt_conntrack 3609 1
ipt_MASQUERADE 2346 1
nf_nat_masquerade_ipv4 3111 1 ipt_MASQUERADE
nf_conntrack_netlink 29413 0
nfnetlink 7959 2 nf_conntrack_netlink
xt_addrtype 3670 2
iptable_filter 2481 1
iptable_nat 2882 1
nf_conntrack_ipv4 11992 2
nf_defrag_ipv4 1836 1 nf_conntrack_ipv4
nf_nat_ipv4 6712 1 iptable_nat
nf_nat 20406 2 nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack 106659 6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
br_netfilter 16216 0
userspace_alert 5828 0
zram 25920 4
overlay 48718 0
nvgpu 1589200 18
ip_tables 19441 2 iptable_filter,iptable_nat
x_tables 28951 5 ip_tables,iptable_filter,ipt_MASQUERADE,xt_addrtype,xt_conntrack
My main problem is that I don’t see sound card. Do you have any idea what I should change?
Below are $demesg_log
dmesg_log_all.txt (56.8 KB)
and source files
tegra210-porg-p3448-common.dtsi (21.1 KB)
tegra210-porg-super-module-e2614.dtsi (8.9 KB)
tas2505.c (22.1 KB)
tas2505.h (3.2 KB)
tegra_machine_driver_mobile.c (23.6 KB)