|
@@ -1433,3 +1433,131 @@ struct platform_device s5p_device_ehci = {
|
|
|
|
|
|
void __init s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd)
|
|
|
{
|
|
|
+ struct s5p_ehci_platdata *npd;
|
|
|
+
|
|
|
+ npd = s3c_set_platdata(pd, sizeof(struct s5p_ehci_platdata),
|
|
|
+ &s5p_device_ehci);
|
|
|
+
|
|
|
+ if (!npd->phy_init)
|
|
|
+ npd->phy_init = s5p_usb_phy_init;
|
|
|
+ if (!npd->phy_exit)
|
|
|
+ npd->phy_exit = s5p_usb_phy_exit;
|
|
|
+}
|
|
|
+#endif /* CONFIG_S5P_DEV_USB_EHCI */
|
|
|
+
|
|
|
+/* USB HSOTG */
|
|
|
+
|
|
|
+#ifdef CONFIG_S3C_DEV_USB_HSOTG
|
|
|
+static struct resource s3c_usb_hsotg_resources[] = {
|
|
|
+ [0] = DEFINE_RES_MEM(S3C_PA_USB_HSOTG, SZ_128K),
|
|
|
+ [1] = DEFINE_RES_IRQ(IRQ_OTG),
|
|
|
+};
|
|
|
+
|
|
|
+struct platform_device s3c_device_usb_hsotg = {
|
|
|
+ .name = "s3c-hsotg",
|
|
|
+ .id = -1,
|
|
|
+ .num_resources = ARRAY_SIZE(s3c_usb_hsotg_resources),
|
|
|
+ .resource = s3c_usb_hsotg_resources,
|
|
|
+ .dev = {
|
|
|
+ .dma_mask = &samsung_device_dma_mask,
|
|
|
+ .coherent_dma_mask = DMA_BIT_MASK(32),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+void __init s3c_hsotg_set_platdata(struct s3c_hsotg_plat *pd)
|
|
|
+{
|
|
|
+ struct s3c_hsotg_plat *npd;
|
|
|
+
|
|
|
+ npd = s3c_set_platdata(pd, sizeof(struct s3c_hsotg_plat),
|
|
|
+ &s3c_device_usb_hsotg);
|
|
|
+
|
|
|
+ if (!npd->phy_init)
|
|
|
+ npd->phy_init = s5p_usb_phy_init;
|
|
|
+ if (!npd->phy_exit)
|
|
|
+ npd->phy_exit = s5p_usb_phy_exit;
|
|
|
+}
|
|
|
+#endif /* CONFIG_S3C_DEV_USB_HSOTG */
|
|
|
+
|
|
|
+/* USB High Spped 2.0 Device (Gadget) */
|
|
|
+
|
|
|
+#ifdef CONFIG_PLAT_S3C24XX
|
|
|
+static struct resource s3c_hsudc_resource[] = {
|
|
|
+ [0] = DEFINE_RES_MEM(S3C2416_PA_HSUDC, S3C2416_SZ_HSUDC),
|
|
|
+ [1] = DEFINE_RES_IRQ(IRQ_USBD),
|
|
|
+};
|
|
|
+
|
|
|
+struct platform_device s3c_device_usb_hsudc = {
|
|
|
+ .name = "s3c-hsudc",
|
|
|
+ .id = -1,
|
|
|
+ .num_resources = ARRAY_SIZE(s3c_hsudc_resource),
|
|
|
+ .resource = s3c_hsudc_resource,
|
|
|
+ .dev = {
|
|
|
+ .dma_mask = &samsung_device_dma_mask,
|
|
|
+ .coherent_dma_mask = DMA_BIT_MASK(32),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+void __init s3c24xx_hsudc_set_platdata(struct s3c24xx_hsudc_platdata *pd)
|
|
|
+{
|
|
|
+ s3c_set_platdata(pd, sizeof(*pd), &s3c_device_usb_hsudc);
|
|
|
+}
|
|
|
+#endif /* CONFIG_PLAT_S3C24XX */
|
|
|
+
|
|
|
+/* WDT */
|
|
|
+
|
|
|
+#ifdef CONFIG_S3C_DEV_WDT
|
|
|
+static struct resource s3c_wdt_resource[] = {
|
|
|
+ [0] = DEFINE_RES_MEM(S3C_PA_WDT, SZ_1K),
|
|
|
+ [1] = DEFINE_RES_IRQ(IRQ_WDT),
|
|
|
+};
|
|
|
+
|
|
|
+struct platform_device s3c_device_wdt = {
|
|
|
+ .name = "s3c2410-wdt",
|
|
|
+ .id = -1,
|
|
|
+ .num_resources = ARRAY_SIZE(s3c_wdt_resource),
|
|
|
+ .resource = s3c_wdt_resource,
|
|
|
+};
|
|
|
+#endif /* CONFIG_S3C_DEV_WDT */
|
|
|
+
|
|
|
+#ifdef CONFIG_S3C64XX_DEV_SPI0
|
|
|
+static struct resource s3c64xx_spi0_resource[] = {
|
|
|
+ [0] = DEFINE_RES_MEM(S3C_PA_SPI0, SZ_256),
|
|
|
+ [1] = DEFINE_RES_DMA(DMACH_SPI0_TX),
|
|
|
+ [2] = DEFINE_RES_DMA(DMACH_SPI0_RX),
|
|
|
+ [3] = DEFINE_RES_IRQ(IRQ_SPI0),
|
|
|
+};
|
|
|
+
|
|
|
+struct platform_device s3c64xx_device_spi0 = {
|
|
|
+ .name = "s3c6410-spi",
|
|
|
+ .id = 0,
|
|
|
+ .num_resources = ARRAY_SIZE(s3c64xx_spi0_resource),
|
|
|
+ .resource = s3c64xx_spi0_resource,
|
|
|
+ .dev = {
|
|
|
+ .dma_mask = &samsung_device_dma_mask,
|
|
|
+ .coherent_dma_mask = DMA_BIT_MASK(32),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+void __init s3c64xx_spi0_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
|
|
|
+ int num_cs)
|
|
|
+{
|
|
|
+ struct s3c64xx_spi_info pd;
|
|
|
+
|
|
|
+ /* Reject invalid configuration */
|
|
|
+ if (!num_cs || src_clk_nr < 0) {
|
|
|
+ pr_err("%s: Invalid SPI configuration\n", __func__);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pd.num_cs = num_cs;
|
|
|
+ pd.src_clk_nr = src_clk_nr;
|
|
|
+ pd.cfg_gpio = (cfg_gpio) ? cfg_gpio : s3c64xx_spi0_cfg_gpio;
|
|
|
+
|
|
|
+ s3c_set_platdata(&pd, sizeof(pd), &s3c64xx_device_spi0);
|
|
|
+}
|
|
|
+#endif /* CONFIG_S3C64XX_DEV_SPI0 */
|
|
|
+
|
|
|
+#ifdef CONFIG_S3C64XX_DEV_SPI1
|
|
|
+static struct resource s3c64xx_spi1_resource[] = {
|
|
|
+ [0] = DEFINE_RES_MEM(S3C_PA_SPI1, SZ_256),
|
|
|
+ [1] = DEFINE_RES_DMA(DMACH_SPI1_TX),
|