Message ID | 1253180254-11910-2-git-send-email-mkl@pengutronix.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Marc Kleine-Budde wrote: > This patch adds the device definition for the at91_can device to > the generic device definiton file for the at91sam9263. > > Signed-off-by: Hans J. Koch <hjk@linutronix.de> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> > --- > arch/arm/mach-at91/at91sam9263_devices.c | 36 ++++++++++++++++++++++++++++++ > arch/arm/mach-at91/include/mach/board.h | 6 +++++ > 2 files changed, 42 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c > index b7f2332..6026c2e 100644 > --- a/arch/arm/mach-at91/at91sam9263_devices.c > +++ b/arch/arm/mach-at91/at91sam9263_devices.c > @@ -757,6 +757,42 @@ void __init at91_add_device_ac97(struct atmel_ac97_data *data) > void __init at91_add_device_ac97(struct atmel_ac97_data *data) {} > #endif > > +/* -------------------------------------------------------------------- > + * CAN Controller > + * -------------------------------------------------------------------- */ > + > +#if defined(CONFIG_CAN_AT91) || defined(CONFIG_CAN_AT91_MODULE) > +static struct resource can_resources[] = { > + [0] = { > + .start = AT91SAM9263_BASE_CAN, > + .end = AT91SAM9263_BASE_CAN + SZ_16K - 1, > + .flags = IORESOURCE_MEM, > + }, > + [1] = { > + .start = AT91SAM9263_ID_CAN, > + .end = AT91SAM9263_ID_CAN, > + .flags = IORESOURCE_IRQ, > + }, > +}; > + > +static struct platform_device at91sam9263_can_device = { > + .name = "at91_can", > + .id = -1, > + .resource = can_resources, > + .num_resources = ARRAY_SIZE(can_resources), > +}; > + > +void __init at91_add_device_can(struct at91_can_data *data) > +{ > + at91_set_A_periph(AT91_PIN_PA13, 0); /* CANTX */ > + at91_set_A_periph(AT91_PIN_PA14, 0); /* CANRX */ > + at91sam9263_can_device.dev.platform_data = data; > + > + platform_device_register(&at91sam9263_can_device); > +} > +#else > +void __init at91_add_device_can(struct at91_can_data *data) {} > +#endif > > /* -------------------------------------------------------------------- > * LCD Controller > diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h > index e6afff8..134731c 100644 > --- a/arch/arm/mach-at91/include/mach/board.h > +++ b/arch/arm/mach-at91/include/mach/board.h > @@ -179,6 +179,12 @@ extern void __init at91_add_device_isi(void); > /* Touchscreen Controller */ > extern void __init at91_add_device_tsadcc(void); > > +/* CAN */ > +struct at91_can_data { > + void (*transceiver_switch)(int on); > +}; > +extern void __init at91_add_device_can(struct at91_can_data *data); > + > /* LEDs */ > extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); > extern void __init at91_gpio_leds(struct gpio_led *leds, int nr); Acked-by: Wolfgang Grandegger <wg@grandegger.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Wolfgang Grandegger <wg@grandegger.com> Date: Thu, 17 Sep 2009 15:14:22 +0200 > Marc Kleine-Budde wrote: >> This patch adds the device definition for the at91_can device to >> the generic device definiton file for the at91sam9263. >> >> Signed-off-by: Hans J. Koch <hjk@linutronix.de> >> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> ... > Acked-by: Wolfgang Grandegger <wg@grandegger.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index b7f2332..6026c2e 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -757,6 +757,42 @@ void __init at91_add_device_ac97(struct atmel_ac97_data *data) void __init at91_add_device_ac97(struct atmel_ac97_data *data) {} #endif +/* -------------------------------------------------------------------- + * CAN Controller + * -------------------------------------------------------------------- */ + +#if defined(CONFIG_CAN_AT91) || defined(CONFIG_CAN_AT91_MODULE) +static struct resource can_resources[] = { + [0] = { + .start = AT91SAM9263_BASE_CAN, + .end = AT91SAM9263_BASE_CAN + SZ_16K - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = AT91SAM9263_ID_CAN, + .end = AT91SAM9263_ID_CAN, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device at91sam9263_can_device = { + .name = "at91_can", + .id = -1, + .resource = can_resources, + .num_resources = ARRAY_SIZE(can_resources), +}; + +void __init at91_add_device_can(struct at91_can_data *data) +{ + at91_set_A_periph(AT91_PIN_PA13, 0); /* CANTX */ + at91_set_A_periph(AT91_PIN_PA14, 0); /* CANRX */ + at91sam9263_can_device.dev.platform_data = data; + + platform_device_register(&at91sam9263_can_device); +} +#else +void __init at91_add_device_can(struct at91_can_data *data) {} +#endif /* -------------------------------------------------------------------- * LCD Controller diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h index e6afff8..134731c 100644 --- a/arch/arm/mach-at91/include/mach/board.h +++ b/arch/arm/mach-at91/include/mach/board.h @@ -179,6 +179,12 @@ extern void __init at91_add_device_isi(void); /* Touchscreen Controller */ extern void __init at91_add_device_tsadcc(void); +/* CAN */ +struct at91_can_data { + void (*transceiver_switch)(int on); +}; +extern void __init at91_add_device_can(struct at91_can_data *data); + /* LEDs */ extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);