不難看出,GPIO4_B2可復用為I2C4的SDA腳,GPIO_B3可復用為I2C4的SCL腳。
·
·
cd /opt/tq356x-linux/kernel/arch/arm64/boot/dts/rockchip vim rk3568-tqcoreA-BaseA_v1.dtsi
·
vim rk3568-pinctrl.dtsi
不難看出,GPIO4_PB2引腳被配置為I2C4SDA_M0功能,其中1表示將該管腳復用為I2C功能,從下圖可知。GPIO_PB3引腳被配置為I2C4SCL_M0功能,其中1表示將該管腳復用為I2C功能。&pcfg_pull_none_smt是一個配置電器屬性的節(jié)點??梢源蜷_rockchip-pinconf.dtsi文件查看有哪些電器屬性,用戶可根據(jù)自己需求配置。
·
vim rockchip-pinconf.dtsi
·
vim rk3568.dtsi
我們發(fā)現(xiàn),在最上層的rk3568.dtsi文件中,i2c4與spi3的狀態(tài)都是"disable"不可用。打開rk3568-tqcoreA-BaseA_v1.dtsi文件
·
vim rk3568-tqcoreA-BaseA_v1.dtsi
我們可以發(fā)現(xiàn),i2c4節(jié)點被引用并且狀態(tài)被修改為"okay",而spi3卻沒有被引用。由上可知,原設備樹文件中,只使能了I2C4沒有使能SPI3,那么我們如何才能將GPIO4_PB2、GPIO4_PB3配置成SPI呢?請按以下步驟操作。
·
·
vim rk3568-pinctrl.dtsi vim rk3568-tqcoreA-BaseA_v1.dtsi
不難看出,GPIO2_B3可復用為UART1_RXM0,GPIO_B4可復用為UART1_TXM0。
·
·
cd /opt/tq356x-linux/kernel/arch/arm64/boot/dts/rockchip vim rk3568-tqcoreA-BaseA_v1.dtsi
不難看出,GPIO2_PB3引腳被配置為UART1_RXM0功能,其中2表示將該管腳復用為UART功能,從下圖可知。GPIO_PB4引腳被配置為UART1_TXM0功能,其中2表示將該管腳復用為UART功能。&pcfg_pull_up是一個配置電器屬性的節(jié)點??梢源蜷_rockchip-pinconf.dtsi文件查看有哪些電器屬性,用戶可根據(jù)自己需求配置。
·
vim rockchip-pinconf.dtsi
總的來說,我們在配置GPIO復用功能時。首先要看數(shù)據(jù)手冊了解其復用關系。然后打開相對應的設備樹文件修改pinctrl子系統(tǒng)里的值。在TQ3568中,主要用到的設備樹文件有rk3568.dtsi 、rk3568-tqcoreA-BaseA_v1.dtsi、rk3568-pinctrl.dtsi。值得注意的是,隨著版本的更新,設備樹可能會不同。
聯(lián)系客服