Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: BCM47XX: Get GPIO pin from nvram configuration

The nvram contains some gpio configuration for boards. It is stored in
a gpio<number>=name format e.g.
gpio8=wps_button
gpio4=robo_reset

This patches adds a function to parse these entries, so other driver
can use it.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5841/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Hauke Mehrtens and committed by
Ralf Baechle
62cf3bc0 84e8bb5e

+22
+20
arch/mips/bcm47xx/nvram.c
··· 190 190 return -ENOENT; 191 191 } 192 192 EXPORT_SYMBOL(bcm47xx_nvram_getenv); 193 + 194 + int bcm47xx_nvram_gpio_pin(const char *name) 195 + { 196 + int i, err; 197 + char nvram_var[10]; 198 + char buf[30]; 199 + 200 + for (i = 0; i < 16; i++) { 201 + err = snprintf(nvram_var, sizeof(nvram_var), "gpio%i", i); 202 + if (err <= 0) 203 + continue; 204 + err = bcm47xx_nvram_getenv(nvram_var, buf, sizeof(buf)); 205 + if (err <= 0) 206 + continue; 207 + if (!strcmp(name, buf)) 208 + return i; 209 + } 210 + return -ENOENT; 211 + } 212 + EXPORT_SYMBOL(bcm47xx_nvram_gpio_pin);
+2
arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h
··· 48 48 printk(KERN_WARNING "Can not parse mac address: %s\n", buf); 49 49 } 50 50 51 + int bcm47xx_nvram_gpio_pin(const char *name); 52 + 51 53 #endif /* __BCM47XX_NVRAM_H */