tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: New header for GPIO-like definitions



Hi,

> > Might I suggest before we go to deep down the rabbit hole that you take a look at the GPIO FDT bindings?
> > 
> > 	https://github.com/devicetree-org/devicetree-source/blob/master/Bindings/gpio/gpio.txt

Looking at the bindings, there are definitions of polarity, which I need
but I don't see anything about the use of the pin, apart from the naming.
For example. the LEDs are all named "LED N".  The attached patch provides
the information that I need, but perhaps it's perfereble to encode the
pin-specific information in strings?  Following the FDT model, I could
use:

  polarity="ACTIVE_LOW"

  name="LED activity"
  name="LED disk5_fault"

  name="INDICATOR key_diag"
  name="INDICATOR disk5_present"

and similar, then parse that in MI code.

Regards,

Julian
Index: gpio.h
===================================================================
RCS file: /cvsroot/src/sys/sys/gpio.h,v
retrieving revision 1.16
diff -u -r1.16 gpio.h
--- gpio.h	19 May 2018 13:59:06 -0000	1.16
+++ gpio.h	27 Oct 2020 11:12:47 -0000
@@ -26,6 +26,8 @@
 /* GPIO pin states */
 #define GPIO_PIN_LOW		0x00	/* low level (logical 0) */
 #define GPIO_PIN_HIGH		0x01	/* high level (logical 1) */
+#define GPIO_ACTIVE_LOW		GPIO_PIN_LOW	/* pin active at logical 0 */
+#define GPIO_ACTIVE_HIGH	GPIO_PIN_HIGH	/* pin active at logical 1 */
 
 /* Max name length of a pin */
 #define GPIOMAXNAME		64
@@ -79,6 +81,11 @@
 #define	GPIO_INTR_MODE_MASK	(GPIO_INTR_EDGE_MASK | \
 				 GPIO_INTR_LEVEL_MASK)
 
+/* GPIO pin connections that are set up in hardware */
+#define GPIO_LED		0x00000001	/* connected to LED */
+#define GPIO_INDICATOR		0x00000002	/* connected to indicator */
+#define GPIO_INTERRUPT		0x00000004	/* connected to intr src */
+
 /* GPIO controller description */
 struct gpio_info {
 	int gpio_npins;		/* total number of pins available */


Home | Main Index | Thread Index | Old Index