解決s5pv210電阻觸摸屏驅動無法響應中斷的問題

問題背景:

       移植完uboot2014.04和linux3.10內核後,編寫電阻觸摸屏驅動,驅動程序不響應中斷,剛開始以爲是移植的內核對s5pv210中斷管理的初始化有問題,經過痛苦的內核瀏覽過程發現中斷向量和中斷管理都初始化正確。後來用TQ210自帶的uboot和內核加載觸摸屏驅動後發現能正常觸發中斷,自帶的kernel和uboot,移植的kernel和uboot,那麼有四種組合去嘗試定位錯誤。用出廠自帶的uboot+自己移植的kernel發現也能觸發中斷,那麼就定位到uboot出錯了,通過比較移植的uboot和出廠自帶的uboot,發現在出廠uboot的lowlevel_init.S中帶有一個函數PMIC_InitIp(),這個函數用來初始化核心板裏面的電源管理芯片max8698,後來查閱s5pv210發現觸摸屏恰好被電源管理芯片所管理,那麼當電源管理芯片未初始化時,電阻觸摸屏是無法採樣並觸發中斷的。如下圖所示:

lowlevel_init.S初始化中添加如下代碼:

	/*初始化電源管理芯片*/
	/* PS_HOLD(GPJ2_5) set to output high */
	ldr		r0, =ELFIN_GPIO_BASE
	ldr		r1, =0x00100000
	str		r1, [r0, #GPJ2CON_OFFSET]

	ldr		r1, =0x0400
	str		r1, [r0, #GPJ2PUD_OFFSET]

	ldr		r1, =0x20
	str		r1, [r0, #GPJ2DAT_OFFSET]
	
	/* IO
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章