博通wifi芯片的坑

小爱同学用的wifi芯片和树莓派zero的差不太多,不难解决

&mmc1 {pinctrl-names = "default";pinctrl-0 = <&mmc1_pg_pins>;vmmc-supply = <&reg_aldo1>;mmc-pwrseq = <&wifi_pwrseq>;bus-width = <4>;non-removable;status = "okay";
};&uart1 {pinctrl-names = "default";pinctrl-0 = <&uart1_pg_pins>, <&uart1_cts_rts_pg_pins>;uart-has-rtscts;status = "okay";bluetooth {compatible = "brcm,bcm43438-bt";clocks = <&rtc 1>;clock-names = "lpo";vbat-supply = <&reg_dldo1>;vddio-supply = <&reg_aldo3>;device-wakeup-gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */host-wakeup-gpios = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */shutdown-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */};
};&reg_dldo1 {regulator-always-on;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-name = "vcc-wifi0";
};&reg_dldo2 {regulator-always-on;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-name = "vcc-wifi1";
};wifi_pwrseq: wifi_pwrseq {compatible = "mmc-pwrseq-simple";reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */clocks = <&rtc 1>;clock-names = "ext_clock";};

全志 sun8i 声音的坑

一开始在内核里勾选 sun8i-codec 发现在启动时alsa根本认不出系统的声卡。研究设备树发现sun8i的codec是通过i2s连接,并依赖simple-card和sun4i-i2s这两个内核模块,勾选以下的内核模块问题得到解决

        CONFIG_SND_SUN8I_CODEC CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y CONFIG_SND_SOC_XTFPGA_I2S=y CONFIG_ZX_TDM=y CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_SOC_I2C_AND_SPI=y CONFIG_SND_SUN8I_CODEC_ANALOG

同时要在设备树里开启codec

&sound {/* Board level jack widgets */simple-audio-card,widgets = "Microphone", "Microphone Jack","Headphone", "Headphone Jack";/* Board level routing. First 2 routes copied from SoC level */simple-audio-card,routing ="Left DAC", "AIF1 Slot 0 Left","Right DAC", "AIF1 Slot 0 Right","HP", "HPCOM","Headphone Jack", "HP","MIC1", "Microphone Jack","Microphone Jack", "MBIAS";status = "okay";
};&dai {status = "okay";
};&codec {status = "okay";
};

编译后内核是认出来声卡了,但是没有声音,分析了下电路发现是要使能功放(PH05),不太会设备树,就暂且把它写成一颗led

 leds {compatible = "gpio-leds";codecd {label = "love:codecd:power";gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>;default-state = "on";};};

把一个喇叭接到后面的接口上小爱就有声音了!!
可以用gmediarender推送dlna了

尚未解决的坑 : AC108 CODEC

小爱同学mini有两个版本,一种是有两颗ac108,一种是只有一颗ac108,在全志tina的4.9内核里有这个驱动,还有树莓派的seeed 麦克风HAT用了这个芯片。然而个人水平有限,还没有解决问题。主要是tina的驱动过不了编译,改了许多地方仍然出错。而树莓派HAT的驱动虽然支持主线但是它是基于simple-card重新造了一套轮子,导致和simple-card不能通用,也就是说声音和录音只能选一个。。。。。

一些尝试

sun4i-i2s 在主线中并不支持dsp_a模式,所以5.4内核要想用dsp_a需要使用5.7内核中的驱动,并且重新写一个sound设备树节点和定义a33的i2s节点。


别问我是怎么知道的。。。

