diff options
| -rw-r--r-- | arch/arm/boot/dts/tegra30.dtsi | 4 | ||||
| -rw-r--r-- | arch/arm/mach-highbank/system.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/devices.c | 79 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 28 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/hx4700.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/spitz_pm.c | 8 | ||||
| -rw-r--r-- | drivers/bus/omap-ocp2scp.c | 68 | ||||
| -rw-r--r-- | drivers/irqchip/irq-bcm2835.c | 3 | ||||
| -rw-r--r-- | include/linux/platform_data/omap_ocp2scp.h | 31 |
9 files changed, 218 insertions, 14 deletions
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index b1497c7d7d68..df7f2270fc91 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
| @@ -73,8 +73,8 @@ | |||
| 73 | 73 | ||
| 74 | pinmux: pinmux { | 74 | pinmux: pinmux { |
| 75 | compatible = "nvidia,tegra30-pinmux"; | 75 | compatible = "nvidia,tegra30-pinmux"; |
| 76 | reg = <0x70000868 0xd0 /* Pad control registers */ | 76 | reg = <0x70000868 0xd4 /* Pad control registers */ |
| 77 | 0x70003000 0x3e0>; /* Mux registers */ | 77 | 0x70003000 0x3e4>; /* Mux registers */ |
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | serial@70006000 { | 80 | serial@70006000 { |
diff --git a/arch/arm/mach-highbank/system.c b/arch/arm/mach-highbank/system.c index 82c27230d4a9..86e37cd9376c 100644 --- a/arch/arm/mach-highbank/system.c +++ b/arch/arm/mach-highbank/system.c | |||
| @@ -28,6 +28,7 @@ void highbank_restart(char mode, const char *cmd) | |||
| 28 | hignbank_set_pwr_soft_reset(); | 28 | hignbank_set_pwr_soft_reset(); |
| 29 | 29 | ||
| 30 | scu_power_mode(scu_base_addr, SCU_PM_POWEROFF); | 30 | scu_power_mode(scu_base_addr, SCU_PM_POWEROFF); |
| 31 | cpu_do_idle(); | 31 | while (1) |
| 32 | cpu_do_idle(); | ||
| 32 | } | 33 | } |
| 33 | 34 | ||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index cba60e05e32e..c72b5a727720 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/of.h> | 19 | #include <linux/of.h> |
| 20 | #include <linux/pinctrl/machine.h> | 20 | #include <linux/pinctrl/machine.h> |
| 21 | #include <linux/platform_data/omap4-keypad.h> | 21 | #include <linux/platform_data/omap4-keypad.h> |
| 22 | #include <linux/platform_data/omap_ocp2scp.h> | ||
| 22 | 23 | ||
| 23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
| 24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
| @@ -613,6 +614,83 @@ static void omap_init_vout(void) | |||
| 613 | static inline void omap_init_vout(void) {} | 614 | static inline void omap_init_vout(void) {} |
| 614 | #endif | 615 | #endif |
| 615 | 616 | ||
| 617 | #if defined(CONFIG_OMAP_OCP2SCP) || defined(CONFIG_OMAP_OCP2SCP_MODULE) | ||
| 618 | static int count_ocp2scp_devices(struct omap_ocp2scp_dev *ocp2scp_dev) | ||
| 619 | { | ||
| 620 | int cnt = 0; | ||
| 621 | |||
| 622 | while (ocp2scp_dev->drv_name != NULL) { | ||
| 623 | cnt++; | ||
| 624 | ocp2scp_dev++; | ||
| 625 | } | ||
| 626 | |||
| 627 | return cnt; | ||
| 628 | } | ||
| 629 | |||
| 630 | static void omap_init_ocp2scp(void) | ||
| 631 | { | ||
| 632 | struct omap_hwmod *oh; | ||
| 633 | struct platform_device *pdev; | ||
| 634 | int bus_id = -1, dev_cnt = 0, i; | ||
| 635 | struct omap_ocp2scp_dev *ocp2scp_dev; | ||
| 636 | const char *oh_name, *name; | ||
| 637 | struct omap_ocp2scp_platform_data *pdata; | ||
| 638 | |||
| 639 | if (!cpu_is_omap44xx()) | ||
| 640 | return; | ||
| 641 | |||
| 642 | oh_name = "ocp2scp_usb_phy"; | ||
| 643 | name = "omap-ocp2scp"; | ||
| 644 | |||
| 645 | oh = omap_hwmod_lookup(oh_name); | ||
| 646 | if (!oh) { | ||
| 647 | pr_err("%s: could not find omap_hwmod for %s\n", __func__, | ||
| 648 | oh_name); | ||
| 649 | return; | ||
| 650 | } | ||
| 651 | |||
| 652 | pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); | ||
| 653 | if (!pdata) { | ||
| 654 | pr_err("%s: No memory for ocp2scp pdata\n", __func__); | ||
| 655 | return; | ||
| 656 | } | ||
| 657 | |||
| 658 | ocp2scp_dev = oh->dev_attr; | ||
| 659 | dev_cnt = count_ocp2scp_devices(ocp2scp_dev); | ||
| 660 | |||
| 661 | if (!dev_cnt) { | ||
| 662 | pr_err("%s: No devices connected to ocp2scp\n", __func__); | ||
| 663 | kfree(pdata); | ||
| 664 | return; | ||
| 665 | } | ||
| 666 | |||
| 667 | pdata->devices = kzalloc(sizeof(struct omap_ocp2scp_dev *) | ||
| 668 | * dev_cnt, GFP_KERNEL); | ||
| 669 | if (!pdata->devices) { | ||
| 670 | pr_err("%s: No memory for ocp2scp pdata devices\n", __func__); | ||
| 671 | kfree(pdata); | ||
| 672 | return; | ||
| 673 | } | ||
| 674 | |||
| 675 | for (i = 0; i < dev_cnt; i++, ocp2scp_dev++) | ||
| 676 | pdata->devices[i] = ocp2scp_dev; | ||
| 677 | |||
| 678 | pdata->dev_cnt = dev_cnt; | ||
| 679 | |||
| 680 | pdev = omap_device_build(name, bus_id, oh, pdata, sizeof(*pdata), NULL, | ||
| 681 | 0, false); | ||
| 682 | if (IS_ERR(pdev)) { | ||
| 683 | pr_err("Could not build omap_device for %s %s\n", | ||
| 684 | name, oh_name); | ||
| 685 | kfree(pdata->devices); | ||
| 686 | kfree(pdata); | ||
| 687 | return; | ||
| 688 | } | ||
| 689 | } | ||
| 690 | #else | ||
| 691 | static inline void omap_init_ocp2scp(void) { } | ||
| 692 | #endif | ||
| 693 | |||
| 616 | /*-------------------------------------------------------------------------*/ | 694 | /*-------------------------------------------------------------------------*/ |
| 617 | 695 | ||
| 618 | static int __init omap2_init_devices(void) | 696 | static int __init omap2_init_devices(void) |
| @@ -640,6 +718,7 @@ static int __init omap2_init_devices(void) | |||
| 640 | omap_init_sham(); | 718 | omap_init_sham(); |
| 641 | omap_init_aes(); | 719 | omap_init_aes(); |
| 642 | omap_init_vout(); | 720 | omap_init_vout(); |
| 721 | omap_init_ocp2scp(); | ||
| 643 | 722 | ||
| 644 | return 0; | 723 | return 0; |
| 645 | } | 724 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 7bddfa5534f9..0b1249e00398 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
| 22 | #include <linux/platform_data/gpio-omap.h> | 22 | #include <linux/platform_data/gpio-omap.h> |
| 23 | #include <linux/power/smartreflex.h> | 23 | #include <linux/power/smartreflex.h> |
| 24 | #include <linux/platform_data/omap_ocp2scp.h> | ||
| 24 | 25 | ||
| 25 | #include <plat/omap_hwmod.h> | 26 | #include <plat/omap_hwmod.h> |
| 26 | #include <plat/i2c.h> | 27 | #include <plat/i2c.h> |
| @@ -2689,6 +2690,32 @@ static struct omap_hwmod_class omap44xx_ocp2scp_hwmod_class = { | |||
| 2689 | .sysc = &omap44xx_ocp2scp_sysc, | 2690 | .sysc = &omap44xx_ocp2scp_sysc, |
| 2690 | }; | 2691 | }; |
| 2691 | 2692 | ||
| 2693 | /* ocp2scp dev_attr */ | ||
| 2694 | static struct resource omap44xx_usb_phy_and_pll_addrs[] = { | ||
| 2695 | { | ||
| 2696 | .name = "usb_phy", | ||
| 2697 | .start = 0x4a0ad080, | ||
| 2698 | .end = 0x4a0ae000, | ||
| 2699 | .flags = IORESOURCE_MEM, | ||
| 2700 | }, | ||
| 2701 | { | ||
| 2702 | /* XXX: Remove this once control module driver is in place */ | ||
| 2703 | .name = "ctrl_dev", | ||
| 2704 | .start = 0x4a002300, | ||
| 2705 | .end = 0x4a002303, | ||
| 2706 | .flags = IORESOURCE_MEM, | ||
| 2707 | }, | ||
| 2708 | { } | ||
| 2709 | }; | ||
| 2710 | |||
| 2711 | static struct omap_ocp2scp_dev ocp2scp_dev_attr[] = { | ||
| 2712 | { | ||
| 2713 | .drv_name = "omap-usb2", | ||
| 2714 | .res = omap44xx_usb_phy_and_pll_addrs, | ||
| 2715 | }, | ||
| 2716 | { } | ||
| 2717 | }; | ||
| 2718 | |||
| 2692 | /* ocp2scp_usb_phy */ | 2719 | /* ocp2scp_usb_phy */ |
| 2693 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | 2720 | static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { |
| 2694 | .name = "ocp2scp_usb_phy", | 2721 | .name = "ocp2scp_usb_phy", |
| @@ -2702,6 +2729,7 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | |||
| 2702 | .modulemode = MODULEMODE_HWCTRL, | 2729 | .modulemode = MODULEMODE_HWCTRL, |
| 2703 | }, | 2730 | }, |
| 2704 | }, | 2731 | }, |
| 2732 | .dev_attr = ocp2scp_dev_attr, | ||
| 2705 | }; | 2733 | }; |
| 2706 | 2734 | ||
| 2707 | /* | 2735 | /* |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index 5ecbd17b5641..e2c6391863fe 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #include <linux/mfd/asic3.h> | 28 | #include <linux/mfd/asic3.h> |
| 29 | #include <linux/mtd/physmap.h> | 29 | #include <linux/mtd/physmap.h> |
| 30 | #include <linux/pda_power.h> | 30 | #include <linux/pda_power.h> |
| 31 | #include <linux/pwm.h> | ||
| 31 | #include <linux/pwm_backlight.h> | 32 | #include <linux/pwm_backlight.h> |
| 32 | #include <linux/regulator/driver.h> | 33 | #include <linux/regulator/driver.h> |
| 33 | #include <linux/regulator/gpio-regulator.h> | 34 | #include <linux/regulator/gpio-regulator.h> |
| @@ -556,7 +557,7 @@ static struct platform_device hx4700_lcd = { | |||
| 556 | */ | 557 | */ |
| 557 | 558 | ||
| 558 | static struct platform_pwm_backlight_data backlight_data = { | 559 | static struct platform_pwm_backlight_data backlight_data = { |
| 559 | .pwm_id = 1, | 560 | .pwm_id = -1, /* Superseded by pwm_lookup */ |
| 560 | .max_brightness = 200, | 561 | .max_brightness = 200, |
| 561 | .dft_brightness = 100, | 562 | .dft_brightness = 100, |
| 562 | .pwm_period_ns = 30923, | 563 | .pwm_period_ns = 30923, |
| @@ -571,6 +572,10 @@ static struct platform_device backlight = { | |||
| 571 | }, | 572 | }, |
| 572 | }; | 573 | }; |
| 573 | 574 | ||
| 575 | static struct pwm_lookup hx4700_pwm_lookup[] = { | ||
| 576 | PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL), | ||
| 577 | }; | ||
| 578 | |||
| 574 | /* | 579 | /* |
| 575 | * USB "Transceiver" | 580 | * USB "Transceiver" |
| 576 | */ | 581 | */ |
| @@ -872,6 +877,7 @@ static void __init hx4700_init(void) | |||
| 872 | pxa_set_stuart_info(NULL); | 877 | pxa_set_stuart_info(NULL); |
| 873 | 878 | ||
| 874 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 879 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 880 | pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup)); | ||
| 875 | 881 | ||
| 876 | pxa_set_ficp_info(&ficp_info); | 882 | pxa_set_ficp_info(&ficp_info); |
| 877 | pxa27x_set_i2c_power_info(NULL); | 883 | pxa27x_set_i2c_power_info(NULL); |
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 438f02fe122a..842596d4d31e 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c | |||
| @@ -86,10 +86,7 @@ static void spitz_discharge1(int on) | |||
| 86 | gpio_set_value(SPITZ_GPIO_LED_GREEN, on); | 86 | gpio_set_value(SPITZ_GPIO_LED_GREEN, on); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | static unsigned long gpio18_config[] = { | 89 | static unsigned long gpio18_config = GPIO18_GPIO; |
| 90 | GPIO18_RDY, | ||
| 91 | GPIO18_GPIO, | ||
| 92 | }; | ||
| 93 | 90 | ||
| 94 | static void spitz_presuspend(void) | 91 | static void spitz_presuspend(void) |
| 95 | { | 92 | { |
| @@ -112,7 +109,7 @@ static void spitz_presuspend(void) | |||
| 112 | PGSR3 &= ~SPITZ_GPIO_G3_STROBE_BIT; | 109 | PGSR3 &= ~SPITZ_GPIO_G3_STROBE_BIT; |
| 113 | PGSR2 |= GPIO_bit(SPITZ_GPIO_KEY_STROBE0); | 110 | PGSR2 |= GPIO_bit(SPITZ_GPIO_KEY_STROBE0); |
| 114 | 111 | ||
| 115 | pxa2xx_mfp_config(&gpio18_config[0], 1); | 112 | pxa2xx_mfp_config(&gpio18_config, 1); |
| 116 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, "Unknown"); | 113 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, "Unknown"); |
| 117 | gpio_free(18); | 114 | gpio_free(18); |
| 118 | 115 | ||
| @@ -131,7 +128,6 @@ static void spitz_presuspend(void) | |||
| 131 | 128 | ||
| 132 | static void spitz_postsuspend(void) | 129 | static void spitz_postsuspend(void) |
| 133 | { | 130 | { |
| 134 | pxa2xx_mfp_config(&gpio18_config[1], 1); | ||
| 135 | } | 131 | } |
| 136 | 132 | ||
| 137 | static int spitz_should_wakeup(unsigned int resume_on_alarm) | 133 | static int spitz_should_wakeup(unsigned int resume_on_alarm) |
diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c index ff63560b8467..0c48b0e05ed6 100644 --- a/drivers/bus/omap-ocp2scp.c +++ b/drivers/bus/omap-ocp2scp.c | |||
| @@ -22,6 +22,26 @@ | |||
| 22 | #include <linux/pm_runtime.h> | 22 | #include <linux/pm_runtime.h> |
| 23 | #include <linux/of.h> | 23 | #include <linux/of.h> |
| 24 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
| 25 | #include <linux/platform_data/omap_ocp2scp.h> | ||
| 26 | |||
| 27 | /** | ||
| 28 | * _count_resources - count for the number of resources | ||
| 29 | * @res: struct resource * | ||
| 30 | * | ||
| 31 | * Count and return the number of resources populated for the device that is | ||
| 32 | * connected to ocp2scp. | ||
| 33 | */ | ||
| 34 | static unsigned _count_resources(struct resource *res) | ||
| 35 | { | ||
| 36 | int cnt = 0; | ||
| 37 | |||
| 38 | while (res->start != res->end) { | ||
| 39 | cnt++; | ||
| 40 | res++; | ||
| 41 | } | ||
| 42 | |||
| 43 | return cnt; | ||
| 44 | } | ||
| 25 | 45 | ||
| 26 | static int ocp2scp_remove_devices(struct device *dev, void *c) | 46 | static int ocp2scp_remove_devices(struct device *dev, void *c) |
| 27 | { | 47 | { |
| @@ -34,20 +54,62 @@ static int ocp2scp_remove_devices(struct device *dev, void *c) | |||
| 34 | 54 | ||
| 35 | static int __devinit omap_ocp2scp_probe(struct platform_device *pdev) | 55 | static int __devinit omap_ocp2scp_probe(struct platform_device *pdev) |
| 36 | { | 56 | { |
| 37 | int ret; | 57 | int ret; |
| 38 | struct device_node *np = pdev->dev.of_node; | 58 | unsigned res_cnt, i; |
| 59 | struct device_node *np = pdev->dev.of_node; | ||
| 60 | struct platform_device *pdev_child; | ||
| 61 | struct omap_ocp2scp_platform_data *pdata = pdev->dev.platform_data; | ||
| 62 | struct omap_ocp2scp_dev *dev; | ||
| 39 | 63 | ||
| 40 | if (np) { | 64 | if (np) { |
| 41 | ret = of_platform_populate(np, NULL, NULL, &pdev->dev); | 65 | ret = of_platform_populate(np, NULL, NULL, &pdev->dev); |
| 42 | if (ret) { | 66 | if (ret) { |
| 43 | dev_err(&pdev->dev, "failed to add resources for ocp2scp child\n"); | 67 | dev_err(&pdev->dev, |
| 68 | "failed to add resources for ocp2scp child\n"); | ||
| 44 | goto err0; | 69 | goto err0; |
| 45 | } | 70 | } |
| 71 | } else if (pdata) { | ||
| 72 | for (i = 0, dev = *pdata->devices; i < pdata->dev_cnt; i++, | ||
| 73 | dev++) { | ||
| 74 | res_cnt = _count_resources(dev->res); | ||
| 75 | |||
| 76 | pdev_child = platform_device_alloc(dev->drv_name, | ||
| 77 | PLATFORM_DEVID_AUTO); | ||
| 78 | if (!pdev_child) { | ||
| 79 | dev_err(&pdev->dev, | ||
| 80 | "failed to allocate mem for ocp2scp child\n"); | ||
| 81 | goto err0; | ||
| 82 | } | ||
| 83 | |||
| 84 | ret = platform_device_add_resources(pdev_child, | ||
| 85 | dev->res, res_cnt); | ||
| 86 | if (ret) { | ||
| 87 | dev_err(&pdev->dev, | ||
| 88 | "failed to add resources for ocp2scp child\n"); | ||
| 89 | goto err1; | ||
| 90 | } | ||
| 91 | |||
| 92 | pdev_child->dev.parent = &pdev->dev; | ||
| 93 | |||
| 94 | ret = platform_device_add(pdev_child); | ||
| 95 | if (ret) { | ||
| 96 | dev_err(&pdev->dev, | ||
| 97 | "failed to register ocp2scp child device\n"); | ||
| 98 | goto err1; | ||
| 99 | } | ||
| 100 | } | ||
| 101 | } else { | ||
| 102 | dev_err(&pdev->dev, "OCP2SCP initialized without plat data\n"); | ||
| 103 | return -EINVAL; | ||
| 46 | } | 104 | } |
| 105 | |||
| 47 | pm_runtime_enable(&pdev->dev); | 106 | pm_runtime_enable(&pdev->dev); |
| 48 | 107 | ||
| 49 | return 0; | 108 | return 0; |
| 50 | 109 | ||
| 110 | err1: | ||
| 111 | platform_device_put(pdev_child); | ||
| 112 | |||
| 51 | err0: | 113 | err0: |
| 52 | device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); | 114 | device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); |
| 53 | 115 | ||
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c index dc670ccc6978..16c78f1c5ef2 100644 --- a/drivers/irqchip/irq-bcm2835.c +++ b/drivers/irqchip/irq-bcm2835.c | |||
| @@ -168,7 +168,8 @@ static int __init armctrl_of_init(struct device_node *node, | |||
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | static struct of_device_id irq_of_match[] __initconst = { | 170 | static struct of_device_id irq_of_match[] __initconst = { |
| 171 | { .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init } | 171 | { .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init }, |
| 172 | { } | ||
| 172 | }; | 173 | }; |
| 173 | 174 | ||
| 174 | void __init bcm2835_init_irq(void) | 175 | void __init bcm2835_init_irq(void) |
diff --git a/include/linux/platform_data/omap_ocp2scp.h b/include/linux/platform_data/omap_ocp2scp.h new file mode 100644 index 000000000000..5c6c3939355f --- /dev/null +++ b/include/linux/platform_data/omap_ocp2scp.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * omap_ocp2scp.h -- ocp2scp header file | ||
| 3 | * | ||
| 4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | * | ||
| 10 | * Author: Kishon Vijay Abraham I <kishon@ti.com> | ||
| 11 | * | ||
| 12 | * This program is distributed in the hope that it will be useful, | ||
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | * GNU General Public License for more details. | ||
| 16 | * | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef __DRIVERS_OMAP_OCP2SCP_H | ||
| 20 | #define __DRIVERS_OMAP_OCP2SCP_H | ||
| 21 | |||
| 22 | struct omap_ocp2scp_dev { | ||
| 23 | const char *drv_name; | ||
| 24 | struct resource *res; | ||
| 25 | }; | ||
| 26 | |||
| 27 | struct omap_ocp2scp_platform_data { | ||
| 28 | int dev_cnt; | ||
| 29 | struct omap_ocp2scp_dev **devices; | ||
| 30 | }; | ||
| 31 | #endif /* __DRIVERS_OMAP_OCP2SCP_H */ | ||
