1. GPIO状态

cat /sys/kernel/debug/gpio

可以看到当前所有GPIO口的状态,输入输出模式,输出高/低

gpiochip0: GPIOs0-115, gpio:

gpio-0 ( |sysfs ) inhi

gpio-1 ( |sysfs ) inhi

gpio-2 ( |sysfs ) outlo

gpio-3 ( |sysfs ) inhi

gpio-4 ( |sysfs ) inhi

gpio-5 ( |sysfs ) outlo

gpio-6 ( |sysfs ) inhi

gpio-7 ( |sysfs ) outhi

gpio-8 ( |sysfs ) outlo

gpio-9 ( |sysfs ) inhi

gpio-10 ( |sysfs ) outhi

gpio-11 ( |sysfs ) inhi

gpio-12 ( |sysfs ) inhi

gpio-13 ( |sysfs ) outhi

gpio-14 ( |sysfs ) outhi

gpio-15 ( |sysfs ) outhi

gpio-16 ( |sysfs ) inhi

gpio-17 ( |sysfs ) inlo

gpio-18 ( |sysfs ) inlo

gpio-19 ( |sysfs ) inhi

gpio-20 ( |sysfs ) inlo

gpio-21 ( |sysfs ) inlo

gpio-22 ( |sysfs ) inhi

gpio-23 ( |sysfs ) inlo

gpio-24 ( |sysfs ) inlo

gpio-25 ( |sysfs ) inlo

gpio-26 ( |sysfs ) inlo

gpio-27 ( |sysfs ) inhi

gpio-28 ( |sysfs ) inhi

gpio-29 ( |sysfs ) inhi

gpio-30 ( |sysfs ) inhi

gpio-31 ( |sysfs ) inlo

gpio-32 ( |sysfs ) inhi

gpio-33 ( |sysfs ) inhi

gpio-34 ( |sysfs ) inlo

gpio-35 ( |sysfs ) outlo

gpio-36 ( |sysfs ) outlo

gpio-37 ( |sysfs ) outlo

gpio-38 ( |sysfs ) outlo

gpio-39 ( |sysfs ) inlo

gpio-40 ( |sysfs ) inhi

gpio-41 ( |sysfs ) inhi

gpio-42 ( |sysfs ) inhi

gpio-43 ( |sysfs ) inhi

gpio-44 ( |sysfs ) inlo

gpio-45 ( |sysfs ) outhi

gpio-46 ( |sysfs ) inhi

gpio-47 ( |sysfs ) outhi

gpio-48 ( |sysfs ) inhi

gpio-49 ( |sysfs ) outhi

gpio-50 ( |sysfs ) inhi

gpio-51 ( |sysfs ) inhi

gpio-52 ( |sysfs ) inlo

gpio-53 ( |sysfs ) outlo

gpio-54 ( |sysfs ) outhi

gpio-55 ( |sysfs ) outlo

gpio-56 ( |sysfs ) outhi

gpio-57 ( |sysfs ) outlo

gpio-58 ( |sysfs ) outhi

gpio-59 ( |sysfs ) inhi

gpio-60 ( |sysfs ) inhi

gpio-61 ( |sysfs ) outhi

gpio-64 ( |sysfs ) outhi

gpio-65 ( |sysfs ) outhi

gpio-66 ( |sysfs ) outhi

gpio-67 ( |sysfs ) outlo

gpio-68 ( |sysfs ) inhi

gpio-69 ( |sysfs ) inhi

gpio-70 ( |sysfs ) inhi

gpio-71 ( |sysfs ) inhi

gpio-72 ( |sysfs ) inhi

gpio-73 ( |sysfs ) inhi

gpio-74 ( |sysfs ) outlo

gpio-75 ( |sysfs ) outhi

gpio-76 ( |sysfs ) inhi

gpio-77 ( |sysfs ) inhi

gpio-78 ( |sysfs ) inhi

gpio-79 ( |sysfs ) inlo

gpio-80 ( |sysfs ) inhi

gpio-81 ( |sysfs ) inlo

gpio-82 ( |sysfs ) inlo

gpio-83 ( |sysfs ) outlo

gpio-84 ( |sysfs ) inlo

gpio-85 ( |sysfs ) inlo

gpio-86 ( |sysfs ) outhi

gpio-87 ( |sysfs ) outlo

gpio-88 ( |sysfs ) inhi

gpio-89 ( |sysfs ) outlo

gpio-90 ( |sysfs ) outlo

gpio-91 ( |sysfs ) outlo

gpio-92 ( |sysfs ) inhi

gpio-93 ( |sysfs ) inhi

gpio-94 ( |sysfs ) outhi

gpio-95 ( |sysfs ) outhi

gpio-96 ( |sysfs ) inlo

gpio-97 ( |scl ) inhi

gpio-98 ( |sda ) inhi

gpio-99 ( |sysfs ) inhi

gpio-100 ( |sysfs ) inhi

gpio-101 ( |sysfs ) inhi

gpio-102 ( |sysfs ) inlo

gpio-103 ( |sysfs ) inhi

gpio-104 ( |sysfs ) inhi

gpio-105 ( |sysfs ) inhi

gpio-106 ( |sysfs ) inhi

gpio-107 ( |sysfs ) inhi

gpio-108 ( |sysfs ) inhi

gpio-109 ( |sysfs ) inhi

gpio-110 ( |sysfs ) outlo

gpio-111 ( |sysfs ) outhi

gpio-112 ( |sysfs ) inhi

gpio-113 ( |sysfs ) inhi

gpio-114 ( |sysfs ) inhi

gpio-115 ( |sysfs ) in hi

例如: GPIO74 为 输出 低电平(lo-低,hi-高)

gpio-74 ( |sysfs ) out lo

2. GPIO属性

以gpio-16为例:

