imx7d MX7D_PAD_LCD_DATA04 cannot be used

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx7d MX7D_PAD_LCD_DATA04 cannot be used

1,108 Views
864535720
Contributor II

Hello everyone
my development board is IMX7DSABRE. Linux kernel version is 4.9.88

After MX7D_PAD_LCD_DATA04 and MX7D_PAD_LCD_DATA08 are multiplexed as GPIO functions, the state of the gpio pin cannot be changed through the gpio_set_value function. After the other MX7D_PAD_LCD_DATAn is multiplexed as the gpio function, the state of the gpio pin can be normally controlled. My driver has successfully applied for two IO resources, MX7D_PAD_LCD_DATA04__GPIO3_IO9 and MX7D_PAD_LCD_DATA08__GPIO3_IO13. But they can't control their pin status. Can you verify this problem?

I have confirmed here that MX7D_PAD_LCD_DATA04__GPIO3_IO9 and MX7D_PAD_LCD_DATA08__GPIO3_IO13 are not used elsewhere. Please send me a reply after verification.

Labels (5)
2 Replies

1,008 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi Qidong,

I tested it on i.MX7D EVK board, see steps below, please!

-----------------------------------

(1) Add LCD_DATA04/08 pins here
        pinctrl_hog_1: hoggrp-1 {
            fsl,pins = <
                MX7D_PAD_EPDC_BDR0__GPIO2_IO28    0x59 /* headphone detect */
                MX7D_PAD_LCD_DATA04__GPIO3_IO9             0X59 /* TEST */
                MX7D_PAD_LCD_DATA08__GPIO3_IO13           0x59 /* TEST */
                
            >;
        };
(2) Commnet LCD pins IOMUX
/*

        pinctrl_lcdif: lcdifgrp {
            fsl,pins = <
                MX7D_PAD_LCD_DATA00__LCD_DATA0        0x79
                MX7D_PAD_LCD_DATA01__LCD_DATA1        0x79
                MX7D_PAD_LCD_DATA02__LCD_DATA2        0x79
                MX7D_PAD_LCD_DATA03__LCD_DATA3        0x79
                MX7D_PAD_LCD_DATA04__LCD_DATA4        0x79
                MX7D_PAD_LCD_DATA05__LCD_DATA5        0x79
                MX7D_PAD_LCD_DATA06__LCD_DATA6        0x79
                MX7D_PAD_LCD_DATA07__LCD_DATA7        0x79
                MX7D_PAD_LCD_DATA08__LCD_DATA8        0x79
                MX7D_PAD_LCD_DATA09__LCD_DATA9        0x79
                MX7D_PAD_LCD_DATA10__LCD_DATA10        0x79
                MX7D_PAD_LCD_DATA11__LCD_DATA11        0x79
                MX7D_PAD_LCD_DATA12__LCD_DATA12        0x79
                MX7D_PAD_LCD_DATA13__LCD_DATA13        0x79
                MX7D_PAD_LCD_DATA14__LCD_DATA14        0x79
                MX7D_PAD_LCD_DATA15__LCD_DATA15        0x79
                MX7D_PAD_LCD_DATA16__LCD_DATA16        0x79
                MX7D_PAD_LCD_DATA17__LCD_DATA17        0x79
                MX7D_PAD_LCD_DATA18__LCD_DATA18        0x79
                MX7D_PAD_LCD_DATA19__LCD_DATA19        0x79
                MX7D_PAD_LCD_DATA20__LCD_DATA20        0x79
                MX7D_PAD_LCD_DATA21__LCD_DATA21        0x79
                MX7D_PAD_LCD_DATA22__LCD_DATA22        0x79
                MX7D_PAD_LCD_DATA23__LCD_DATA23        0x79
                MX7D_PAD_LCD_CLK__LCD_CLK        0x79
                MX7D_PAD_LCD_ENABLE__LCD_ENABLE        0x79
                MX7D_PAD_LCD_VSYNC__LCD_VSYNC        0x79
                MX7D_PAD_LCD_HSYNC__LCD_HSYNC        0x79
                MX7D_PAD_LCD_RESET__LCD_RESET        0x79
            >;
        };


*/
(3) Remove lcdif node
/*
&lcdif {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcdif>;
    enable-gpio = <&extended_io 7 GPIO_ACTIVE_LOW>;
    display = <&display0>;
    status = "okay";

    display0: display@0 {
        bits-per-pixel = <16>;
        bus-width = <24>;

        display-timings {
            native-mode = <&timing0>;

            timing0: timing0 {
                clock-frequency = <9200000>;
                hactive = <480>;
                vactive = <272>;
                hfront-porch = <8>;
                hback-porch = <4>;
                hsync-len = <41>;
                vback-porch = <2>;
                vfront-porch = <4>;
                vsync-len = <10>;
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <0>;
            };
        };
    };
};
*/

(4) Compiling linux kernel and dts
(5) copy imx7d-sdb.dtb to MFG tools and burn it to SD card.
(6) Try to operation GPIO3_IO09
#cd /sys/class/gpio/
#echo 73 > export
# cd gpio73
# echo "out" > direction

Measure LCD_DATA04 pin's level on RN15 , LOW : 0

# echo 1 > value

Measure LCD_DATA04 pin's level on RN15, HIGH : 3.3V

I just tested LCD_DATA04 pin ,by the same way, you can try to test 08 pin.

Have a nice day!
B.R,

Weidong

1,008 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Qidong,

    I will test it for you next week.

Have a ncie day!
B.R,

Weidong

0 Kudos
Reply