Hello Stefan
I did what you told me, however I have successfully change the GPIO states.
Than I try to export the gpio 36 and 37 for example and I just can chance the direction.
Is impossible to change the value!
root@imx28evk:/sys/class/gpio/gpio36# cat value
0
root@imx28evk:/sys/class/gpio/gpio36# echo 1 > value
root@imx28evk:/sys/class/gpio/gpio36# cat value
0
Look My Patch
diff -Naur linux-3.12-poky_orig/arch/arm/boot/dts/imx28-evk.dts linux-3.12-poky/arch/arm/boot/dts/imx28-evk.dts
--- linux-3.12-poky_orig/arch/arm/boot/dts/imx28-evk.dts 2013-11-27 17:48:36.501282822 -0200
+++ linux-3.12-poky/arch/arm/boot/dts/imx28-evk.dts 2013-11-27 18:10:25.893306722 -0200
@@ -93,6 +93,96 @@
fsl,voltage = <1>;
fsl,pull-up = <0>;
};
+ led_pin_gpio1_3: led_gpio1_3@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1033 /* MX28_PAD_LCD_D03__GPIO_1_3 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_4: led_gpio1_4@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1043 /* MX28_PAD_LCD_D04__GPIO_1_4 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_5: led_gpio1_5@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1053 /* MX28_PAD_LCD_D05__GPIO_1_5 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_6: led_gpio1_6@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1063 /* MX28_PAD_LCD_D06__GPIO_1_6 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_7: led_gpio1_7@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1073 /* MX28_PAD_LCD_D07__GPIO_1_7 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_9: led_gpio1_9@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1093 /* MX28_PAD_LCD_D09__GPIO_1_9 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_10: led_gpio1_10@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10a3 /* MX28_PAD_LCD_D10__GPIO_1_10 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_11: led_gpio1_11@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10b3 /* MX28_PAD_LCD_D11__GPIO_1_11 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_12: led_gpio1_12@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10c3 /* MX28_PAD_LCD_D12__GPIO_1_12 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_13: led_gpio1_13@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10d3 /* MX28_PAD_LCD_D13__GPIO_1_13 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
gpmi_pins_evk: gpmi-nand-evk@0 {
reg = <0>;
@@ -119,52 +209,7 @@
};
};
- lcdif@80030000 {
- pinctrl-names = "default";
- pinctrl-0 = <&lcdif_24bit_pins_a
- &lcdif_pins_evk>;
- lcd-supply = <®_lcd_3v3>;
- display = <&display>;
- status = "okay";
-
- display: display {
- bits-per-pixel = <32>;
- bus-width = <24>;
-
- display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
- clock-frequency = <33500000>;
- hactive = <800>;
- vactive = <480>;
- hback-porch = <89>;
- hfront-porch = <164>;
- vback-porch = <23>;
- vfront-porch = <10>;
- hsync-len = <10>;
- vsync-len = <10>;
- hsync-active = <0>;
- vsync-active = <0>;
- de-active = <1>;
- pixelclk-active = <0>;
- };
- };
- };
- };
- can0: can@80032000 {
- pinctrl-names = "default";
- pinctrl-0 = <&can0_pins_a>;
- xceiver-supply = <®_can_3v3>;
- status = "okay";
- };
-
- can1: can@80034000 {
- pinctrl-names = "default";
- pinctrl-0 = <&can1_pins_a>;
- xceiver-supply = <®_can_3v3>;
- status = "okay";
- };
};
apbx@80040000 {
@@ -244,6 +289,8 @@
ahb@80080000 {
usb0: usb@80080000 {
vbus-supply = <®_usb0_vbus>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&usbphy0_pins_c>;
status = "okay";
};
@@ -323,16 +370,6 @@
gpio = <&gpio3 30 0>;
enable-active-high;
};
-
- reg_can_3v3: can-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "can-3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio2 13 0>;
- enable-active-high;
- };
-
};
sound {
diff -Naur linux-3.12-poky_orig/arch/arm/boot/dts/imx28.dtsi linux-3.12-poky/arch/arm/boot/dts/imx28.dtsi
--- linux-3.12-poky_orig/arch/arm/boot/dts/imx28.dtsi 2013-11-26 15:46:39.816831765 -0200
+++ linux-3.12-poky/arch/arm/boot/dts/imx28.dtsi 2013-11-27 18:33:18.617331778 -0200
@@ -590,98 +590,6 @@
fsl,pull-up = <0>;
};
- lcdif_24bit_pins_a: lcdif-24bit@0 {
- reg = <0>;
- fsl,pinmux-ids = <
- 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
- 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
- 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
- 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
- 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
- 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
- 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
- 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
- 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
- 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
- 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
- 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
- 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
- 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
- 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
- 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
- 0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
- 0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
- 0x1120 /* MX28_PAD_LCD_D18__LCD_D18 */
- 0x1130 /* MX28_PAD_LCD_D19__LCD_D19 */
- 0x1140 /* MX28_PAD_LCD_D20__LCD_D20 */
- 0x1150 /* MX28_PAD_LCD_D21__LCD_D21 */
- 0x1160 /* MX28_PAD_LCD_D22__LCD_D22 */
- 0x1170 /* MX28_PAD_LCD_D23__LCD_D23 */
- >;
- fsl,drive-strength = <0>;
- fsl,voltage = <1>;
- fsl,pull-up = <0>;
- };
-
- lcdif_16bit_pins_a: lcdif-16bit@0 {
- reg = <0>;
- fsl,pinmux-ids = <
- 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
- 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
- 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
- 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
- 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
- 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
- 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
- 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
- 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
- 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
- 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
- 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
- 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
- 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
- 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
- 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
- >;
- fsl,drive-strength = <0>;
- fsl,voltage = <1>;
- fsl,pull-up = <0>;
- };
-
- lcdif_sync_pins_a: lcdif-sync@0 {
- reg = <0>;
- fsl,pinmux-ids = <
- 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
- 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
- 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
- 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
- >;
- fsl,drive-strength = <0>;
- fsl,voltage = <1>;
- fsl,pull-up = <0>;
- };
-
- can0_pins_a: can0@0 {
- reg = <0>;
- fsl,pinmux-ids = <
- 0x0161 /* MX28_PAD_GPMI_RDY2__CAN0_TX */
- 0x0171 /* MX28_PAD_GPMI_RDY3__CAN0_RX */
- >;
- fsl,drive-strength = <0>;
- fsl,voltage = <1>;
- fsl,pull-up = <0>;
- };
-
- can1_pins_a: can1@0 {
- reg = <0>;
- fsl,pinmux-ids = <
- 0x0121 /* MX28_PAD_GPMI_CE2N__CAN1_TX */
- 0x0131 /* MX28_PAD_GPMI_CE3N__CAN1_RX */
- >;
- fsl,drive-strength = <0>;
- fsl,voltage = <1>;
- fsl,pull-up = <0>;
- };
spi2_pins_a: spi2@0 {
reg = <0>;
@@ -731,6 +639,16 @@
fsl,pull-up = <0>;
};
+ usbphy0_pins_c: usbphy0@2 {
+ reg = <2>;
+ fsl,pinmux-ids = <
+ 0x3071 /* MX28_PAD_AUART1_RTS__USB0_ID */
+ >;
+ fsl,drive-strength = <2>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <1>;
+ };
+
usbphy1_pins_a: usbphy1@0 {
reg = <0>;
fsl,pinmux-ids = <
diff -Naur linux-3.12-poky_orig/arch/arm/boot/dts/imx28-evk.dts linux-3.12-poky/arch/arm/boot/dts/imx28-evk.dts
--- linux-3.12-poky_orig/arch/arm/boot/dts/imx28-evk.dts 2013-11-27 17:48:36.501282822 -0200
+++ linux-3.12-poky/arch/arm/boot/dts/imx28-evk.dts 2013-11-27 18:10:25.893306722 -0200
@@ -93,6 +93,96 @@
fsl,voltage = <1>;
fsl,pull-up = <0>;
};
+ led_pin_gpio1_3: led_gpio1_3@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1033 /* MX28_PAD_LCD_D03__GPIO_1_3 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_4: led_gpio1_4@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1043 /* MX28_PAD_LCD_D04__GPIO_1_4 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_5: led_gpio1_5@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1053 /* MX28_PAD_LCD_D05__GPIO_1_5 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_6: led_gpio1_6@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1063 /* MX28_PAD_LCD_D06__GPIO_1_6 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_7: led_gpio1_7@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1073 /* MX28_PAD_LCD_D07__GPIO_1_7 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_9: led_gpio1_9@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x1093 /* MX28_PAD_LCD_D09__GPIO_1_9 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_10: led_gpio1_10@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10a3 /* MX28_PAD_LCD_D10__GPIO_1_10 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_11: led_gpio1_11@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10b3 /* MX28_PAD_LCD_D11__GPIO_1_11 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_12: led_gpio1_12@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10c3 /* MX28_PAD_LCD_D12__GPIO_1_12 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
+ led_pin_gpio1_13: led_gpio1_13@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ 0x10d3 /* MX28_PAD_LCD_D13__GPIO_1_13 */
+ >;
+ fsl,drive-strength = <0>;
+ fsl,voltage = <1>;
+ fsl,pull-up = <0>;
+ };
gpmi_pins_evk: gpmi-nand-evk@0 {
reg = <0>;
@@ -119,52 +209,7 @@
};
};
- lcdif@80030000 {
- pinctrl-names = "default";
- pinctrl-0 = <&lcdif_24bit_pins_a
- &lcdif_pins_evk>;
- lcd-supply = <®_lcd_3v3>;
- display = <&display>;
- status = "okay";
-
- display: display {
- bits-per-pixel = <32>;
- bus-width = <24>;
-
- display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
- clock-frequency = <33500000>;
- hactive = <800>;
- vactive = <480>;
- hback-porch = <89>;
- hfront-porch = <164>;
- vback-porch = <23>;
- vfront-porch = <10>;
- hsync-len = <10>;
- vsync-len = <10>;
- hsync-active = <0>;
- vsync-active = <0>;
- de-active = <1>;
- pixelclk-active = <0>;
- };
- };
- };
- };
- can0: can@80032000 {
- pinctrl-names = "default";
- pinctrl-0 = <&can0_pins_a>;
- xceiver-supply = <®_can_3v3>;
- status = "okay";
- };
-
- can1: can@80034000 {
- pinctrl-names = "default";
- pinctrl-0 = <&can1_pins_a>;
- xceiver-supply = <®_can_3v3>;
- status = "okay";
- };
};
apbx@80040000 {
@@ -244,6 +289,8 @@
ahb@80080000 {
usb0: usb@80080000 {
vbus-supply = <®_usb0_vbus>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&usbphy0_pins_c>;
status = "okay";
};
@@ -323,16 +370,6 @@
gpio = <&gpio3 30 0>;
enable-active-high;
};
-
- reg_can_3v3: can-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "can-3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio2 13 0>;
- enable-active-high;
- };
-
};
sound {