-#define COLLIE_SCP_INIT_DATA(adr,dat) (((adr)<<16)|(dat))
-#define COLLIE_SCP_INIT_DATA_END ((unsigned long)-1)
- static const unsigned long scp_init[] = {
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_MCR, 0x0140), // 00
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_MCR, 0x0100),
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_CDR, 0x0000), // 04
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_CPR, 0x0000), // 0C
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_CCR, 0x0000), // 10
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_IMR, 0x0000), // 18
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_IRM, 0x00FF), // 14
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_ISR, 0x0000), // 1C
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_IRM, 0x0000),
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_GPCR, COLLIE_SCP_IO_DIR), // 20
- COLLIE_SCP_INIT_DATA(COLLIE_SCP_GPWR, COLLIE_SCP_IO_OUT), // 24
- COLLIE_SCP_INIT_DATA_END
- };
- int i;
- for (i = 0; scp_init[i] != COLLIE_SCP_INIT_DATA_END; i++) {
- int adr = scp_init[i] >> 16;
- COLLIE_SCP_REG(adr) = scp_init[i] & 0xFFFF;
- }
+static struct scoop_pcmcia_config collie_pcmcia_config = {
+ .devs = &collie_pcmcia_scoop[0],
+ .num_devs = 1,
+};
+
+
+static struct mcp_plat_data collie_mcp_data = {
+ .mccr0 = MCCR0_ADM | MCCR0_ExtClk,
+ .sclk_rate = 9216000,
+};
+
+#ifdef CONFIG_SHARP_LOCOMO
+/*
+ * low-level UART features.
+ */
+struct platform_device collie_locomo_device;
+
+static void collie_uart_set_mctrl(struct uart_port *port, u_int mctrl)
+{
+ if (mctrl & TIOCM_RTS)
+ locomo_gpio_write(&collie_locomo_device.dev, LOCOMO_GPIO_RTS, 0);
+ else
+ locomo_gpio_write(&collie_locomo_device.dev, LOCOMO_GPIO_RTS, 1);
+
+ if (mctrl & TIOCM_DTR)
+ locomo_gpio_write(&collie_locomo_device.dev, LOCOMO_GPIO_DTR, 0);
+ else
+ locomo_gpio_write(&collie_locomo_device.dev, LOCOMO_GPIO_DTR, 1);
+}
+
+static u_int collie_uart_get_mctrl(struct uart_port *port)
+{
+ int ret = TIOCM_CD;
+ unsigned int r;
+
+ r = locomo_gpio_read_output(&collie_locomo_device.dev, LOCOMO_GPIO_CTS & LOCOMO_GPIO_DSR);
+ if (r == -ENODEV)
+ return ret;
+ if (r & LOCOMO_GPIO_CTS)
+ ret |= TIOCM_CTS;
+ if (r & LOCOMO_GPIO_DSR)
+ ret |= TIOCM_DSR;
+
+ return ret;
+}