官方的u-boot似乎开启了LCD和LCD Console。我看到有log: set up a 480x272 LCD console. 然而我自己编的u-boot啥都没有。
请问需要打开那些开关和设置?
我试了下CONFIG_VIDEO_SUNXI 不过没有起作用
离线
f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。
离线
f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。
我用的是uboot-2018那个分支,没改什么东西,以前的uboot有这句话:set up a 480x272 LCD console
现在没有了,我感觉还是哪个地方没开
离线
离线
准备试试打开这几个
CONFIG_VIDEO
CONFIG_VIDEO_SUNXI
CONFIG_VIDEO_LOGO
CONFIG_VIDEO_BMP_LOGO
此外还有几个相关config有点晕。。
CONFIG_LCD
CONFIG_XXXX_LCD
CONFIG_SPLASH_SCREEN
离线
请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?
离线
请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?
定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。
我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。
所以如果有重复定义的宏, gcc 编译会有警告。
在线
定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。
我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。
所以如果有重复定义的宏, gcc 编译会有警告。
看到nano-lcd800480以及全志很多地方在头文件里定义config,感觉非常晕。。。
看来大家在改uboot的时候并不是按照官方架构去走,导致我学习uboot的时候感觉非常不清晰。
XBOOT其实架构一致性非常好,我没有任何文档,基本看了几天代码就搞得比较清楚了。
离线
增加了这几个后,log显示“Setting up a 800x480 lcd console (overscan 0x0)“,驱动加载成功
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO=y
CONFIG_CFB_CONSOLE=y
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0"
CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=n
CONFIG_VIDEO_LCD_BL_PWM="PE6"
不过,背光和显示还是不工作,跟踪背光PIN的设置,发现找PE6的时候,没找到相应管脚,pin为-22,不是正值。。。
看来dts或什么地方还缺少GPIO的配置。。。
离线
增加了这几个后,log显示“Setting up a 800x480 lcd console (overscan 0x0)“,驱动加载成功
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO=y
CONFIG_CFB_CONSOLE=y
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0"
CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=n
CONFIG_VIDEO_LCD_BL_PWM="PE6"不过,背光和显示还是不工作,跟踪背光PIN的设置,发现找PE6的时候,没找到相应管脚,pin为-22,不是正值。。。
看来dts或什么地方还缺少GPIO的配置。。。
我遇到过这个问题,发现是因为默认开启了DM_GPIO,在这种情况下会从设备树中搜索指定名称的引脚,所以会返回-EINVAL。
一个解决方案是关闭DM_GPIO,不过ARCH_SUNXI默认select了DM_GPIO,所以需要改一下Kconfig,我记得还要改SPI的驱动才能编译通过。改完之后就能用了。
离线
uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息
离线
uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息
手电筒,这操作66666
离线
我遇到过这个问题,发现是因为默认开启了DM_GPIO,在这种情况下会从设备树中搜索指定名称的引脚,所以会返回-EINVAL。
一个解决方案是关闭DM_GPIO,不过ARCH_SUNXI默认select了DM_GPIO,所以需要改一下Kconfig,我记得还要改SPI的驱动才能编译通过。改完之后就能用了。
太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧
离线
太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧
晚些时候我给个patch吧。关不掉是因为Kconfig有依赖关系,不过我测试之后发现对于GPIO不开DM似乎可以正常用。
SPI是因为调用了GPIO的功能,不过几个用到DM_GPIO的地方其实都是打印debug信息,所以直接关掉不会有影响,至少SPI Flash可以正常使用。
离线
config ARCH_SUNXI
bool "Support sunxi (Allwinner) SoCs"
。。。
select DM_GPIO
感觉是这个依赖导致的,回家试试
离线
贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 918424a..8f68be1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -697,7 +697,6 @@ config ARCH_SUNXI
select CMD_USB if DISTRO_DEFAULTS
select DM
select DM_ETH
- select DM_GPIO
select DM_KEYBOARD
select DM_SERIAL
select DM_USB if DISTRO_DEFAULTS
diff --git a/drivers/spi/sun6i_spi.c b/drivers/spi/sun6i_spi.c
index 750c4d8..dabf661 100644
--- a/drivers/spi/sun6i_spi.c
+++ b/drivers/spi/sun6i_spi.c
@@ -10,9 +10,7 @@
*/
#include <common.h>
-#ifdef CONFIG_DM_GPIO
#include <asm/gpio.h>
-#endif
#include <asm/io.h>
#include <asm/arch/clock.h>
#include <dm.h>
@@ -103,10 +101,10 @@ static int sunxi_spi_cs_activate(struct udevice *dev, unsigned cs)
struct sunxi_spi_reg *spi = (struct sunxi_spi_reg *)plat->base;
struct sunxi_spi_privdata *priv = dev_get_priv(bus);
int ret = 0;
-
+#if 0
debug("%s (%s): cs %d cs_gpios_num %d cs_gpios %p\n",
dev->name, __func__, cs, plat->cs_gpios_num, plat->cs_gpios);
-
+#endif
/* If it's too soon to do another transaction, wait... */
if (plat->deactivate_delay_us && priv->last_transaction_us) {
ulong delay_us;
离线
贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 918424a..8f68be1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -697,7 +697,6 @@ config ARCH_SUNXI select CMD_USB if DISTRO_DEFAULTS select DM select DM_ETH - select DM_GPIO select DM_KEYBOARD select DM_SERIAL select DM_USB if DISTRO_DEFAULTS diff --git a/drivers/spi/sun6i_spi.c b/drivers/spi/sun6i_spi.c index 750c4d8..dabf661 100644 --- a/drivers/spi/sun6i_spi.c +++ b/drivers/spi/sun6i_spi.c @@ -10,9 +10,7 @@ */ #include <common.h> -#ifdef CONFIG_DM_GPIO #include <asm/gpio.h> -#endif #include <asm/io.h> #include <asm/arch/clock.h> #include <dm.h> @@ -103,10 +101,10 @@ static int sunxi_spi_cs_activate(struct udevice *dev, unsigned cs) struct sunxi_spi_reg *spi = (struct sunxi_spi_reg *)plat->base; struct sunxi_spi_privdata *priv = dev_get_priv(bus); int ret = 0; - +#if 0 debug("%s (%s): cs %d cs_gpios_num %d cs_gpios %p\n", dev->name, __func__, cs, plat->cs_gpios_num, plat->cs_gpios); - +#endif /* If it's too soon to do another transaction, wait... */ if (plat->deactivate_delay_us && priv->last_transaction_us) { ulong delay_us;
非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。
离线
非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。
不客气,我也不会,所以就当抛砖引玉了
最近编辑记录 metro (2019-11-27 15:27:50)
离线
感谢楼上几位,成功!就是按照metro的方式关掉DM_GPIO
所有改动见:
https://github.com/nanfang2000/u-boot/commit/1869e2054b5de67112c534becc20de6eac06504e
离线
后面的错应该是我除了uboot,其它比如zImage和rootfs都没有,分区也没有,所以报错
离线
是 tiky 1508吗?初始化如何做的,电阻跳线,还是时序?
用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用
离线
用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用
3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?
离线
3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?
不清楚,我也是听tiky说的,不过我觉得cs脚起码得独立io吧,要不会干扰到spi
离线
对,cs脚肯定要单独控制。
tiky这个屏是竖屏吗?怎么旋转90度?
你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围
离线
你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围
请问一下,您上面显示屏上面的log信息怎么取消掉?
离线
感谢楼上几位,成功!就是按照metro的方式关掉DM_GPIO
所有改动见:
https://github.com/nanfang2000/u-boot/commit/1869e2054b5de67112c534becc20de6eac06504e
这个屏上面的uboot的启动log
离线
USB 键盘做输入,LCD用作控制台,发现屏幕下方还有内容还没显示出来,例如键盘输入ls,要再输入十多个回车,屏幕才会ls和ls后出现的目录文件,配置是用
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏),各位大佬这怎么回事啊?谢谢
离线
跟核有关系吗?核是5.2. y
离线
@metro
感谢提醒,在suniv-f1c100s-licheepi-nano.dts里面添加下面的设备节点就可是使用gpio_requist()了
pinctrl: pinctrl@1c20800 {
compatible = "allwinner,sun4i-a10-pinctrl";
reg = <0x01c20800 0x2c4>;
#address-cells = <1>;
#size-cells = <1>;
pa: pa {
gpio-controller;
#gpio-cells = <2>;
};
pb: pb {
gpio-controller;
#gpio-cells = <2>;
};
pc: pc {
gpio-controller;
#gpio-cells = <2>;
};
pd: pd {
gpio-controller;
#gpio-cells = <2>;
};
pe: pe {
gpio-controller;
#gpio-cells = <2>;
};
pf: pf {
gpio-controller;
#gpio-cells = <2>;
};
};
引用:https://www.freesion.com/article/368464004/
离线
thanks for the informations
最近编辑记录 neotendo (2022-08-22 18:55:43)
离线