lvds2link_pins_a 和 lvds2link_pins_b Dual link LVDS 接口管脚定义(主显 lcd0)
这个是手册上给的管脚定义,但是定义中没有这两个。要如何定义
离线
lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi
lvds0_pins_a: lvds0@0 {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
function = "lvds0";
drive-strength = <30>;
bias-disable;
};
lvds0_pins_b: lvds0@1 {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
function = "io_disabled";
drive-strength = <30>;
bias-disable;
};
离线
@哇酷小二
这个是signal link的配置,我想用double link
离线
lcd1_lvds2link_pins_a: lcd1_lvds2link@0 {
pins = "PJ10", "PJ11", "PJ12", "PJ13", "PJ14", "PJ15", "PJ16", "PJ17", "PJ18", "PJ19", \
"PJ7", "PJ6", "PJ5", "PJ4", "PJ3", "PJ2", "PJ1", "PJ0", "PJ8", "PJ9";
function = "lvds3";
drive-strength = <30>;
};
lcd1_lvds2link_pins_b: lcd1_lvds2link@1 {
pins = "PJ10", "PJ11", "PJ12", "PJ13", "PJ14", "PJ15", "PJ16", "PJ17", "PJ18", "PJ19", \
"PJ7", "PJ6", "PJ5", "PJ4", "PJ3", "PJ2", "PJ1", "PJ0", "PJ8", "PJ9";
function = "gpio_in";
};
lvds2link_pins_a: lvds2link@0 {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17";
function = "lvds2link";
drive-strength = <30>;
};
lvds2link_pins_b: lvds2link@1 {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", \
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17";
function = "gpio_in";
};
别的soc sdk抄来的,将就看看。
离线
@哇酷小二
这个是signal link的配置,我想用double link
后来成功了么
离线
@哇酷小二
function = lvds2link
看起来驱动里边没有定义这个function
导致pd0到pd19全都UNCLAIMED
麻烦看看应该怎么改
离线
找一下哪个文件参与编译 find . -name pinctrl-sun*.o
然后直接那个 .c 文件
找到了,
ao@ubuntu:~/DongshanNezhaSTU-TinaV2.0-SDK/tina-d1-h$ find . -name pinctrl-sun*.o
./lichee/linux-5.4/drivers/pinctrl/sunxi/pinctrl-sun8iw20.o
./lichee/linux-5.4/drivers/pinctrl/sunxi/pinctrl-sunxi.o
这里没有lvds2link, 是不是这个芯片不可以双8
/* PD */
SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "lcd0"), /* D2 */
SUNXI_FUNCTION(0x3, "lvds0"), /* V0P */
SUNXI_FUNCTION(0x4, "dsi"), /* D0P */
SUNXI_FUNCTION(0x5, "twi0"), /* SCK */
SUNXI_FUNCTION_IRQ_BANK(0xE, 2, 0),
SUNXI_FUNCTION(0xF, "io_disabled")),
SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "lcd0"), /* D3 */
SUNXI_FUNCTION(0x3, "lvds0"), /* V0N */
SUNXI_FUNCTION(0x4, "dsi"), /* D0N */
SUNXI_FUNCTION(0x5, "uart2"), /* TX */
SUNXI_FUNCTION_IRQ_BANK(0xE, 2, 1),
SUNXI_FUNCTION(0xF, "io_disabled")),
最近编辑记录 ghosoft (2024-06-27 16:07:17)
离线
参考这个帖子:d1 lvds dual
首先在dts中配置lvds1的gpio,大致是下面这样的
lvds1_pins_a: lvds1@0 {
pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19";
function = "lvds1";
drive-strength = <30>;
bias-disable;
};
lvds1_pins_b: lvds1@1 {
pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19";
function = "io_disabled";
drive-strength = <30>;
bias-disable;
};
然后在dts中配置dual lvds,主要是lcd_lvds_if与pinctrl-0
&lcd0 {
lcd_used = <1>;
lcd_driver_name = "default_lcd";
lcd_backlight = <50>;
lcd_if = <3>;
lcd_x = <640>;
lcd_y = <2560>;
lcd_width = <150>;
lcd_height = <94>;
lcd_dclk_freq = <117>;
lcd_pwm_used = <0>;
lcd_pwm_ch = <7>;
lcd_pwm_freq = <50000>;
lcd_pwm_pol = <1>;
lcd_pwm_max_limit = <255>;
lcd_hbp = <40>;
lcd_ht = <720>;
lcd_hspw = <20>;
lcd_vbp = <20>;
lcd_vt = <2600>;
lcd_vspw = <10>;
lcd_lvds_if = <1>;
lcd_lvds_colordepth = <0>;
lcd_lvds_mode = <0>;
lcd_frm = <0>;
lcd_hv_clk_phase = <0>;
lcd_hv_sync_polarity= <0>;
lcd_gamma_en = <0>;
lcd_bright_curve_en = <0>;
lcd_cmap_en = <0>;
deu_mode = <0>;
lcdgamma4iep = <22>;
smart_color = <90>;
pinctrl-0 = <&lvds0_pins_a &lvds1_pins_a>;
pinctrl-1 = <&lvds0_pins_b &lvds1_pins_b>;
};
把20条腿都复用为LVDS:
pinctrl-0 = <&lvds0_pins_a &lvds1_pins_a>;
驱动配置为双8:
lcd_lvds_if = <1>;
Linux启动后查看引脚复用状态:
# cat /sys/kernel/debug/pinctrl/pio/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner|gpio_owner (strict) hog?
pin 32 (PB0): device 2502800.twi function gpio_in group PB0
pin 33 (PB1): device 2502800.twi function gpio_in group PB1
pin 34 (PB2): UNCLAIMED
pin 35 (PB3): UNCLAIMED
pin 36 (PB4): UNCLAIMED
pin 37 (PB5): UNCLAIMED
pin 38 (PB6): UNCLAIMED
pin 39 (PB7): UNCLAIMED
pin 40 (PB8): device 2500000.uart function uart0 group PB8
pin 41 (PB9): device 2500000.uart function uart0 group PB9
pin 42 (PB10): GPIO pio:42
pin 43 (PB11): GPIO pio:43
pin 44 (PB12): GPIO pio:44
pin 64 (PC0): device 2008000.ledc function ledc group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): device 4025000.spi function spi0 group PC2
pin 67 (PC3): device 4025000.spi function spi0 group PC3
pin 68 (PC4): device 4025000.spi function spi0 group PC4
pin 69 (PC5): device 4025000.spi function spi0 group PC5
pin 70 (PC6): device 4025000.spi function spi0 group PC6
pin 71 (PC7): device 4025000.spi function spi0 group PC7
pin 96 (PD0): UNCLAIMED
pin 97 (PD1): UNCLAIMED
pin 98 (PD2): UNCLAIMED
pin 99 (PD3): UNCLAIMED
pin 100 (PD4): UNCLAIMED
pin 101 (PD5): UNCLAIMED
pin 102 (PD6): UNCLAIMED
pin 103 (PD7): UNCLAIMED
pin 104 (PD8): UNCLAIMED
pin 105 (PD9): UNCLAIMED
pin 106 (PD10): UNCLAIMED
pin 107 (PD11): UNCLAIMED
pin 108 (PD12): UNCLAIMED
pin 109 (PD13): UNCLAIMED
pin 110 (PD14): UNCLAIMED
pin 111 (PD15): UNCLAIMED
pin 112 (PD16): UNCLAIMED
pin 113 (PD17): UNCLAIMED
pin 114 (PD18): UNCLAIMED
pin 115 (PD19): UNCLAIMED
pin 116 (PD20): UNCLAIMED
pin 117 (PD21): UNCLAIMED
pin 118 (PD22): UNCLAIMED
pin 128 (PE0): device 4500000.eth function gmac0 group PE0
pin 129 (PE1): device 4500000.eth function gmac0 group PE1
pin 130 (PE2): device 4500000.eth function gmac0 group PE2
pin 131 (PE3): device 4500000.eth function gmac0 group PE3
pin 132 (PE4): device 4500000.eth function gmac0 group PE4
pin 133 (PE5): device 4500000.eth function gmac0 group PE5
pin 134 (PE6): device 4500000.eth function gmac0 group PE6
pin 135 (PE7): device 4500000.eth function gmac0 group PE7
pin 136 (PE8): device 4500000.eth function gmac0 group PE8
pin 137 (PE9): device 4500000.eth function gmac0 group PE9
pin 138 (PE10): device 4500000.eth function gmac0 group PE10
pin 139 (PE11): device 4500000.eth function gmac0 group PE11
pin 140 (PE12): device 4500000.eth function gmac0 group PE12
pin 141 (PE13): device 4500000.eth function gmac0 group PE13
pin 142 (PE14): device 4500000.eth function gmac0 group PE14
pin 143 (PE15): device 4500000.eth function gmac0 group PE15
pin 144 (PE16): GPIO pio:144
pin 145 (PE17): UNCLAIMED
pin 160 (PF0): device 4020000.sdmmc function sdc0 group PF0
pin 161 (PF1): device 4020000.sdmmc function sdc0 group PF1
pin 162 (PF2): device 4020000.sdmmc function sdc0 group PF2
pin 163 (PF3): device 4020000.sdmmc function sdc0 group PF3
pin 164 (PF4): device 4020000.sdmmc function sdc0 group PF4
pin 165 (PF5): device 4020000.sdmmc function sdc0 group PF5
pin 166 (PF6): GPIO pio:166
pin 192 (PG0): device 4021000.sdmmc function sdc1 group PG0
pin 193 (PG1): device 4021000.sdmmc function sdc1 group PG1
pin 194 (PG2): device 4021000.sdmmc function sdc1 group PG2
pin 195 (PG3): device 4021000.sdmmc function sdc1 group PG3
pin 196 (PG4): device 4021000.sdmmc function sdc1 group PG4
pin 197 (PG5): device 4021000.sdmmc function sdc1 group PG5
pin 198 (PG6): device 2500400.uart function uart1 group PG6
pin 199 (PG7): device 2500400.uart function uart1 group PG7
pin 200 (PG8): device 2500400.uart function uart1 group PG8
pin 201 (PG9): device 2500400.uart function uart1 group PG9
pin 202 (PG10): GPIO pio:202
pin 203 (PG11): device soc@3000000:rfkill@0 function clk_fanout1 group PG11
pin 204 (PG12): GPIO pio:204
pin 205 (PG13): UNCLAIMED
pin 206 (PG14): UNCLAIMED
pin 207 (PG15): GPIO pio:207
pin 208 (PG16): GPIO pio:208
pin 209 (PG17): GPIO pio:209
pin 210 (PG18): GPIO pio:210
如果文件/sys/kernel/debug/pinctrl/pio/pinmux-pins不存在,先执行这个命令:
mount -t debugfs none /sys/kernel/debug;
离线