Share via


Root Bus Driver Development Concepts (Windows CE 5.0)

Send Feedback

The root bus driver is implemented in %_WINCEROOT%\Public\Common\OAK\CSP\ARM\TI\OMAP730\RootBus. The root bus driver consists of the RootBus class, the Omap730DeviceFolder class, and the Omap730Clock class.

Hardware configuration and power management depends on the specific hardware platform. The root bus driver uses a reference count to power-down each clock.

RootBus Class

The following list describes the implementation of the RootBus class:

  • It inherits the DefaultBusDriver class and the Omap730Clock class.

  • It creates an instance of the Omap730DeviceFolder class.

    Instead of creating a default device folder, the instance of the Omap730DeviceFolder class creates a device folder for a particular hardware component. A base physical address identifies the hardware component.

  • It scans the registry and creates client device folders during initialization.

    The default bus driver also scans the registry and creates client device folders during initialization. For more information about bus drivers, see Bus Drivers.

  • It allows expansion of the CreateNewDevice function for creating additional instances of device folders.

The following list describes the external interface of the RootBus class:

  • It implements FastIOControl to increase the speed of IOCTL calls from any clients.

    Rather than using a string to identify any client drivers, the RootBus class uses a handle to identify them.

  • It exposes the bus access IOCTLs to its client drivers and to any trusted applications that use the RootBus class.

    For information about the bus access IOCTLs, see CEDDK Dynamic-Link Library Bus Access IOCTLs.

Omap730DeviceFolder Class

The following list describes the implementation of the Omap730DeviceFolder class:

  • It creates the UpdatePowerState virtual member and uses its default implementation.

    The UpdatePowerState virtual member handles all power requests from any client drivers.

  • It allows some TI OMAP730 P2 hardware platforms to conserve power by powering-down individual timers.

    To unify access, there is a clock identifier for each device folder.

  • It contains all information related to any client drivers.

  • It inherits default device folder properties.

    Inheritance allows the Omap730DeviceFolder class to assume all default device folder functionality.

  • It implements the power state policy for any client drivers with the UpdatePowerState virtual member.

    The Omap730DeviceFolder class powers-up or powers-down any clocks or timers associated with the TI OMAP730 P2 hardware platform.

The following list describes the external interface of the Omap730DeviceFolder class:

  • It contains public functions that the RootBus class can access.

  • It enables clocks with the identifier function that the Omap730Clock class provides.

    The Omap730Clock class has to be accessible from the Omap730DeviceFolder class.

Omap730Clock Class

The following list describes the implementation of the Omap730DeviceFolder class:

  • It uses the CLOCK_ALLOCATION_ID_REGISTER_ACCESS clock identifier for accessing hardware registers.

    CLOCK_ALLOCATION_ID_OPERATION is the clock identifier for normal operation.

    CLOCK_ALLOCATION_OTHER is the clock identifier for other operations.

    The implementation of the Omap730DeviceFolder class determines whether all clock identifiers are used. You do not have to use all clock identifiers.

  • It manages any clocks on the TI OMAP730 P2 hardware platform.

    The physical address of the clock and a clock identifier identify any clocks. Device folders may have different clock sources, which the clock identifier distinguishes.

  • It memory-maps any clocks according to the physical address of the clock and the logical clock identifier.

    For each clock, a private array contains the physical clock identifier. Each clock has an internal reference count to track whether the clock is used. If it is not in use, the clock is automatically powered-down.

The following list describes the external interface of the Omap730Clock class:

  • It has public functions that the Omap730DeviceFolder class and RootBus class can access.

See Also

Bus Drivers | CEDDK Dynamic-Link Library Bus Access IOCTLs

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.