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 */