(1)direction : IO 输入/输出模式

# cat /sys/devices/gpiochip0/gpio/gpio16/directionout

(2)active_low

# cat /sys/devices/gpiochip0/gpio/gpio16/active_low0

(3)value 当前电平高低

# cat /sys/devices/gpiochip0/gpio/gpio16/value0

手动拉高:

echo 1 > /sys/devices/gpiochip0/gpio/gpio16/value

手动拉低:

echo 0 > /sys/devices/gpiochip0/gpio/gpio16/value

3. reg 与 IO 映射

reg 和 pin ID映射 vendor\mstar\kernel\linaro\mstar2\hal\m7221\gpio\mhal_gpio.c

#define GPIO0_PAD PAD_IRIN

#define GPIO0_OEN 0x0f26, BIT0

#define GPIO0_OUT 0x0f26, BIT1

#define GPIO0_IN 0x0f26, BIT2

#define GPIO1_PAD PAD_CEC0

#define GPIO1_OEN 0x0f2a, BIT0

#define GPIO1_OUT 0x0f2a, BIT1

#define GPIO1_IN 0x0f2a, BIT2

#define GPIO2_PAD PAD_PWM_PM

#define GPIO2_OEN 0x0f28, BIT0

#define GPIO2_OUT 0x0f28, BIT1

#define GPIO2_IN 0x0f28, BIT2

#define GPIO3_PAD PAD_DDCA_CK

#define GPIO3_OEN 0x0494, BIT1

#define GPIO3_OUT 0x0494, BIT2

#define GPIO3_IN 0x0494, BIT0

#define GPIO4_PAD PAD_DDCA_DA

#define GPIO4_OEN 0x0494, BIT5

#define GPIO4_OUT 0x0494, BIT6

#define GPIO4_IN 0x0494, BIT4

#define GPIO5_PAD PAD_GPIO0_PM

#define GPIO5_OEN 0x0f00, BIT0

#define GPIO5_OUT 0x0f00, BIT1

#define GPIO5_IN 0x0f00, BIT2

#define GPIO6_PAD PAD_GPIO1_PM

#define GPIO6_OEN 0x0f02, BIT0

#define GPIO6_OUT 0x0f02, BIT1

#define GPIO6_IN 0x0f02, BIT2

#define GPIO7_PAD PAD_GPIO2_PM

#define GPIO7_OEN 0x0f04, BIT0

#define GPIO7_OUT 0x0f04, BIT1

#define GPIO7_IN 0x0f04, BIT2

#define GPIO8_PAD PAD_USB_CTRL

#define GPIO8_OEN 0x0f06, BIT0

#define GPIO8_OUT 0x0f06, BIT1

#define GPIO8_IN 0x0f06, BIT2

#define GPIO9_PAD PAD_GPIO5_PM

#define GPIO9_OEN 0x0f0a, BIT0

#define GPIO9_OUT 0x0f0a, BIT1

#define GPIO9_IN 0x0f0a, BIT2

#define GPIO10_PAD PAD_GPIO6_PM

#define GPIO10_OEN 0x0f0c, BIT0

#define GPIO10_OUT 0x0f0c, BIT1

#define GPIO10_IN 0x0f0c, BIT2

#define GPIO11_PAD PAD_GPIO7_PM

#define GPIO11_OEN 0x0f0e, BIT0

#define GPIO11_OUT 0x0f0e, BIT1

#define GPIO11_IN 0x0f0e, BIT2

#define GPIO12_PAD PAD_GPIO8_PM

#define GPIO12_OEN 0x0f10, BIT0

#define GPIO12_OUT 0x0f10, BIT1

#define GPIO12_IN 0x0f10, BIT2

#define GPIO13_PAD PAD_GPIO9_PM

#define GPIO13_OEN 0x0f12, BIT0

#define GPIO13_OUT 0x0f12, BIT1

#define GPIO13_IN 0x0f12, BIT2

#define GPIO14_PAD PAD_GPIO10_PM

#define GPIO14_OEN 0x0f14, BIT0

#define GPIO14_OUT 0x0f14, BIT1

#define GPIO14_IN 0x0f14, BIT2

#define GPIO15_PAD PAD_GPIO11_PM

#define GPIO15_OEN 0x0f16, BIT0

#define GPIO15_OUT 0x0f16, BIT1

#define GPIO15_IN 0x0f16, BIT2

#define GPIO16_PAD PAD_GPIO12_PM

#define GPIO16_OEN 0x0f18, BIT0

#define GPIO16_OUT 0x0f18, BIT1

#define GPIO16_IN 0x0f18, BIT2

#define GPIO17_PAD PAD_HOTPLUGA

#define GPIO17_OEN 0x0e4e, BIT0

#define GPIO17_OUT 0x0e4e, BIT4

#define GPIO17_IN 0x0e4f, BIT0

#define GPIO18_PAD PAD_HOTPLUGB

#define GPIO18_OEN 0x0e4e, BIT1

#define GPIO18_OUT 0x0e4e, BIT5

#define GPIO18_IN 0x0e4f, BIT1

#define GPIO19_PAD PAD_HOTPLUGC

#define GPIO19_OEN 0x0e4e, BIT2

#define GPIO19_OUT 0x0e4e, BIT6

#define GPIO19_IN 0x0e4f, BIT2

#define GPIO20_PAD PAD_HOTPLUGA_HDMI20_5V

#define GPIO20_OEN 0x010218, BIT5

#define GPIO20_OUT 0x010218, BIT4

#define GPIO20_IN 0x010218, BIT6

#define GPIO21_PAD PAD_HOTPLUGB_HDMI20_5V

#define GPIO21_OEN 0x010318, BIT5

#define GPIO21_OUT 0x010318, BIT4

#define GPIO21_IN 0x010318, BIT6

