diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-powerpc/ps3.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/include/asm-powerpc/ps3.h b/include/asm-powerpc/ps3.h index eb4bbb6cff..52a69ed0d9 100644 --- a/include/asm-powerpc/ps3.h +++ b/include/asm-powerpc/ps3.h | |||
| @@ -386,4 +386,77 @@ int ps3_repository_read_num_spu_resource_id(unsigned int *num_resource_id); | |||
| 386 | int ps3_repository_read_spu_resource_id(unsigned int res_index, | 386 | int ps3_repository_read_spu_resource_id(unsigned int res_index, |
| 387 | enum ps3_spu_resource_type* resource_type, unsigned int *resource_id); | 387 | enum ps3_spu_resource_type* resource_type, unsigned int *resource_id); |
| 388 | 388 | ||
| 389 | |||
| 390 | /* system bus routines */ | ||
| 391 | |||
| 392 | enum ps3_match_id { | ||
| 393 | PS3_MATCH_ID_EHCI = 1, | ||
| 394 | PS3_MATCH_ID_OHCI, | ||
| 395 | PS3_MATCH_ID_GELIC, | ||
| 396 | PS3_MATCH_ID_AV_SETTINGS, | ||
| 397 | PS3_MATCH_ID_SYSTEM_MANAGER, | ||
| 398 | }; | ||
| 399 | |||
| 400 | /** | ||
| 401 | * struct ps3_system_bus_device - a device on the system bus | ||
| 402 | */ | ||
| 403 | |||
| 404 | struct ps3_system_bus_device { | ||
| 405 | enum ps3_match_id match_id; | ||
| 406 | struct ps3_device_id did; | ||
| 407 | unsigned int interrupt_id; | ||
| 408 | /* struct iommu_table *iommu_table; -- waiting for Ben's cleanups */ | ||
| 409 | struct ps3_dma_region *d_region; | ||
| 410 | struct ps3_mmio_region *m_region; | ||
| 411 | struct device core; | ||
| 412 | }; | ||
| 413 | |||
| 414 | /** | ||
| 415 | * struct ps3_system_bus_driver - a driver for a device on the system bus | ||
| 416 | */ | ||
| 417 | |||
| 418 | struct ps3_system_bus_driver { | ||
| 419 | enum ps3_match_id match_id; | ||
| 420 | struct device_driver core; | ||
| 421 | int (*probe)(struct ps3_system_bus_device *); | ||
| 422 | int (*remove)(struct ps3_system_bus_device *); | ||
| 423 | /* int (*suspend)(struct ps3_system_bus_device *, pm_message_t); */ | ||
| 424 | /* int (*resume)(struct ps3_system_bus_device *); */ | ||
| 425 | }; | ||
| 426 | |||
| 427 | int ps3_system_bus_device_register(struct ps3_system_bus_device *dev); | ||
| 428 | int ps3_system_bus_driver_register(struct ps3_system_bus_driver *drv); | ||
| 429 | void ps3_system_bus_driver_unregister(struct ps3_system_bus_driver *drv); | ||
| 430 | static inline struct ps3_system_bus_driver *to_ps3_system_bus_driver( | ||
| 431 | struct device_driver *_drv) | ||
| 432 | { | ||
| 433 | return container_of(_drv, struct ps3_system_bus_driver, core); | ||
| 434 | } | ||
| 435 | static inline struct ps3_system_bus_device *to_ps3_system_bus_device( | ||
| 436 | struct device *_dev) | ||
| 437 | { | ||
| 438 | return container_of(_dev, struct ps3_system_bus_device, core); | ||
| 439 | } | ||
| 440 | |||
| 441 | /** | ||
| 442 | * ps3_system_bus_set_drvdata - | ||
| 443 | * @dev: device structure | ||
| 444 | * @data: Data to set | ||
| 445 | */ | ||
| 446 | |||
| 447 | static inline void ps3_system_bus_set_driver_data( | ||
| 448 | struct ps3_system_bus_device *dev, void *data) | ||
| 449 | { | ||
| 450 | dev->core.driver_data = data; | ||
| 451 | } | ||
| 452 | static inline void *ps3_system_bus_get_driver_data( | ||
| 453 | struct ps3_system_bus_device *dev) | ||
| 454 | { | ||
| 455 | return dev->core.driver_data; | ||
| 456 | } | ||
| 457 | |||
| 458 | /* These two need global scope for get_dma_ops(). */ | ||
| 459 | |||
| 460 | extern struct bus_type ps3_system_bus_type; | ||
| 461 | |||
| 389 | #endif | 462 | #endif |
