Cypress C67X00 driver question

Peter Korsgaard peter.korsgaard at
Thu Aug 9 17:08:41 EST 2007

>>>>> "RJM" == Robertson, Joseph M <joseph.robertson at> writes:


RJM> Hi all, First off big thanks to the guys working on the Cypress
RJM> USB C67X00 driver!  Without them I would not even be this far.

You're welcome.

RJM> But my question for them is: How are you guys initializing the
RJM> Cypress chip?  It looks like the driver is expecting the cypress
RJM> to be programmed and ready.

No, you don't need to program anything. The driver only uses he
Cypress BIOS programmed in ROM in the chip.

You just need to register a struct platform_device in your board code
with the base address, IRQ and port configuration - Something like:

#include <linux/usb/c67x00.h


static struct resource c67x00_resources[] = {
        [0] = {
                .start  = 0x84000000,
                .end    = 0x8400000f,
                .flags  = IORESOURCE_MEM,
        [1] = {
                .start  = 3,
                .end    = 3,
                .flags  = IORESOURCE_IRQ,

static struct c67x00_platform_data c67x00_data = {
        .sie_config             = C67X00_SIE1_HOST | C67X00_SIE2_HOST,
        .hpi_regstep            = 0x02,

static struct platform_device c67x00 = {
        .name                   = "c67x00",
        .id                     = 0,
        .num_resources          = ARRAY_SIZE(c67x00_resources),
        .resource               = c67x00_resources,
        .dev.platform_data      = &c67x00_data,

Bye, Peter Korsgaard

More information about the Linuxppc-embedded mailing list