|
@@ -366,3 +366,99 @@ static struct pxamci_platform_data trizeps4_mci_platform_data = {
|
|
static short trizeps_conxs_ircr;
|
|
static short trizeps_conxs_ircr;
|
|
|
|
|
|
static int trizeps4_irda_startup(struct device *dev)
|
|
static int trizeps4_irda_startup(struct device *dev)
|
|
|
|
+{
|
|
|
|
+ trizeps_conxs_ircr &= ~ConXS_IRCR_SD;
|
|
|
|
+ IRCR_writew(trizeps_conxs_ircr);
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void trizeps4_irda_shutdown(struct device *dev)
|
|
|
|
+{
|
|
|
|
+ trizeps_conxs_ircr |= ConXS_IRCR_SD;
|
|
|
|
+ IRCR_writew(trizeps_conxs_ircr);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void trizeps4_irda_transceiver_mode(struct device *dev, int mode)
|
|
|
|
+{
|
|
|
|
+ unsigned long flags;
|
|
|
|
+
|
|
|
|
+ local_irq_save(flags);
|
|
|
|
+ /* Switch mode */
|
|
|
|
+ if (mode & IR_SIRMODE)
|
|
|
|
+ trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */
|
|
|
|
+ else if (mode & IR_FIRMODE)
|
|
|
|
+ trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */
|
|
|
|
+
|
|
|
|
+ /* Switch power */
|
|
|
|
+ if (mode & IR_OFF)
|
|
|
|
+ trizeps_conxs_ircr |= ConXS_IRCR_SD;
|
|
|
|
+ else
|
|
|
|
+ trizeps_conxs_ircr &= ~ConXS_IRCR_SD;
|
|
|
|
+
|
|
|
|
+ IRCR_writew(trizeps_conxs_ircr);
|
|
|
|
+ local_irq_restore(flags);
|
|
|
|
+
|
|
|
|
+ pxa2xx_transceiver_mode(dev, mode);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct pxaficp_platform_data trizeps4_ficp_platform_data = {
|
|
|
|
+ .gpio_pwdown = -1,
|
|
|
|
+ .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF,
|
|
|
|
+ .transceiver_mode = trizeps4_irda_transceiver_mode,
|
|
|
|
+ .startup = trizeps4_irda_startup,
|
|
|
|
+ .shutdown = trizeps4_irda_shutdown,
|
|
|
|
+};
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+/****************************************************************************
|
|
|
|
+ * OHCI USB port
|
|
|
|
+ ****************************************************************************/
|
|
|
|
+static struct pxaohci_platform_data trizeps4_ohci_platform_data = {
|
|
|
|
+ .port_mode = PMM_PERPORT_MODE,
|
|
|
|
+ .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct map_desc trizeps4_io_desc[] __initdata = {
|
|
|
|
+ { /* ConXS CFSR */
|
|
|
|
+ .virtual = TRIZEPS4_CFSR_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(TRIZEPS4_CFSR_PHYS),
|
|
|
|
+ .length = 0x00001000,
|
|
|
|
+ .type = MT_DEVICE
|
|
|
|
+ },
|
|
|
|
+ { /* ConXS BCR */
|
|
|
|
+ .virtual = TRIZEPS4_BOCR_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(TRIZEPS4_BOCR_PHYS),
|
|
|
|
+ .length = 0x00001000,
|
|
|
|
+ .type = MT_DEVICE
|
|
|
|
+ },
|
|
|
|
+ { /* ConXS IRCR */
|
|
|
|
+ .virtual = TRIZEPS4_IRCR_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(TRIZEPS4_IRCR_PHYS),
|
|
|
|
+ .length = 0x00001000,
|
|
|
|
+ .type = MT_DEVICE
|
|
|
|
+ },
|
|
|
|
+ { /* ConXS DCR */
|
|
|
|
+ .virtual = TRIZEPS4_DICR_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(TRIZEPS4_DICR_PHYS),
|
|
|
|
+ .length = 0x00001000,
|
|
|
|
+ .type = MT_DEVICE
|
|
|
|
+ },
|
|
|
|
+ { /* ConXS UPSR */
|
|
|
|
+ .virtual = TRIZEPS4_UPSR_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(TRIZEPS4_UPSR_PHYS),
|
|
|
|
+ .length = 0x00001000,
|
|
|
|
+ .type = MT_DEVICE
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct pxafb_mode_info sharp_lcd_mode = {
|
|
|
|
+ .pixclock = 78000,
|
|
|
|
+ .xres = 640,
|
|
|
|
+ .yres = 480,
|
|
|
|
+ .bpp = 8,
|
|
|
|
+ .hsync_len = 4,
|
|
|
|
+ .left_margin = 4,
|
|
|
|
+ .right_margin = 4,
|
|
|
|
+ .vsync_len = 2,
|
|
|
|
+ .upper_margin = 0,
|
|
|
|
+ .lower_margin = 0,
|