日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IMX8MM IMX8QXP芯片配置GPIO方向和数据

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IMX8MM IMX8QXP芯片配置GPIO方向和数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IMX8MM

復用

查看文檔《IMX8MMRM.pdf》第8章節:Chip IO and Pinmux,以設置GPIO1_06為例。

復用具體設置可查看:8.2.5.12 Pad Mux Register (IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO06)

在uboot中設置:mw 0x30330040 0x0,設置為GPIO模式。

方向

查看章節:8.3.3 GPIO Memory Map/Register Definition,重點看GPIO1的DIR方向信息。

設置GPIO為輸出:mw 0x30200004 0x40,0x40 = 0b0100 0000 = bit[6] = 1

?數據

查看GPIO DR信息,設置高地電平,IMX8MM的IO電源域是1.8V。

設置高電平:mw 0x3020000 0x40,0x40 = 0b0100 0000 = bit[6] = 1

IMX8QXP

? ? ? ? 不同于imx8mm使用三個寄存器設置,imx8qxp使用一個寄存器設置。

? ? ? ? 參考手冊《IMX8DQXPRM.pdf》Chapter 9 Chip IO,以UART1_CTS_B為例:

? ? ? ? 復用和輸入輸出方向設置:

? ? ? ? ?設置GPIO時默認上拉下拉電平:

? ? ? ? ?配置文件pads-imx8qxp.h,與寄存器手冊里面描述一致,下面主要是設置復用功能:

#define SC_P_UART1_CTS_B 80 /* ADMA.UART1.CTS_B, LSIO.PWM3.OUT, ADMA.LCDIF.D17, LSIO.GPT1.COMPARE, LSIO.GPIO0.IO24 */#define SC_P_UART1_CTS_B_ADMA_UART1_CTS_B SC_P_UART1_CTS_B 0 #define SC_P_UART1_CTS_B_LSIO_PWM3_OUT SC_P_UART1_CTS_B 1 #define SC_P_UART1_CTS_B_ADMA_LCDIF_D17 SC_P_UART1_CTS_B 2 #define SC_P_UART1_CTS_B_LSIO_GPT1_COMPARE SC_P_UART1_CTS_B 3 #define SC_P_UART1_CTS_B_LSIO_GPIO0_IO24 SC_P_UART1_CTS_B 4

? ? ? ? ?dts配置fsl-imx8x-mek.dtsi,設置為輸出且默認拉高,與寄存器手冊里面的bit位描述一致:

&iomuxc {pinctrl-names = "default";pinctrl-0 = <&pinctrl_hog>;imx8qxp-mek {pinctrl_hog: hoggrp {fsl,pins = <SC_P_UART1_CTS_B_LSIO_GPIO0_IO24 0x00000020>;};

? ? ? ? 在Linux中,接口在/sys/class/gpio/export:

root@genvict_imx8qxp:/sys/class/gpio# ls -l total 0 --w------- 1 root root 4096 Sep 3 10:18 export lrwxrwxrwx 1 root root 0 Sep 3 10:19 gpio504 -> ../../devices/platform/5d080000.gpio/gpiochip0/gpio/gpio504 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip224 -> ../../devices/platform/58222000.gpio/gpio/gpiochip224 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip256 -> ../../devices/platform/5d0f0000.gpio/gpio/gpiochip256 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip288 -> ../../devices/platform/5d0e0000.gpio/gpio/gpiochip288 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip320 -> ../../devices/platform/5d0d0000.gpio/gpio/gpiochip320 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip352 -> ../../devices/platform/5d0c0000.gpio/gpio/gpiochip352 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip384 -> ../../devices/platform/5d0b0000.gpio/gpio/gpiochip384 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip416 -> ../../devices/platform/5d0a0000.gpio/gpio/gpiochip416 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip448 -> ../../devices/platform/5d090000.gpio/gpio/gpiochip448 lrwxrwxrwx 1 root root 0 Jul 16 11:10 gpiochip480 -> ../../devices/platform/5d080000.gpio/gpio/gpiochip480 --w------- 1 root root 4096 Jul 16 11:10 unexport

? ? ? ? gpio組號需要查詢手冊或是看dtsi文件:

gpio0: gpio@5d080000 {compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";reg = <0x0 0x5d080000 0x0 0x10000>;interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;gpio-controller;#gpio-cells = <2>;power-domains = <&pd_lsio_gpio0>;interrupt-controller;#interrupt-cells = <2>;};

? ? ? ? gpio號等于組號加偏移號,如LSIO_GPIO0_IO24就是480+24=504,操作如下:

echo 504 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio504/directionehco 1 > /sys/class/gpio/gpio504/valueehco 0 > /sys/class/gpio/gpio504/value

總結

以上是生活随笔為你收集整理的IMX8MM IMX8QXP芯片配置GPIO方向和数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。