/* * Zorro Device Name Tables * * Copyright (C) 1999--2000 Geert Uytterhoeven * * Based on the PCI version: * * Copyright 1992--1999 Drew Eckhardt, Frederic Potter, * David Mosberger-Tang, Martin Mares */ #include #include #include #include struct zorro_prod_info { __u16 prod; unsigned short seen; const char *name; }; struct zorro_manuf_info { __u16 manuf; unsigned short nr; const char *name; struct zorro_prod_info *prods; }; /* * This is ridiculous, but we want the strings in * the .init section so that they don't take up * real memory.. Parse the same file multiple times * to get all the info. */ #define MANUF( manuf, name ) static char __manufstr_##manuf[] __initdata = name; #define ENDMANUF() #define PRODUCT( manuf, prod, name ) static char __prodstr_##manuf##prod[] __initdata = name; #include "devlist.h" #define MANUF( manuf, name ) static struct zorro_prod_info __prods_##manuf[] __initdata = { #define ENDMANUF() }; #define PRODUCT( manuf, prod, name ) { 0x##prod, 0, __prodstr_##manuf##prod }, #include "devlist.h" static struct zorro_manuf_info __initdata zorro_manuf_list[] = { #define MANUF( manuf, name ) { 0x##manuf, ARRAY_SIZE(__prods_##manuf), __manufstr_##manuf, __prods_##manuf }, #define ENDMANUF() #define PRODUCT( manuf, prod, name ) #include "devlist.h" }; #define MANUFS ARRAY_SIZE(zorro_manuf_list) void __init zorro_name_device(struct zorro_dev *dev) { const struct zorro_manuf_info *manuf_p = zorro_manuf_list; int i = MANUFS; char *name = dev->name; do { if (manuf_p->manuf == ZORRO_MANUF(dev->id)) goto match_manuf; manuf_p++; } while (--i); /* Couldn't find either the manufacturer nor the product */ return; match_manuf: { struct zorro_prod_info *prod_p = manuf_p->prods; int i = manuf_p->nr; while (i > 0) { if (prod_p->prod == ((ZORRO_PROD(dev->id)<<8) | ZORRO_EPC(dev->id))) goto match_prod; prod_p++; i--; } /* Ok, found the manufacturer, but unknown product */ sprintf(name, "Zorro device %08x (%s)", dev->id, manuf_p->name); return; /* Full match */ match_prod: { char *n = name + sprintf(name, "%s %s", manuf_p->name, prod_p->name); int nr = prod_p->seen + 1; prod_p->seen = nr; if (nr > 1) sprintf(n, " (#%d)", nr); } } } e=''/>
'/cgit.cgi/linux/net-next.git/commit/include/dt-bindings/clock?id=dab780a3b489b038a47d8fbbc49c33aae1e7a682'>clock/efm32-cmu.h
diff options
AgeCommit message (Expand)AuthorFilesLines
context:
space:
mode:
authorNicolae Rosia <Nicolae_Rosia@mentor.com>2016-11-12 14:42:14 +0200
committerMark Brown <broonie@kernel.org>2016-11-16 18:03:39 +0000
commitdab780a3b489b038a47d8fbbc49c33aae1e7a682 (patch)
treec9599a6970c187f95f7875d2a3e948f05cef1e45 /include/dt-bindings/clock/efm32-cmu.h
parent1001354ca34179f3db924eb66672442a173147dc (diff)
regulator: twl-regulator: rework fixed regulator definition
TWL603X and TWL4030 are different and have different code logic. Rework the regulator definition method so we can split the file easily in twl4030 and twl6030. Signed-off-by: Nicolae Rosia <Nicolae_Rosia@mentor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/dt-bindings/clock/efm32-cmu.h')