summaryrefslogtreecommitdiff
path: root/src/devices/chip.c
blob: e99d7310434bc7251e3df49df0c89bae55f7f1af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* chips are arbitrary chips (superio, southbridge, etc.)
 * They have private structures that define chip resources and default 
 * settings. They have four externally visible functions for control. 
 * They have a generic component which applies to all chips for 
 * path, etc. 
 */

#include <device/chip.h>

void
chip_configure(struct chip *root, enum chip_pass pass)
{
	struct chip *c;

	for (c = root; c; c = c->next) {
		if (root->control && root->control->enable)
			root->control->enable(root, pass);
	}

	for (c = root; c; c = c->next) {
		if (root->children)
			chip_configure(root->children, pass);
	}
}