SSD202D-LOGO-闪烁一下

本文档基于CSDN上一篇关于SSD202D的博客进行拓展,详细介绍了如何通过添加PWM配置解决LOGO在启动时仅闪烁一次的问题。作者提供了一个补丁,包含完整的代码实现,以实现LOGO稳定显示并优化启动过程。
摘要由CSDN通过智能技术生成

SSD202D-LOGO间隔黑-PWM_旋风旋风的博客-CSDN博客

源于上方博客的拓展,后来我做了一个补丁


diff --git a/boot/arch/arm/cpu/armv7/infinity2m/board_type.c b/boot/arch/arm/cpu/armv7/infinity2m/board_type.c
old mode 100644
new mode 100755
index 64da77c9c..96a50dc15
--- a/boot/arch/arm/cpu/armv7/infinity2m/board_type.c
+++ b/boot/arch/arm/cpu/armv7/infinity2m/board_type.c
@@ -24,6 +24,7 @@
 #include <errno.h>
 #include "./../../../../../drivers/mstar/sar/sar.h"
 #include "./../../../../../drivers/mstar/gpio/drvGPIO.h"
+#include "../drivers/mstar/pwm/mdrv_pwm.h"
 #include "board_type.h"

 DECLARE_GLOBAL_DATA_PTR;
@@ -158,6 +159,23 @@ struct version_string {
        { /* Sentinel */ },
 };

+struct gpio_pwm {
+       int gpio_num;
+       int pwm_num;
+} static const gpio_pwm[] = {
+       {GPIO_NUM_0, GPIO_PWM_0},
+       {GPIO_NUM_1, GPIO_PWM_1},
+       {GPIO_NUM_2, GPIO_PWM_2},
+       {GPIO_NUM_3, GPIO_PWM_3},
+       {GPIO_NUM_4, GPIO_PWM_0},
+       {GPIO_NUM_5, GPIO_PWM_1},
+       {GPIO_NUM_7, GPIO_PWM_3},
+       {GPIO_NUM_11, GPIO_PWM_2},
+       {GPIO_NUM_12, GPIO_PWM_3},
+       {GPIO_NUM_14, GPIO_PWM_0},
+       { /* Sentinel */ },
+};
+
 static char *hwver_spec = NULL;

 int get_board_version_string_spec(unsigned long board_type, const char **version)
@@ -392,10 +410,14 @@ struct _pwr_ctl{
        unsigned char type;     // (0=cpu_gpio, 1=signal,0xff=ending)
 #define PWR_CTL_TYPE_GPIO   0
 #define PWR_CTL_TYPE_SIGNAL 1
+#define PWR_CTL_TYPE_PWM    2
 #define PWR_CTL_TYPE_ENDING 0xff
        unsigned char gpio_num; // gpio num, 0xff=invalid
        unsigned char value;    // 0=output low, 1=output high
        unsigned int  delay;    // unit in ms
+       unsigned int  period;   // pwm period
+       unsigned int  duty;     // pwm duty
+       unsigned int  polarity; // pwm polarity
 };

 #define MAX_PWRSEQ_NUMS 32
@@ -417,10 +439,10 @@ static struct pwr_ctl {
                {HW_VER_1_0, HW_VER_1_7, HWID_END},
                {
                        {   0,  11,   0,   2}, /* LCD power down */
-                       {   0,   4,   0,   2}, /* PWM disable */
+                       {   2,   4,   0,   2,   1000,   100,   0}, /* PWM disable */
                        {   1,   0,   0, 150}, /* MIPI/RGB signal */
                        {   0,  11,   1,   2}, /* LCD power up */
-                       {   0,   4,   1,   2}, /* PWM enable */
+                       {   2,   4,   1,   2,   1000,   100,   0}, /* PWM enable */
                        {0xff,   0,   0,   0}, /* Ending */
                },
        },
@@ -428,10 +450,10 @@ static struct pwr_ctl {
                {HW_VER_1_2, HW_VER_1_3, HW_VER_1_6, HW_VER_1_9, HWID_END},
                {
                        {   0,  11,   0,   2}, /* LCD power down */
-                       {   0,   4,   0,   2}, /* Reset active */
+                       {   2,   4,   0,   2,   1000,   100,   0}, /* PWM disable */
                        {   1,   0,   0, 220}, /* MIPI/RGB signal */
                        {   0,  11,   1,   2}, /* LCD power up */
-                       {   0,   4,   1,   2}, /* Reset inactive */
+                       {   2,   4,   1,   2,   1000,   100,   0}, /* PWM enable */
                        {0xff,   0,   0,   0}, /* Ending */
                },
        },
@@ -439,26 +461,26 @@ static struct pwr_ctl {
                {HW_VER_1_4, HWID_END},
                {
                        {   0,  11,   1,   2}, /* LCD power up */
-                       {   0,   4,   0,   2}, /* PWM disable */
+                       {   2,   4,   0,   2,   1000,   100,   0}, /* PWM disable */
                        {   0,   7,   1,   2}, /* Reset inactive */
                        {   0,   7,   0,  10}, /* Reset active */
                        {   0,   7,   1,   2}, /* Reset inactive */
                        {   1,   0,   0, 200}, /* MIPI/RGB signal */
-                       {   0,   4,   1,   2}, /* PWM enable */
+                       {   2,   4,   1,   2,   1000,   100,   0}, /* PWM enable */
                        {0xff,   0,   0,   0}, /* Ending */
                },
        },
        { /* MIPI panel TS-B0700109C - OFFEN@230517 */
                {HW_VER_2_0, HWID_END},
                {
-                       {   0,   4,   0,   0}, /* PWM disable */
+                       {   2,   4,   0,   2,   1000,   100,   0}, /* PWM disable */ /*{type, gpio_num, enable, delay, period, duty, polarity},*/
                        {   0,   7,   0,   0}, /* Reset active */
                        {   0,  11,   1,  20}, /* LCD power up */
                        {   0,   7,   1,  20}, /* Reset inactive */
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋风旋风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值