Use GPIO from Arduino Header using Zephyr on nrf52840DK

Hello,

I am new here and I hope to not duplicate any other similar post (to be honest I have search a lot before writing).

I am working with nrf52840DK, I have used blinky Zephyr example successfully.

I would like to use one of the GPIOs from the arduino_header: connector.
I see in the device tree (.dts file), that there is the definition of it as following:


	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpio0 04 0>,	/* A0 */
			   <1 0 &gpio0 30 0>,	/* A1 */
			   <2 0 &gpio0 5 0>,	/* A2 */
			   <3 0 &gpio0 2 0>,	/* A3 */
			   <4 0 &gpio0 28 0>,	/* A4 */
			   <5 0 &gpio0 3 0>,	/* A5 */
			   <6 0 &gpio0 29 0>,	/* D0 */
			   <7 0 &gpio1 13 0>,	/* D1 */
			   <8 0 &gpio1 12 0>,	/* D2 */
			   <9 0 &gpio0 31 0>,	/* D3 */
			   <10 0 &gpio0 13 0>,	/* D4 */
			   <11 0 &gpio0 11 0>,	/* D5 */
			   <12 0 &gpio0 9 0>,	/* D6 */
			   <13 0 &gpio0 10 0>,	/* D7 */
			   <14 0 &gpio1 9 0>,	/* D8 */
			   <15 0 &gpio0 12 0>,	/* D9 */
			   <16 0 &gpio0 14 0>,	/* D10 */
			   <17 0 &gpio0 15 0>,	/* D11 */
			   <18 0 &gpio1 0 0>,	/* D12 */
			   <19 0 &gpio0 7 0>,	/* D13 */
			   <20 0 &gpio0 16 0>,	/* D14 */
			   <21 0 &gpio0 24 0>;	/* D15 */
	};



But how can I use it in my main.c ? Is there any example for it?

Many thanks,
George


Parents
  • Hi,

    Use with below overlay file.

    / {
    gpiocustom {
    compatible = "gpio-keys","gpio-leds";
    gpiocus025: gpio0_25 {
    gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
    label = "Custom gpio 0_25";
    };
    gpiocus04: gpio0_4 {
    gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    label = "Custom gpio 0_4";
    };
    };
    aliases {
    mygpio1 = &gpiocus025;
    mygpio2 = &gpiocus04;
    };
    };
    from main.c
    #define MYGPIO1 DT_ALIAS(mygpio1)
    static const struct gpio_dt_spec gpio_p1 = GPIO_DT_SPEC_GET(MYGPIO1, gpios);
Reply
  • Hi,

    Use with below overlay file.

    / {
    gpiocustom {
    compatible = "gpio-keys","gpio-leds";
    gpiocus025: gpio0_25 {
    gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
    label = "Custom gpio 0_25";
    };
    gpiocus04: gpio0_4 {
    gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    label = "Custom gpio 0_4";
    };
    };
    aliases {
    mygpio1 = &gpiocus025;
    mygpio2 = &gpiocus04;
    };
    };
    from main.c
    #define MYGPIO1 DT_ALIAS(mygpio1)
    static const struct gpio_dt_spec gpio_p1 = GPIO_DT_SPEC_GET(MYGPIO1, gpios);
Children
No Data
Related