一、AC108驱动移植

1、驱动添加

cp r18/lichee/linux-4.4/sound/soc/codecs/ac108.* a64/linux-3.10/sound/soc/codecs/

2、Kconfig、Makefile修改

linux-3.10\sound\soc\codecs\Kconfig修改:

menu "CODEC drivers"

config SND_SOC_ALL_CODECS

# ac108 config

config SND_SOC_AC108

tristate "ac108 mic array "

depends on ARCH_SUN50IW1

select SND_SUNXI_SOC_SUNXI_DAUDIO

default n

help

say Y or M if you want to add support for AC108.

endmenu

r18 sound/soc/codecs/Kconfig配置

SND_SUNXI_SOC_SUNXI_DAUDIO

ac108添加

Device Drivers  --->

<*> Sound card support  --->

<*>   Advanced Linux Sound Architecture  --->

<*>   ALSA for SoC audio support  --->

CODEC drivers  --->

<*> ac108 mic array

sunxi-snddaudio0添加

Device Drivers  --->

<*> Sound card support  --->

<*>   Advanced Linux Sound Architecture  --->

<*>   ALSA for SoC audio support  --->

<*>   ASoC support for SUNXI  --->

<*>   ASoC support for daudio0 machine

二、buildroot

https://www.cnblogs.com/zhangshenghui/p/11008115.html

三、耳机喇叭驱动

查看A64开发板声卡驱动

在linux-3.10内核代码中搜索audiocodec关键字,查找到如下:

推断在sunxi_sndcodec.c中,查看linux-3.10\sound\soc\sunxi\目录下Kconfig和Makefile查看内核配置信息打开。

四、内核配置文件

1、驱动设备树

linux-3.10/arch/arm64/boot/dts/sun50iw1p1.dtsi

五、R18 ac108、tas5731驱动

ac108 驱动目录:

linux-4.4\sound\soc\codecs\ac108.c

tas5731驱动目录:

linux-4.4\sound\soc\codecs\tas5731.c

sun50iw1p1-tulip-noma.dts文件查看设备树配置:

跟踪查找snddaudio-codec-dai关键字,sunxi-snddaudio.c

查看 /proc/asound/cards文件

在SDK 查找 sndac10810035发现:

ERROR (duplicate_label): Duplicate label 'twi0' on /soc@01c00000/twi@0x0x01C2AC00 and /soc@01c00000/twi@0x01c2ac00

ERROR: Input tree has errors, aborting (use -f to force output)

make[1]: *** [arch/arm64/boot/dts/sun50iw1p1-soc.dtb] Error 2

六、adb

参考网站:

https://www.cnblogs.com/zengjfgit/p/6289873.html

1. 编译拷贝模块:make modules && make modules_install INSTALL_MOD_PATH=~/rootfs

2. modprobe g_ffs idVendor=0x18d1 idProduct=0x4e42 iSerialNumber="buildroot"

3. mkdir -p /dev/usb-ffs/adb

4. mount -t functionfs adb /dev/usb-ffs/adb -o uid=2000,gid=2000

5. adbd &

6. 插上USB OTG线,会先安装驱动,安装完成后,可以使用adb工具了。
    7. Ubuntu里可以直接安装一下android adb tool就可以连接了。

备份:

改后:

七、A64喇叭播放

amixer cset name='Earpiece Switch' 'on'

amixer cset name='earpiece volume' '31'

aplay music_16_2.wav &

喇叭和耳机同时播放,Earpiece Switch控制开关,earpiece volume控制音量

八、A64移植tina系统

ERROR: "sunxi_wlan_get_oob_irq_flags" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

ERROR: "sunxi_wlan_get_bus_index" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

ERROR: "sunxi_wlan_set_power" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

ERROR: "sunxi_wlan_get_oob_irq" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

make[6]: *** [__modpost] Error 1

make[5]: *** [modules] Error 2

make[5]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/lichee/linux-4.4'

make[4]: *** [/home/danny/share/allwinner/sdk/A64/r18_tina/out/tulip-noma/compile_dir/target/linux-tulip-noma/linux-4.4.89/.image] Error 2

