Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
GPIO(4)		       FreeBSD Kernel Interfaces Manual		       GPIO(4)

     gpiobus --	GPIO bus system

     To	compile	these devices into your	kernel and use the device hints, place
     the following lines in your kernel	configuration file:

	   device gpiobus
	   device gpioiic
	   device gpio
	   device gpioc
	   device gpioled

     Additional	device entries for the ARM architecure include:

	   device a10_gpio
	   device bcm_gpio
	   device imx51_gpio
	   device lpcgpio
	   device mv_gpio
	   device ti_gpio
	   device gpio_avila
	   device gpio_cambria
	   device zy7_gpio
	   device pxagpio

     Additional	device entries for the MIPS architecure	include:

	   device ar71xxx_gpio
	   device octeon_gpio
	   device rt305_gpio

     Additional	device entries for the POWERPC architecure include:

	   device wiigpio
	   device macgpio

     The gpiobus system	provides a simple interface to the bit banging style
     GPIO bus found on embedded	architectures.

     The acronym GPIO means ``General-Purpose Input/Output.''

     The BUS physically	consists of multiple pins that can be configured for
     input/output, IRQ delivery, SDA/SCL iicbus	use, etc.  On most embedded
     architechtures (mips/arm),	discovery of the bus and configuration of the
     pins is done via device.hints(5) in the platform's	kernel config(5) file.

     Assignment	of gpioiic(4) bus variables is done via:	    Normally just gpiobus0.

     hint.gpioiic.%d.pins   This is a bitmask of the pins on the gpio board
			    that are to	be used	for SCLOCK and SDATA from the
			    IIC	bus.  To configure pin 0 and 7,	use the	bit-
			    mask of 10000001 and convert it to a hexadecimal
			    value of 0x0081.  Should only ever have two	bits
			    set	in mask.

     hint.gpioiic.%d.scl    Indicates which bit	in the hint.gpioiic.%d.pins
			    should be used as the SCLOCK source.

     hint.gpioiic.%d.sda    Indicates which bit	in the hint.gpioiic.%d.pins
			    should be used as the SDATA	source.

     The following are only provided by	the ar71xx_gpio	driver.

     hint.gpio.%d.pinmask   This is a bitmask of pins on the gpio board	that
			    we would like to expose for	use to the host	o/s.
			    To expose pin 0, 4 and 7, use the bitmask of
			    10010001 converted to the hexadecimal value

     hint.gpio.%d.pinon	    This is a bitmask of pins on the gpio board	that
			    will be set	to ON at host start.  To set pin 2, 5
			    and	13 to be set ON	at boot, use the bitmask of
			    10000000010010 converted to	the hexadecimal	value


			    These are a	bitmask	of pins	that will remap	a pin
			    to handle a	specific function (USB,	UART TX/RX,
			    etc) in the	Atheros	function registers.  This is
			    mainly used	to set/clear functions that we need
			    when they are setup	or not setup by	uBoot.

     These values are configureable from the gpioled(4)	interface and help
     create led(4) compatible devices in /dev/led/_name_.	    Normally assigned to gpiobus0.   Arbitrary name of device in	/dev/led/ to create
			    for	led(4) interfaces.

     hint.gpioled.%d.pins   Which pin on the GPIO interface to map to this

     Simply put, each pin of the GPIO interface	is connected to	an input/out-
     put of some device	in a system.

     iicbus(4),	gpioctl(8)

     The gpiobus manual	page first appeared in FreeBSD 10.0.

     This manual page was written by Sean Bruno	<>.

FreeBSD	10.1		      September	13, 2013		  FreeBSD 10.1


Want to link to this manual page? Use this URL:

home | help