#define GPIO22_PAD PAD_HOTPLUGC_HDMI20_5V

#define GPIO22_OEN 0x010418, BIT5

#define GPIO22_OUT 0x010418, BIT4

#define GPIO22_IN 0x010418, BIT6

#define GPIO23_PAD PAD_DDCDA_CK

#define GPIO23_OEN 0x0496, BIT1

#define GPIO23_OUT 0x0496, BIT2

#define GPIO23_IN 0x0496, BIT0

#define GPIO24_PAD PAD_DDCDA_DA

#define GPIO24_OEN 0x0496, BIT5

#define GPIO24_OUT 0x0496, BIT6

#define GPIO24_IN 0x0496, BIT4

#define GPIO25_PAD PAD_DDCDB_CK

#define GPIO25_OEN 0x0497, BIT1

#define GPIO25_OUT 0x0497, BIT2

#define GPIO25_IN 0x0497, BIT0

#define GPIO26_PAD PAD_DDCDB_DA

#define GPIO26_OEN 0x0497, BIT5

#define GPIO26_OUT 0x0497, BIT6

#define GPIO26_IN 0x0497, BIT4

#define GPIO27_PAD PAD_DDCDC_CK

#define GPIO27_OEN 0x0498, BIT1

#define GPIO27_OUT 0x0498, BIT2

#define GPIO27_IN 0x0498, BIT0

#define GPIO28_PAD PAD_DDCDC_DA

#define GPIO28_OEN 0x0498, BIT5

#define GPIO28_OUT 0x0498, BIT6

#define GPIO28_IN 0x0498, BIT4

#define GPIO29_PAD PAD_SAR0

#define GPIO29_OEN 0x1423, BIT0

#define GPIO29_OUT 0x1424, BIT0

#define GPIO29_IN 0x1425, BIT0

#define GPIO30_PAD PAD_SAR1

#define GPIO30_OEN 0x1423, BIT1

#define GPIO30_OUT 0x1424, BIT1

#define GPIO30_IN 0x1425, BIT1

#define GPIO31_PAD PAD_SAR2

#define GPIO31_OEN 0x1423, BIT2

#define GPIO31_OUT 0x1424, BIT2

#define GPIO31_IN 0x1425, BIT2

#define GPIO32_PAD PAD_SAR3

#define GPIO32_OEN 0x1423, BIT3

#define GPIO32_OUT 0x1424, BIT3

#define GPIO32_IN 0x1425, BIT3

#define GPIO33_PAD PAD_SAR4

#define GPIO33_OEN 0x1423, BIT4

#define GPIO33_OUT 0x1424, BIT4

#define GPIO33_IN 0x1425, BIT4

#define GPIO34_PAD PAD_VPLUGIN

#define GPIO34_OEN 0x1423, BIT5

#define GPIO34_OUT 0x1424, BIT5

#define GPIO34_IN 0x1425, BIT5

#define GPIO35_PAD PAD_VID0

#define GPIO35_OEN 0x2e84, BIT1

#define GPIO35_OUT 0x2e84, BIT0

#define GPIO35_IN 0x2e84, BIT2

#define GPIO36_PAD PAD_VID1

#define GPIO36_OEN 0x2e85, BIT1

#define GPIO36_OUT 0x2e85, BIT0

#define GPIO36_IN 0x2e85, BIT2

#define GPIO37_PAD PAD_VID2

#define GPIO37_OEN 0x0f22, BIT0

#define GPIO37_OUT 0x0f22, BIT1

#define GPIO37_IN 0x0f22, BIT2

#define GPIO38_PAD PAD_VID3

#define GPIO38_OEN 0x0f24, BIT0

#define GPIO38_OUT 0x0f24, BIT1

#define GPIO38_IN 0x0f24, BIT2

#define GPIO39_PAD PAD_WOL_INT_OUT

#define GPIO39_OEN 0x2e82, BIT1

#define GPIO39_OUT 0x2e82, BIT0

#define GPIO39_IN 0x2e82, BIT2

#define GPIO40_PAD PAD_I2S_IN_BCK

#define GPIO40_OEN 0x0f3e, BIT0

#define GPIO40_OUT 0x0f3e, BIT1

#define GPIO40_IN 0x0f3e, BIT2

#define GPIO41_PAD PAD_I2S_IN_WS

#define GPIO41_OEN 0x0f40, BIT0

#define GPIO41_OUT 0x0f40, BIT1

#define GPIO41_IN 0x0f40, BIT2

#define GPIO42_PAD PAD_I2S_IN_MCK

#define GPIO42_OEN 0x0f42, BIT0

#define GPIO42_OUT 0x0f42, BIT1

#define GPIO42_IN 0x0f42, BIT2

#define GPIO43_PAD PAD_I2S_IN_SD0

#define GPIO43_OEN 0x0f44, BIT0

#define GPIO43_OUT 0x0f44, BIT1

#define GPIO43_IN 0x0f44, BIT2

#define GPIO44_PAD PAD_I2S_IN_SD1

#define GPIO44_OEN 0x0f46, BIT0

#define GPIO44_OUT 0x0f46, BIT1

#define GPIO44_IN 0x0f46, BIT2

#define GPIO45_PAD PAD_CILINK_DEMOD0_CLK

#define GPIO45_OEN 0x102b13, BIT1

#define GPIO45_OUT 0x102b13, BIT0

#define GPIO45_IN 0x102b13, BIT2

#define GPIO46_PAD PAD_CILINK_DEMOD1_CLK

#define GPIO46_OEN 0x102b1a, BIT1

#define GPIO46_OUT 0x102b1a, BIT0

#define GPIO46_IN 0x102b1a, BIT2

#define GPIO47_PAD PAD_CILINK_INT

#define GPIO47_OEN 0x102b12, BIT1

