Robert,
I added my question to this topic instead of creating a new topic. I also want to configure gpio pins in the device tree (DT).
I studied the above BB-P9_27-LED-00A0.dts example. I understand what fragment0, 1 and 2 are doing but I won’t need those fragments because my DT does not include P9_27_pinmux helper.
If I understand correctly, fragment3 uses gpio-leds. I don’t have a ‘led’ node in my DT. The only lines that have meaning to me are
label = "P9_27";
gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
default-state = "off";
I am using an OSD3358 on a custom board. I have a working DT but my input lines (gpio1_12, 13 14 and 15) are inverted and all my outputs (gpio1_23, 24, 25) are OFF. (Note I have removed the LED related code so that I can use 23 and 24 for my own purpose)
I have read the gpio dt-bindings.
I understand to configure an input line ACTIVE_LOW that I need to insert something like this…
enable-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>
or
data-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>
I understand to configure an output line’s default value that I need to insert something like this…
default_state = OFF
I also want to change gpio1_12 input line name from ‘GPMC_AD12’ to ‘SW_0_IN’.
I also want to change gpio1_23 output line name from ‘GPMC_A7’ to ‘LED_G_OUT’.
Here is snippet from my DT
/ {
compatible = "ti,am33xx";
interrupt-parent = <&intc>;
#address-cells = <1>;
#size-cells = <1>;
chosen { };
[...]
ocp: ocp {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
ti,hwmods = "l3_main";
[...]
gpio1: gpio@4804c000 {
compatible = "ti,omap4-gpio";
ti,hwmods = "gpio2";
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
reg = <0x4804c000 0x1000>;
interrupts = <98>;
gpio-line-names =
"GPMC_AD0", // 0
"GPMC_AD1", // 1
"GPMC_AD2", // 2
"GPMC_AD3", // 3
"GPMC_AD4", // 4
"GPMC_AD5", // 5
"GPMC_AD6", // 6
"GPMC_AD7", // 7
"UART0_CTSN", // 8
"UART0_RTSN", // 9
"UART0_RXD", // 10
"UART0_TXD", // 11
"GPMC_AD12", // 12
"GPMC_AD13", // 13
"GPMC_AD14", // 14
"GPMC_AD15", // 15
"GPMC_A0", // 16
"GPMC_A1", // 17
"GPMC_A2", // 18
"GPMC_A3", // 19
"GPMC_A4", // 20
"GPMC_A5", // 21
"GPMC_A6", // 22
"GPMC_A7", // 23
"GPMC_A8", // 24
"GPMC_A9", // 25
"GPMC_A10", // 26
"GPMC_A11", // 27
"GPMC_BE1N", // 28
"GPMC_CSN0", // 29
"GPMC_CSN1", // 30
"GPMC_CSN2"; // 31
}; // end of gpio1: gpio@4804c000
[...]
}; // end of ocp: ocp
[...]
}; // end of '/'
&am33xx_pinmux {
pinctrl-names = "default"";
pinctrl-0 = <&gpio1_pins_default>;
[...]
gpio1_pins_default: pinmux_gpio1_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x848, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x84c, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x858, PIN_INPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7)
AM33XX_IOPAD(0x864, PIN_OUTPUT_PULLUP | MUX_MODE7)
>;
};
[...]
}; // end of &am33xx_pinmux
Q. What is the difference between ‘enable-gpios’ and ‘data-gpios’?
Q. What is the correct syntax for the above changes?
Q. Where is the code inserted?
Thank you,