기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

저는 Digi connectCore 8X SBC Pro(SoM은 NXP i.MX8QuadXPlus 사용)로 개발을 하고 있습니다.

GPIO0_IO05에 대한 GPIO mode와 direction을 설정하고 싶은데 잘 안돼서 문의 글 올려드립니다.


어떻게 하면 GPIO 제어를 할 수 있을까요?

 

지금까지 디바이스 트리를 통해 GPIO를 설정했던 방법을 공유드리오니, 

잘못되거나 놓치고 있는 점을 알려주시면 감사드리겠습니다


1) GPIO0_IO05에 대한 i.MX 8x pad 명을 검색

아래 웹 사이트를 통해 SoM의 관련 pad 명을 찾을 수 있었습니다.

https://www.digi.com/resources/documentation/digidocs/PDFs/90002295.pdf

 

ESAI0_TX1이라는 pad 명을 찾았고, 이는 Ethernet과 관련있다는 것을 알았습니다.

또한 ESAI0_TX1에 대한 pad macro들을 찾았습니다.

 

SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3

SC_P_ESAI0_TX1_CONN_ENET1_RGMII_RXD3

 

2) GPIO pad에 대한 디바이스 트리 셋팅

아래 웹 사이트를 참고로 GPIO pad에 대한 디바이스 트리를 셋팅했습니다.

https://github.com/FrankBau/meta-marsboard-bsp/wiki/iMX6-Pad-Mux-and-Pad-Control

 

아래는 디바이스 트리 셋팅 내용입니다.

 

/* IOMUX */

&iomuxc {

        pinctrl-names = "default", "default";

        pinctrl-0 = <&pinctrl_expansion>;

        pinctrl-1 = <&pinctrl_hog>;

           /* Expansion Connector */

        pinctrl_expansion: expansiongrp {

                fsl,pins = <

                                 . . .

 

pinctrl_hog: hoggrp {

                fsl,pins = <

                                 /* (1<<3): output drive strength of 150 Ohm at 3.3V */

                        SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3     8

                        SC_P_ESAI0_TX1_CONN_ENET1_RGMII_RXD3    8

                >;

        };

          

};

 

3) sysfs에서 GPIO 상태 확인

커널 부팅 후 sysfs에서 GPIO 상태를 확인했습니다.

GPIO0_IO05은 GPIO 커널 번호가 485인데, sysfs에서 해당 번호의 GPIO를 찾을 수 없었습니다.


아래 웹 사이트를 참고로 계산한 GPIO 번호 계산 식입니다. 

https://www.digi.com/resources/documentation/digidocs/embedded/android/pie/cc8x/bsp_r_gpio_8x

N = 480 – (32 * <port_index>) + pin

ex) GPIO0_IO05(port 0, pin 5) is: 480 + 5 = 485

 

아래는 sysfs에서 GPIO 확인 결과입니다.

ccimx8xsbcpro:/ # cat /sys/kernel/debug/gpio                                  

gpiochip9: GPIOs 204-223, parent: platform/mca-cc8x-gpio, mca-gpio, can sleep:

 gpio-210 (                    |ADC                 ) in  lo   

 gpio-211 (                    |ADC                 ) in  lo   

 

gpiochip8: GPIOs 224-255, parent: platform/58222000.gpio, 58222000.gpio:

 

gpiochip7: GPIOs 256-287, parent: platform/5d0f0000.gpio, 5d0f0000.gpio:

 

gpiochip6: GPIOs 288-319, parent: platform/5d0e0000.gpio, 5d0e0000.gpio:

 

gpiochip5: GPIOs 320-351, parent: platform/5d0d0000.gpio, 5d0d0000.gpio:

 

gpiochip4: GPIOs 352-383, parent: platform/5d0c0000.gpio, 5d0c0000.gpio:

 gpio-352 (                    |PCIe reset          ) out hi   

 gpio-353 (                    |PCIe CLKREQ         ) out lo   

 gpio-357 (                    |3v3_usb_sw          ) out hi   

 gpio-374 (                    |cd                  ) in  hi IRQ

 