#define GPIO47_OUT 0x102b12, BIT0

#define GPIO47_IN 0x102b12, BIT2

#define GPIO48_PAD PAD_CILINK_RX0_D0

#define GPIO48_OEN 0x102b18, BIT1

#define GPIO48_OUT 0x102b18, BIT0

#define GPIO48_IN 0x102b18, BIT2

#define GPIO49_PAD PAD_CILINK_RX0_D1

#define GPIO49_OEN 0x102b19, BIT1

#define GPIO49_OUT 0x102b19, BIT0

#define GPIO49_IN 0x102b19, BIT2

#define GPIO50_PAD PAD_CILINK_RX1_D0

#define GPIO50_OEN 0x102ba1, BIT1

#define GPIO50_OUT 0x102ba1, BIT0

#define GPIO50_IN 0x102ba1, BIT2

#define GPIO51_PAD PAD_CILINK_RX1_D1

#define GPIO51_OEN 0x102ba2, BIT1

#define GPIO51_OUT 0x102ba2, BIT0

#define GPIO51_IN 0x102ba2, BIT2

#define GPIO52_PAD PAD_CILINK_RX_CLK

#define GPIO52_OEN 0x102b17, BIT1

#define GPIO52_OUT 0x102b17, BIT0

#define GPIO52_IN 0x102b17, BIT2

#define GPIO53_PAD PAD_CILINK_SPI_CLK

#define GPIO53_OEN 0x102b0e, BIT1

#define GPIO53_OUT 0x102b0e, BIT0

#define GPIO53_IN 0x102b0e, BIT2

#define GPIO54_PAD PAD_CILINK_SPI_CS

#define GPIO54_OEN 0x102b11, BIT1

#define GPIO54_OUT 0x102b11, BIT0

#define GPIO54_IN 0x102b11, BIT2

#define GPIO55_PAD PAD_CILINK_SPI_MISO

#define GPIO55_OEN 0x102b10, BIT1

#define GPIO55_OUT 0x102b10, BIT0

#define GPIO55_IN 0x102b10, BIT2

#define GPIO56_PAD PAD_CILINK_SPI_MOSI

#define GPIO56_OEN 0x102b0f, BIT1

#define GPIO56_OUT 0x102b0f, BIT0

#define GPIO56_IN 0x102b0f, BIT2

#define GPIO57_PAD PAD_CILINK_TX0_D0

#define GPIO57_OEN 0x102b15, BIT1

#define GPIO57_OUT 0x102b15, BIT0

#define GPIO57_IN 0x102b15, BIT2

#define GPIO58_PAD PAD_CILINK_TX0_D1

#define GPIO58_OEN 0x102b16, BIT1

#define GPIO58_OUT 0x102b16, BIT0

#define GPIO58_IN 0x102b16, BIT2

#define GPIO59_PAD PAD_CILINK_TX1_D0

#define GPIO59_OEN 0x102b1b, BIT1

#define GPIO59_OUT 0x102b1b, BIT0

#define GPIO59_IN 0x102b1b, BIT2

#define GPIO60_PAD PAD_CILINK_TX1_D1

#define GPIO60_OEN 0x102ba0, BIT1

#define GPIO60_OUT 0x102ba0, BIT0

#define GPIO60_IN 0x102ba0, BIT2

#define GPIO61_PAD PAD_CILINK_TX_CLK

#define GPIO61_OEN 0x102b14, BIT1

#define GPIO61_OUT 0x102b14, BIT0

#define GPIO61_IN 0x102b14, BIT2

#define GPIO62_PAD PAD_DDCR_CK

#define GPIO62_OEN 0x102b87, BIT1

#define GPIO62_OUT 0x102b87, BIT0

#define GPIO62_IN 0x102b87, BIT2

#define GPIO63_PAD PAD_DDCR_DA

#define GPIO63_OEN 0x102b86, BIT1

#define GPIO63_OUT 0x102b86, BIT0

#define GPIO63_IN 0x102b86, BIT2

#define GPIO64_PAD PAD_GPIO2

#define GPIO64_OEN 0x102b00, BIT1

#define GPIO64_OUT 0x102b00, BIT0

#define GPIO64_IN 0x102b00, BIT2

#define GPIO65_PAD PAD_GPIO3

#define GPIO65_OEN 0x102b01, BIT1

#define GPIO65_OUT 0x102b01, BIT0

#define GPIO65_IN 0x102b01, BIT2

#define GPIO66_PAD PAD_GPIO4

#define GPIO66_OEN 0x102b02, BIT1

#define GPIO66_OUT 0x102b02, BIT0

#define GPIO66_IN 0x102b02, BIT2

#define GPIO67_PAD PAD_GPIO5

#define GPIO67_OEN 0x102b03, BIT1

#define GPIO67_OUT 0x102b03, BIT0

#define GPIO67_IN 0x102b03, BIT2

#define GPIO68_PAD PAD_GPIO9

#define GPIO68_OEN 0x102b04, BIT1

#define GPIO68_OUT 0x102b04, BIT0

#define GPIO68_IN 0x102b04, BIT2

#define GPIO69_PAD PAD_GPIO10

#define GPIO69_OEN 0x102b05, BIT1

#define GPIO69_OUT 0x102b05, BIT0

#define GPIO69_IN 0x102b05, BIT2

#define GPIO70_PAD PAD_GPIO11

#define GPIO70_OEN 0x102b06, BIT1

#define GPIO70_OUT 0x102b06, BIT0

#define GPIO70_IN 0x102b06, BIT2

#define GPIO71_PAD PAD_GPIO12

#define GPIO71_OEN 0x102b07, BIT1

#define GPIO71_OUT 0x102b07, BIT0

#define GPIO71_IN 0x102b07, BIT2

#define GPIO72_PAD PAD_GPIO19

