Forcing this rule, chip_ops can be added in the static devicetree regardless of the existence of the chip.h files. Change-Id: Iec1c23484e85cab3f80a34f2b082088f38ac4de9 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/1472 Tested-by: build bot (Jenkins)
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * sconfig, coreboot device tree compiler
 | |
|  *
 | |
|  * Copyright (C) 2010 coresystems GmbH
 | |
|  *                 written by Patrick Georgi <patrick.georgi@coresystems.de>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License as published by
 | |
|  * the Free Software Foundation; version 2 of the License.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
 | |
|  */
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #include <unistd.h>
 | |
| #include <errno.h>
 | |
| 
 | |
| enum devtype { chip, device };
 | |
| 
 | |
| struct resource;
 | |
| struct resource {
 | |
| 	int type;
 | |
| 	int index;
 | |
| 	int base;
 | |
| 	struct resource *next;
 | |
| };
 | |
| 
 | |
| struct reg;
 | |
| struct reg {
 | |
| 	char *key;
 | |
| 	char *value;
 | |
| 	struct reg *next;
 | |
| };
 | |
| 
 | |
| struct pci_irq_info {
 | |
| 	int ioapic_irq_pin;
 | |
| 	int ioapic_dst_id;
 | |
| };
 | |
| struct device;
 | |
| struct device {
 | |
| 	int id;
 | |
| 	int enabled;
 | |
| 	int used;
 | |
| 	int multidev;
 | |
| 	int link;
 | |
| 	int rescnt;
 | |
| 	int chiph_exists;
 | |
| 	int subsystem_vendor;
 | |
| 	int subsystem_device;
 | |
| 	int inherit_subsystem;
 | |
| 	char *ops;
 | |
| 	char *name;
 | |
| 	char *name_underscore;
 | |
| 	char *path;
 | |
| 	int path_a;
 | |
| 	int path_b;
 | |
| 	int bustype;
 | |
| 	struct pci_irq_info pci_irq_info[4];
 | |
| 	enum devtype type;
 | |
| 	struct device *parent;
 | |
| 	struct device *bus;
 | |
| 	struct device *next;
 | |
| 	struct device *nextdev;
 | |
| 	struct device *children;
 | |
| 	struct device *latestchild;
 | |
| 	struct device *next_sibling;
 | |
| 	struct device *sibling;
 | |
| 	struct device *chip;
 | |
| 	struct resource *res;
 | |
| 	struct reg *reg;
 | |
| };
 | |
| 
 | |
| struct device *head;
 | |
| 
 | |
| struct header;
 | |
| struct header {
 | |
| 	char *name;
 | |
| 	int chiph_exists;
 | |
| 	struct header *next;
 | |
| };
 | |
| 
 | |
| void fold_in(struct device *parent);
 | |
| 
 | |
| void postprocess_devtree(void);
 | |
| struct device *new_chip(struct device *parent, struct device *bus, char *path);
 | |
| void add_header(struct device *dev);
 | |
| struct device *new_device(struct device *parent, struct device *busdev, const int bus, const char *devnum, int enabled);
 | |
| void alias_siblings(struct device *d);
 | |
| void add_resource(struct device *dev, int type, int index, int base);
 | |
| void add_register(struct device *dev, char *name, char *val);
 | |
| void add_pci_subsystem_ids(struct device *dev, int vendor, int device, int inherit);
 |