gpiochip3: GPIOs 384-415, parent: platform/5d0b0000.gpio, 5d0b0000.gpio:

 gpio-393 (                    |mca-fw-update       ) out lo   

 gpio-394 (                    |BT power enable     ) out hi   

 gpio-395 (                    |PCIe DIS            ) out hi   

 gpio-396 (                    |epdev_on            ) out hi   

 gpio-397 (                    |3v3_eth0            ) out lo   

 

gpiochip2: GPIOs 416-447, parent: platform/5d0a0000.gpio, 5d0a0000.gpio:

 

gpiochip1: GPIOs 448-479, parent: platform/5d090000.gpio, 5d090000.gpio:

 

gpiochip0: GPIOs 480-511, parent: platform/5d080000.gpio, 5d080000.gpio:

 gpio-493 (                    |5v_display          ) out lo   

 gpio-494 (                    |3v3_audio           ) out lo   

 gpio-495 (                    |3v3_usb_hub         ) out hi   

 gpio-511 (                    |vcc                 ) out hi


답변 부탁드리겠습니다.

감사합니다.


고도리

2021.02.05 01:17:43
*.75.54.245

i.mx 시리즈가 key 설정이 꽤 어렵다라고 듣기는 했는데, 내일 간단하게 물어봐서 답이 나오면 댓글 써 놓도록 하겠습니다.(뭔가를 많이 해야 한다라고 하더군요)


요즘은 워낙 이런 문제에 대해 설명이 없더라고요...ㅠ.ㅠ

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
28 안드로이드 버튼입력 지연 [2] 아라라라기 2015-12-15 211
27 Touch screen에 관해서… [1] 어떤이의꿈 2015-08-10 209
26 PWM Timer2 Prescaler값 변경시 시스템 시간 지연 문제? [3] 루벤94 2015-10-06 209
25 CodeSourcery에 보면arm-none-linux-gnueabi 라이브러리가 세폴더로 ... biokk 2015-03-05 208
24 /dev/mmcblk0rpmb가 나오게 하려면 어떻게 해야 하나요? [1] 혜민아빠 2015-11-19 207
23 Web Application Server 또는 Web Server에 대한 질문 [2] SpecialCase 2019-03-28 206
22 [요청] 이솝따라하기 편 닉슨클라우드 2017-01-11 205
21 on cell 형 multi touch panel 사용법? [1] 문종섭 2016-09-29 204
20 smsc9220 질문 file [2] *김종원 2015-07-24 203
19 check_usb_vfs("/dev/bus/usb") 에러 [1] 생생맥주 2015-01-25 200
18 밑의 LCD 포팅 질문드렸었는데 추가 질문이 있습니다. [2] ImYeol 2015-08-13 193
17 Alto 4330 보드에서 sdcard의 리눅스 커널로 부팅하는 방법 [2] 포도씨 2016-11-18 192
16 키이벤트 관련 질문드립니다. [3] 하하호호하하 2015-10-06 188
15 udev 를 이용하여 /dev 사용권한을 변경할수 있나요? [1] pedor11 2015-11-18 185
14 i.mx6q에서 libvpu.so 라이브러리를 사용하여 link시에 undefined ... [1] 이동희 2019-08-09 182
13 2440 보드의 address 신호와 소스상의 주소를 어떻게 이해 하고 있... [2] DavidKim 2015-07-29 181
12 virtualbox에 안드로이드가 잘 안도네요 [1] 더미원 2017-03-20 180
11 touch screen관련 여쭤봅니다. [1] 열심히 2015-07-25 173
10 USB GPS를 재부팅 후에도 자동으로 동작하게 하려고 합니다. [3] 겟페우스 2017-06-03 172
» SoM GPIO 제어 문의 [1] 단순최고 2021-01-25 168

사용자 로그인