#define GPIO72_OEN 0x102b08, BIT1

#define GPIO72_OUT 0x102b08, BIT0

#define GPIO72_IN 0x102b08, BIT2

#define GPIO73_PAD PAD_GPIO20

#define GPIO73_OEN 0x102b09, BIT1

#define GPIO73_OUT 0x102b09, BIT0

#define GPIO73_IN 0x102b09, BIT2

#define GPIO74_PAD PAD_GPIO25

#define GPIO74_OEN 0x102b0a, BIT1

#define GPIO74_OUT 0x102b0a, BIT0

#define GPIO74_IN 0x102b0a, BIT2

#define GPIO75_PAD PAD_GPIO26

#define GPIO75_OEN 0x102b0b, BIT1

#define GPIO75_OUT 0x102b0b, BIT0

#define GPIO75_IN 0x102b0b, BIT2

#define GPIO76_PAD PAD_GPIO30

#define GPIO76_OEN 0x102b0c, BIT1

#define GPIO76_OUT 0x102b0c, BIT0

#define GPIO76_IN 0x102b0c, BIT2

#define GPIO77_PAD PAD_GPIO31

#define GPIO77_OEN 0x102b0d, BIT1

#define GPIO77_OUT 0x102b0d, BIT0

#define GPIO77_IN 0x102b0d, BIT2

#define GPIO78_PAD PAD_HDMIRX_ARCTX

#define GPIO78_OEN 0x110320, BIT1

#define GPIO78_OUT 0x110320, BIT0

#define GPIO78_IN 0x110320, BIT2

#define GPIO79_PAD PAD_I2S_OUT_BCK

#define GPIO79_OEN 0x102b38, BIT1

#define GPIO79_OUT 0x102b38, BIT0

#define GPIO79_IN 0x102b38, BIT2

#define GPIO80_PAD PAD_I2S_OUT_MCK

#define GPIO80_OEN 0x102b39, BIT1

#define GPIO80_OUT 0x102b39, BIT0

#define GPIO80_IN 0x102b39, BIT2

#define GPIO81_PAD PAD_I2S_OUT_SD

#define GPIO81_OEN 0x102b3b, BIT1

#define GPIO81_OUT 0x102b3b, BIT0

#define GPIO81_IN 0x102b3b, BIT2

#define GPIO82_PAD PAD_I2S_OUT_SD1

#define GPIO82_OEN 0x102b3c, BIT1

#define GPIO82_OUT 0x102b3c, BIT0

#define GPIO82_IN 0x102b3c, BIT2

#define GPIO83_PAD PAD_I2S_OUT_SD2

#define GPIO83_OEN 0x102b3d, BIT1

#define GPIO83_OUT 0x102b3d, BIT0

#define GPIO83_IN 0x102b3d, BIT2

#define GPIO84_PAD PAD_I2S_OUT_WS

#define GPIO84_OEN 0x102b3a, BIT1

#define GPIO84_OUT 0x102b3a, BIT0

#define GPIO84_IN 0x102b3a, BIT2

#define GPIO85_PAD PAD_PWM0

#define GPIO85_OEN 0x102b88, BIT1

#define GPIO85_OUT 0x102b88, BIT0

#define GPIO85_IN 0x102b88, BIT2

#define GPIO86_PAD PAD_PWM1

#define GPIO86_OEN 0x102b89, BIT1

#define GPIO86_OUT 0x102b89, BIT0

#define GPIO86_IN 0x102b89, BIT2

#define GPIO87_PAD PAD_PWM2

#define GPIO87_OEN 0x102b8a, BIT1

#define GPIO87_OUT 0x102b8a, BIT0

#define GPIO87_IN 0x102b8a, BIT2

#define GPIO88_PAD PAD_PWM3

#define GPIO88_OEN 0x102b8b, BIT1

#define GPIO88_OUT 0x102b8b, BIT0

#define GPIO88_IN 0x102b8b, BIT2

#define GPIO89_PAD PAD_SD_CLK

#define GPIO89_OEN 0x102bfa, BIT1

#define GPIO89_OUT 0x102bfa, BIT0

#define GPIO89_IN 0x102bfa, BIT2

#define GPIO90_PAD PAD_SD_CMD

#define GPIO90_OEN 0x102bfb, BIT1

#define GPIO90_OUT 0x102bfb, BIT0

#define GPIO90_IN 0x102bfb, BIT2

#define GPIO91_PAD PAD_SD_D0

#define GPIO91_OEN 0x102bac, BIT1

#define GPIO91_OUT 0x102bac, BIT0

#define GPIO91_IN 0x102bac, BIT2

#define GPIO92_PAD PAD_SD_D1

#define GPIO92_OEN 0x102bad, BIT1

#define GPIO92_OUT 0x102bad, BIT0

#define GPIO92_IN 0x102bad, BIT2

#define GPIO93_PAD PAD_SD_D2

#define GPIO93_OEN 0x102bae, BIT1

#define GPIO93_OUT 0x102bae, BIT0

#define GPIO93_IN 0x102bae, BIT2

#define GPIO94_PAD PAD_SD_D3

#define GPIO94_OEN 0x102bf9, BIT1

#define GPIO94_OUT 0x102bf9, BIT0

#define GPIO94_IN 0x102bf9, BIT2

#define GPIO95_PAD PAD_SPDIF_IN

#define GPIO95_OEN 0x102b36, BIT1

#define GPIO95_OUT 0x102b36, BIT0

#define GPIO95_IN 0x102b36, BIT2

#define GPIO96_PAD PAD_SPDIF_OUT

#define GPIO96_OEN 0x102b37, BIT1

#define GPIO96_OUT 0x102b37, BIT0

#define GPIO96_IN 0x102b37, BIT2

#define GPIO97_PAD PAD_TGPIO0

