Index: DIR-825 =================================================================== --- DIR-825 (revision 255228) +++ DIR-825 (working copy) @@ -20,8 +20,6 @@ # Since the kernel image must fit inside 1024KiB, we have to build almost # everything as modules. nodevice random -nodevice gpio -nodevice gpioled nodevice gif nodevice gre nodevice if_bridge @@ -59,6 +57,12 @@ options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uncompress\" options AR71XX_REALMEM=64*1024*1024 +# i2c GPIO bus +device gpioiic +device iicbb +device iicbus +device iic + options AR71XX_ENV_UBOOT options MSDOSFS # Read MSDOS filesystems; useful for USB/CF Index: DIR-825.hints =================================================================== --- DIR-825.hints (revision 255228) +++ DIR-825.hints (working copy) @@ -28,8 +28,6 @@ hint.ath.0.eeprom_firmware="pcib.0.bus.0.17.0.eeprom_firmware" hint.ath.1.eeprom_firmware="pcib.0.bus.0.18.0.eeprom_firmware" -# TODO: gpio LEDs - # Geom MAP # The DIR-825 has an 8MB flash part - HOWEVER, the 64k caldata isn't @@ -69,3 +67,73 @@ hint.map.4.name="art" hint.map.4.readonly=1 +# GPIO specific configuration block + +# Don't flip on anything that isn't already enabled. +# This includes leaving the SPI CS1/CS2 pins as GPIO pins as they're +# not used here. +hint.gpio.0.function_set=0x00000000 + +hint.gpio.0.function_clear=0x00000000 + +# These are the GPIO LEDs and buttons which can be software controlled. +hint.gpio.0.pinmask=0x000009ff + +# Pin 1 - USB (LED blue) --> works +# Pin 2 - Power (LED orange) --> works +# Pin 3 - Power (LED blue) --> works +# Pin 4 - Button (RESET) --> works +# Pin 5 - WPS (LED blue) --> works +# Pin 6 - RTL8366RB switch data line +# Pin 7 - Planet (LED orange)--> works +# Pin 8 - RTL8366RB switch clock line +# Pin 9 - Button (WPS) --> works after set to high +# Pin 10 - N/C +# Pin 11 - N/C +# Pin 12 - Planet (LED blue) --> works + +# LEDs are configured separately and driven by the LED device +# usb tested good +hint.gpioled.0.at="gpiobus0" +hint.gpioled.0.name="usb-blue" +hint.gpioled.0.pins=0x0001 + +# no orange power led? +hint.gpioled.1.at="gpiobus0" +hint.gpioled.1.name="power-orange" +hint.gpioled.1.pins=0x0002 + +# blue power tested good +hint.gpioled.2.at="gpiobus0" +hint.gpioled.2.name="power-blue" +hint.gpioled.2.pins=0x0004 + +# wps tested good +hint.gpioled.3.at="gpiobus0" +hint.gpioled.3.name="wps-blue" +hint.gpioled.3.pins=0x0010 + +# orage globe tested good +hint.gpioled.4.at="gpiobus0" +hint.gpioled.4.name="planet-orange" +hint.gpioled.4.pins=0x0040 + +# no blue planet LED on this unit +hint.gpioled.5.at="gpiobus0" +hint.gpioled.5.name="planet-blue" +hint.gpioled.5.pins=0x0800 + +# GPIO I2C bus +hint.gpioiic.0.at="gpiobus0" +hint.gpioiic.0.pins=0x00a0 +hint.gpioiic.0.sda=0 +hint.gpioiic.0.scl=1 + +# I2C bus +# Don't be strict about I2C protocol - the relaxed semantics are required +# by the realtek switch PHY. +hint.iicbus.0.strict=0 + +# Bit bang bus - override default delay +#hint.iicbb.0.udelay=3 +