make[4]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/target/allwinner/tulip-noma'

make[3]: *** [install] Error 2

make[3]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/target/allwinner'

make[2]: *** [target/allwinner/install] Error 2

make[2]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina'

make[1]: *** [/home/danny/share/allwinner/sdk/A64/r18_tina/out/tulip-noma/staging_dir/target/stamp/.target_install] Error 2

make[1]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina'

make: *** [world] Error 2

九、麦克风采集与喇叭播放放到I2S0上

static void sunxi_daudio_txctrl_enable(struct sunxi_daudio_info *sunxi_daudio,

int enable)

static void sunxi_daudio_rxctrl_enable(struct sunxi_daudio_info *sunxi_daudio,

int enable)

pinctrl_select_state

static int sunxi_daudio_dai_startup(struct snd_pcm_substream *substream,

struct snd_soc_dai *dai)

(十二)A64的更多相关文章

  1. 前端开发中SEO的十二条总结

    一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...

  2. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  3. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  4. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  5. 第十二章Fundamental Data Types 基本数据类型

    目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1   数值概论 ...

  6. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  7. Bootstrap <基础三十二>模态框(Modal)插件

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用  ...

  8. Bootstrap <基础二十二>超大屏幕(Jumbotron)

    Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...

  9. Bootstrap <基础十二>下拉菜单(Dropdowns)

    Bootstrap 下拉菜单.下拉菜单是可切换的,是以列表格式显示链接的上下文菜单.这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现. 如需使用下列菜单,只需要在 ...

  10. AngularJs的UI组件ui-Bootstrap分享(十二)——Rating

    Rating是一个用于打分或排名的控件.看一个最简单的例子: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" x ...

随机推荐

  1. 使用dd命令克隆整个Linux系统

    参考:https://www.cnblogs.com/jikexianfeng/p/6103504.html 本次使用使用dd命令克隆整个Ubuntu系统 1,VM安装一台Ubuntu虚拟机 过程不详 ...

  2. 初学django框架 (urls,include子路由,render模板渲染)(一)

    一.urls url的使用为了告诉django哪个url调用那一段代码 如上左图所示,后面的test,test1如下图所示,为视图函数,通过前面的路径,调用后面函数的代码: 只有输入正确的url才会在 ...

  3. django 之(三) --- 认证|权限

    用户模块 登陆注册1:Django2.0  [ 1:N ] user/url.py from django.urls import path from user.views0 import UserT ...

  4. 小米 9 SE 获取Root 和 安装Magisk

    1.刷入第三方REC 和 Magisk 参考教程:[LR.Team]小米9SE专版TWRP中英文修改优化版_小米9 SE_MIUI论坛 使用上面的工具,傻瓜式操作即可. 关于刷入成功之后的说明:刷入成 ...

  5. 使用 pycharm调试docker环境运行的Odoo

    2019日 星期一 安装docker windows系统,参考 docker官方文档 Mac系统,参考 docker官方文档 构建自定义ODOO镜像 标准ODOO镜像可能不包含特别的python模块, ...

  6. c++ hex string array 转换 串口常用

    c++ hex string array 转换 效果如下 tset string is follow 0x50 55 0x35 00 10 203040506073031323334ff format ...

  7. Java虚拟机内存管理小结

  8. 笔记-2:python基本数据类型

    1.数字类型 1.1 整数类型 整数类型有4种进制表示:十进制,二进制,八进制,十六进制,默认情况下,整数采用十进制. 整数类型有4种进制:十进制. 二进制. 八进制和十六进制. 默认情况, 整数采用 ...

  9. 怎样获取所有的script节点

    1. 使用document.scripts; document.scripts instanceof HTMLCollection; // true 2. 使用 document.getElement ...

  10. C++反汇编第五讲,认识C++中的Try catch语法,以及在反汇编中还原

    我们以前讲SEH异常处理的时候已经说过了,C++中的Try catch语法只不过是对SEH做了一个封装. 如果不懂SEH异常处理,请点击博客链接熟悉一下,当然如果不想知道,也可以直接往下看.因为异常处 ...