"alf" == alf scherer <[EMAIL PROTECTED]> writes:

 alf> Hello Peter,
 alf> Hello Alan,

 alf> I have got the HPE-mini FPGA embedded development board running
 alf> a LEON3-SPARC Snapgear-linux with a 2.6.21 kernel. The Cypress
 alf> cy7c67300 is directly connected to an Altera Cylcone II FPGA in
 alf> HPI mode.

Ok. Any particular reason why you're stuck with 2.6.21? The kernel HCD
interface has changed a bit since then, so you'l have to fix that up.

Actually, the LEON3-soft CPU vendor only supports 2.6.21, so for that reason I'm kind stuck. I could try to add LEON3 hardware-specific support to the latest linux release, but that would actually be more work than just porting the c67x00 back to 2.6.21. I've already adopted the code to 2.6.21 kernel HCD.

 alf>  First, I was very glad to find a c67x00 driver for 2.6, but I
 alf> need to do some porting stuff back to 2.6.21/SPARC, that
 alf> should'nt be a big deal. However, while reading the code back
 alf> and forth , I was just wondering how and where the
 alf> "pdev->dev.platform_data" gets allocated as it is referenced in
 alf> function c67x00_drv_probe() without the
 alf> platform_device_add_data() beeing called anywhere before. I've
 alf> browsed through the drivers/base-code where all platform-driver
 alf> specific stuff is done, but I really wasn't able to see where
 alf> this allocation happens.  Can you give me a hint where to look
 alf> at?

In your platform code like for other platform devices, E.G.:

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_PERIPHERAL_B,
        .hpi_regstep            = 0x02, /* A0 not connected on 16bit bus */
};

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

And the c67x00_dev structure is then registerred with the platform bus
with platform_add_devices() or similar.

I see, thanks for the hint! BTW, do you plan to add peripheral-mode support to the driver? If so, I'd be eager to help you with development and testing.

Bye Alf




-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to