你好,
我想在DM385配置兩個新的GPIO腳位控制.一個是 GPIO3[15]當在output輸出,GPIO3[16]當作irq的接受輸入,請問我該怎麼在kernel裡作配置呢??,謝謝!!
Regards,
Ternence_Hsu:
你好;
配置 gpio 工作模式,可以参考数据手册中的,3.2 Pin Assignments 小节
可以到 ipnc_psp_arago/u-boot/board/ti/dm385_ipnc/mux.h 中进行配置
Byron Tien:
回复 Ternence_Hsu:
你好,
我調整過這個檔案,但還是不成功,是否能指引如何調整呢?謝謝!!
Ternence_Hsu:
回复 Byron Tien:
如果不成功,有几种可能,uboot 配置后,在内核里面被修改了,或者是在 应用程序里面被重新配置过;
Byron Tien:
回复 Ternence_Hsu:
以GPIO3[15]及GPIO3[16],是否在檔mux.h裡改寫如下呢??
/* -220 */ BIT(0), BIT(0), BIT(0), BIT(0),/* -224 */ BIT(0), BIT(0), BIT(7), BIT(7),/* -228 */ BIT(0), BIT(0), BIT(0), BIT(6),
Ternence_Hsu:
回复 Byron Tien:
你的这个配置是正确的;
Ternence_Hsu:
回复 Ternence_Hsu:
在 程序 中也会修改 pin mux ;
你查一下 hdvpss 中的 ti_tools/hdvpss_01_00_01_37/packages/ti/psp/platforms/ti8107/src/vps_platformTI8107.c
#ifdef CONFIG_PIN_MUX static Int32 Vps_platformTI8107SetPinMux(void) {/* Vout 0 configuration DVO2 Function 1*//* TODO There are two pins for the fid. Need to see whichone is used */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0AB8) = 0x1;/* vout0_fid_mux1 */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0ABC) = 0x1;/* vout0_clk */ ... ...REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B0C) = 0x1;/* vout0_r_cr[2] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B10) = 0x1;/* vout0_r_cr[3] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B14) = 0x1;/* vout0_r_cr[4] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B18) = 0x1;/* vout0_r_cr[5] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B1C) = 0x1;/* vout0_r_cr[6] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B20) = 0x1;/* vout0_r_cr[7] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B24) = 0x1;/* vout0_r_cr[8] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B28) = 0x1;/* vout0_r_cr[9] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B18) = 0x1; /* vout0_r_cr[5] */ REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B1C) = 0x1; /* vout0_r_cr[6] */
Ternence_Hsu:
回复 Ternence_Hsu:
应当是下面2行配置的:
REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B78) = 0x50004; /* vin1a_d[16] */ REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B7C) = 0x50004; /* vin1a_d[17] */
Byron Tien:
回复 Ternence_Hsu:
1. 請問,我對照過這幾行在檔案下都存在,我是不是不需要再作修改呢??
2.我是依照底下的建議去增加一些GPIO的function去使用.不知道是否還要再處理哪些地方呢?
https://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/91562.aspx?pi239031348=1
Ternence_Hsu:
回复 Byron Tien:
uboot 里面按你上面的配置修改就可以;
内核中不需要再去配置了;
在hdvpss中屏蔽下面两行;
REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B78) = 0x50004; /* vin1a_d[16] */REG32(CSL_TI8107_CTRL_MODULE_BASE + 0x0B7C) = 0x50004; /* vin1a_d[17] */
Byron Tien:
回复 Ternence_Hsu:
請問如果要將GPIO設定為output,需要哪些function?一樣會產生/sys/class/gpioXX 目錄嗎?
http://processors.wiki.ti.com/index.php/TI81XX_PSP_GPIO_Driver_User_Guide
IRQ handling及kernel Level兩區塊都要設定嗎 ?