struct sbus_dev *next;
struct sbus_dev *child;
struct sbus_dev *parent;
- int prom_node;
- char prom_name[64];
- int slot;
};
#define to_sbus_device(d) container_of(d, struct sbus_dev, ofdev.dev)
struct of_device ofdev;
struct sbus_dev *devices; /* Link to devices on this SBus */
struct sbus_bus *next; /* next SBus, if more than one SBus */
- int prom_node; /* PROM device tree node for this SBus */
- char prom_name[64]; /* Usually "sbus" or "sbi" */
- int clock_freq;
};
#define to_sbus(d) container_of(d, struct sbus_bus, ofdev.dev)
struct sbus_dev *next;
struct sbus_dev *child;
struct sbus_dev *parent;
- int prom_node;
- char prom_name[64];
- int slot;
};
#define to_sbus_device(d) container_of(d, struct sbus_dev, ofdev.dev)
struct of_device ofdev;
struct sbus_dev *devices; /* Tree of SBUS devices */
struct sbus_bus *next; /* Next SBUS in system */
- int prom_node; /* OBP node of SBUS */
- char prom_name[64]; /* Usually "sbus" or "sbi" */
- int clock_freq;
- int portid;
};
#define to_sbus(d) container_of(d, struct sbus_bus, ofdev.dev)
struct dev_archdata *sd;
int err;
- sdev->prom_node = dp->node;
- strcpy(sdev->prom_name, dp->name);
-
sd = &sdev->ofdev.dev.archdata;
sd->prom_node = dp;
sd->op = &sdev->ofdev;
static void __init build_one_sbus(struct device_node *dp, int num_sbus)
{
- struct sbus_bus *sbus;
- unsigned int sbus_clock;
struct device_node *dev_dp;
+ struct sbus_bus *sbus;
sbus = kzalloc(sizeof(struct sbus_bus), GFP_ATOMIC);
if (!sbus)
return;
- sbus->prom_node = dp->node;
-
sbus_setup_iommu(sbus, dp);
printk("sbus%d: ", num_sbus);
- sbus_clock = of_getintprop_default(dp, "clock-frequency",
- (25*1000*1000));
- sbus->clock_freq = sbus_clock;
-
- printk("Clock %d.%d MHz\n", (int) ((sbus_clock/1000)/1000),
- (int) (((sbus_clock/1000)%1000 != 0) ?
- (((sbus_clock/1000)%1000) + 1000) : 0));
-
- strcpy(sbus->prom_name, dp->name);
-
sbus->ofdev.node = dp;
sbus->ofdev.dev.parent = NULL;
sbus->ofdev.dev.bus = &sbus_bus_type;