aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValentine Barshak <valentine.barshak@cogentembedded.com>2014-02-13 22:29:48 -0500
committerSimon Horman <horms+renesas@verge.net.au>2014-02-16 21:51:57 -0500
commit849f7b6c10d8016b55e13b7ad2e9f299e2da817b (patch)
tree122f89b1c42c1de2e28d337f6234e67d4e6f6724
parent248deabbd4a2f4c696338536fdaad3a01f66bee7 (diff)
ARM: shmobile: lager: Add internal USB PCI support
This adds internal PCI USB host devices to R-Car H2 Lager board. Signed-off-by: Valentine Barshak <valentine.barshak@cogentembedded.com> [damm@opensource.se: Rebased and reworked to only include USB1 and USB2] Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r--arch/arm/mach-shmobile/board-lager.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-lager.c b/arch/arm/mach-shmobile/board-lager.c
index 72886af7b737..193dff0267d8 100644
--- a/arch/arm/mach-shmobile/board-lager.c
+++ b/arch/arm/mach-shmobile/board-lager.c
@@ -638,6 +638,48 @@ static struct resource sdhi2_resources[] __initdata = {
638 DEFINE_RES_IRQ(gic_spi(167)), 638 DEFINE_RES_IRQ(gic_spi(167)),
639}; 639};
640 640
641/* Internal PCI1 */
642static const struct resource pci1_resources[] __initconst = {
643 DEFINE_RES_MEM(0xee0b0000, 0x10000), /* CFG */
644 DEFINE_RES_MEM(0xee0a0000, 0x10000), /* MEM */
645 DEFINE_RES_IRQ(gic_spi(112)),
646};
647
648static const struct platform_device_info pci1_info __initconst = {
649 .parent = &platform_bus,
650 .name = "pci-rcar-gen2",
651 .id = 1,
652 .res = pci1_resources,
653 .num_res = ARRAY_SIZE(pci1_resources),
654 .dma_mask = DMA_BIT_MASK(32),
655};
656
657static void __init lager_add_usb1_device(void)
658{
659 platform_device_register_full(&pci1_info);
660}
661
662/* Internal PCI2 */
663static const struct resource pci2_resources[] __initconst = {
664 DEFINE_RES_MEM(0xee0d0000, 0x10000), /* CFG */
665 DEFINE_RES_MEM(0xee0c0000, 0x10000), /* MEM */
666 DEFINE_RES_IRQ(gic_spi(113)),
667};
668
669static const struct platform_device_info pci2_info __initconst = {
670 .parent = &platform_bus,
671 .name = "pci-rcar-gen2",
672 .id = 2,
673 .res = pci2_resources,
674 .num_res = ARRAY_SIZE(pci2_resources),
675 .dma_mask = DMA_BIT_MASK(32),
676};
677
678static void __init lager_add_usb2_device(void)
679{
680 platform_device_register_full(&pci2_info);
681}
682
641static const struct pinctrl_map lager_pinctrl_map[] = { 683static const struct pinctrl_map lager_pinctrl_map[] = {
642 /* DU (CN10: ARGB0, CN13: LVDS) */ 684 /* DU (CN10: ARGB0, CN13: LVDS) */
643 PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7790", "pfc-r8a7790", 685 PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7790", "pfc-r8a7790",
@@ -716,6 +758,12 @@ static const struct pinctrl_map lager_pinctrl_map[] = {
716 /* USB0 */ 758 /* USB0 */
717 PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs", "pfc-r8a7790", 759 PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs", "pfc-r8a7790",
718 "usb0_ovc_vbus", "usb0"), 760 "usb0_ovc_vbus", "usb0"),
761 /* USB1 */
762 PIN_MAP_MUX_GROUP_DEFAULT("pci-rcar-gen2.1", "pfc-r8a7790",
763 "usb1", "usb1"),
764 /* USB2 */
765 PIN_MAP_MUX_GROUP_DEFAULT("pci-rcar-gen2.2", "pfc-r8a7790",
766 "usb2", "usb2"),
719}; 767};
720 768
721static void __init lager_add_standard_devices(void) 769static void __init lager_add_standard_devices(void)
@@ -776,6 +824,8 @@ static void __init lager_add_standard_devices(void)
776 &usbhs_phy_pdata, 824 &usbhs_phy_pdata,
777 sizeof(usbhs_phy_pdata)); 825 sizeof(usbhs_phy_pdata));
778 lager_register_usbhs(); 826 lager_register_usbhs();
827 lager_add_usb1_device();
828 lager_add_usb2_device();
779 829
780 lager_add_rsnd_device(); 830 lager_add_rsnd_device();
781 831