定义A33的i2s

     i2s0: i2s@1c22000 {#sound-dai-cells = <0>;compatible = "allwinner,sun6i-a31-i2s";reg = <0x01c22000 0x400>;interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;clock-names = "apb", "mod";resets = <&ccu RST_BUS_I2S0>;dmas = <&dma 3>, <&dma 3>;dma-names = "rx", "tx";status = "disabled";};i2s1: i2s@1c22400 {#sound-dai-cells = <0>;compatible = "allwinner,sun6i-a31-i2s";reg = <0x01c22400 0x400>;interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;clock-names = "apb", "mod";resets = <&ccu RST_BUS_I2S1>;dmas = <&dma 4>, <&dma 4>;dma-names = "rx", "tx";status = "disabled";};

在pinctrl里加入i2s占用的引脚

/*i2s0 pins*/i2s0_pins_bclk: i2s0@0 {pins = "PB5";function = "i2s0";};i2s0_pins_lrck: i2s0@1 {pins = "PB4";function = "i2s0";};i2s0_pins_do0: i2s0@2 {pins = "PB6";function = "i2s0";};i2s0_pins_di: i2s0@3 {pins = "PB7";function = "i2s0";};/*i2s1 pins*/i2s1_pins_bclk: i2s1@0 {pins = "PG11";function = "i2s1";};i2s1_pins_lrck: i2s1@1 {pins = "PG10";function = "i2s1";};i2s1_pins_do0: i2s1@2 {pins = "PG12";function = "i2s1";};i2s1_pins_di: i2s1@3 {pins = "PG13";function = "i2s1";};

小爱设备树中加入sound1节点
写了两个版本,用hat驱动的就只是替换一下simple-card字段就不放了

     sound1: sound@1 {compatible = "simple-audio-card";simple-audio-card,format = "dsp_a";simple-audio-card,name = "ac108-4mic-voicecard"; status = "disabled";simple-audio-card,bitclock-master = <&codec_dai>;simple-audio-card,frame-master = <&codec_dai>;simple-audio-card,channels-playback-override = <4>;simple-audio-card,channels-capture-override  = <4>;cpu_dai: simple-audio-card,cpu {sound-dai = <&i2s0>;dai-tdm-slot-num     = <2>;dai-tdm-slot-width   = <32>;dai-tdm-slot-tx-mask = <1 1 0 0>;dai-tdm-slot-rx-mask = <1 1 0 0>;};codec_dai: simple-audio-card,codec {sound-dai = <&ac108_a>;clocks =  <&ac108_mclk>;};};

使能i2s0 和 i2c1

 &i2s0 {#sound-dai-cells = <0>;#address-cells = <1>;#size-cells = <0>;pinctrl-0 = <&i2s0_pins_bclk &i2s0_pins_lrck &i2s0_pins_do0 &i2s0_pins_di>;pinctrl-names = "default";status = "okay";
};&i2c1 {#address-cells = <1>;#size-cells = <0>;status = "okay";ac108_a: ac108@3b{compatible = "x-power,ac108_0";reg = <0x3b>;#sound-dai-cells = <0>;data-protocol = <0>;};
};

使用seeed-voice-card的驱动虽然可以认到声卡,但是录音时会出现问题


arecord也可以认出设备

头疼。。。


希望有大神可以帮忙指点一下。。。。。
相关的我已经放到一个仓库里了。。。。
白嫖

工厂废品小爱同学mini的重生(4)——— Linux 填坑相关推荐

  1. 工厂废品小爱同学mini的重生(1)———— 入坑篇

    入坑的简要教程 咸鱼上突然出现了6元一片的四核音响板(注意这是工厂处理的次品卖家保证可以点亮),就买了几片稍微玩下-- 从咸鱼入坑的小伙伴想要正常使用板子(回到小爱模式)的可以按照如下步骤来. 准备的 ...

  2. 工厂废品小爱同学mini的重生(2)————提取设备树

    开端 买到的板子A面长这样 在买之前发现板子上有两个UART 和一个JTAG调试口,全志R16是A33的马甲,看数据手册得知sd卡槽与UART0和JTAG复用这样便使得(比较)无损的从sd卡启动主线l ...

  3. 工厂废品小爱同学mini的重生(3)——— Uboot和硬改SD卡

    硬改SD卡 由提取出的设备树结合硬件可以得到,蓝牙使用的为UART1,调试口占用UART0,在A面的调试点分别是JTAG和UART0,还有S-UART(设备树里没有使用),查看全志R16的用户手册得知 ...

  4. “小爱同学”是我对你期待太高?—智能音箱产品体验篇

    家居场景下,为语音交互提供了面向C端的很好的应用环境,因此在过去一年受到广泛关注.因为公司下半年战略进军智能家居这一块,所以特意关注了家庭智能语音交互这一块应用产品,市场上关于语音交互这一块产品主要包 ...

  5. 怎么使用小爱同学音响_小爱音箱mini怎么样如何使用 小爱音箱mini使用方法详细介绍...

    小爱音箱mini怎么样如何使用?相信小伙伴们一定很好奇,小米音响mini首发仅需99元,下面小编为大家带来了小爱音箱mini使用方法详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. 小爱音箱mini ...

  6. python和小爱同学_小爱mini与小爱同学除了外观,还有什么较大的区别?

    参加完发布会刚到家,先占个坑,等我吃饱了再来回答. -------------------- 小爱mini已开箱,电源改成usb接口了,5V2A. 扬声器在音箱底部,顶部的麦克风只有4个. 灯光放到了 ...

  7. 小米平板4可刷的linux,重磅!小米平板4更新MIUI,首次支持小爱同学

    原标题:重磅!小米平板4更新MIUI,首次支持小爱同学 爱搞机8月29日消息,今天小米官方宣布,小米平板4已经内置小爱同学,用户在升级新系统后,能用语音控制平板电脑播放视频.讲故事以及控制智能设备,此 ...

  8. 小爱同学app安卓版_这一届的小爱Play,居然连喵都敢撩……

    智能音箱用过很多款了,但家里常用的还是小爱mini,毕竟,要联动的米家系类产品似乎有点多. 但有一个不可否认的事实就是,小爱mini的反应速度随着使用时间的增加而开始变慢,渐渐的有时候会出现召唤无效的 ...

  9. 浪潮云完成6亿元B轮融资,正推进上市;VMware收购AI初创公司Bitfusion;小爱同学App在苹果应用商店下架……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

最新文章

  1. [WUST2017]一组简单一点的题目(三) A - Calculate S(n)
  2. iOS进阶之架构设计MVVM的理解(3)
  3. 项目经理问:为什么总是只有我在加班 – 挂包袱现象
  4. Ethernet/IP 学习笔记二
  5. underscore.js 源码分析5 基础函数和each函数的使用
  6. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
  7. SAP物料主数据随笔
  8. 数据结构与与算法之希尔排序
  9. Redis实战(11)高级特性(3)持久化
  10. 韩顺平oracle教学笔记,韩顺平 - 玩转oracle教程笔记(转)
  11. app抓包工具_【iOS】新版本App不好用,带你找回旧版本
  12. oracle 朱志辉_阿里云自定义镜像
  13. 【数字电路基础】CMOS晶体管的延时
  14. 2022.05.20-电脑切换全屏与非全屏(特别是谷歌浏览器)的时候会发生卡顿黑屏
  15. 学生信息管理系统——用户登录模块问题篇
  16. 看到结局不会失望的,中国传统美食
  17. 大型三菱plcQ系列 四个QD77简易运动模块,通信总线控制 48 轴,程序八万步
  18. 探索Activity之启动Intent Flag和taskAffinity
  19. 《谈判力》读书笔记:第四章 为共同利益提供多种解决方案
  20. java开发实战经典第二版网课,成功收获美团,小米offer

热门文章

  1. iphone 每天自动换壁纸
  2. 【2023春招】美团技术岗笔试10min+AK
  3. 分布式持久内存文件系统Octopus(ATC-17 )分析(三)
  4. 5G真的有那么重要吗?
  5. pta数据结构day12
  6. 一键下载淘宝买家秀图片(win10)
  7. 几款好用的Markdown 写作工具推荐(下)
  8. 大神教芯片数据手册怎么读
  9. Google Code Jam 2017 资格赛
  10. poj 3230 Travel