#define GPIO97_OEN 0x102b8d, BIT1

#define GPIO97_OUT 0x102b8d, BIT0

#define GPIO97_IN 0x102b8d, BIT2

#define GPIO98_PAD PAD_TGPIO1

#define GPIO98_OEN 0x102b8e, BIT1

#define GPIO98_OUT 0x102b8e, BIT0

#define GPIO98_IN 0x102b8e, BIT2

#define GPIO99_PAD PAD_TGPIO2

#define GPIO99_OEN 0x102b8f, BIT1

#define GPIO99_OUT 0x102b8f, BIT0

#define GPIO99_IN 0x102b8f, BIT2

#define GPIO100_PAD PAD_TGPIO3

#define GPIO100_OEN 0x102b90, BIT1

#define GPIO100_OUT 0x102b90, BIT0

#define GPIO100_IN 0x102b90, BIT2

#define GPIO101_PAD PAD_TS1_CLK

#define GPIO101_OEN 0x102b27, BIT1

#define GPIO101_OUT 0x102b27, BIT0

#define GPIO101_IN 0x102b27, BIT2

#define GPIO102_PAD PAD_TS1_D0

#define GPIO102_OEN 0x102b31, BIT1

#define GPIO102_OUT 0x102b31, BIT0

#define GPIO102_IN 0x102b31, BIT2

#define GPIO103_PAD PAD_TS1_D1

#define GPIO103_OEN 0x102b30, BIT1

#define GPIO103_OUT 0x102b30, BIT0

#define GPIO103_IN 0x102b30, BIT2

#define GPIO104_PAD PAD_TS1_D2

#define GPIO104_OEN 0x102b2f, BIT1

#define GPIO104_OUT 0x102b2f, BIT0

#define GPIO104_IN 0x102b2f, BIT2

#define GPIO105_PAD PAD_TS1_D3

#define GPIO105_OEN 0x102b2e, BIT1

#define GPIO105_OUT 0x102b2e, BIT0

#define GPIO105_IN 0x102b2e, BIT2

#define GPIO106_PAD PAD_TS1_D4

#define GPIO106_OEN 0x102b2d, BIT1

#define GPIO106_OUT 0x102b2d, BIT0

#define GPIO106_IN 0x102b2d, BIT2

#define GPIO107_PAD PAD_TS1_D5

#define GPIO107_OEN 0x102b2c, BIT1

#define GPIO107_OUT 0x102b2c, BIT0

#define GPIO107_IN 0x102b2c, BIT2

#define GPIO108_PAD PAD_TS1_D6

#define GPIO108_OEN 0x102b2b, BIT1

#define GPIO108_OUT 0x102b2b, BIT0

#define GPIO108_IN 0x102b2b, BIT2

#define GPIO109_PAD PAD_TS1_D7

#define GPIO109_OEN 0x102b2a, BIT1

#define GPIO109_OUT 0x102b2a, BIT0

#define GPIO109_IN 0x102b2a, BIT2

#define GPIO110_PAD PAD_TS1_SYNC

#define GPIO110_OEN 0x102b28, BIT1

#define GPIO110_OUT 0x102b28, BIT0

#define GPIO110_IN 0x102b28, BIT2

#define GPIO111_PAD PAD_TS1_VLD

#define GPIO111_OEN 0x102b29, BIT1

#define GPIO111_OUT 0x102b29, BIT0

#define GPIO111_IN 0x102b29, BIT2

#define GPIO112_PAD PAD_TS2_CLK

#define GPIO112_OEN 0x102b35, BIT1

#define GPIO112_OUT 0x102b35, BIT0

#define GPIO112_IN 0x102b35, BIT2

#define GPIO113_PAD PAD_TS2_D0

#define GPIO113_OEN 0x102b32, BIT1

#define GPIO113_OUT 0x102b32, BIT0

#define GPIO113_IN 0x102b32, BIT2

#define GPIO114_PAD PAD_TS2_SYNC

#define GPIO114_OEN 0x102b34, BIT1

#define GPIO114_OUT 0x102b34, BIT0

#define GPIO114_IN 0x102b34, BIT2

#define GPIO115_PAD PAD_TS2_VLD

#define GPIO115_OEN 0x102b33, BIT1

#define GPIO115_OUT 0x102b33, BIT0

#define GPIO115_IN 0x102b33, BIT2

#define GPIO_EXT0_MSK 0x10190c, BIT7

#define GPIO_EXT0_POL 0x101914, BIT7

#define GPIO_EXT0_CLR 0x10191c, BIT7

#define GPIO_EXT0_STS 0x10191c, BIT7

#define GPIO_EXT1_MSK 0x10190c, BIT11

#define GPIO_EXT1_POL 0x101914, BIT11

#define GPIO_EXT1_CLR 0x10191c, BIT11

#define GPIO_EXT1_STS 0x10191c, BIT11

#define GPIO_EXT2_MSK 0x10190c, BIT15

#define GPIO_EXT2_POL 0x101914, BIT15

#define GPIO_EXT2_CLR 0x10191c, BIT15

#define GPIO_EXT2_STS 0x10191c, BIT15

#define GPIO_EXT3_MSK 0x10190e, BIT7

#define GPIO_EXT3_POL 0x101916, BIT7

#define GPIO_EXT3_CLR 0x10191e, BIT7

#define GPIO_EXT3_STS 0x10191e, BIT7

#define GPIO_EXT4_MSK 0x10190e, BIT8

#define GPIO_EXT4_POL 0x101916, BIT8

#define GPIO_EXT4_CLR 0x10191e, BIT8

#define GPIO_EXT4_STS 0x10191e, BIT8

#define GPIO_EXT5_MSK 0x10190e, BIT8

#define GPIO_EXT5_POL 0x101916, BIT8

