The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/pinctrl-stmfx.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 STMicroelectronics Multi-Function eXpander (STMFX) GPIO expander bindings
    2 
    3 ST Multi-Function eXpander (STMFX) offers up to 24 GPIOs expansion.
    4 Please refer to ../mfd/stmfx.txt for STMFX Core bindings.
    5 
    6 Required properties:
    7 - compatible: should be "st,stmfx-0300-pinctrl".
    8 - #gpio-cells: should be <2>, the first cell is the GPIO number and the second
    9   cell is the gpio flags in accordance with <dt-bindings/gpio/gpio.h>.
   10 - gpio-controller: marks the device as a GPIO controller.
   11 - #interrupt-cells: should be <2>, the first cell is the GPIO number and the
   12   second cell is the interrupt flags in accordance with
   13   <dt-bindings/interrupt-controller/irq.h>.
   14 - interrupt-controller: marks the device as an interrupt controller.
   15 - gpio-ranges: specifies the mapping between gpio controller and pin
   16   controller pins. Check "Concerning gpio-ranges property" below.
   17 Please refer to ../gpio/gpio.txt.
   18 
   19 Please refer to pinctrl-bindings.txt for pin configuration.
   20 
   21 Required properties for pin configuration sub-nodes:
   22 - pins: list of pins to which the configuration applies.
   23 
   24 Optional properties for pin configuration sub-nodes (pinconf-generic ones):
   25 - bias-disable: disable any bias on the pin.
   26 - bias-pull-up: the pin will be pulled up.
   27 - bias-pull-pin-default: use the pin-default pull state.
   28 - bias-pull-down: the pin will be pulled down.
   29 - drive-open-drain: the pin will be driven with open drain.
   30 - drive-push-pull: the pin will be driven actively high and low.
   31 - output-high: the pin will be configured as an output driving high level.
   32 - output-low: the pin will be configured as an output driving low level.
   33 
   34 Note that STMFX pins[15:0] are called "gpio[15:0]", and STMFX pins[23:16] are
   35 called "agpio[7:0]". Example, to refer to pin 18 of STMFX, use "agpio2".
   36 
   37 Concerning gpio-ranges property:
   38 - if all STMFX pins[24:0] are available (no other STMFX function in use), you
   39   should use gpio-ranges = <&stmfx_pinctrl 0 0 24>;
   40 - if agpio[3:0] are not available (STMFX Touchscreen function in use), you
   41   should use gpio-ranges = <&stmfx_pinctrl 0 0 16>, <&stmfx_pinctrl 20 20 4>;
   42 - if agpio[7:4] are not available (STMFX IDD function in use), you
   43   should use gpio-ranges = <&stmfx_pinctrl 0 0 20>;
   44 
   45 
   46 Example:
   47 
   48         stmfx: stmfx@42 {
   49                 ...
   50 
   51                 stmfx_pinctrl: stmfx-pin-controller {
   52                         compatible = "st,stmfx-0300-pinctrl";
   53                         #gpio-cells = <2>;
   54                         #interrupt-cells = <2>;
   55                         gpio-controller;
   56                         interrupt-controller;
   57                         gpio-ranges = <&stmfx_pinctrl 0 0 24>;
   58 
   59                         joystick_pins: joystick {
   60                                 pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
   61                                 drive-push-pull;
   62                                 bias-pull-up;
   63                         };
   64                 };
   65         };
   66 
   67 Example of STMFX GPIO consumers:
   68 
   69         joystick {
   70                 compatible = "gpio-keys";
   71                 #address-cells = <1>;
   72                 #size-cells = <0>;
   73                 pinctrl-0 = <&joystick_pins>;
   74                 pinctrl-names = "default";
   75                 button-0 {
   76                         label = "JoySel";
   77                         linux,code = <KEY_ENTER>;
   78                         interrupt-parent = <&stmfx_pinctrl>;
   79                         interrupts = <0 IRQ_TYPE_EDGE_RISING>;
   80                 };
   81                 button-1 {
   82                         label = "JoyDown";
   83                         linux,code = <KEY_DOWN>;
   84                         interrupt-parent = <&stmfx_pinctrl>;
   85                         interrupts = <1 IRQ_TYPE_EDGE_RISING>;
   86                 };
   87                 button-2 {
   88                         label = "JoyLeft";
   89                         linux,code = <KEY_LEFT>;
   90                         interrupt-parent = <&stmfx_pinctrl>;
   91                         interrupts = <2 IRQ_TYPE_EDGE_RISING>;
   92                 };
   93                 button-3 {
   94                         label = "JoyRight";
   95                         linux,code = <KEY_RIGHT>;
   96                         interrupt-parent = <&stmfx_pinctrl>;
   97                         interrupts = <3 IRQ_TYPE_EDGE_RISING>;
   98                 };
   99                 button-4 {
  100                         label = "JoyUp";
  101                         linux,code = <KEY_UP>;
  102                         interrupt-parent = <&stmfx_pinctrl>;
  103                         interrupts = <4 IRQ_TYPE_EDGE_RISING>;
  104                 };
  105         };
  106 
  107         leds {
  108                 compatible = "gpio-leds";
  109                 orange {
  110                         gpios = <&stmfx_pinctrl 17 1>;
  111                 };
  112 
  113                 blue {
  114                         gpios = <&stmfx_pinctrl 19 1>;
  115                 };
  116         }

Cache object: 07f882d812a230b210f2525363f87eef


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.