/dts-v1/;
/plugin/;

/{
  compatible = "ti,beaglebone", "ti,beaglebone-black";

  part-number = "{overlay_name}";
  version = "{version}";

  /* state the resources this cape uses */
  exclusive-use =
    /* the pin header uses */

    /* the hardware IP uses */
    "{gpio_pin}";

  fragment@0 {
    target = <&am33xx_pinmux>;
    __overlay__ {

      pybbio_{gpio_pin}_rxactive_nopull: pinmux_pybbio_{gpio_pin}_rxactive_nopull {
        pinctrl-single,pins = <
          {offset} 0x2f  /* {name} - rx active | no pull | MODE7 ({gpio_pin}) */
        >;
      };
      pybbio_{gpio_pin}_rxactive_pullup: pinmux_pybbio_{gpio_pin}_rxactive_pullup {
        pinctrl-single,pins = <
          {offset} 0x37  /* {name} - rx active | pull up | MODE7 ({gpio_pin}) */
        >;
      };
      pybbio_{gpio_pin}_rxactive_pulldown: pinmux_pybbio_{gpio_pin}_rxactive_pulldown {
        pinctrl-single,pins = <
          {offset} 0x27  /* {name} - rx active | pull down | MODE7 ({gpio_pin}) */
        >;
      };
      
      pybbio_{gpio_pin}_nopull: pinmux_pybbio_{gpio_pin}_nopull {
        pinctrl-single,pins = <
          {offset} 0x0f  /* {name} - rx active | no pull | MODE7 ({gpio_pin}) */
        >;
      };
      pybbio_{gpio_pin}_pullup: pinmux_pybbio_{gpio_pin}_pullup {
        pinctrl-single,pins = <
          {offset} 0x17  /* {name} - rx active | pull up | MODE7 ({gpio_pin}) */
        >;
      };
      pybbio_{gpio_pin}_pulldown: pinmux_pybbio_{gpio_pin}_pulldown {
        pinctrl-single,pins = <
          {offset} 0x07  /* {name} - rx active | pull down | MODE7 ({gpio_pin}) */
        >;
      };
      
    };
  };

  fragment@1 {
    target = <&ocp>; /* On-Chip Peripherals */
    __overlay__ {
      {overlay_name} {
        compatible = "bone-pinmux-helper"; /* Use the pinmux helper */
        status="okay";
        /* Define custom names for indexes in pinctrl array: */ 
        pinctrl-names = "mode_0b00101111", "mode_0b00110111", "mode_0b00100111",
                        "mode_0b00001111", "mode_0b00010111", "mode_0b00000111";
        /* Set the elements of the pinctrl array to the pinmux overlays
           defined above: */
        pinctrl-0 = <&pybbio_{gpio_pin}_rxactive_nopull>; 
        pinctrl-1 = <&pybbio_{gpio_pin}_rxactive_pullup>; 
        pinctrl-2 = <&pybbio_{gpio_pin}_rxactive_pulldown>;
        pinctrl-3 = <&pybbio_{gpio_pin}_nopull>; 
        pinctrl-4 = <&pybbio_{gpio_pin}_pullup>; 
        pinctrl-5 = <&pybbio_{gpio_pin}_pulldown>;
      };
    };
  };
};
