第一次发帖 不废话 看图
10.1寸的LCD屏幕
显示效果还凑合
F1C200S和1G的存储
还有个XR819的WIFI
还有个MIPI芯片
屏幕背后特写
感觉搞这个做个副屏或者多媒体终端 比买开发板还爽,就是小白一个不会改固件,慢慢潜水研究
离线
求链接
离线
求链接
某鱼 搜一下就可以
离线
没有找到45元包邮的,请问有店主名吗?
离线
礼貌求个链接上车
离线
没有找到45元包邮的,请问有店主名吗?
你搜保资电子价签 10.1
离线
礼貌求个链接上车
卖的就那几个,你一看就知道
离线
没有找到45元包邮的,请问有店主名吗?
你一说我想起来了我给老板讲了十块的价
离线
不错,买了一个,研究研究看如果可以做wifi投屏就好
离线
真划算,能点亮就好
离线
买了很久,放那吃灰,谁要不便宜出 哈哈
离线
买了很久,放那吃灰,谁要不便宜出 哈哈
这么好的开发板,不要给我了:)
同时还是一个SSD2828的开发板
离线
642242855 说:买了很久,放那吃灰,谁要不便宜出 哈哈
这么好的开发板,不要给我了:)
同时还是一个SSD2828的开发板
可以啊,晚点我放闲鱼,这个的外壳可能有点坏了,拆的时候不会拆
离线
不错,买了一个,研究研究看如果可以做wifi投屏就好
等你好消息啊
离线
请问楼主,怎么拆开的?我也买了一个,拆不开
离线
请问楼主,怎么拆开的?我也买了一个,拆不开
从屏幕玻璃那里 沿着缝隙划开
离线
dykxjh 说:请问楼主,怎么拆开的?我也买了一个,拆不开
从屏幕玻璃那里 沿着缝隙划开
他里面是卡扣还是粘胶?需不需要加热?
离线
买了2个,试了一下,可以进入adb,可以连接wifi,但是测试cat /dev/random > /dev/fb0没有反应,看应用的日志感觉应该是操作的fb0。还得研究一下,这个外壳确实难拆。
root@TinaLinux:/# bloziplayer
WARNING: awplayer <log_set_level:30>: Set log level to 7
warning: cedarc <VDecoderRegister:127>: register codec: '115:h264' success.
warning: cedarc <VDecoderRegister:127>: register codec: '101:mjpeg' success.
warning: cedarc <VDecoderRegister:127>: register codec: '102:mpeg2' success.
warning: cedarc <VDecoderRegister:127>: register codec: '103:mpeg2' success.
warning: cedarc <VDecoderRegister:127>: register codec: '105:mpeg4dx' success.
warning: cedarc <VDecoderRegister:127>: register codec: '106:mpeg4dx' success.
warning: cedarc <VDecoderRegister:127>: register codec: '107:mpeg4dx' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10e:mpeg4dx' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10f:mpeg4dx' success.
warning: cedarc <VDecoderRegister:127>: register codec: '104:mpeg4H263' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10b:mpeg4H263' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10d:mpeg4H263' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10a:mpeg4Normal' success.
warning: cedarc <VDecoderRegister:127>: register codec: '10c:mpeg4Normal' success.
warning: cedarc <VDecoderRegister:127>: register codec: '108:mpeg4Normal' success.
warning: cedarc <VDecoderRegister:127>: register codec: '109:mpeg4Normal' success.
Disconnected,the reason:WSE_STARTUP_AUTO_CONNECT
dd: writing '/dev/fb0': No space left on device
16001+0 records in
16000+0 records out
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tina_multimedia <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
tag : tina3.5
branch: tina-dev
date : Mon Jul 15 19:04:59 2019 +0800
Change-Id: I5f6c8a88d7b387a312b7744797a0d5f8ab07ee7a
-------------------------------------------------------------------------------
debug : cedarc <VeSetSpeed:1559>: *** set ve freq to 300 Mhz ***
debug : cedarc <VeInitialize:1198>: ve init ok
debug : cedarc <VeRelease:1253>: ve release ok
debug : cedarc <VeSetSpeed:1559>: *** set ve freq to 300 Mhz ***
debug : cedarc <VeInitialize:1198>: ve init ok
debug : cedarc <VideoEngineCreate:388>: *** pEngine->nIcVeVersion = 1663, decIpVersion = 0
debug : cedarc <VeGetChipId:1385>: 00000000
debug : cedarc <CreateSpecificDecoder:1209>: Create decoder '115:h264'
debug : cedarc <VideoEngineCreate:481>: **************eCtlAfcbMode = 0
debug : cedarc <H264ProcessExtraData2:579>: H264ProcessNaluUnit, bNeedFindSPS = 0, bNeedFindPPS = 0
debug : cedarc <H264DecodePictureScanType:2688>: here3:hCtx->bProgressice=1
离线
可以添加图片和视频到/mnt/UDISK/bloziplayer 文件夹,配置/mnt/UDISK/bloziplayer/bloziplayer.json来控制播放内容
默认是这个:
{"code":0,"data":[{"type":"video","label":"video","time":0,"area":{"left":0,"top":0,"width":800,"height":800},"files":[{"name":"blozi-800-800.mp4","md5":"9746fc6bc53e0cf5f1c475905e193b15"}]},{"type":"img","label":"tag","time":0,"area":{"left":0,"top":800,"width":800,"height":480},"files":[{"name":"tag-5000001054-1629347081.png","md5":"b9441367c35d85189d5e2c23cf377453"}]}],"type":"2"}
修改/etc/wifi/wpa_supplicant.conf里面的热点名称和密码连接WIFI
离线
可以跑自己的应用了,只是帧率低的可怜
离线
哇,怎么搞定的,能不能教教我,小白一个
离线
rongzone 说:dykxjh 说:请问楼主,怎么拆开的?我也买了一个,拆不开
从屏幕玻璃那里 沿着缝隙划开
他里面是卡扣还是粘胶?需不需要加热?
我没加热 撬棒搞定,
离线
dykxjh 说:rongzone 说:从屏幕玻璃那里 沿着缝隙划开
他里面是卡扣还是粘胶?需不需要加热?
我没加热 撬棒搞定,
不用拆开,直接ADB登陆,然后干掉以前的应用,交叉编译自己的应用运行即可,后面打算弄个应用做个相册/天气/时间之类的,从互联网获取图片显示。比较简单
离线
另外,注意USB接电脑的时候,供电不足容易导致屏幕闪烁,WIFI开启并连接可能还会导致重启
离线
另外,注意USB接电脑的时候,供电不足容易导致屏幕闪烁,WIFI开启并连接可能还会导致重启
我换好图片了,只能显示一张 不会编他那个json,还得是你说的换app
最近编辑记录 rongzone (2024-09-22 01:26:34)
离线
做了一个简单的相册,也交叉编译了一个telnetd,联网后可以远程调试。弄的急促,只是调通了,还有很多内容没完善。
1、先修改wpa_supplicant.conf里面的wifi名称和密码
2、双击打开bat文件,批处理会把对应的文件复制到板子上并重新启动
3、这个bloziplayer应用,只是使用lvgl简单实现了一下检索/mnt/UDISK目录下的png文件,【jpg、bmp、gif暂时没测试,后面加上】,然后轮流显示
4、后面可以通过在电脑telnet屏的IP登陆(需要先在板子修改下密码 passwd root)
5、后面要更新图片目前可以直接ADB PUSH进去,或者敲命令使用wget从网上获取
离线
shell 的默认密码是tina
离线
请问,你们买来通电就能显示吗?我的通电背光亮,屏幕黑屏不显示,是不是买到坏的了?
离线
请问,你们买来通电就能显示吗?我的通电背光亮,屏幕黑屏不显示,是不是买到坏的了?
可能是供电原因,换个好点的数据线,或者接到充电器试试,之前我这边也是黑屏不显示,换了个数据线就可以了,而且电脑供电还会闪屏,背光亮度不稳定。
离线
@18578292200
这个群真不错,大神非常多,学习
离线
这个不带触摸,不然就比较完美~~ 拿来学习lvgl是够了~
离线
我也跟风买了一个,加上邮费60
离线
前几天咸鱼也看到。当时感觉就能火~
离线
为什么我开启wifi显示如下报错:
root@TinaLinux:/# wpa_supplicant -B -i wlan0 -c /etc/wifi/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
nl80211: Could not re-add multicast membership for vendor events: -2 (No such file or directory)
离线
本来/etc/wifi/wpa_supplicant.conf中是没有network字段的,我自己添加的:
network={
ssid="troyself-wifi"
psk="xxx" //已经更改为自己的wifi密码
key_mgmt=WPA-PSK
priority=1
}
离线
@18578292200
/mnt/UDISK/bloziplayer/bloziplayer.json也没有json文件...
root@TinaLinux:/mnt/UDISK/bloziplayer# ls -a
. ..
root@TinaLinux:/mnt/UDISK/bloziplayer#
屏幕开机只显示一个保资的二维码和一个蓝莓图片
离线
使用如下命令查找png字段的json文件,也是没有任何收获。
root@TinaLinux:/# find -name "*.json" -exec grep -n "*png" {} +
离线
@18578292200
请问这个应用时自带的还是你编写然后下载进去的?
离线
18578292200 说:另外,注意USB接电脑的时候,供电不足容易导致屏幕闪烁,WIFI开启并连接可能还会导致重启
我换好图片了,只能显示一张 不会编他那个json,还得是你说的换app
我的也是,只显示我换的图片,并且开始不断重启了
离线
@18578292200
请问这个应用时自带的还是你编写然后下载进去的?
是自己写的,我放了下载链接
离线
@jackzy
重启的原因可能是供电的问题,这个USB供的是5V的电压,实际看别人拆解,这里最终要供12V,所以电源不稳的话容易重启,特别是连了WIFI后
离线
liangrushui 说:@18578292200
请问这个应用时自带的还是你编写然后下载进去的?是自己写的,我放了下载链接
感谢回复,请问对应开发的sdk能分享下吗?我找这个sdk没有找到
离线
liangrushui 说:@18578292200
请问这个应用时自带的还是你编写然后下载进去的?是自己写的,我放了下载链接
能看一下我的问题吗?连接wifi的问题,在楼上。
离线
请问对应开发的sdk能分享下吗?我找这个sdk没有找到,谢谢!
离线
我来贴个dts
/memreserve/ 0x81000000 0x10000;
/ {
model = "sun3iw1p1";
compatible = "arm,sun3iw1p1", "arm,sun3iw1p1";
interrupt-parent = <0x00000001>;
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
clocks {
compatible = "allwinner,sunxi-clk-init";
device_type = "clocks";
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
ranges;
reg = <0x00000000 0x01c20000 0x00000000 0x000002d0>;
losc {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-clock";
clock-frequency = <0x00008000>;
clock-output-names = "losc";
};
hosc {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-clock";
clock-frequency = <0x016e3600>;
clock-output-names = "hosc";
linux,phandle = <0x00000008>;
phandle = <0x00000008>;
};
pll_cpu {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
assigned-clock-rates = <0x20e6da00>;
clock-output-names = "pll_cpu";
};
pll_audio {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
clock-output-names = "pll_audio";
linux,phandle = <0x00000002>;
phandle = <0x00000002>;
};
pll_video {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
assigned-clock-rates = <0x11b3dc40>;
clock-output-names = "pll_video";
linux,phandle = <0x00000003>;
phandle = <0x00000003>;
};
pll_ve {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
clock-output-names = "pll_ve";
linux,phandle = <0x0000000a>;
phandle = <0x0000000a>;
};
pll_ddr {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
assigned-clock-rates = <0x1298be00>;
clock-output-names = "pll_ddr";
};
pll_periph {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-pll-clock";
lock-mode = "none";
clock-output-names = "pll_periph";
linux,phandle = <0x00000004>;
phandle = <0x00000004>;
};
pll_audiox8 {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-factor-clock";
clocks = <0x00000002>;
clock-mult = <0x00000008>;
clock-div = <0x00000001>;
clock-output-names = "pll_audiox8";
};
pll_audiox4 {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-factor-clock";
clocks = <0x00000002>;
clock-mult = <0x00000008>;
clock-div = <0x00000002>;
clock-output-names = "pll_audiox4";
};
pll_audiox2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-factor-clock";
clocks = <0x00000002>;
clock-mult = <0x00000008>;
clock-div = <0x00000004>;
clock-output-names = "pll_audiox2";
};
pll_videox2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-factor-clock";
clocks = <0x00000003>;
clock-mult = <0x00000002>;
clock-div = <0x00000001>;
clock-output-names = "pll_videox2";
};
pll_periphx2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,fixed-factor-clock";
clocks = <0x00000004>;
clock-mult = <0x00000002>;
clock-div = <0x00000001>;
clock-output-names = "pll_periphx2";
};
cpu {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "cpu";
};
pll_periphahb {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "pll_periphahb";
};
ahb1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "ahb1";
linux,phandle = <0x0000001e>;
phandle = <0x0000001e>;
};
apb1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "apb1";
};
sdmmc0_mod {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc0_mod";
linux,phandle = <0x0000002a>;
phandle = <0x0000002a>;
};
sdmmc0_bus {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc0_bus";
linux,phandle = <0x0000002b>;
phandle = <0x0000002b>;
};
sdmmc0_rst {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc0_rst";
linux,phandle = <0x0000002c>;
phandle = <0x0000002c>;
};
sdmmc1_mod {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc1_mod";
linux,phandle = <0x0000002f>;
phandle = <0x0000002f>;
};
sdmmc1_bus {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc1_bus";
linux,phandle = <0x00000030>;
phandle = <0x00000030>;
};
sdmmc1_rst {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdmmc1_rst";
linux,phandle = <0x00000031>;
phandle = <0x00000031>;
};
spi0 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "spi0";
linux,phandle = <0x0000001f>;
phandle = <0x0000001f>;
};
spi1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "spi1";
linux,phandle = <0x00000026>;
phandle = <0x00000026>;
};
usbphy0 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "usbphy0";
linux,phandle = <0x00000043>;
phandle = <0x00000043>;
};
usbotg {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "usbotg";
linux,phandle = <0x00000044>;
phandle = <0x00000044>;
};
audio {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "audio";
linux,phandle = <0x00000045>;
phandle = <0x00000045>;
};
avs {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "avs";
};
codec {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "codec";
linux,phandle = <0x0000004b>;
phandle = <0x0000004b>;
};
spdif {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "spdif";
linux,phandle = <0x00000048>;
phandle = <0x00000048>;
};
debe {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "debe";
linux,phandle = <0x00000034>;
phandle = <0x00000034>;
};
defe {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "defe";
linux,phandle = <0x00000035>;
phandle = <0x00000035>;
};
tcon {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "tcon";
linux,phandle = <0x00000036>;
phandle = <0x00000036>;
};
deinterlace {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "deinterlace";
linux,phandle = <0x00000038>;
phandle = <0x00000038>;
};
tve_clk2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "tve_clk2";
linux,phandle = <0x00000037>;
phandle = <0x00000037>;
};
tve_clk1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "tve_clk1";
};
tvd {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "tvd";
linux,phandle = <0x00000039>;
phandle = <0x00000039>;
};
csi_m {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "csi_m";
linux,phandle = <0x00000040>;
phandle = <0x00000040>;
};
ve {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "ve";
linux,phandle = <0x0000000b>;
phandle = <0x0000000b>;
};
sdram {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "sdram";
};
dma {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "dma";
linux,phandle = <0x00000006>;
phandle = <0x00000006>;
};
pio {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "pio";
linux,phandle = <0x00000005>;
phandle = <0x00000005>;
};
uart0 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "uart0";
linux,phandle = <0x0000000c>;
phandle = <0x0000000c>;
};
uart1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "uart1";
linux,phandle = <0x0000000f>;
phandle = <0x0000000f>;
};
uart2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "uart2";
linux,phandle = <0x00000012>;
phandle = <0x00000012>;
};
twi0 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "twi0";
linux,phandle = <0x00000015>;
phandle = <0x00000015>;
};
twi1 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "twi1";
linux,phandle = <0x00000018>;
phandle = <0x00000018>;
};
twi2 {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "twi2";
linux,phandle = <0x0000001b>;
phandle = <0x0000001b>;
};
rsb {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "rsb";
};
cir {
#clock-cells = <0x00000000>;
compatible = "allwinner,sunxi-periph-clock";
clock-output-names = "cir";
linux,phandle = <0x00000009>;
phandle = <0x00000009>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
device_type = "soc";
ranges;
pinctrl@01c20800 {
compatible = "allwinner,sun3iw1p1-pinctrl";
reg = <0x00000000 0x01c20800 0x00000000 0x00000400>;
interrupts = <0x00000026 0x00000027 0x00000028>;
device_type = "pio";
clocks = <0x00000005>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x00000002>;
#size-cells = <0x00000000>;
#gpio-cells = <0x00000006>;
linux,phandle = <0x00000024>;
phandle = <0x00000024>;
ir@0 {
allwinner,function = "ir";
allwinner,muxsel = <0x00000004>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x00000007>;
phandle = <0x00000007>;
};
uart0@1 {
allwinner,pins = "PF2", "PF4";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x0000000e>;
phandle = <0x0000000e>;
};
uart1@1 {
allwinner,pins = "PA3", "PA2";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x00000011>;
phandle = <0x00000011>;
};
uart2@0 {
allwinner,pname = "uart2_tx", "uart2_rx";
allwinner,function = "uart2";
allwinner,muxsel = <0x00000003>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x00000013>;
phandle = <0x00000013>;
};
uart2@1 {
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x00000014>;
phandle = <0x00000014>;
};
twi0@1 {
allwinner,pins = "PD12", "PD0";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000017>;
phandle = <0x00000017>;
};
twi1@1 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000001a>;
phandle = <0x0000001a>;
};
twi2@1 {
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000001d>;
phandle = <0x0000001d>;
};
spi0@2 {
allwinner,pins = "PC0", "PC1", "PC2";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000022>;
phandle = <0x00000022>;
};
spi0@3 {
allwinner,pins = "PC3";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000023>;
phandle = <0x00000023>;
};
spi1@2 {
allwinner,pins = "PE7", "PE8", "PE9", "PE10";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000029>;
phandle = <0x00000029>;
};
csi0@0 {
allwinner,pins = "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10";
allwinner,pname = "csi0_hsync", "csi0_vsync", "csi0_pck", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7";
allwinner,function = "csi0";
allwinner,muxsel = <0x00000002>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
allwinner,data = <0x00000000>;
linux,phandle = <0x00000041>;
phandle = <0x00000041>;
};
csi0_sleep@0 {
allwinner,pins = "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10";
allwinner,pname = "csi0_hsync", "csi0_vsync", "csi0_pck", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
allwinner,data = <0x00000000>;
linux,phandle = <0x00000042>;
phandle = <0x00000042>;
};
pwm0@0 {
allwinner,pins = "PE12";
allwinner,function = "pwm0";
allwinner,muxsel = <0x00000004>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000003c>;
phandle = <0x0000003c>;
};
pwm0@1 {
allwinner,pins = "PE12";
allwinner,function = "pwm0";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000003d>;
phandle = <0x0000003d>;
};
pwm1@0 {
allwinner,function = "pwm1";
allwinner,muxsel = <0x00000003>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000003e>;
phandle = <0x0000003e>;
};
pwm1@1 {
allwinner,function = "pwm1";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000003f>;
phandle = <0x0000003f>;
};
sdc0@1 {
allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x0000002e>;
phandle = <0x0000002e>;
};
sdc1@1 {
allwinner,pins = "PC0", "PC1", "PC2";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000001>;
linux,phandle = <0x00000033>;
phandle = <0x00000033>;
};
daudio0@0 {
allwinner,function = "iis0";
allwinner,muxsel = <0x00000004>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000046>;
phandle = <0x00000046>;
};
daudio0_sleep@0 {
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000047>;
phandle = <0x00000047>;
};
daudio0@1 {
allwinner,function = "iis0";
allwinner,muxsel = <0x00000002>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
};
spdif@0 {
allwinner,pins = "PD17";
allwinner,function = "spdif0";
allwinner,muxsel = <0x00000003>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x00000049>;
phandle = <0x00000049>;
};
spdif_sleep@0 {
allwinner,pins = "PD17";
allwinner,function = "io_disabled";
allwinner,muxsel = <0x00000007>;
allwinner,drive = <0x00000001>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000004a>;
phandle = <0x0000004a>;
};
card0_boot_para@0 {
linux,phandle = <0x00000051>;
phandle = <0x00000051>;
allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
allwinner,function = "card0_boot_para";
allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000002>;
allwinner,data = <0xffffffff>;
};
card2_boot_para@0 {
linux,phandle = <0x00000052>;
phandle = <0x00000052>;
allwinner,pins = "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC1";
allwinner,function = "card2_boot_para";
allwinner,pname = "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst", "sdc_ds";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000003>;
allwinner,data = <0xffffffff>;
};
card1_boot_para@0 {
linux,phandle = <0x00000053>;
phandle = <0x00000053>;
allwinner,pins = "PC0", "PC1", "PC2";
allwinner,function = "card1_boot_para";
allwinner,pname = "sdc_clk", "sdc_cmd", "sdc_d0";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000003>;
allwinner,data = <0xffffffff>;
};
twi_para@0 {
linux,phandle = <0x00000054>;
phandle = <0x00000054>;
allwinner,pins = "PD12", "PD0";
allwinner,function = "twi_para";
allwinner,pname = "twi_scl", "twi_sda";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
uart_para@0 {
linux,phandle = <0x00000055>;
phandle = <0x00000055>;
allwinner,pins = "PA2", "PA3";
allwinner,function = "uart_para";
allwinner,pname = "uart_debug_tx", "uart_debug_rx";
allwinner,muxsel = <0x00000005>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
jtag_para@0 {
linux,phandle = <0x00000056>;
phandle = <0x00000056>;
allwinner,pins = "PH9", "PH10", "PH11", "PH12";
allwinner,function = "jtag_para";
allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
twi0@0 {
linux,phandle = <0x00000057>;
phandle = <0x00000057>;
allwinner,pins = "PD12", "PD0";
allwinner,function = "twi0";
allwinner,pname = "twi0_scl", "twi0_sda";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
twi1@0 {
linux,phandle = <0x00000058>;
phandle = <0x00000058>;
allwinner,pins = "PB0", "PB1";
allwinner,function = "twi1";
allwinner,pname = "twi1_scl", "twi1_sda";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
twi2@0 {
linux,phandle = <0x00000059>;
phandle = <0x00000059>;
allwinner,pins = "PD15", "PD16";
allwinner,function = "twi2";
allwinner,pname = "twi2_scl", "twi2_sda";
allwinner,muxsel = <0x00000004>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
uart0@0 {
linux,phandle = <0x0000005a>;
phandle = <0x0000005a>;
allwinner,pins = "PF2", "PF4";
allwinner,function = "uart0";
allwinner,pname = "uart0_tx", "uart0_rx";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
uart1@0 {
linux,phandle = <0x0000005b>;
phandle = <0x0000005b>;
allwinner,pins = "PA2", "PA3";
allwinner,function = "uart1";
allwinner,pname = "uart1_tx", "uart1_rx";
allwinner,muxsel = <0x00000005>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
spi0@0 {
linux,phandle = <0x0000005c>;
phandle = <0x0000005c>;
allwinner,pins = "PC1";
allwinner,function = "spi0";
allwinner,pname = "spi0_cs0";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
spi0@1 {
linux,phandle = <0x0000005d>;
phandle = <0x0000005d>;
allwinner,pins = "PC0", "PC3", "PC2";
allwinner,function = "spi0";
allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
spi1@0 {
linux,phandle = <0x0000005e>;
phandle = <0x0000005e>;
allwinner,pins = "PE7";
allwinner,function = "spi1";
allwinner,pname = "spi1_cs0";
allwinner,muxsel = <0x00000004>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
spi1@1 {
linux,phandle = <0x0000005f>;
phandle = <0x0000005f>;
allwinner,pins = "PE9", "PE8", "PE10";
allwinner,function = "spi1";
allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso";
allwinner,muxsel = <0x00000004>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
nand0@0 {
linux,phandle = <0x00000060>;
phandle = <0x00000060>;
allwinner,pins = "PC0", "PC1", "PC2", "PC4", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14";
allwinner,function = "nand0";
allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000000>;
allwinner,drive = <0x00000001>;
allwinner,data = <0xffffffff>;
};
nand0@1 {
linux,phandle = <0x00000061>;
phandle = <0x00000061>;
allwinner,pins = "PC3", "PC5";
allwinner,function = "nand0";
allwinner,pname = "nand0_ce0", "nand0_rb0";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000001>;
allwinner,data = <0xffffffff>;
};
lcd0@0 {
linux,phandle = <0x00000062>;
phandle = <0x00000062>;
allwinner,pins = "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD13", "PD14", "PD15", "PD16", "PD17";
allwinner,function = "lcd0";
allwinner,pname = "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd10", "lcdd11", "lcdd12", "lcdd13", "lcdd14", "lcdd15", "lcdd19", "lcdd20", "lcdd21", "lcdd22", "lcdd23";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000000>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
lcd0@1 {
linux,phandle = <0x00000063>;
phandle = <0x00000063>;
allwinner,pins = "PD18", "PD19", "PD20", "PD21";
allwinner,function = "lcd0";
allwinner,pname = "lcdclk", "lcdde", "lcdhsync", "lcdvsync";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000000>;
allwinner,drive = <0x00000003>;
allwinner,data = <0xffffffff>;
};
sdc0@0 {
linux,phandle = <0x00000064>;
phandle = <0x00000064>;
allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
allwinner,function = "sdc0";
allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000003>;
allwinner,data = <0xffffffff>;
};
sdc1@0 {
linux,phandle = <0x00000065>;
phandle = <0x00000065>;
allwinner,pins = "PC0", "PC1", "PC2";
allwinner,function = "sdc1";
allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000002>;
allwinner,data = <0xffffffff>;
};
Vdevice@0 {
linux,phandle = <0x00000066>;
phandle = <0x00000066>;
allwinner,pins = "PC0", "PC1";
allwinner,function = "Vdevice";
allwinner,pname = "Vdevice_0", "Vdevice_1";
allwinner,muxsel = <0x00000004>;
allwinner,pull = <0x00000001>;
allwinner,drive = <0x00000002>;
allwinner,data = <0xffffffff>;
};
};
dma-controller@01c02000 {
compatible = "allwinner,sun3i-dma";
reg = <0x00000000 0x01c02000 0x00000000 0x00001000>;
interrupts = <0x00000012>;
clocks = <0x00000006>;
#dma-cells = <0x00000002>;
linux,phandle = <0x00000025>;
phandle = <0x00000025>;
};
timer@1c20c00 {
compatible = "allwinner,sunxi-timer";
device_type = "timer";
reg = <0x00000000 0x01c20c00 0x00000000 0x00000090>;
interrupts = <0x0000000d>;
clock-frequency = <0x016e3600>;
timer-prescale = <0x00000010>;
};
ir@01c22c00 {
compatible = "allwinner,ir";
reg = <0x00000000 0x01c22c00 0x00000000 0x00000400>;
interrupts = <0x00000006>;
pinctrl-names = "default";
pinctrl-0 = <0x00000007>;
clocks = <0x00000008 0x00000009>;
status = "okay";
};
ve@01c0e000 {
compatible = "allwinner,sunxi-cedar-ve";
reg = <0x00000000 0x01c0e000 0x00000000 0x00001000 0x00000000 0x01c00000 0x00000000 0x00003000 0x00000000 0x01c20000 0x00000000 0x00000800>;
interrupts = <0x00000022>;
clocks = <0x0000000a 0x0000000b>;
};
uart@01c25000 {
compatible = "allwinner,sun3i-uart";
device_type = "uart0";
reg = <0x00000000 0x01c25000 0x00000000 0x00000400>;
interrupts = <0x00000001>;
clocks = <0x0000000c>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x0000000e>;
uart0_port = <0x00000000>;
uart0_type = <0x00000002>;
status = "disabled";
pinctrl-0 = <0x0000005a>;
};
uart@01c25400 {
compatible = "allwinner,sun3i-uart";
device_type = "uart1";
reg = <0x00000000 0x01c25400 0x00000000 0x00000400>;
interrupts = <0x00000002>;
clocks = <0x0000000f>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x00000011>;
uart1_port = <0x00000001>;
uart1_type = <0x00000002>;
status = "okay";
pinctrl-0 = <0x0000005b>;
};
uart@01c25800 {
compatible = "allwinner,sun3i-uart";
device_type = "uart2";
reg = <0x00000000 0x01c25800 0x00000000 0x00000400>;
interrupts = <0x00000003>;
clocks = <0x00000012>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0x00000013>;
pinctrl-1 = <0x00000014>;
uart2_port = <0x00000002>;
uart2_type = <0x00000004>;
status = "disabled";
};
twi@0x01c27000 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
compatible = "allwinner,sun3i-twi";
device_type = "twi0";
reg = <0x00000000 0x01c27000 0x00000000 0x00000400>;
interrupts = <0x00000007>;
clocks = <0x00000015>;
clock-frequency = <0x000186a0>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x00000017>;
status = "okay";
pinctrl-0 = <0x00000057>;
io_expand@0x38 {
compatible = "nxp,pcf8574a";
i2c-max-frequency = <0x000186a0>;
reg = <0x00000038>;
device_type = "io_expand";
};
touchscreen0@0x4A {
compatible = "atmel,mxt336t";
reg = <0x0000004a>;
atmel,suspend_mode = <0x00000000>;
};
touchscreen1@0x48 {
compatible = "ctp_icn85xx";
reg = <0x00000048>;
device_type = "touchscreen1";
};
rtc@0x51 {
compatible = "nxp,pcf8563";
i2c-max-frequency = <0x000186a0>;
reg = <0x00000051>;
};
sensor_gc0308@0x42 {
compatible = "allwinner,sensor_gc0308";
i2c-max-frequency = <0x000186a0>;
reg = <0x00000042>;
status = "okay";
};
};
twi@0x01c27400 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
compatible = "allwinner,sun3i-twi";
device_type = "twi1";
reg = <0x00000000 0x01c27400 0x00000000 0x00000400>;
interrupts = <0x00000008>;
clocks = <0x00000018>;
clock-frequency = <0x00030d40>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x0000001a>;
status = "disabled";
pinctrl-0 = <0x00000058>;
};
twi@0x01c27800 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
compatible = "allwinner,sun3i-twi";
device_type = "twi2";
reg = <0x00000000 0x01c27800 0x00000000 0x00000400>;
interrupts = <0x00000009>;
clocks = <0x0000001b>;
clock-frequency = <0x000186a0>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x0000001d>;
status = "disabled";
pinctrl-0 = <0x00000059>;
};
spi@01c05000 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
compatible = "allwinner,sun8i-spi";
device_type = "spi0";
reg = <0x00000000 0x01c05000 0x00000000 0x00001000>;
interrupts = <0x0000000a>;
clocks = <0x0000001e 0x0000001f>;
clock-frequency = <0x05f5e100>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x00000022 0x00000023>;
spi0_cs_number = <0x00000001>;
spi0_cs_bitmap = <0x00000001>;
sd-spi-sel = <0x00000024 0x00000000 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000>;
sd-spi-act = <0x00000001>;
dmas = <0x00000025 0x00000000 0x00000004 0x00000025 0x00000000 0x00000004>;
dma-names = "rx", "tx";
status = "okay";
pinctrl-0 = <0x0000005c 0x0000005d>;
nor_flash@0 {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
compatible = "st,m25p64";
spi-max-frequency = <0x02faf080>;
reg = <0x00000000>;
};
};
spinand@01c05000 {
compatible = "allwinner,sunxi-spinand";
device_type = "spinand";
reg = <0x00000000 0x01c05000 0x00000000 0x00001000>;
interrupts = <0x0000000a>;
clocks = <0x0000001e 0x0000001f>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0x0000005c 0x0000005d>;
pinctrl-1 = <0x00000022 0x00000023>;
nand0_regulator1 = "vcc-nand";
nand0_regulator2 = "none";
nand0_cache_level = <0x55aaaa55>;
nand0_flush_cache_num = <0x55aaaa55>;
nand0_capacity_level = <0x55aaaa55>;
nand0_id_number_ctl = <0x55aaaa55>;
nand0_print_level = <0x55aaaa55>;
nand0_p0 = <0x55aaaa55>;
nand0_p1 = <0x55aaaa55>;
nand0_p2 = <0x55aaaa55>;
nand0_p3 = <0x55aaaa55>;
status = "okay";
};
spi@01c06000 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
compatible = "allwinner,sun8i-spi";
device_type = "spi1";
reg = <0x00000000 0x01c06000 0x00000000 0x00001000>;
interrupts = <0x0000000b>;
clocks = <0x0000001e 0x00000026>;
clock-frequency = <0x05f5e100>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x00000029>;
spi1_cs_number = <0x00000001>;
spi1_cs_bitmap = <0x00000001>;
status = "okay";
pinctrl-0 = <0x0000005e 0x0000005f>;
ssd2828@0 {
compatible = "ss,ssd2828";
spi-max-frequency = <0x017d7840>;
gpios = <0x00000024 0x00000000 0x00000001 0x00000000 0x00000001 0x00000001 0x00000001>;
reg = <0x00000000>;
};
};
sdmmc@01c0f000 {
compatible = "allwinner,sun3iw1p1-sdmmc0";
device_type = "sdc0";
reg = <0x00000000 0x01c0f000 0x00000000 0x00001000>;
interrupts = <0x00000017>;
clocks = <0x00000008 0x00000004 0x0000002a 0x0000002b 0x0000002c>;
clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst";
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x0000002e>;
max-frequency = <0x02faf080>;
bus-width = <0x00000004>;
cap-sdio-irq;
keep-power-in-suspend;
ignore-pm-notify;
status = "okay";
sdc0_buswidth = <0x00000004>;
pinctrl-0 = <0x00000064>;
sdc0_det = <0x00000024 0x00000000 0x00000001 0x00000000 0x00000001 0x00000003 0xffffffff>;
sdc0_use_wp = <0x00000000>;
sdc0_wp;
sdc0_isio = <0x00000000>;
sdc0_regulator = "none";
};
sdmmc@01c10000 {
compatible = "allwinner,sun3iw1p1-sdmmc1";
device_type = "sdc1";
reg = <0x00000000 0x01c10000 0x00000000 0x00001000>;
interrupts = <0x00000018>;
clocks = <0x00000008 0x00000004 0x0000002f 0x00000030 0x00000031>;
clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst";
pinctrl-names = "default", "sleep";
pinctrl-1 = <0x00000033>;
max-frequency = <0x02faf080>;
bus-width = <0x00000001>;
no-sdio;
no-sd;
non-removable;
cap-sdio-irq;
keep-power-in-suspend;
ignore-pm-notify;
sunxi-dly-52M-ddr4 = <0x00000001 0x00000000 0x00000000 0x00000000 0x00000002>;
sunxi-dly-104M = <0x00000001 0x00000000 0x00000000 0x00000000 0x00000001>;
sunxi-dly-208M = <0x00000001 0x00000000 0x00000000 0x00000000 0x00000001>;
status = "disabled";
sdc1_detmode = <0x00000004>;
sdc1_buswidth = <0x00000001>;
pinctrl-0 = <0x00000065>;
sdc1_det;
sdc1_use_wp = <0x00000000>;
sdc1_wp;
sdc1_isio = <0x00000001>;
sdc1_regulator = "none";
};
disp@0x01e00000 {
compatible = "allwinner,sunxi-disp";
reg = <0x00000000 0x01e00000 0x00000000 0x00020000 0x00000000 0x01c0c000 0x00000000 0x00001000 0x00000000 0x01e70000 0x00000000 0x00010000>;
interrupts = <0x0000001d 0x0000001f 0x0000001e 0x00000021>;
clocks = <0x00000034 0x00000035 0x00000036 0x00000037 0x00000038>;
status = "okay";
device_type = "disp";
disp_init_enable = <0x00000001>;
disp_mode = <0x00000000>;
screen0_output_type = <0x00000001>;
screen0_output_mode = <0x00000004>;
screen1_output_type = <0x00000001>;
screen1_output_mode = <0x00000004>;
fb0_framebuffer_num = <0x00000002>;
fb0_pixel_sequence = <0x00000000>;
fb0_scaler_mode_enable = <0x00000000>;
fb0_format = <0x00000000>;
fb0_width = <0x00000000>;
fb0_height = <0x00000000>;
fb1_framebuffer_num = <0x00000000>;
fb1_pixel_sequence = <0x00000000>;
fb1_scaler_mode_enable = <0x00000000>;
fb1_format = <0x00000000>;
fb1_width = <0x00000000>;
fb1_height = <0x00000000>;
lcd0_backlight = <0x00000032>;
lcd1_backlight = <0x00000032>;
lcd0_bright = <0x00000032>;
lcd0_contrast = <0x00000032>;
lcd0_saturation = <0x00000039>;
lcd0_hue = <0x00000032>;
lcd1_bright = <0x00000032>;
lcd1_contrast = <0x00000032>;
lcd1_saturation = <0x00000039>;
lcd1_hue = <0x00000032>;
};
tvd0@01c0b000 {
compatible = "allwinner,sunxi-tvd";
reg = <0x00000000 0x01c0b000 0x00000000 0x00001000>;
interrupts = <0x0000001b>;
clocks = <0x00000039>;
tvd_used = <0x00000001>;
tvd_if = <0x00000000>;
status = "okay";
};
lcd0@01c0c000 {
compatible = "allwinner,sunxi-lcd0";
pinctrl-names = "active", "sleep";
status = "okay";
device_type = "lcd0";
lcd_used = <0x00000001>;
lcd_driver_name = "ili6122_800x480";
lcd_if = <0x00000000>;
lcd_x = <0x00000320>;
lcd_y = <0x00000500>;
lcd_width = <0x00000087>;
lcd_height = <0x000000d8>;
lcd_dclk_freq = <0x0000003e>;
lcd_pwm_used = <0x00000001>;
lcd_pwm_ch = <0x00000000>;
lcd_pwm_freq = <0x0000c350>;
lcd_pwm_pol = <0x00000001>;
lcd_hbp = <0x00000046>;
lcd_ht = <0x000004c4>;
lcd_hspw = <0x00000014>;
lcd_vbp = <0x00000016>;
lcd_vt = <0x00000523>;
lcd_vspw = <0x00000006>;
lcd_hv_if = <0x00000000>;
lcd_hv_smode = <0x00000000>;
lcd_hv_s888_if = <0x00000000>;
lcd_hv_syuv_if = <0x00000000>;
lcd_hv_vspw = <0x00000006>;
lcd_hv_hspw = <0x00000014>;
lcd_hv_sync_polarity = <0x00000001>;
lcd_deu_mode = <0x00000001>;
lcd_lvds_if = <0x00000000>;
lcd_lvds_colordepth = <0x00000001>;
lcd_lvds_mode = <0x00000000>;
lcd_lvds_ch = <0x00000000>;
lcd_lvds_bitwidth = <0x00000000>;
lcd_lvds_io_cross = <0x00000000>;
lcd_cpu_if = <0x00000000>;
lcd_frm = <0x00000001>;
lcd_rb_swap = <0x00000001>;
lcd_io_phase = <0x00000000>;
lcd_gamma_en = <0x00000000>;
lcd_bright_curve_en = <0x00000000>;
lcd_cmap_en = <0x00000000>;
deu_mode = <0x00000000>;
lcdgamma4iep = <0x00000016>;
lcd_io_cfg0 = <0x00000000>;
smart_color = <0x0000005a>;
lcd_gpio_0 = <0x00000024 0x00000004 0x00000005 0x00000001 0x00000000 0xffffffff 0x00000000>;
pinctrl-0 = <0x00000062 0x00000063>;
};
pwm@01c21000 {
compatible = "allwinner,sunxi-pwm";
reg = <0x00000000 0x01c21000 0x00000000 0x00000008>;
pwm-number = <0x00000002>;
pwm-base = <0x00000000>;
pwms = <0x0000003a 0x0000003b>;
};
pwm0@01c21000 {
compatible = "allwinner,sunxi-pwm0";
pinctrl-names = "active", "sleep";
pinctrl-0 = <0x0000003c>;
pinctrl-1 = <0x0000003d>;
reg_base = <0x01c21000>;
reg_busy_offset = <0x00000000>;
reg_busy_shift = <0x0000001c>;
reg_enable_offset = <0x00000000>;
reg_enable_shift = <0x00000004>;
reg_clk_gating_offset = <0x00000000>;
reg_clk_gating_shift = <0x00000006>;
reg_bypass_offset = <0x00000000>;
reg_bypass_shift = <0x00000009>;
reg_pulse_start_offset = <0x00000000>;
reg_pulse_start_shift = <0x00000008>;
reg_mode_offset = <0x00000000>;
reg_mode_shift = <0x00000007>;
reg_polarity_offset = <0x00000000>;
reg_polarity_shift = <0x00000005>;
reg_period_offset = <0x00000004>;
reg_period_shift = <0x00000010>;
reg_period_width = <0x00000010>;
reg_active_offset = <0x00000004>;
reg_active_shift = <0x00000000>;
reg_active_width = <0x00000010>;
reg_prescal_offset = <0x00000000>;
reg_prescal_shift = <0x00000000>;
reg_prescal_width = <0x00000004>;
linux,phandle = <0x0000003a>;
phandle = <0x0000003a>;
};
pwm1@01c21000 {
compatible = "allwinner,sunxi-pwm1";
pinctrl-names = "active", "sleep";
pinctrl-0 = <0x0000003e>;
pinctrl-1 = <0x0000003f>;
reg_base = <0x01c21000>;
reg_busy_offset = <0x00000000>;
reg_busy_shift = <0x0000001d>;
reg_enable_offset = <0x00000000>;
reg_enable_shift = <0x00000013>;
reg_clk_gating_offset = <0x00000000>;
reg_clk_gating_shift = <0x00000015>;
reg_bypass_offset = <0x00000000>;
reg_bypass_shift = <0x00000018>;
reg_pulse_start_offset = <0x00000000>;
reg_pulse_start_shift = <0x00000017>;
reg_mode_offset = <0x00000000>;
reg_mode_shift = <0x00000016>;
reg_polarity_offset = <0x00000000>;
reg_polarity_shift = <0x00000014>;
reg_period_offset = <0x00000008>;
reg_period_shift = <0x00000010>;
reg_period_width = <0x00000010>;
reg_active_offset = <0x00000008>;
reg_active_shift = <0x00000000>;
reg_active_width = <0x00000010>;
reg_prescal_offset = <0x00000000>;
reg_prescal_shift = <0x0000000f>;
reg_prescal_width = <0x00000004>;
linux,phandle = <0x0000003b>;
phandle = <0x0000003b>;
};
deinterlace@01e70000 {
compatible = "allwinner,sunxi-deinterlace";
reg = <0x00000000 0x01e70000 0x00000000 0x00000080>;
interrupts = <0x00000021>;
clocks = <0x00000038 0x00000003>;
status = "okay";
};
csi_res@0x01cb0000 {
compatible = "allwinner,sunxi-csi";
reg = <0x00000000 0x01cb0000 0x00000000 0x00001000>;
clocks = <0x00000040 0x00000003 0x00000008>;
clocks-index = <0x00000000 0x00000001 0x00000002>;
status = "okay";
};
vfe@0 {
device_type = "csi0";
compatible = "allwinner,sunxi-vfe";
interrupts = <0x00000020>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0x00000041>;
pinctrl-1 = <0x00000042>;
csi_sel = <0x00000000>;
csi0_sensor_list = <0x00000000>;
csi0_mck = <0x00000024 0x00000004 0x0000000b 0x00000002 0x00000001 0x00000003 0x00000000>;
status = "okay";
dev@1 {
csi0_dev0_mname = "gc0308";
csi0_dev0_twi_addr = <0x00000042>;
csi0_dev0_twi_id = <0x00000000>;
csi0_dev0_pos = "rear";
csi0_dev0_isp_used = <0x00000000>;
csi0_dev0_fmt = <0x00000000>;
csi0_dev0_stby_mode = <0x00000000>;
csi0_dev0_vflip = <0x00000000>;
csi0_dev0_hflip = <0x00000000>;
csi0_dev0_iovdd = <0x00000000>;
csi0_dev0_iovdd_vol = <0x00000000>;
csi0_dev0_avdd = <0x00000000>;
csi0_dev0_avdd_vol = <0x00000000>;
csi0_dev0_dvdd = <0x00000000>;
csi0_dev0_dvdd_vol = <0x00000000>;
csi0_dev0_afvdd = <0x00000000>;
csi0_dev0_afvdd_vol = <0x00000000>;
csi0_dev0_power_en;
csi0_dev0_reset = <0x000007fc>;
csi0_dev0_pwdn;
csi0_dev0_flash_en;
csi0_dev0_flash_mode;
csi0_dev0_af_pwdn;
csi0_dev0_act_used = <0x00000000>;
csi0_dev0_act_name = <0x00000000>;
csi0_dev0_act_slave = <0x00000000>;
status = "okay";
};
};
usbc0@0 {
device_type = "usbc0";
compatible = "allwinner,sunxi-otg-manager";
usb_port_type = <0x00000000>;
usb_detect_type = <0x00000001>;
usb_detect_mode = <0x00000000>;
usb_drv_vbus_gpio = <0x000007ff>;
usb_host_init_state = <0x00000000>;
usb_regulator_io = "nocare";
usb_wakeup_suspend = <0x00000000>;
usb_luns = <0x00000003>;
usb_serial_unique = <0x00000000>;
usb_serial_number = "20080411";
rndis_wceis = <0x00000001>;
status = "okay";
usb_id_gpio;
usb_det_vbus_gpio;
usb_board_sel = <0x00000001>;
usb_regulator_vol = <0x00000000>;
};
udc-controller@0x01c13000 {
compatible = "allwinner,sunxi-udc";
reg = <0x00000000 0x01c13000 0x00000000 0x00001000 0x00000000 0x01c00000 0x00000000 0x00000100>;
interrupts = <0x0000001a>;
clocks = <0x00000043 0x00000044>;
status = "okay";
};
otghci0-controller@0x01c13000 {
compatible = "allwinner,sunxi-hcd0";
reg = <0x00000000 0x01c13000 0x00000000 0x00001000 0x00000000 0x01c00000 0x00000000 0x00000100>;
interrupts = <0x0000001a>;
clocks = <0x00000043 0x00000044>;
hci_ctrl_no = <0x00000000>;
status = "okay";
};
daudio@0x01c22000 {
compatible = "allwinner,sunxi-daudio";
reg = <0x00000000 0x01c22000 0x00000000 0x0000003c>;
clocks = <0x00000002 0x00000045>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0x00000046>;
pinctrl-1 = <0x00000047>;
word_select_size = <0x00000020>;
pcm_sync_period = <0x00000020>;
pcm_lsb_first = <0x00000000>;
over_sample_rate = <0x00000080>;
slot_width_select = <0x00000010>;
pcm_sync_type = <0x00000000>;
pcm_start_slot = <0x00000000>;
tx_data_mode = <0x00000000>;
rx_data_mode = <0x00000000>;
tdm_config = <0x00000001>;
tdm_num = <0x00000000>;
dmas = <0x00000025 0x00000000 0x0000000e 0x00000025 0x00000000 0x0000000e>;
dma-names = "rx-tx", "rx-tx";
status = "okay";
linux,phandle = <0x0000004e>;
phandle = <0x0000004e>;
};
spdif-controller@0x01c21400 {
compatible = "allwinner,sunxi-spdif";
reg = <0x00000000 0x01c21400 0x00000000 0x00000038>;
clocks = <0x00000002 0x00000048>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <0x00000049>;
pinctrl-1 = <0x0000004a>;
dmas = <0x00000025 0x00000000 0x00000001 0x00000025 0x00000000 0x00000001>;
status = "disabled";
linux,phandle = <0x0000004f>;
phandle = <0x0000004f>;
};
codec@0x01c23c00 {
compatible = "allwinner,sunxi-internal-codec";
reg = <0x00000000 0x01c23c00 0x00000000 0x0000009c>;
clocks = <0x00000002 0x0000004b>;
gpio_shdn = <0x00000000>;
headphonevol = <0x0000003b>;
spkervol = <0x0000001b>;
maingain = <0x00000004>;
hp_dirused = <0x00000000>;
pa_sleep_time = <0x0000015e>;
status = "okay";
linux,phandle = <0x0000004d>;
phandle = <0x0000004d>;
};
cpudai0-controller@0x01c22000 {
compatible = "allwinner,sunxi-internal-cpudai";
reg = <0x00000000 0x01c23c00 0x00000000 0x0000009c>;
clocks = <0x0000004b>;
dmas = <0x00000025 0x00000000 0x0000000c 0x00000025 0x00000000 0x0000000c>;
dma-names = "rx-tx", "rx-tx";
status = "okay";
linux,phandle = <0x0000004c>;
phandle = <0x0000004c>;
};
sound@0 {
compatible = "allwinner,sunxi-codec-machine";
sunxi,cpudai-controller = <0x0000004c>;
sunxi,audio-codec = <0x0000004d>;
hp_detect_case = <0x00000000>;
status = "okay";
};
sound@1 {
compatible = "allwinner,sunxi-daudio0-machine";
sunxi,daudio0-controller = <0x0000004e>;
sunxi,snddaudio-codec = "nau8540.2-001d";
sunxi,snddaudio-codec-dai = "nau8540-hifi";
status = "okay";
};
sound@2 {
compatible = "allwinner,sunxi-spdif-machine";
sunxi,spdif-controller = <0x0000004f>;
status = "okay";
};
wlan {
compatible = "allwinner,sunxi-wlan";
wlan-reset-pin = <0x00000024 0x00000003 0x00000010 0x00000000 0x00000001 0x00000001 0x00000001>;
wlan-irq-pin = <0x00000024 0x00000003 0x0000000d 0x00000000 0x00000006 0x00000001 0x00000001>;
wlan_busnum = <0x00000000>;
status = "okay";
device_type = "wlan";
wlan_board_sel = <0x00000001>;
wlan_hostwake = <0x00000024 0x00000004 0x00000003 0x00000006 0xffffffff 0xffffffff 0x00000001>;
wlan_regon = <0x00000024 0x00000004 0x00000002 0x00000001 0x00000001 0x00000003 0x00000000>;
};
vdevice@0 {
compatible = "allwinner,sun3i-vdevice";
device_type = "Vdevice";
pinctrl-names = "default";
test-gpios = <0x00000024 0x00000003 0x00000001 0x00000001 0x00000002 0x00000002 0x00000001>;
status = "disabled";
pinctrl-0 = <0x00000066>;
};
keyboard {
compatible = "allwinner,keyboard_2000mv";
reg = <0x00000000 0x01c23400 0x00000000 0x00000400>;
interrupts = <0x00000016>;
status = "okay";
pwr-key = <0x00000024 0x00000003 0x0000000e 0x00000000 0x00000006 0x00000001 0x00000000>;
usb-sts = <0x00000024 0x00000003 0x0000000a 0x00000000 0x00000006 0x00000001 0x00000000>;
key_cnt = <0x00000006>;
key0 = <0x000000f8 0x00000073>;
key1 = <0x00000193 0x00000072>;
key2 = <0x0000024d 0x0000008b>;
key3 = <0x00000307 0x0000001c>;
key4 = <0x000003c1 0x00000066>;
key5 = <0x000004b9 0x00000067>;
};
pwr_off_ctrl {
compatible = "allwinner,pwr_off_ctrl";
status = "okay";
};
battery {
compatible = "allwinner,LRADC_battery";
reg = <0x00000000 0x01c23400 0x00000000 0x00000400>;
interrupts = <0x00000016>;
status = "okay";
};
wirelesskey@0 {
compatible = "allwinner,wireless-key";
gpio-key = <0x00000024 0x00000004 0x00000003 0x00000000 0x00000006 0x00000001 0x00000001>;
debounce = <0x00000000>;
status = "disabled";
};
tp_key@0x01c24800 {
compatible = "allwinner,tp_key";
reg = <0x00000000 0x01c24800 0x00000000 0x000000f0>;
interrupts = <0x00000014>;
key_cnt = <0x0000000a>;
key1 = <0x00000118 0x00000073>;
key2 = <0x00000230 0x00000072>;
key3 = <0x00000366 0x00000077>;
key4 = <0x0000048f 0x0000001c>;
key5 = <0x000005b4 0x00000175>;
key6 = <0x000006cd 0x00000066>;
key7 = <0x0000082f 0x00000000>;
key8 = <0x0000095f 0x00000000>;
key9 = <0x00000a78 0x00000000>;
key10 = <0x00000b87 0x00000000>;
status = "okay";
};
product {
device_type = "product";
version = "100";
machine = "evb";
};
platform {
device_type = "platform";
eraseflag = <0x00000001>;
debug_mode = <0x00000001>;
};
target {
device_type = "target";
boot_clock = <0x00000198>;
storage_type = <0x00000005>;
burn_key = <0x00000001>;
};
norflash {
device_type = "norflash";
size = <0x00000010>;
};
power_sply {
device_type = "power_sply";
dcdc1_vol = <0x00000bb8>;
dcdc2_vol = <0x000004b0>;
dcdc3_vol = <0x000004b0>;
dcdc4_vol = <0x000004b0>;
dcdc5_vol = <0x000005dc>;
aldo2_vol = <0x00000708>;
aldo3_vol = <0x00000bb8>;
};
pwr_ctrl {
device_type = "pwr_ctrl";
pwroff_gpio_is_irq = <0x00000000>;
};
card_boot {
device_type = "card_boot";
logical_start = <0x0000a000>;
sprite_gpio0;
};
pm_para {
device_type = "pm_para";
standby_mode = <0x00000001>;
};
card0_boot_para {
device_type = "card0_boot_para";
card_ctrl = <0x00000000>;
card_high_speed = <0x00000001>;
card_line = <0x00000004>;
pinctrl-0 = <0x00000051>;
};
card2_boot_para {
device_type = "card2_boot_para";
card_ctrl = <0x00000002>;
card_high_speed = <0x00000001>;
card_line = <0x00000008>;
pinctrl-0 = <0x00000052>;
};
card1_boot_para {
device_type = "card1_boot_para";
card_ctrl = <0x00000001>;
card_high_speed = <0x00000001>;
card_line = <0x00000001>;
pinctrl-0 = <0x00000053>;
};
twi_para {
device_type = "twi_para";
twi_port = <0x00000000>;
pinctrl-0 = <0x00000054>;
};
uart_para {
device_type = "uart_para";
uart_debug_port = <0x00000001>;
pinctrl-0 = <0x00000055>;
};
jtag_para {
device_type = "jtag_para";
jtag_enable = <0x00000000>;
pinctrl-0 = <0x00000056>;
};
dram {
device_type = "dram";
dram_clk = <0x000001e0>;
dram_type = <0x00000003>;
dram_zq = <0x000077bb>;
dram_odt_en = <0x00000001>;
dram_para1 = <0x004319f4>;
dram_para2 = <0x00000005>;
dram_mr0 = <0x00000620>;
dram_mr1 = <0x00000000>;
dram_mr2 = <0x00000008>;
dram_mr3 = <0x00000000>;
dram_tpr0 = <0x06141b10>;
dram_tpr1 = <0x00040416>;
dram_tpr2 = <0x03030306>;
dram_tpr3 = <0x00002006>;
dram_tpr4 = <0x05040405>;
dram_tpr5 = <0x05050302>;
dram_tpr6 = <0x90006644>;
dram_tpr7 = <0x42c21590>;
dram_tpr8 = <0xd05612c0>;
dram_tpr9 = <0x00083def>;
dram_tpr10 = <0x18082356>;
dram_tpr11 = <0x32034156>;
dram_tpr12 = <0x00000000>;
dram_tpr13 = <0x00000000>;
};
rtp_para {
device_type = "rtp_para";
rtp_used = <0x00000000>;
rtp_screen_size = <0x00000005>;
rtp_regidity_level = <0x00000005>;
rtp_press_threshold_enable = <0x00000000>;
rtp_press_threshold = <0x00001f40>;
rtp_sensitive_level = <0x0000000f>;
rtp_exchange_x_y_flag = <0x00000000>;
};
ctp {
device_type = "ctp";
status = "okay";
ctp_twi_id = <0x00000000>;
ctp_twi_addr = <0x00000048>;
ctp_screen_max_x = <0x00000320>;
ctp_screen_max_y = <0x000001e0>;
ctp_revert_x_flag = <0x00000001>;
ctp_revert_y_flag = <0x00000001>;
ctp_exchange_x_y_flag = <0x00000001>;
};
tkey_para {
device_type = "tkey_para";
tkey_used = <0x00000000>;
tkey_twi_id;
tkey_twi_addr;
tkey_int;
};
motor_para {
device_type = "motor_para";
motor_used = <0x00000000>;
};
nand0 {
device_type = "nand0";
nand0_support_2ch = <0x00000000>;
status = "disabled";
pinctrl-0 = <0x00000060 0x00000061>;
nand0_regulator1 = "vcc-nand";
nand0_regulator2 = "none";
nand0_cache_level = <0x55aaaa55>;
nand0_flush_cache_num = <0x55aaaa55>;
nand0_capacity_level = <0x55aaaa55>;
nand0_id_number_ctl = <0x55aaaa55>;
nand0_print_level = <0x55aaaa55>;
nand0_p0 = <0x55aaaa55>;
nand0_p1 = <0x55aaaa55>;
nand0_p2 = <0x55aaaa55>;
nand0_p3 = <0x55aaaa55>;
};
pwm0_para {
device_type = "pwm0_para";
pwm_used = <0x00000000>;
};
pwm1_para {
device_type = "pwm1_para";
pwm_used = <0x00000000>;
};
vip0 {
device_type = "vip0";
status = "disabled";
vip0_mname = "gc0308";
vip0_twi_addr = <0x00000042>;
vip0_twi_id = <0x00000000>;
vip0_isp_used = <0x00000000>;
vip0_fmt = <0x00000000>;
vip0_stby_mode = <0x00000000>;
vip0_vflip = <0x00000000>;
vip0_hflip = <0x00000000>;
vip0_iovdd;
vip0_iovdd_vol = <0x002ab980>;
vip0_avdd;
vip0_avdd_vol = <0x002ab980>;
vip0_dvdd;
vip0_dvdd_vol = <0x0016e360>;
vip0_afvdd;
vip0_afvdd_vol = <0x002ab980>;
vip0_power_en;
vip0_reset = <0x000007fc>;
vip0_pwdn;
vip0_flash_en;
vip0_flash_mode;
vip0_af_pwdn;
};
tvout_para {
device_type = "tvout_para";
tvout_used;
tvout_channel_num;
tv_en;
};
tvin_para {
device_type = "tvin_para";
tvin_used;
tvin_channel_num;
};
di {
device_type = "di";
status = "disabled";
};
smc {
device_type = "smc";
smc_used;
smc_rst;
smc_vppen;
smc_vppp;
smc_det;
smc_vccen;
smc_sck;
smc_sda;
};
gsensor_para {
device_type = "gsensor_para";
gsensor_used = <0x00000000>;
gsensor_twi_id = <0x00000002>;
gsensor_twi_addr = <0x00000018>;
gsensor_int1 = <0x00000024 0x00000000 0x00000009 0x00000006 0x00000001 0xffffffff 0xffffffff>;
gsensor_int2;
};
gps_para {
device_type = "gps_para";
};
gy_para {
device_type = "gy_para";
gy_used = <0x00000000>;
gy_twi_id = <0x00000002>;
gy_twi_addr = <0x0000006a>;
gy_int1 = <0x00000024 0x00000000 0x0000000a 0x00000006 0x00000001 0xffffffff 0xffffffff>;
gy_int2;
};
ls_para {
device_type = "ls_para";
ls_used = <0x00000000>;
ls_twi_id = <0x00000002>;
ls_twi_addr = <0x00000023>;
ls_int = <0x00000024 0x00000000 0x0000000c 0x00000006 0x00000001 0xffffffff 0xffffffff>;
};
compass_para {
device_type = "compass_para";
compass_used = <0x00000000>;
compass_twi_id = <0x00000002>;
compass_twi_addr = <0x0000000d>;
compass_int = <0x00000024 0x00000000 0x0000000b 0x00000006 0x00000001 0xffffffff 0xffffffff>;
};
bt_para {
device_type = "bt_para";
bt_used;
bt_uart_id;
bt_wakeup;
bt_gpio;
bt_rst;
};
audiospdif {
device_type = "audiospdif";
status = "disabled";
};
spdif_machine {
device_type = "spdif_machine";
status = "disabled";
};
audiohdmi {
device_type = "audiohdmi";
status = "disabled";
};
hdmi_machine {
device_type = "hdmi_machine";
status = "disabled";
};
pmu0 {
device_type = "pmu0";
status = "disabled";
pmu_id = <0x00000006>;
pmu_twi_addr = <0x00000034>;
pmu_twi_id = <0x00000001>;
pmu_irq_id = <0x00000000>;
pmu_chg_ic_temp = <0x00000000>;
pmu_battery_rdc = <0x00000064>;
pmu_battery_cap = <0x00000000>;
pmu_runtime_chgcur = <0x000001c2>;
pmu_suspend_chgcur = <0x000005dc>;
pmu_shutdown_chgcur = <0x000005dc>;
pmu_init_chgvol = <0x00001068>;
pmu_ac_vol = <0x00000fa0>;
pmu_ac_cur = <0x00000000>;
pmu_usbpc_vol = <0x00001130>;
pmu_usbpc_cur = <0x000001f4>;
pmu_battery_warning_level1 = <0x0000000f>;
pmu_battery_warning_level2 = <0x00000000>;
pmu_chgled_func = <0x00000000>;
pmu_chgled_type = <0x00000000>;
pmu_bat_para1 = <0x00000000>;
pmu_bat_para2 = <0x00000000>;
pmu_bat_para3 = <0x00000000>;
pmu_bat_para4 = <0x00000000>;
pmu_bat_para5 = <0x00000000>;
pmu_bat_para6 = <0x00000000>;
pmu_bat_para7 = <0x00000000>;
pmu_bat_para8 = <0x00000000>;
pmu_bat_para9 = <0x00000005>;
pmu_bat_para10 = <0x00000008>;
pmu_bat_para11 = <0x00000009>;
pmu_bat_para12 = <0x0000000a>;
pmu_bat_para13 = <0x0000000d>;
pmu_bat_para14 = <0x00000010>;
pmu_bat_para15 = <0x00000014>;
pmu_bat_para16 = <0x00000021>;
pmu_bat_para17 = <0x00000029>;
pmu_bat_para18 = <0x0000002e>;
pmu_bat_para19 = <0x00000032>;
pmu_bat_para20 = <0x00000035>;
pmu_bat_para21 = <0x00000039>;
pmu_bat_para22 = <0x0000003d>;
pmu_bat_para23 = <0x00000043>;
pmu_bat_para24 = <0x00000049>;
pmu_bat_para25 = <0x0000004e>;
pmu_bat_para26 = <0x00000054>;
pmu_bat_para27 = <0x00000058>;
pmu_bat_para28 = <0x0000005c>;
pmu_bat_para29 = <0x0000005d>;
pmu_bat_para30 = <0x0000005e>;
pmu_bat_para31 = <0x0000005f>;
pmu_bat_para32 = <0x00000064>;
pmu_bat_temp_enable = <0x00000000>;
pmu_bat_charge_ltf = <0x000008d5>;
pmu_bat_charge_htf = <0x00000184>;
pmu_bat_shutdown_ltf = <0x00000c80>;
pmu_bat_shutdown_htf = <0x000000ed>;
pmu_bat_temp_para1 = <0x00001d2a>;
pmu_bat_temp_para2 = <0x00001180>;
pmu_bat_temp_para3 = <0x00000dbe>;
pmu_bat_temp_para4 = <0x00000ae2>;
pmu_bat_temp_para5 = <0x000008af>;
pmu_bat_temp_para6 = <0x000006fc>;
pmu_bat_temp_para7 = <0x000005a8>;
pmu_bat_temp_para8 = <0x000003c9>;
pmu_bat_temp_para9 = <0x00000298>;
pmu_bat_temp_para10 = <0x000001d2>;
pmu_bat_temp_para11 = <0x00000189>;
pmu_bat_temp_para12 = <0x0000014d>;
pmu_bat_temp_para13 = <0x0000011b>;
pmu_bat_temp_para14 = <0x000000f2>;
pmu_bat_temp_para15 = <0x000000b3>;
pmu_bat_temp_para16 = <0x00000086>;
pmu_powkey_off_time = <0x00001770>;
pmu_powkey_off_func = <0x00000000>;
pmu_powkey_off_en = <0x00000001>;
pmu_powkey_long_time = <0x000005dc>;
pmu_powkey_on_time = <0x000003e8>;
};
pmu0_regu {
device_type = "pmu0_regu";
regulator_count = <0x00000017>;
regulator1 = "axp28_rtc";
regulator2 = "axp28_aldo1";
regulator3 = "axp28_aldo2";
regulator4 = "axp28_aldo3";
regulator5 = "axp28_dldo1";
regulator6 = "axp28_dldo2";
regulator7 = "axp28_dldo3";
regulator8 = "axp28_dldo4";
regulator9 = "axp28_eldo1";
regulator0 = "axp28_eldo2";
regulator11 = "axp28_eldo3";
regulator12 = "axp28_fldo1";
regulator13 = "axp28_fldo2";
regulator14 = "axp28_dcdc1";
regulator15 = "axp28_dcdc2";
regulator16 = "axp28_dcdc3";
regulator17 = "axp28_dcdc4";
regulator18 = "axp28_dcdc5";
regulator19 = "axp28_dcdc6";
regulator20 = "axp28_dcdc7";
regulator21 = "axp28_gpio0ldo";
regulator22 = "axp28_gpio1ldo";
};
dvfs_table {
device_type = "dvfs_table";
max_freq = <0x47868c00>;
min_freq = <0x1c9c3800>;
LV_count = <0x00000008>;
LV1_freq = <0x5b8d8000>;
LV1_volt = <0x000005dc>;
LV2_freq = <0x501bd000>;
LV2_volt = <0x000005b4>;
LV3_freq = <0x47868c00>;
LV3_volt = <0x00000528>;
LV4_freq = <0x3c14dc00>;
LV4_volt = <0x000004b0>;
LV5_freq = <0x30a32c00>;
LV5_volt = <0x0000044c>;
LV6_freq = <0x269fb200>;
LV6_volt = <0x00000410>;
LV7_freq = <0x00000000>;
LV7_volt = <0x00000410>;
LV8_freq = <0x00000000>;
LV8_volt = <0x00000410>;
};
fel_key {
device_type = "fel_key";
keyen_flag = <0x00000000>;
fel_key_max = <0x000001aa>;
fel_key_min = <0x00000100>;
};
partitions {
device_type = "partitions";
bootlogo {
device_type = "bootlogo";
offset = <0x00002000>;
size = <0x00000400>;
};
env {
device_type = "env";
offset = <0x00002400>;
size = <0x00000200>;
};
boot {
device_type = "boot";
offset = <0x00002600>;
size = <0x00003000>;
};
rootfs {
device_type = "rootfs";
offset = <0x00005600>;
size = <0x00007800>;
};
rootfs_data {
device_type = "rootfs_data";
offset = <0x0000ce00>;
size = <0x00007800>;
};
recovery {
device_type = "recovery";
offset = <0x00014600>;
size = <0x00004000>;
};
misc {
device_type = "misc";
offset = <0x00018600>;
size = <0x00000200>;
};
private {
device_type = "private";
offset = <0x00018800>;
size = <0x00000200>;
};
UDISK {
device_type = "UDISK";
offset = <0x00018a00>;
size = <0x00000000>;
};
};
};
aliases {
serial0 = "/soc/uart@01c25000", "/soc/uart@01c25000";
serial1 = "/soc/uart@01c25400", "/soc/uart@01c25400";
serial2 = "/soc/uart@01c25800", "/soc/uart@01c25800";
twi0 = "/soc/twi@0x01c27000", "/soc/twi@0x01c27000";
twi1 = "/soc/twi@0x01c27400", "/soc/twi@0x01c27400";
twi2 = "/soc/twi@0x01c27800", "/soc/twi@0x01c27800";
spi0 = "/soc/spi@01c05000", "/soc/spi@01c05000";
spinand = "/soc/spinand@01c05000", "/soc/spinand@01c05000";
spi1 = "/soc/spi@01c06000", "/soc/spi@01c06000";
mmc0 = "/soc/sdmmc@01c0f000", "/soc/sdmmc@01c0f000";
mmc1 = "/soc/sdmmc@01c10000", "/soc/sdmmc@01c10000";
global_timer0 = "/soc/timer@1c20c00", "/soc/timer@1c20c00";
csi_res0 = "/soc/csi_res@0x01cb0000", "/soc/csi_res@0x01cb0000";
vfe0 = "/soc/vfe@0", "/soc/vfe@0";
disp = "/soc/disp@0x01e00000", "/soc/disp@0x01e00000";
lcd0 = "/soc/lcd0@01c0c000", "/soc/lcd0@01c0c000";
tvd = "/soc/tvd0@01c0b000", "/soc/tvd0@01c0b000";
pwm = "/soc/pwm@01c21000", "/soc/pwm@01c21000";
pwm0 = "/soc/pwm0@01c21000", "/soc/pwm0@01c21000";
pwm1 = "/soc/pwm1@01c21000", "/soc/pwm1@01c21000";
};
chosen {
bootargs = "earlyprintk=sunxi-uart,0x01c25000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init";
linux,initrd-start = <0x00000000 0x00000000>;
linux,initrd-end = <0x00000000 0x00000000>;
};
cpus {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
cpu@0 {
device_type = "cpu";
compatible = "arm,arm926ejs";
reg = <0x00000000>;
};
};
sram_ctrl {
device_type = "sram_ctrl";
compatible = "allwinner,sram_ctrl";
reg = <0x00000000 0x01c00000 0x00000000 0x00000100>;
};
ion {
compatible = "allwinner,sunxi-ion";
system {
type = <0x00000000>;
};
cma {
type = <0x00000004>;
};
system_contig {
type = <0x00000001>;
};
};
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0x00000000 0x02000000>;
};
interrupt-controller@01c20400 {
compatible = "allwinner,sun3i-intc";
#interrupt-cells = <0x00000001>;
#address-cells = <0x00000000>;
device_type = "intc";
interrupt-controller;
reg = <0x00000000 0x01c20400 0x00000000 0x00001000>;
linux,phandle = <0x00000001>;
phandle = <0x00000001>;
};
watchdog@01c20ca0 {
compatible = "allwinner,sun3i-wdt";
reg = <0x00000000 0x01c20ca0 0x00000000 0x00000018>;
};
};
离线
补充一些有用的信息:
1,供电12V
2,调试串口uart1
3,ssd2828使用spi1来初始化
4,一些gpio
GPIOs 0-191, platform/pio, pio:
gpio-1 (lcd_reset ) out hi
gpio-130 (wlan_regon ) out hi
gpio-131 (wlan_hostwake ) in lo
gpio-133 (? ) out hi
platform/1c21000.pwm, 2 PWM devices
pwm-0 (lcd ): requested enabled
pwm-1 ((null) ):
5,分区表
-total partitions:9-
-name- -start- -size-
bootlogo : 400000 80000
env : 480000 40000
boot : 4c0000 600000
rootfs : ac0000 f00000
rootfs_data : 19c0000 f00000
recovery : 28c0000 800000
misc : 30c0000 40000
private : 3100000 40000
UDISK : 3140000 0
6,LCD屏参,只跑38帧,估计怕性能不够吧
[ 0.223950] ***
[ 0.223961] *** Interface:
[ 0.223972] *** Parallel HV Panel
[ 0.223983] *** Lcd Frm to RGB666
[ 0.223992] ***
[ 0.224002] *** Timing:
[ 0.224013] *** lcd_x: 800
[ 0.224025] *** lcd_y: 1280
[ 0.224036] *** lcd_ht: 1220
[ 0.224047] *** lcd_hbp: 70
[ 0.224058] *** lcd_vt: 1315
[ 0.224069] *** lcd_vbp: 22
[ 0.224081] *** lcd_hspw: 20
[ 0.224092] *** lcd_vspw: 6
[ 0.224103] *** lcd_frame_frq: 38Hz
[ 0.224112] ***
[ 0.224125] *** WRN03: Recommend "lcd_dclk_frq = 96"
[ 0.224135] ***
[ 0.224145] *** LCD Panel Parameter Check End
7.内核入口点0x80008000
8,设备树内存地址0x81000000
9,sd2828 RGB转MIPI初始化代码,可以从内核里逆向,或者直接上逻辑分析仪
[ 2.944530] ssd2828 spi1.0: ssd2828_probe
[ 2.949253] ssd2828 spi1.0: reg_value = 0x2828
[ 2.954267] ssd2828 spi1.0: ssd2828_init START
[ 3.312945] ssd2828 spi1.0: ssd2828_init SUCCESS!
10, pinctrl-maps
Pinctrl maps:
device twi0
state default
type MUX_GROUP (2)
controlling device pio
group PD12
function twi0
device twi0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PD12
config 00000000
config 00000000
config 00000000
device twi0
state default
type MUX_GROUP (2)
controlling device pio
group PD0
function twi0
device twi0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PD0
config 00000000
config 00000000
config 00000000
device twi0
state sleep
type MUX_GROUP (2)
controlling device pio
group PD12
function io_disabled
device twi0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PD12
config 00140009
config 00000005
device twi0
state sleep
type MUX_GROUP (2)
controlling device pio
group PD0
function io_disabled
device twi0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PD0
config 00140009
config 00000005
device uart1
state default
type MUX_GROUP (2)
controlling device pio
group PA2
function uart1
device uart1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PA2
config 00000003
config 00000000
config 00000000
device uart1
state default
type MUX_GROUP (2)
controlling device pio
group PA3
function uart1
device uart1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PA3
config 00000003
config 00000000
config 00000000
device uart1
state sleep
type MUX_GROUP (2)
controlling device pio
group PA3
function io_disabled
device uart1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PA3
config 00140009
config 00000003
device uart1
state sleep
type MUX_GROUP (2)
controlling device pio
group PA2
function io_disabled
device uart1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PA2
config 00140009
config 00000003
device spinand
state default
type MUX_GROUP (2)
controlling device pio
group PC1
function spi0
device spinand
state default
type CONFIGS_GROUP (4)
controlling device pio
group PC1
config 00000003
config 00000000
config 00000000
device spinand
state default
type MUX_GROUP (2)
controlling device pio
group PC0
function spi0
device spinand
state default
type CONFIGS_GROUP (4)
controlling device pio
group PC0
config 00000000
config 00000000
config 00000000
device spinand
state default
type MUX_GROUP (2)
controlling device pio
group PC3
function spi0
device spinand
state default
type CONFIGS_GROUP (4)
controlling device pio
group PC3
config 00000000
config 00000000
config 00000000
device spinand
state default
type MUX_GROUP (2)
controlling device pio
group PC2
function spi0
device spinand
state default
type CONFIGS_GROUP (4)
controlling device pio
group PC2
config 00000000
config 00000000
config 00000000
device spinand
state sleep
type MUX_GROUP (2)
controlling device pio
group PC0
function io_disabled
device spinand
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PC0
config 00140009
config 00000005
device spinand
state sleep
type MUX_GROUP (2)
controlling device pio
group PC1
function io_disabled
device spinand
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PC1
config 00140009
config 00000005
device spinand
state sleep
type MUX_GROUP (2)
controlling device pio
group PC2
function io_disabled
device spinand
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PC2
config 00140009
config 00000005
device spinand
state sleep
type MUX_GROUP (2)
controlling device pio
group PC3
function io_disabled
device spinand
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PC3
config 00140009
config 00000005
device spi1
state default
type MUX_GROUP (2)
controlling device pio
group PE7
function spi1
device spi1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PE7
config 00000003
config 00000000
config 00000000
device spi1
state default
type MUX_GROUP (2)
controlling device pio
group PE9
function spi1
device spi1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PE9
config 00000000
config 00000000
config 00000000
device spi1
state default
type MUX_GROUP (2)
controlling device pio
group PE8
function spi1
device spi1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PE8
config 00000000
config 00000000
config 00000000
device spi1
state default
type MUX_GROUP (2)
controlling device pio
group PE10
function spi1
device spi1
state default
type CONFIGS_GROUP (4)
controlling device pio
group PE10
config 00000000
config 00000000
config 00000000
device spi1
state sleep
type MUX_GROUP (2)
controlling device pio
group PE7
function io_disabled
device spi1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PE7
config 00140009
config 00000005
device spi1
state sleep
type MUX_GROUP (2)
controlling device pio
group PE8
function io_disabled
device spi1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PE8
config 00140009
config 00000005
device spi1
state sleep
type MUX_GROUP (2)
controlling device pio
group PE9
function io_disabled
device spi1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PE9
config 00140009
config 00000005
device spi1
state sleep
type MUX_GROUP (2)
controlling device pio
group PE10
function io_disabled
device spi1
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PE10
config 00140009
config 00000005
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF0
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF0
config 00280009
config 00000003
config 00000000
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF1
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF1
config 00280009
config 00000003
config 00000000
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF2
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF2
config 00280009
config 00000003
config 00000000
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF3
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF3
config 00280009
config 00000003
config 00000000
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF4
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF4
config 00280009
config 00000003
config 00000000
device sdc0
state default
type MUX_GROUP (2)
controlling device pio
group PF5
function sdc0
device sdc0
state default
type CONFIGS_GROUP (4)
controlling device pio
group PF5
config 00280009
config 00000003
config 00000000
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF0
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF0
config 00140009
config 00000003
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF1
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF1
config 00140009
config 00000003
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF2
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF2
config 00140009
config 00000003
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF3
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF3
config 00140009
config 00000003
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF4
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF4
config 00140009
config 00000003
device sdc0
state sleep
type MUX_GROUP (2)
controlling device pio
group PF5
function io_disabled
device sdc0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PF5
config 00140009
config 00000003
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD1
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD1
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD2
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD2
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD3
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD3
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD4
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD4
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD5
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD5
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD6
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD6
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD7
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD7
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD8
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD8
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD9
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD9
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD10
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD10
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD11
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD11
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD13
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD13
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD14
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD14
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD15
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD15
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD16
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD16
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD17
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD17
config 00000005
config 00000000
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD18
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD18
config 00280009
config 00000005
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD19
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD19
config 00280009
config 00000005
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD20
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD20
config 00280009
config 00000005
config 00000000
device lcd0
state active
type MUX_GROUP (2)
controlling device pio
group PD21
function lcd0
device lcd0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PD21
config 00280009
config 00000005
config 00000000
device pwm0.0
state active
type MUX_GROUP (2)
controlling device pio
group PE12
function pwm0
device pwm0.0
state active
type CONFIGS_GROUP (4)
controlling device pio
group PE12
config 00140009
config 00000005
device pwm0.0
state sleep
type MUX_GROUP (2)
controlling device pio
group PE12
function io_disabled
device pwm0.0
state sleep
type CONFIGS_GROUP (4)
controlling device pio
group PE12
config 00140009
config 00000005
离线
11, SPI NAND Flash 128MB
xfel spinand
Found spi nand flash 'MX35LF1GE4AB' with 134217728 bytes
12,上传一个dump固件,从0地址dump到0x03140000,后面UDISK分区没必要dump了。
blozi_0x0_0x3140000.7z
花了几个小时的初步研究成果,先贴出来,期待大家再接再厉!
最近编辑记录 xboot (2024-09-26 01:08:35)
离线
RGB转MIPI初始化,我手写了一个竟然花屏,不太懂
离线
根据拆解的图片看到,板子没有过多的外设可以玩
硬件信息:
CPU:F1C200S
FLASH:1Gbit SPI NAND
LCD:1280X800 默认竖屏
WIFI:XR819
供电:供电为12V,通过USB接口供电,因此接到电脑上或者充电器时5V供电不太稳,会闪烁或者重启或者根本启动不了,解决方法是电源单独供。
由于并无太多外设需要驱动,本来的系统已经能使用对应的外设,所以不太需要拆开外壳只是改动下系统里面的一些程序达到满足自己需求的目的。
所以个人魔改的思路如下:
1、干掉原来的应用
通过查看正在运行的进程,能很容易的知道自带的应用程序进程是 bloziplayer
通过分析系统的自启动脚本等文件,发现应用是在login的时候,在/etc/profile里面启动的,信息如下:
[ -n "$FAILSAFE" ] || {
for FILE in /etc/profile.d/*.sh; do
[ -e "$FILE" ] && . "$FILE"
done
unset FILE
}
脚本最终启动了 /etc/profile.d/bloziplayer.sh
因此,根据自己的需求修改对应的脚本可以启动自己的应用,或者直接将/usr/bin/bloziplayer替换为自己的应用
PS:由于上面这个脚本会在每次login的时候调用,因此在杀掉应用后,如果通过按adb/telnet等方式进入shell会启动应用,因此这部分根据自己需求更改。
2、补齐系统内缺失的组件
【交叉编译busybox】
busybox下载链接:https://busybox.net/downloads/
编译方法:
(1)根据需求下载对应版本,解压,进入目录。如:tar -xvf busybox-1.36.1.tar.bz2
(2)make menuconfig 按需求配置开启或关闭对应组件
(3)make ARCH=arm CROSS_COMPILE=你的工具链目录/arm-openwrt-linux- -jx(x是CPU核心,加快编译速度)
(4)make install(完成后,可执行文件和对应命令的链接都在_install目录下)
(5)可以只把 _install/bin/busybox 拷贝(adb push)到板子上,chmod +x添加执行权限后,运行一下看看是否正常运行。运行交叉编译后的busybox,如(/mnt/UDISK/busybox ls)
(6)把_install里面的内容都打包,然后复制到根目录,解压覆盖以前的busybox和命令链接
我编译好的busybox:busybox v1.36.1.tar.gz
【telnetd】
每次通过连接USB来操作屏不方便,所以建议开启telnetd来实现远程登陆
可以交叉编译mini_telnetd或者重新交叉编译busybox开启需要的功能来实现【建议后者,因为可以同时实现需要的其它功能】
开启了telnetd后,可以在/etc/init.d/rc.final 最后添加 telnetd & 来开机自动启动服务
【wget/curl】
系统默认只有wget,且不支持https,可以在交叉编译busybox的时候,重新配置下wget,使其支持https。
curl交叉编译自行百度,所有的交叉编译都大同小异,curl支持https需要依赖openssl库
使用wget可以从网上获取图片,比如bing的每日壁纸 https://s.cn.bing.net/HPImageArchive.aspx?format=js&idx=0&n=1
wget "https://s.cn.bing.net//th?id=OHR.LittleToucanet_ZH-CN2910262009_1920x1080.jpg" -O bing.jpg
fbviewer /mnt/UDISK/bing.jpg
【ntpd】
获取网络时间
创建ntp配置 vim /etc/ntp.conf 增加内容 server cn.ntp.org.cn iburst
添加开机启动 vim /etc/init.d/rc.final 最后添加 ntpd -q &
【其它需要的内容自行在busybox开启】
3、交叉编译自己的应用
交叉编译工具链如下:
toolchain.tar.gz
Linux的LVGL如下:
https://github.com/lvgl/lv_port_linux
设置CMakeLists.txt里面的编译器路径:SET(CMAKE_C_COMPILER "你解压的路径/toolchain/bin/arm-openwrt-linux-gcc")
如果上面的附件下载要积分,可以加我QQ 137333287发你
最近编辑记录 18578292200 (2024-09-26 22:05:38)
离线
18578292200 说:liangrushui 说:@18578292200
请问这个应用时自带的还是你编写然后下载进去的?是自己写的,我放了下载链接
能看一下我的问题吗?连接wifi的问题,在楼上。
ps 看看是否有多个 wpa_supplicant启动
我之前这边有2个进程:
153 root 1484 S wpa_supplicant -iwlan0 -Dnl80211 -c/etc/wifi/wpa_sup
160 root 1484 S wpa_supplicant -Dnl80211 -i wlan0 -c /etc/wpa_suppli
如果有2个的话,修改下 /etc/init.d/rc.final
屏蔽这行: wpa_supplicant -Dnl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
然后重启一下
手动连接wifi 还可以用这个命令:
wifi_connect_ap_test ssid password
离线
@18578292200
我擦,这样确实可以连接wifi了,但我修改好之后无法开机了。
一直停在blozi的logo上,一开始怀疑usb口供电不行。
但是插在充电头上都不行,一样。。。
离线
上传一个逻辑分析仪抓的SPI初始化数据,金沙滩逻辑分析仪软件可以打开。
ssd2828.rar
数据如下,24bit,三线SPI:
/*CS 28.345us*/
/*CLK 25MHz*/
write_hw_register(0x70,0x00,0xB0);
read_hw_register(0x73,0x00,0x00);//返回0x28,0x28
delay_us(10000);//10ms
write_hw_register(0x70,0x00,0xB1);
write_hw_register(0x72,0x06,0x14);
write_hw_register(0x70,0x00,0xB2);
write_hw_register(0x72,0x16,0x46);
write_hw_register(0x70,0x00,0xB3);
write_hw_register(0x72,0x10,0x46);
write_hw_register(0x70,0x00,0xB4);
write_hw_register(0x72,0x03,0x20);
write_hw_register(0x70,0x00,0xB5);
write_hw_register(0x72,0x05,0x00);
write_hw_register(0x70,0x00,0xB6);
write_hw_register(0x72,0xA0,0x09);
write_hw_register(0x70,0x00,0xDB);
write_hw_register(0x72,0x00,0x98);
write_hw_register(0x70,0x00,0xDE);
write_hw_register(0x72,0x00,0x03);
write_hw_register(0x70,0x00,0xB7);
write_hw_register(0x72,0x03,0x02);
write_hw_register(0x70,0x00,0xBA);
write_hw_register(0x72,0xC4,0x5E);
write_hw_register(0x70,0x00,0xB8);
write_hw_register(0x72,0x00,0x00);
write_hw_register(0x70,0x00,0xBB);
write_hw_register(0x72,0x00,0x07);
write_hw_register(0x70,0x00,0xB9);
write_hw_register(0x72,0x00,0x01);
delay_us(500);//500us
write_hw_register(0x70,0x00,0xBC);
write_hw_register(0x72,0x00,0x01);
write_hw_register(0x70,0x00,0xBF);
write_hw_register(0x72,0x00,0x11);
delay_us(150000);//150ms
write_hw_register(0x70,0x00,0xBC);
write_hw_register(0x72,0x00,0x01);
write_hw_register(0x70,0x00,0xBF);
write_hw_register(0x72,0x00,0x29);
delay_us(200000);//200ms
write_hw_register(0x70,0x00,0xB7);
write_hw_register(0x72,0x07,0x02);
write_hw_register(0x70,0x00,0xC0);
write_hw_register(0x72,0x00,0x00);
write_hw_register(0x70,0x00,0xBC);
write_hw_register(0x72,0x00,0x04);
write_hw_register(0x70,0x00,0xBF);
write_hw_register(0x72,0x98,0xFF);
write_hw_register(0x72,0x01,0x81);
write_hw_register(0x70,0x00,0xB7);
write_hw_register(0x72,0x03,0x02);
write_hw_register(0x70,0x00,0xC0);
write_hw_register(0x72,0x00,0x00);
write_hw_register(0x70,0x00,0xBC);
write_hw_register(0x72,0x00,0x02);
write_hw_register(0x70,0x00,0xBF);
write_hw_register(0x72,0x0A,0x22);
delay_us(1000);//1ms
write_hw_register(0x70,0x00,0xB7);
write_hw_register(0x72,0x03,0x0B);
期待有大佬可以裸奔点亮。
离线
运费好贵,要15了,买回来研究一下
离线
裸机可以点亮,但是没弄明白SSD2828的配置是什么意思
离线
裸机可以点亮,但是没弄明白SSD2828的配置是什么意思https://whycan.com/files/members/8049/fb57471623395bed3eee2ed10ce5bd1.jpg
会放出裸机代码吗?
离线
裸机可以点亮,但是没弄明白SSD2828的配置是什么意思https://whycan.com/files/members/8049/fb57471623395bed3eee2ed10ce5bd1.jpg
是初始化SSD2828芯片的吧。裸机点亮程序可以分享吗,我也玩玩
离线
lanlanzhilian 说:裸机可以点亮,但是没弄明白SSD2828的配置是什么意思https://whycan.com/files/members/8049/fb57471623395bed3eee2ed10ce5bd1.jpg
会放出裸机代码吗?
就是楼上分享的逻辑分析仪数据,直接用SPI发送出去就可以了
//LCD 视频显示参数,根据LCD不同更改
#define SSD2828_WIDTH ((uint16_t)800) /* LCD PIXEL WIDTH 1600 */
#define SSD2828_HEIGHT ((uint16_t)1280) /* LCD PIXEL HEIGHT */
#define SSD2828_VSYNC ((uint16_t)6) /* Vertical synchronization */
#define SSD2828_HSYNC ((uint16_t)20) /* Horizontal synchronization */
#define SSD2828_VBP ((uint16_t)22) /* Vertical back porch */
#define SSD2828_HBP ((uint16_t)70) /* Horizontal back porch */
#define SSD2828_VFP ((uint16_t)16) /* Vertical front porch */
#define SSD2828_HFP ((uint16_t)70) /* Horizontal front porch */
SSD2828_Write_REG(0xB1, (SSD2828_VSYNC<<8)+SSD2828_HSYNC);//(SSD2828_VSYNC<<8)+SSD2828_HSYNC
SSD2828_Write_REG(0xB2, (SSD2828_VBP<<8)+SSD2828_HBP);//(SSD2828_VBP<<8)+SSD2828_HBP
SSD2828_Write_REG(0xB3, (SSD2828_VFP<<8)+SSD2828_HFP);//(SSD2828_VFP<<8)+SSD2828_HFP
SSD2828_Write_REG(0xB4, SSD2828_WIDTH);//SSD2828_WIDTH
SSD2828_Write_REG(0xB5, SSD2828_HEIGHT);//SSD2828_HEIGHT
SSD2828_Write_REG(0xB6, 0xA009);//VS=1,HS=0,PCLK=1 , Bit[1:0]=01=18bpp
SSD2828_Write_REG(0xDB, 0x0098);
SSD2828_Write_REG(0xDE, 0x0003);//2 Data Lane,11=4LANE 10=3LANE 01=2LANE 00=1LANE
SSD2828_Write_REG(0xB7, 0x0302);//0x024B选择TX_CLK作为MIPI时钟,0x026B选择RGB的PCLK作为MIPI时钟
SSD2828_Write_REG(0xBA, 0xC45E);//Fout = Fin * 94 / 4 = 10M * 94 / 4 = 800M
SSD2828_Write_REG(0xB8, 0x0000);//VC(Virtual ChannelID) Control Register
SSD2828_Write_REG(0xBB, 0x0007);//LP(Low Power) Clock = Fout /10/8 = 10M
SSD2828_Write_REG(0xB9, 0x0001);//PLL ENABLE
delay_ms(1);//1ms
SSD2828_Write_REG(0xBC, 0x0001);
SSD2828_Write_REG(0xBF, 0x0011);
delay_ms(150);//150ms
SSD2828_Write_REG(0xBC, 0x0001);
SSD2828_Write_REG(0xBF, 0x0029);
delay_ms(200);//200ms
SSD2828_Write_REG(0xB7, 0x0702);
SSD2828_Write_REG(0xC0, 0x0000);
SSD2828_Write_REG(0xBC, 0x0004);
SSD2828_Write_REG(0xBF, 0x98FF);
SSD2828_Write_Data(0x0181);
SSD2828_Write_REG(0xB7, 0x0302);
SSD2828_Write_REG(0xC0, 0x0000);
SSD2828_Write_REG(0xBC, 0x0002);
SSD2828_Write_REG(0xBF, 0x0A22);
delay_ms(2);//2ms
SSD2828_BIST_OFF();
SSD2828_Write_REG(0xB7, 0x026B);//0x026B选择RGB的PCLK作为MIPI时钟
离线
SSD2828_Write 这个函数是咋实现的?
离线
SSD2828_Write 这个函数是咋实现的?
最简单的就是模拟24bit的spi(每次发三个字节)
离线
@18578292200
这个可以把Python干进去吗?
看来可玩性不高啊。。。
看了下价格,涨价了。。。
商家哪来的勇气涨价。。。
难道是A股的力量
离线
@18578292200
这个可以把Python干进去吗?
看来可玩性不高啊。。。
看了下价格,涨价了。。。
商家哪来的勇气涨价。。。
难道是A股的力量
当然可以把python干进去,但是似乎没什么作用。打算怎么玩?
离线
这个不带触摸,不然就比较完美~~ 拿来学习lvgl是够了~
可以了,显示效果也还不错
离线
@lanlanzhilian
F1C200S的RGB初始化时序参数可以不可以也分享一个
离线
45元 这价格很香了,不知道现在这个价还能入手不 裸屏要是可以驱动可以驱动,搭配个驱动版做电脑副屏也还不错的
离线
45元 这价格很香了,不知道现在这个价还能入手不 裸屏要是可以驱动可以驱动,搭配个驱动版做电脑副屏也还不错的
48了,邮费15,我买了两块,配上了一点墨水屏,给包邮了
离线
这个有不同批次的屏幕和屏幕驱动,我买到了GM8285C这个lvgs屏幕的。发现还预留了RTC芯片位置和单声道功放位置。感觉还预留有RFID线圈和RGB灯的位置。研究一下应该还是有可玩性的。大家反馈的供电不足应该是5V进来加了一个整流桥造成的,可以把整流桥短路应该就没问题了。大家玩起来
离线
@IThaozi
发个照片看看
离线
@IThaozi
发个照片看看
ttl转lvds接口的芯片
离线
看到你们玩的这么嗨,手痒搞了一台。
这个能修改成横屏吗?如果不行 就得lvgl处理了
离线
1921096212 说:@IThaozi
发个照片看看https://whycan.com/files/members/15392/IMG20241015224033.jpg
ttl转lvds接口的芯片
发个完整的图片看看和之前那版有啥区别。
离线
整了个时钟 有白色 黑色 彩色 三种模式 还有6种动画特效
离线
整了个时钟 有白色 黑色 彩色 三种模式 还有6种动画特效
https://whycan.com/files/members/4881/IMG_4025.mp4
这个秒移动上来还有个抖动~~
离线
ooxx 说:@18578292200
这个可以把Python干进去吗?
看来可玩性不高啊。。。
看了下价格,涨价了。。。
商家哪来的勇气涨价。。。
难道是A股的力量当然可以把python干进去,但是似乎没什么作用。打算怎么玩?
Python整进去就好玩多了鸭,开发也比LVGL方便和快速,库又多,想做啥都可以,比如天气预报,或者用Python去播放服务端的一些东西,
总的来说,开发方便,库多,可以玩出花。。。
离线
f1c200s 跑python太慢了
离线
整了个时钟 有白色 黑色 彩色 三种模式 还有6种动画特效
https://whycan.com/files/members/4881/IMG_4025.mp4
这个动画怎么实现的?lvgl 的动画吗?
离线
xfdr0805 说:整了个时钟 有白色 黑色 彩色 三种模式 还有6种动画特效
https://whycan.com/files/members/4881/IMG_4025.mp4这个动画怎么实现的?lvgl 的动画吗?
就是lvgl动画
离线
18578292200 说:liangrushui 说:@18578292200
请问这个应用时自带的还是你编写然后下载进去的?是自己写的,我放了下载链接
能看一下我的问题吗?连接wifi的问题,在楼上。
你这个是因为开机也启动一个wpa进程,把它kill掉再手动连接就行了
离线
离线
ui 界面颜值在线,技术过硬。
请问这个网页是如何部署的,lvgl的程序是如何感知网页保存的设置,并更新界面?
离线
好东西这whycan 真是要把f1c100s给玩透了
离线
请教下,大佬的http server用的哪种?
离线
大神出个视频教程必须火
离线
弄一个回来玩玩
离线
大神出个视频教程必须火
火了之后老板肯定会涨价的
离线
@DDER
网页是编译到程序里了,数据是通过POST方式传输的,跟LVGL没有关系的
离线
@18578292200
webserver是使用的mongoose来实现的,非常方便,没用使用像lighttpd或者tinyhttp这样的server
离线
@18578292200
webserver是使用的mongoose来实现的,非常方便,没用使用像lighttpd或者tinyhttp这样的server
感谢,了解一下。之前用的httpd,要弄CGI比较麻烦
离线
@18578292200
webserver是使用的mongoose来实现的,非常方便,没用使用像lighttpd或者tinyhttp这样的server
使用了一下,确实挺不错的。以后的网关要配置啥东西,嵌入式web用这个方便。感谢推荐
离线
有链接吗
离线
有链接吗
咸鱼直接搜就行了
离线
弄了一个回来准备跑跑楼上的时钟
离线
各位大佬有没有自己编译系统驱动这块屏幕的,能不能教教我
离线
@jackzy
重启的原因可能是供电的问题,这个USB供的是5V的电压,实际看别人拆解,这里最终要供12V,所以电源不稳的话容易重启,特别是连了WIFI后
就是说要12V的usb供电,这个怎么做出来?
离线
18578292200 说:@jackzy
重启的原因可能是供电的问题,这个USB供的是5V的电压,实际看别人拆解,这里最终要供12V,所以电源不稳的话容易重启,特别是连了WIFI后就是说要12V的usb供电,这个怎么做出来?
用两条usb数据线,接电脑的那条把红色vcc断开,接12的那条把数据正负断开,其余对应接上就可以了
离线
@1921096212
谢谢,价签已经在路上了,来了改线
离线
牛啊,要是能投屏就可以了
离线
啊,这
离线