diff options
Diffstat (limited to 'arch/arm')
| -rw-r--r-- | arch/arm/include/asm/cacheflush.h | 10 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/board-dm365-evm.c | 71 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/dm355.c | 43 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/dm365.c | 102 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/dm644x.c | 21 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/include/mach/dm365.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-nomadik/cpu-8815.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/include/mach/camera.h | 2 |
8 files changed, 242 insertions, 17 deletions
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index 8113bb5fb66e..5fe4a2ad7fa3 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
| @@ -447,6 +447,16 @@ static inline void __flush_icache_all(void) | |||
| 447 | : "r" (0)); | 447 | : "r" (0)); |
| 448 | #endif | 448 | #endif |
| 449 | } | 449 | } |
| 450 | static inline void flush_kernel_vmap_range(void *addr, int size) | ||
| 451 | { | ||
| 452 | if ((cache_is_vivt() || cache_is_vipt_aliasing())) | ||
| 453 | __cpuc_flush_dcache_area(addr, (size_t)size); | ||
| 454 | } | ||
| 455 | static inline void invalidate_kernel_vmap_range(void *addr, int size) | ||
| 456 | { | ||
| 457 | if ((cache_is_vivt() || cache_is_vipt_aliasing())) | ||
| 458 | __cpuc_flush_dcache_area(addr, (size_t)size); | ||
| 459 | } | ||
| 450 | 460 | ||
| 451 | #define ARCH_HAS_FLUSH_ANON_PAGE | 461 | #define ARCH_HAS_FLUSH_ANON_PAGE |
| 452 | static inline void flush_anon_page(struct vm_area_struct *vma, | 462 | static inline void flush_anon_page(struct vm_area_struct *vma, |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index b476395d2cd4..38e9033d2e86 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
| @@ -37,6 +37,8 @@ | |||
| 37 | #include <mach/nand.h> | 37 | #include <mach/nand.h> |
| 38 | #include <mach/keyscan.h> | 38 | #include <mach/keyscan.h> |
| 39 | 39 | ||
| 40 | #include <media/tvp514x.h> | ||
| 41 | |||
| 40 | static inline int have_imager(void) | 42 | static inline int have_imager(void) |
| 41 | { | 43 | { |
| 42 | /* REVISIT when it's supported, trigger via Kconfig */ | 44 | /* REVISIT when it's supported, trigger via Kconfig */ |
| @@ -306,6 +308,73 @@ static void dm365evm_mmc_configure(void) | |||
| 306 | davinci_cfg_reg(DM365_SD1_DATA0); | 308 | davinci_cfg_reg(DM365_SD1_DATA0); |
| 307 | } | 309 | } |
| 308 | 310 | ||
| 311 | static struct tvp514x_platform_data tvp5146_pdata = { | ||
| 312 | .clk_polarity = 0, | ||
| 313 | .hs_polarity = 1, | ||
| 314 | .vs_polarity = 1 | ||
| 315 | }; | ||
| 316 | |||
| 317 | #define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL) | ||
| 318 | /* Inputs available at the TVP5146 */ | ||
| 319 | static struct v4l2_input tvp5146_inputs[] = { | ||
| 320 | { | ||
| 321 | .index = 0, | ||
| 322 | .name = "Composite", | ||
| 323 | .type = V4L2_INPUT_TYPE_CAMERA, | ||
| 324 | .std = TVP514X_STD_ALL, | ||
| 325 | }, | ||
| 326 | { | ||
| 327 | .index = 1, | ||
| 328 | .name = "S-Video", | ||
| 329 | .type = V4L2_INPUT_TYPE_CAMERA, | ||
| 330 | .std = TVP514X_STD_ALL, | ||
| 331 | }, | ||
| 332 | }; | ||
| 333 | |||
| 334 | /* | ||
| 335 | * this is the route info for connecting each input to decoder | ||
| 336 | * ouput that goes to vpfe. There is a one to one correspondence | ||
| 337 | * with tvp5146_inputs | ||
| 338 | */ | ||
| 339 | static struct vpfe_route tvp5146_routes[] = { | ||
| 340 | { | ||
| 341 | .input = INPUT_CVBS_VI2B, | ||
| 342 | .output = OUTPUT_10BIT_422_EMBEDDED_SYNC, | ||
| 343 | }, | ||
| 344 | { | ||
| 345 | .input = INPUT_SVIDEO_VI2C_VI1C, | ||
| 346 | .output = OUTPUT_10BIT_422_EMBEDDED_SYNC, | ||
| 347 | }, | ||
| 348 | }; | ||
| 349 | |||
| 350 | static struct vpfe_subdev_info vpfe_sub_devs[] = { | ||
| 351 | { | ||
| 352 | .name = "tvp5146", | ||
| 353 | .grp_id = 0, | ||
| 354 | .num_inputs = ARRAY_SIZE(tvp5146_inputs), | ||
| 355 | .inputs = tvp5146_inputs, | ||
| 356 | .routes = tvp5146_routes, | ||
| 357 | .can_route = 1, | ||
| 358 | .ccdc_if_params = { | ||
| 359 | .if_type = VPFE_BT656, | ||
| 360 | .hdpol = VPFE_PINPOL_POSITIVE, | ||
| 361 | .vdpol = VPFE_PINPOL_POSITIVE, | ||
| 362 | }, | ||
| 363 | .board_info = { | ||
| 364 | I2C_BOARD_INFO("tvp5146", 0x5d), | ||
| 365 | .platform_data = &tvp5146_pdata, | ||
| 366 | }, | ||
| 367 | }, | ||
| 368 | }; | ||
| 369 | |||
| 370 | static struct vpfe_config vpfe_cfg = { | ||
| 371 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), | ||
| 372 | .sub_devs = vpfe_sub_devs, | ||
| 373 | .i2c_adapter_id = 1, | ||
| 374 | .card_name = "DM365 EVM", | ||
| 375 | .ccdc = "ISIF", | ||
| 376 | }; | ||
| 377 | |||
| 309 | static void __init evm_init_i2c(void) | 378 | static void __init evm_init_i2c(void) |
| 310 | { | 379 | { |
| 311 | davinci_init_i2c(&i2c_pdata); | 380 | davinci_init_i2c(&i2c_pdata); |
| @@ -497,6 +566,8 @@ static struct davinci_uart_config uart_config __initdata = { | |||
| 497 | 566 | ||
| 498 | static void __init dm365_evm_map_io(void) | 567 | static void __init dm365_evm_map_io(void) |
| 499 | { | 568 | { |
| 569 | /* setup input configuration for VPFE input devices */ | ||
| 570 | dm365_set_vpfe_config(&vpfe_cfg); | ||
| 500 | dm365_init(); | 571 | dm365_init(); |
| 501 | } | 572 | } |
| 502 | 573 | ||
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index dedf4d4f3a27..d84e85414d20 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
| @@ -125,7 +125,6 @@ static struct clk vpss_slave_clk = { | |||
| 125 | .lpsc = DAVINCI_LPSC_VPSSSLV, | 125 | .lpsc = DAVINCI_LPSC_VPSSSLV, |
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| 128 | |||
| 129 | static struct clk clkout1_clk = { | 128 | static struct clk clkout1_clk = { |
| 130 | .name = "clkout1", | 129 | .name = "clkout1", |
| 131 | .parent = &pll1_aux_clk, | 130 | .parent = &pll1_aux_clk, |
| @@ -665,6 +664,17 @@ static struct platform_device dm355_asp1_device = { | |||
| 665 | .resource = dm355_asp1_resources, | 664 | .resource = dm355_asp1_resources, |
| 666 | }; | 665 | }; |
| 667 | 666 | ||
| 667 | static void dm355_ccdc_setup_pinmux(void) | ||
| 668 | { | ||
| 669 | davinci_cfg_reg(DM355_VIN_PCLK); | ||
| 670 | davinci_cfg_reg(DM355_VIN_CAM_WEN); | ||
| 671 | davinci_cfg_reg(DM355_VIN_CAM_VD); | ||
| 672 | davinci_cfg_reg(DM355_VIN_CAM_HD); | ||
| 673 | davinci_cfg_reg(DM355_VIN_YIN_EN); | ||
| 674 | davinci_cfg_reg(DM355_VIN_CINL_EN); | ||
| 675 | davinci_cfg_reg(DM355_VIN_CINH_EN); | ||
| 676 | } | ||
| 677 | |||
| 668 | static struct resource dm355_vpss_resources[] = { | 678 | static struct resource dm355_vpss_resources[] = { |
| 669 | { | 679 | { |
| 670 | /* VPSS BL Base address */ | 680 | /* VPSS BL Base address */ |
| @@ -701,6 +711,10 @@ static struct resource vpfe_resources[] = { | |||
| 701 | .end = IRQ_VDINT1, | 711 | .end = IRQ_VDINT1, |
| 702 | .flags = IORESOURCE_IRQ, | 712 | .flags = IORESOURCE_IRQ, |
| 703 | }, | 713 | }, |
| 714 | }; | ||
| 715 | |||
| 716 | static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); | ||
| 717 | static struct resource dm355_ccdc_resource[] = { | ||
| 704 | /* CCDC Base address */ | 718 | /* CCDC Base address */ |
| 705 | { | 719 | { |
| 706 | .flags = IORESOURCE_MEM, | 720 | .flags = IORESOURCE_MEM, |
| @@ -708,8 +722,18 @@ static struct resource vpfe_resources[] = { | |||
| 708 | .end = 0x01c70600 + 0x1ff, | 722 | .end = 0x01c70600 + 0x1ff, |
| 709 | }, | 723 | }, |
| 710 | }; | 724 | }; |
| 725 | static struct platform_device dm355_ccdc_dev = { | ||
| 726 | .name = "dm355_ccdc", | ||
| 727 | .id = -1, | ||
| 728 | .num_resources = ARRAY_SIZE(dm355_ccdc_resource), | ||
| 729 | .resource = dm355_ccdc_resource, | ||
| 730 | .dev = { | ||
| 731 | .dma_mask = &vpfe_capture_dma_mask, | ||
| 732 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
| 733 | .platform_data = dm355_ccdc_setup_pinmux, | ||
| 734 | }, | ||
| 735 | }; | ||
| 711 | 736 | ||
| 712 | static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); | ||
| 713 | static struct platform_device vpfe_capture_dev = { | 737 | static struct platform_device vpfe_capture_dev = { |
| 714 | .name = CAPTURE_DRV_NAME, | 738 | .name = CAPTURE_DRV_NAME, |
| 715 | .id = -1, | 739 | .id = -1, |
| @@ -857,20 +881,13 @@ static int __init dm355_init_devices(void) | |||
| 857 | if (!cpu_is_davinci_dm355()) | 881 | if (!cpu_is_davinci_dm355()) |
| 858 | return 0; | 882 | return 0; |
| 859 | 883 | ||
| 884 | /* Add ccdc clock aliases */ | ||
| 885 | clk_add_alias("master", dm355_ccdc_dev.name, "vpss_master", NULL); | ||
| 886 | clk_add_alias("slave", dm355_ccdc_dev.name, "vpss_master", NULL); | ||
| 860 | davinci_cfg_reg(DM355_INT_EDMA_CC); | 887 | davinci_cfg_reg(DM355_INT_EDMA_CC); |
| 861 | platform_device_register(&dm355_edma_device); | 888 | platform_device_register(&dm355_edma_device); |
| 862 | platform_device_register(&dm355_vpss_device); | 889 | platform_device_register(&dm355_vpss_device); |
| 863 | /* | 890 | platform_device_register(&dm355_ccdc_dev); |
| 864 | * setup Mux configuration for vpfe input and register | ||
| 865 | * vpfe capture platform device | ||
| 866 | */ | ||
| 867 | davinci_cfg_reg(DM355_VIN_PCLK); | ||
| 868 | davinci_cfg_reg(DM355_VIN_CAM_WEN); | ||
| 869 | davinci_cfg_reg(DM355_VIN_CAM_VD); | ||
| 870 | davinci_cfg_reg(DM355_VIN_CAM_HD); | ||
| 871 | davinci_cfg_reg(DM355_VIN_YIN_EN); | ||
| 872 | davinci_cfg_reg(DM355_VIN_CINL_EN); | ||
| 873 | davinci_cfg_reg(DM355_VIN_CINH_EN); | ||
| 874 | platform_device_register(&vpfe_capture_dev); | 891 | platform_device_register(&vpfe_capture_dev); |
| 875 | 892 | ||
| 876 | return 0; | 893 | return 0; |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index f53735cb922e..ce9da43a628b 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
| @@ -1008,6 +1008,97 @@ void __init dm365_init(void) | |||
| 1008 | davinci_common_init(&davinci_soc_info_dm365); | 1008 | davinci_common_init(&davinci_soc_info_dm365); |
| 1009 | } | 1009 | } |
| 1010 | 1010 | ||
| 1011 | static struct resource dm365_vpss_resources[] = { | ||
| 1012 | { | ||
| 1013 | /* VPSS ISP5 Base address */ | ||
| 1014 | .name = "isp5", | ||
| 1015 | .start = 0x01c70000, | ||
| 1016 | .end = 0x01c70000 + 0xff, | ||
| 1017 | .flags = IORESOURCE_MEM, | ||
| 1018 | }, | ||
| 1019 | { | ||
| 1020 | /* VPSS CLK Base address */ | ||
| 1021 | .name = "vpss", | ||
| 1022 | .start = 0x01c70200, | ||
| 1023 | .end = 0x01c70200 + 0xff, | ||
| 1024 | .flags = IORESOURCE_MEM, | ||
| 1025 | }, | ||
| 1026 | }; | ||
| 1027 | |||
| 1028 | static struct platform_device dm365_vpss_device = { | ||
| 1029 | .name = "vpss", | ||
| 1030 | .id = -1, | ||
| 1031 | .dev.platform_data = "dm365_vpss", | ||
| 1032 | .num_resources = ARRAY_SIZE(dm365_vpss_resources), | ||
| 1033 | .resource = dm365_vpss_resources, | ||
| 1034 | }; | ||
| 1035 | |||
| 1036 | static struct resource vpfe_resources[] = { | ||
| 1037 | { | ||
| 1038 | .start = IRQ_VDINT0, | ||
| 1039 | .end = IRQ_VDINT0, | ||
| 1040 | .flags = IORESOURCE_IRQ, | ||
| 1041 | }, | ||
| 1042 | { | ||
| 1043 | .start = IRQ_VDINT1, | ||
| 1044 | .end = IRQ_VDINT1, | ||
| 1045 | .flags = IORESOURCE_IRQ, | ||
| 1046 | }, | ||
| 1047 | }; | ||
| 1048 | |||
| 1049 | static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); | ||
| 1050 | static struct platform_device vpfe_capture_dev = { | ||
| 1051 | .name = CAPTURE_DRV_NAME, | ||
| 1052 | .id = -1, | ||
| 1053 | .num_resources = ARRAY_SIZE(vpfe_resources), | ||
| 1054 | .resource = vpfe_resources, | ||
| 1055 | .dev = { | ||
| 1056 | .dma_mask = &vpfe_capture_dma_mask, | ||
| 1057 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
| 1058 | }, | ||
| 1059 | }; | ||
| 1060 | |||
| 1061 | static void dm365_isif_setup_pinmux(void) | ||
| 1062 | { | ||
| 1063 | davinci_cfg_reg(DM365_VIN_CAM_WEN); | ||
| 1064 | davinci_cfg_reg(DM365_VIN_CAM_VD); | ||
| 1065 | davinci_cfg_reg(DM365_VIN_CAM_HD); | ||
| 1066 | davinci_cfg_reg(DM365_VIN_YIN4_7_EN); | ||
| 1067 | davinci_cfg_reg(DM365_VIN_YIN0_3_EN); | ||
| 1068 | } | ||
| 1069 | |||
| 1070 | static struct resource isif_resource[] = { | ||
| 1071 | /* ISIF Base address */ | ||
| 1072 | { | ||
| 1073 | .start = 0x01c71000, | ||
| 1074 | .end = 0x01c71000 + 0x1ff, | ||
| 1075 | .flags = IORESOURCE_MEM, | ||
| 1076 | }, | ||
| 1077 | /* ISIF Linearization table 0 */ | ||
| 1078 | { | ||
| 1079 | .start = 0x1C7C000, | ||
| 1080 | .end = 0x1C7C000 + 0x2ff, | ||
| 1081 | .flags = IORESOURCE_MEM, | ||
| 1082 | }, | ||
| 1083 | /* ISIF Linearization table 1 */ | ||
| 1084 | { | ||
| 1085 | .start = 0x1C7C400, | ||
| 1086 | .end = 0x1C7C400 + 0x2ff, | ||
| 1087 | .flags = IORESOURCE_MEM, | ||
| 1088 | }, | ||
| 1089 | }; | ||
| 1090 | static struct platform_device dm365_isif_dev = { | ||
| 1091 | .name = "isif", | ||
| 1092 | .id = -1, | ||
| 1093 | .num_resources = ARRAY_SIZE(isif_resource), | ||
| 1094 | .resource = isif_resource, | ||
| 1095 | .dev = { | ||
| 1096 | .dma_mask = &vpfe_capture_dma_mask, | ||
| 1097 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
| 1098 | .platform_data = dm365_isif_setup_pinmux, | ||
| 1099 | }, | ||
| 1100 | }; | ||
| 1101 | |||
| 1011 | static int __init dm365_init_devices(void) | 1102 | static int __init dm365_init_devices(void) |
| 1012 | { | 1103 | { |
| 1013 | if (!cpu_is_davinci_dm365()) | 1104 | if (!cpu_is_davinci_dm365()) |
| @@ -1016,7 +1107,16 @@ static int __init dm365_init_devices(void) | |||
| 1016 | davinci_cfg_reg(DM365_INT_EDMA_CC); | 1107 | davinci_cfg_reg(DM365_INT_EDMA_CC); |
| 1017 | platform_device_register(&dm365_edma_device); | 1108 | platform_device_register(&dm365_edma_device); |
| 1018 | platform_device_register(&dm365_emac_device); | 1109 | platform_device_register(&dm365_emac_device); |
| 1019 | 1110 | /* Add isif clock alias */ | |
| 1111 | clk_add_alias("master", dm365_isif_dev.name, "vpss_master", NULL); | ||
| 1112 | platform_device_register(&dm365_vpss_device); | ||
| 1113 | platform_device_register(&dm365_isif_dev); | ||
| 1114 | platform_device_register(&vpfe_capture_dev); | ||
| 1020 | return 0; | 1115 | return 0; |
| 1021 | } | 1116 | } |
| 1022 | postcore_initcall(dm365_init_devices); | 1117 | postcore_initcall(dm365_init_devices); |
| 1118 | |||
| 1119 | void dm365_set_vpfe_config(struct vpfe_config *cfg) | ||
| 1120 | { | ||
| 1121 | vpfe_capture_dev.dev.platform_data = cfg; | ||
| 1122 | } | ||
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 2cd008156dea..92aeb5600680 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
| @@ -612,6 +612,11 @@ static struct resource vpfe_resources[] = { | |||
| 612 | .end = IRQ_VDINT1, | 612 | .end = IRQ_VDINT1, |
| 613 | .flags = IORESOURCE_IRQ, | 613 | .flags = IORESOURCE_IRQ, |
| 614 | }, | 614 | }, |
| 615 | }; | ||
| 616 | |||
| 617 | static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); | ||
| 618 | static struct resource dm644x_ccdc_resource[] = { | ||
| 619 | /* CCDC Base address */ | ||
| 615 | { | 620 | { |
| 616 | .start = 0x01c70400, | 621 | .start = 0x01c70400, |
| 617 | .end = 0x01c70400 + 0xff, | 622 | .end = 0x01c70400 + 0xff, |
| @@ -619,7 +624,17 @@ static struct resource vpfe_resources[] = { | |||
| 619 | }, | 624 | }, |
| 620 | }; | 625 | }; |
| 621 | 626 | ||
| 622 | static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); | 627 | static struct platform_device dm644x_ccdc_dev = { |
| 628 | .name = "dm644x_ccdc", | ||
| 629 | .id = -1, | ||
| 630 | .num_resources = ARRAY_SIZE(dm644x_ccdc_resource), | ||
| 631 | .resource = dm644x_ccdc_resource, | ||
| 632 | .dev = { | ||
| 633 | .dma_mask = &vpfe_capture_dma_mask, | ||
| 634 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
| 635 | }, | ||
| 636 | }; | ||
| 637 | |||
| 623 | static struct platform_device vpfe_capture_dev = { | 638 | static struct platform_device vpfe_capture_dev = { |
| 624 | .name = CAPTURE_DRV_NAME, | 639 | .name = CAPTURE_DRV_NAME, |
| 625 | .id = -1, | 640 | .id = -1, |
| @@ -769,9 +784,13 @@ static int __init dm644x_init_devices(void) | |||
| 769 | if (!cpu_is_davinci_dm644x()) | 784 | if (!cpu_is_davinci_dm644x()) |
| 770 | return 0; | 785 | return 0; |
| 771 | 786 | ||
| 787 | /* Add ccdc clock aliases */ | ||
| 788 | clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); | ||
| 789 | clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); | ||
| 772 | platform_device_register(&dm644x_edma_device); | 790 | platform_device_register(&dm644x_edma_device); |
| 773 | platform_device_register(&dm644x_emac_device); | 791 | platform_device_register(&dm644x_emac_device); |
| 774 | platform_device_register(&dm644x_vpss_device); | 792 | platform_device_register(&dm644x_vpss_device); |
| 793 | platform_device_register(&dm644x_ccdc_dev); | ||
| 775 | platform_device_register(&vpfe_capture_dev); | 794 | platform_device_register(&vpfe_capture_dev); |
| 776 | 795 | ||
| 777 | return 0; | 796 | return 0; |
diff --git a/arch/arm/mach-davinci/include/mach/dm365.h b/arch/arm/mach-davinci/include/mach/dm365.h index f1710a30e7ba..9fc5a64a5364 100644 --- a/arch/arm/mach-davinci/include/mach/dm365.h +++ b/arch/arm/mach-davinci/include/mach/dm365.h | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include <mach/emac.h> | 18 | #include <mach/emac.h> |
| 19 | #include <mach/asp.h> | 19 | #include <mach/asp.h> |
| 20 | #include <mach/keyscan.h> | 20 | #include <mach/keyscan.h> |
| 21 | #include <media/davinci/vpfe_capture.h> | ||
| 21 | 22 | ||
| 22 | #define DM365_EMAC_BASE (0x01D07000) | 23 | #define DM365_EMAC_BASE (0x01D07000) |
| 23 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) | 24 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) |
| @@ -36,4 +37,5 @@ void __init dm365_init_asp(struct snd_platform_data *pdata); | |||
| 36 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); | 37 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); |
| 37 | void __init dm365_init_rtc(void); | 38 | void __init dm365_init_rtc(void); |
| 38 | 39 | ||
| 40 | void dm365_set_vpfe_config(struct vpfe_config *cfg); | ||
| 39 | #endif /* __ASM_ARCH_DM365_H */ | 41 | #endif /* __ASM_ARCH_DM365_H */ |
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c index f93c59634191..9bf33b30a025 100644 --- a/arch/arm/mach-nomadik/cpu-8815.c +++ b/arch/arm/mach-nomadik/cpu-8815.c | |||
| @@ -86,11 +86,19 @@ static struct amba_device cpu8815_amba_gpio[] = { | |||
| 86 | }, | 86 | }, |
| 87 | }; | 87 | }; |
| 88 | 88 | ||
| 89 | static struct amba_device cpu8815_amba_rng = { | ||
| 90 | .dev = { | ||
| 91 | .init_name = "rng", | ||
| 92 | }, | ||
| 93 | __MEM_4K_RESOURCE(NOMADIK_RNG_BASE), | ||
| 94 | }; | ||
| 95 | |||
| 89 | static struct amba_device *amba_devs[] __initdata = { | 96 | static struct amba_device *amba_devs[] __initdata = { |
| 90 | cpu8815_amba_gpio + 0, | 97 | cpu8815_amba_gpio + 0, |
| 91 | cpu8815_amba_gpio + 1, | 98 | cpu8815_amba_gpio + 1, |
| 92 | cpu8815_amba_gpio + 2, | 99 | cpu8815_amba_gpio + 2, |
| 93 | cpu8815_amba_gpio + 3, | 100 | cpu8815_amba_gpio + 3, |
| 101 | &cpu8815_amba_rng | ||
| 94 | }; | 102 | }; |
| 95 | 103 | ||
| 96 | static int __init cpu8815_init(void) | 104 | static int __init cpu8815_init(void) |
diff --git a/arch/arm/mach-pxa/include/mach/camera.h b/arch/arm/mach-pxa/include/mach/camera.h index 31abe6d514b8..6709b1cd7c77 100644 --- a/arch/arm/mach-pxa/include/mach/camera.h +++ b/arch/arm/mach-pxa/include/mach/camera.h | |||
| @@ -35,8 +35,6 @@ | |||
| 35 | #define PXA_CAMERA_VSP 0x400 | 35 | #define PXA_CAMERA_VSP 0x400 |
| 36 | 36 | ||
| 37 | struct pxacamera_platform_data { | 37 | struct pxacamera_platform_data { |
| 38 | int (*init)(struct device *); | ||
| 39 | |||
| 40 | unsigned long flags; | 38 | unsigned long flags; |
| 41 | unsigned long mclk_10khz; | 39 | unsigned long mclk_10khz; |
| 42 | }; | 40 | }; |