#define GPIO_EXT5_CLR 0x10191e, BIT8

#define GPIO_EXT5_STS 0x10191e, BIT8

#define GPIO_EXT6_MSK 0x10190e, BIT10

#define GPIO_EXT6_POL 0x101916, BIT10

#define GPIO_EXT6_CLR 0x10191e, BIT10

#define GPIO_EXT6_STS 0x10191e, BIT10

#define GPIO_EXT7_MSK 0x10190e, BIT15

#define GPIO_EXT7_POL 0x101916, BIT15

#define GPIO_EXT7_CLR 0x10191e, BIT15

#define GPIO_EXT7_STS 0x10191e, BIT15

例如 PAD_IRIN,PAD_CEC0,PAD_PWM_PM是pin id,在 vendor\mstar\kernel\linaro\mstar2\hal\m7221\gpio\mhal_gpio_reg.h 中定义:

#define PAD_IRIN 0

#define PAD_CEC0 1

#define PAD_PWM_PM 2

#define PAD_DDCA_CK 3

#define PAD_DDCA_DA 4

#define PAD_GPIO0_PM 5

#define PAD_GPIO1_PM 6

#define PAD_GPIO2_PM 7

#define PAD_USB_CTRL 8

#define PAD_GPIO5_PM 9

#define PAD_GPIO6_PM 10

#define PAD_GPIO7_PM 11

#define PAD_GPIO8_PM 12

#define PAD_GPIO9_PM 13

#define PAD_GPIO10_PM 14

#define PAD_GPIO11_PM 15

#define PAD_GPIO12_PM 16

#define PAD_HOTPLUGA 17

#define PAD_HOTPLUGB 18

#define PAD_HOTPLUGC 19

#define PAD_HOTPLUGA_HDMI20_5V 20

#define PAD_HOTPLUGB_HDMI20_5V 21

#define PAD_HOTPLUGC_HDMI20_5V 22

#define PAD_DDCDA_CK 23

#define PAD_DDCDA_DA 24

#define PAD_DDCDB_CK 25

#define PAD_DDCDB_DA 26

#define PAD_DDCDC_CK 27

#define PAD_DDCDC_DA 28

#define PAD_SAR0 29

#define PAD_SAR1 30

#define PAD_SAR2 31

#define PAD_SAR3 32

#define PAD_SAR4 33

#define PAD_VPLUGIN 34

#define PAD_VID0 35

#define PAD_VID1 36

#define PAD_VID2 37

#define PAD_VID3 38

#define PAD_WOL_INT_OUT 39

#define PAD_I2S_IN_BCK 40

#define PAD_I2S_IN_WS 41

#define PAD_I2S_IN_MCK 42

#define PAD_I2S_IN_SD0 43

#define PAD_I2S_IN_SD1 44

#define PAD_CILINK_DEMOD0_CLK 45

#define PAD_CILINK_DEMOD1_CLK 46

#define PAD_CILINK_INT 47

#define PAD_CILINK_RX0_D0 48

#define PAD_CILINK_RX0_D1 49

#define PAD_CILINK_RX1_D0 50

#define PAD_CILINK_RX1_D1 51

#define PAD_CILINK_RX_CLK 52

#define PAD_CILINK_SPI_CLK 53

#define PAD_CILINK_SPI_CS 54

#define PAD_CILINK_SPI_MISO 55

#define PAD_CILINK_SPI_MOSI 56

#define PAD_CILINK_TX0_D0 57

#define PAD_CILINK_TX0_D1 58

#define PAD_CILINK_TX1_D0 59

#define PAD_CILINK_TX1_D1 60

#define PAD_CILINK_TX_CLK 61

#define PAD_DDCR_CK 62

#define PAD_DDCR_DA 63

#define PAD_GPIO2 64

#define PAD_GPIO3 65

#define PAD_GPIO4 66

#define PAD_GPIO5 67

#define PAD_GPIO9 68

#define PAD_GPIO10 69

#define PAD_GPIO11 70

#define PAD_GPIO12 71

#define PAD_GPIO19 72

#define PAD_GPIO20 73

#define PAD_GPIO25 74

#define PAD_GPIO26 75

#define PAD_GPIO30 76

#define PAD_GPIO31 77

#define PAD_HDMIRX_ARCTX 78

#define PAD_I2S_OUT_BCK 79

#define PAD_I2S_OUT_MCK 80

#define PAD_I2S_OUT_SD 81

#define PAD_I2S_OUT_SD1 82

#define PAD_I2S_OUT_SD2 83

#define PAD_I2S_OUT_WS 84

#define PAD_PWM0 85

#define PAD_PWM1 86

#define PAD_PWM2 87

#define PAD_PWM3 88

#define PAD_SD_CLK 89

#define PAD_SD_CMD 90

#define PAD_SD_D0 91

#define PAD_SD_D1 92

#define PAD_SD_D2 93

#define PAD_SD_D3 94

#define PAD_SPDIF_IN 95

#define PAD_SPDIF_OUT 96

#define PAD_TGPIO0 97

#define PAD_TGPIO1 98

#define PAD_TGPIO2 99

#define PAD_TGPIO3 100

#define PAD_TS1_CLK 101

#define PAD_TS1_D0 102

#define PAD_TS1_D1 103

#define PAD_TS1_D2 104

#define PAD_TS1_D3 105

#define PAD_TS1_D4 106

#define PAD_TS1_D5 107

#define PAD_TS1_D6 108

#define PAD_TS1_D7 109

#define PAD_TS1_SYNC 110

#define PAD_TS1_VLD 111

#define PAD_TS2_CLK 112

#define PAD_TS2_D0 113

#define PAD_TS2_SYNC 114

#define PAD_TS2_VLD 115

#define GPIO_OEN 0 //set o to nake output

#define GPIO_ODN 1

