
Driver
文章平均质量分 53
botelv
这个作者很懒,什么都没留下…
展开
-
RK3326 RK817按power按键无作用
调试的时候遇到,按power按键无作用,但是硬件量的时候又没问题,而且信号能到底中断脚,检查发现是pmu的中断脚没有配置正确,导致按power按键的时候,中断无法被处理。--- a/kernel/arch/arm64/boot/dts/rockchip/rk3326.dts+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3326.dts@@ -390,8 +390,8 @@ clock-frequency = <200000>; r...原创 2020-10-06 16:42:52 · 1125 阅读 · 0 评论 -
RK3326 rk817 codec mic 增益修改
RK817对于mic的增益修改,没有提取到dts里面,通过查看规格书,发现CODEC_DMIC_PGA_GAIN寄存器,可以修改mic的增益,最近有项目在调试过程,发现录音杂音很大,原因是增益太大造成的,把增益降低就可以解决了。--- a/kernel/sound/soc/codecs/rk817_codec.c+++ b/kernel/sound/soc/codecs/rk817_codec.c@@ -113,7 +113,7 @@ static const struct reg_default原创 2020-10-06 16:36:57 · 3347 阅读 · 3 评论 -
RK3288 开机充电动画
RK开机动画主要是在uboot中进行动画播放,因此要同时配置dts以及uboot的config,以下以3288 7.1为参考,其他系统版本大同小异a/include/configs/rk32plat.h+++ b/include/configs/rk32plat.h@@ -381,7 +381,7 @@#define CONFIG_RK3399_EDP#endif-#undef CONFIG_UBOOT_CHARGE+#define CONFIG_UBOOT_CHARGE...原创 2020-06-03 20:02:22 · 896 阅读 · 0 评论 -
RK3288 7.1韦根 26位发送
以下代码为韦根26位发送代码,实际项目已经验证过,发送部分没有经过验证,思路可参考,实际调试过程如果有问题,建议使用示波器抓波形,按26位韦根协议对比波形调试,按部就班即可完成。#include <dt-bindings/gpio/gpio.h>#include <linux/gpio.h>#include <linux/of_gpio.h>#include <linux/module.h>#include <linux/kernel.h&g原创 2020-06-09 09:51:23 · 731 阅读 · 0 评论 -
RK3326 8.1 otg和host切换
有时候如果我们用四线的usb接口,是没有ID脚的,这个时候,如果想动态的切换otg和host,就需要通过命令去切换,RK已经做好了节点/sys/devices/platform/ff2c0000.syscon/ff2c0000.syscon:usb2-phy@100/otg_mode,我们可以通过echo host >/sys/devices/platform/ff2c0000.syscon/ff2c0000.syscon:usb2-phy@100/otg_mode,切换成host模式e.原创 2020-06-02 20:26:57 · 1648 阅读 · 2 评论 -
RK3288 7.1 内存作假,cpu频率扩大
有时候我们客户需要我们在内存和cpu做手脚,但是又不能只是在Settings里面修改,因为那样会被安兔兔检查出来,我们可以在内核里面修改,安兔兔最终测试的途径也是测试内核生成的一些特定节点,以下是补丁,基于rk3288 7.1的版本,其他的版本可以参考修改,原理都是相同的。diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.cindex 875f22f..d54426c 100644--- a/drivers.原创 2020-06-04 09:13:23 · 1143 阅读 · 0 评论 -
动态加载uvc驱动,video节点固定
之前有客户需求,提供接口给应用层动态注册/注销uvc驱动,一般的操作可以把uvc编译成ko文件,应用层可以获取系统权限,使用su命令进行insmod uvc.ko加载驱动,rm uvc.ko卸载驱动。由于客户不想使用该方案,因此大概看了一下代码,自己做了接口提供给客户,以下为代码参考:+extern void app_unregister_uvc(void);+extern int app_register_uvc(void);extern int now_lcd_is_on; stru...原创 2020-06-09 09:40:34 · 1213 阅读 · 0 评论 -
RK3368 QN8027 FM发射驱动
之前在做车机相关项目,有FM发射需求,8027这颗芯片,之前大部分都是在单片机使用,很少在linux系统使用,我把他移植成了linux驱动,以下为参考:#include <linux/hrtimer.h>#include <linux/i2c.h>#include <linux/interrupt.h>#include <linux/io.h>#include <linux/async.h>#include <linux/ir原创 2020-06-09 10:09:25 · 1373 阅读 · 0 评论 -
es8316 耳机插入时,同时打开2个mic
当耳机插入的时候,把mic2的寄存器通路打开即可diff --git a/sound/soc/codecs/es8316.c b/sound/soc/codecs/es8316.cindex ccf4ea1..22631d3 100644--- a/sound/soc/codecs/es8316.c+++ b/sound/soc/codecs/es8316.c@@ -670,7 +670,9 @@ static int es8316_pcm_startup(struct snd_pcm_subs原创 2020-06-10 10:37:19 · 1738 阅读 · 0 评论 -
RK3368 es8316和hdmiin共用IIS
1.es8316与hdmiin共用iis的时候,播放声音会杂音,因此当8316使用的时候,需要disable hdmiin功能,可以通过pwdn脚禁止hdmiin芯片2.当hdmiin使用的时候,需要关闭iis,这个时候就需要禁止主控的mclk和iis功能以下是3368 8.1的补丁,仅供参考: close i2s & mclk when hdmiin open Change-Id: I6321157b65cd9d524877f0db78e621ca7c2bd3...原创 2020-06-10 10:56:13 · 1650 阅读 · 0 评论 -
3326 8.1 增加遥控功能
3326 使用pwm口做遥控,驱动已经有了,所以在dts配置遥控就可以了&pwm0 { compatible = "rockchip,remotectl-pwm"; interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pwm0_pin>; remote_support_psci = <1>;...原创 2020-06-13 11:19:01 · 418 阅读 · 0 评论 -
RK3288 7.1 lt8911b MIPI转EDP
/* hshcal001_i2c.c** Humidity device driver for I2C (HSHCAL001)** Copyright (C) 2012 ALPS ELECTRIC CO., LTD. All Rights Reserved.** This software is licensed under the terms of the GNU General Public* License version 2, as published by the Fr...原创 2020-06-19 09:53:25 · 1886 阅读 · 1 评论 -
RK3288 7..1 it8911b MIPI转EDP使用GPIO模拟IIC配置
在调试it8911b MIPI转EDP的时候,涉及IIC操作,使用芯片自带的IIC控制器,速率最低只能跑100K,但是到了产线1000pcs,居然有200pcs显示不良,最后排查发现是MIPI转edp这颗芯片IIC通讯有问题,使用GPIO模拟IIC通讯,速率降低到20K,通讯正常,这个值取决于调试的取值,可以根据实际调试取值 i2c-gpio{ compatible = "i2c-gpio"; gpios = <&...原创 2020-06-19 11:19:33 · 1215 阅读 · 0 评论 -
a64 uboot 操作device tree说明
a,使用fdt print /打印整个device tree,这样就可以找到树的父子关系b,使用fdt set <path> <prop> [<val>] 设置节点。例如:设置pmu的充电电流:sunxi#fdt print /soc/pmu0@0 pmu_runtime_chgcur//打印pmu_runtime_chgcur这个属性值pmu_runtime_chgcur = <0x00000320> fdt set /s...原创 2020-06-19 11:52:29 · 468 阅读 · 0 评论 -
RK3126 人体感应模块驱动
其实人体感应模块驱动比较简单,就是一个GPIO口的检测,这里主要是想提供一个接口,给上层去比较容易的控制,一般我们可以写成JNI封装,我嫌太麻烦了,直接使用共享文件的方式,往/data/data/com.frame.cloud/mode.txt"下面写一个值,代表人体感应打开,另外一个值代表人体感应的关闭,内核和应用分别去监听文件的变化即可,比较简单,以下是驱动参考:#include <dt-bindings/gpio/gpio.h>#include <linux/gpio.h>原创 2020-06-24 17:08:10 · 875 阅读 · 0 评论 -
RK3326 展频操作
过静电的时候,有时候不想加屏蔽罩,需要软件上做些展频操作,以RK3399 GPLL为例,软件给出的命令如下:io-40xff76008c0x00080000//CRU偏移地址0x008c bit3置0io-40xff7600900x00070000//CRU偏移地址0x0090bit3:0置0io-40xff7600940x00010001//CRU偏移地址0x0090bit0置1io-40xff7600900x1f000500//CRU偏移地址0x0...原创 2020-10-06 16:06:24 · 1162 阅读 · 0 评论