#define IN_HIGH 1 //input high

#define IN_LOW 0 //input low

#define OUT_HIGH 1 //output high

#define OUT_LOW 0 //output low

4. pin id 与芯片管脚映射

以GPIO16 为例:

vendor\mstar\kernel\linaro\mstar2\hal\m7221\gpio\mhal_gpio.c

#define GPIO16_PAD PAD_GPIO12_PM

supernova\projects\board\m7221\ChipInfo\MSD96BUXM8.h

#define BALL_U3 PAD_GPIO12_PM

#define PAD_GPIO12_PM 17

#define GPIO_PAD_17 GPIO16#ifndef BALL_U3_IS_GPIO#define BALL_U3_IS_GPIO 0

#endif #ifndef PAD_GPIO12_PM_IS_GPIO#define PAD_GPIO12_PM_IS_GPIO BALL_U3_IS_GPIO

#endif

其中BALL_U3即为芯片的管脚

mstar v56几路hdmi_Android TV : Mstar平台 GPIO 调试相关推荐

  1. 高通平台gpio调试

    在Linux下,通过sysfs,获取gpio状态,也可以操作gpio. 1.获取gpio状态 cd /sys/kernel/debug/         cat gpio 2.调试gpio(以gpio ...

  2. 展讯平台GPIO调试方法

    GPIO操作的2种方法,1种查看状态的方法 关于GPIO寄存器的描述可以到展讯官网上下载GPIO寄存器的文档,由于网络差,当前登陆不进 1.GPIO被分为8组,每组GPIO对应的操作寄存器地址为 第一 ...

  3. MStar V56 + ITE66121转接板开发

    MStar V56支持AV,YPbPr,VGA,HDMI,USB等信源输入,TTL输出: ITE66121支持TTL转HDMI功能,并支持SPDIF/I2S输入,最终实现HDMI音视频同步输出: 通过 ...

  4. 康佳液晶电视(非智能)Mstar V56 芯片

        2023/6/11 下午8:10:01 康佳用的地面波数字电视解码芯片是?  2023/6/11 下午8:10:08 康佳电视使用的地面波数字电视解码芯片可能因不同的产品型号而有所 ...

  5. 乐视html5,乐视TV开放平台鼎力支持html5开发者

    随着2013年html5峰会圆满召开,乐视对html5开发者的支持进入了一个新的阶段.在过去十年中,互联网为全球范围内的技术创新和开发提供了前所未有的机遇.目前互联网逐渐进入人们的客厅.利用乐视网超级 ...

  6. 车路协同云控平台建设实践

    前言 随着汽车工业水平飞速发展,以及 IoT.5G.V2X 等信息通信技术的发展演进,通过汽车的智能化.网联化升级为大众带来更智能.更便捷的驾乘体验,成为汽车行业的发展趋势,自动驾驶.智能网联汽车成为 ...

  7. html5 开发tv,乐视TV开放平台鼎力支持html5开发者

    [赛迪网讯]8月14日消息,随着2013年html5峰会圆满召开,乐视对html5开发者的支持进入了一个新的阶段.在过去十年中,互联网为全球范围内的技术创新和开发提供了前所未有的机遇.目前互联网逐渐进 ...

  8. MTK65XX平台充电调试总结 (转载)

    MTK65XX平台充电调试总结 (转载) 摘要:调试电池的充放电管理,首先需要深入了解锂电池的电池原理和特点,充放电特性以及基本的电池安全问题.然后需要对MTK的电池管理驱动程序有深入的了解,理解电池 ...

  9. MTK65XX平台充电调试总结

    MTK平台充电调试总结 摘要:调试电池的充放电管理,首先需要深入了解锂电池的电池原理和特点,充放电特性以及基本的电池安全问题.然后需要对MTK的电池管理驱动程序有深入的了解,理解电池充放电算法的基本原 ...

最新文章

  1. 图对抗攻击及防御算法种类
  2. unity(2017.3) C# 常用API
  3. 类的构造函数(分类和调用)
  4. 一个能够保护个人收藏夹隐私的Chrome扩展
  5. 牛客网-数据结构笔试题目(四)-Powerful Ksenia问题解决方案(附源码)
  6. 轻松弄懂var、let、const之间的区别
  7. [JavaScript] js 判断闰年
  8. c语言的数组在栈区还是,用数组实现栈的功能的C语言代码?
  9. JAVA与js加密解密我常用的方法
  10. Java学习笔记2——java的安装和配置
  11. MySQL 数据库崩溃(crash)的常见原因和解决办法---发表到 《数据和云》 公众号
  12. python实习内容过程_实习报告
  13. 电商数据分析基础指标体系
  14. zlx生病.高热惊厥_zc20180306
  15. win7系统如何添加显示桌面?显示桌面图标设置方法
  16. 2020年手机上最好的25种免费游戏
  17. Julia语法归纳总结
  18. ADB Interface 找不到驱动程序
  19. CSDN 写文章报错:标题含有非法字符,请修改的解决方法
  20. Tyrion (含示例源码)

热门文章

  1. kompozer+mysql_KompoZer for mac下载_KompoZer for mac版V0.8b3下载(暂未上线)_预约_飞翔下载...
  2. 数学之路(2)-数据分析-R基础(4)
  3. char[] 转换为LPWSTR
  4. mysql root 不能登录_mysql root 用户不能登录的问题
  5. listview mysql查询_Sqlite 数据库分页查询(ListView分页显示数据)
  6. 来伊份与第四范式宣布战略合作 携手打造智慧零售新范本
  7. tensorflow随笔-tensorflow版本号
  8. .net随笔-vb.net Accord.Net机器学习之SVM分类
  9. 【NLP】文本预处理:删除单词停用词
  10. 【Python基础】当变量有值时,为什么会出现UnboundLocalError?