diff options
32 files changed, 117 insertions, 80 deletions
diff --git a/arch/arm/boot/dts/tegra-ventana.dts b/arch/arm/boot/dts/tegra-ventana.dts index 9b29a623aaf1..3f9abd6b6964 100644 --- a/arch/arm/boot/dts/tegra-ventana.dts +++ b/arch/arm/boot/dts/tegra-ventana.dts | |||
@@ -22,11 +22,10 @@ | |||
22 | sdhci@c8000400 { | 22 | sdhci@c8000400 { |
23 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 23 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
24 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 24 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
25 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ | 25 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ |
26 | }; | 26 | }; |
27 | 27 | ||
28 | sdhci@c8000600 { | 28 | sdhci@c8000600 { |
29 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ | ||
30 | support-8bit; | 29 | support-8bit; |
31 | }; | 30 | }; |
32 | }; | 31 | }; |
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c index a4401d6b5b07..adad70db70eb 100644 --- a/arch/arm/mach-at91/at91cap9_devices.c +++ b/arch/arm/mach-at91/at91cap9_devices.c | |||
@@ -98,7 +98,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} | |||
98 | * USB HS Device (Gadget) | 98 | * USB HS Device (Gadget) |
99 | * -------------------------------------------------------------------- */ | 99 | * -------------------------------------------------------------------- */ |
100 | 100 | ||
101 | #if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) | 101 | #if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) |
102 | 102 | ||
103 | static struct resource usba_udc_resources[] = { | 103 | static struct resource usba_udc_resources[] = { |
104 | [0] = { | 104 | [0] = { |
@@ -1021,8 +1021,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
1021 | #if defined(CONFIG_SERIAL_ATMEL) | 1021 | #if defined(CONFIG_SERIAL_ATMEL) |
1022 | static struct resource dbgu_resources[] = { | 1022 | static struct resource dbgu_resources[] = { |
1023 | [0] = { | 1023 | [0] = { |
1024 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 1024 | .start = AT91_BASE_SYS + AT91_DBGU, |
1025 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 1025 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
1026 | .flags = IORESOURCE_MEM, | 1026 | .flags = IORESOURCE_MEM, |
1027 | }, | 1027 | }, |
1028 | [1] = { | 1028 | [1] = { |
@@ -1035,7 +1035,6 @@ static struct resource dbgu_resources[] = { | |||
1035 | static struct atmel_uart_data dbgu_data = { | 1035 | static struct atmel_uart_data dbgu_data = { |
1036 | .use_dma_tx = 0, | 1036 | .use_dma_tx = 0, |
1037 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 1037 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
1038 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
1039 | }; | 1038 | }; |
1040 | 1039 | ||
1041 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 1040 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c index 01d8bbd1468b..66591fa53e05 100644 --- a/arch/arm/mach-at91/at91rm9200_devices.c +++ b/arch/arm/mach-at91/at91rm9200_devices.c | |||
@@ -877,8 +877,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
877 | #if defined(CONFIG_SERIAL_ATMEL) | 877 | #if defined(CONFIG_SERIAL_ATMEL) |
878 | static struct resource dbgu_resources[] = { | 878 | static struct resource dbgu_resources[] = { |
879 | [0] = { | 879 | [0] = { |
880 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 880 | .start = AT91_BASE_SYS + AT91_DBGU, |
881 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 881 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
882 | .flags = IORESOURCE_MEM, | 882 | .flags = IORESOURCE_MEM, |
883 | }, | 883 | }, |
884 | [1] = { | 884 | [1] = { |
@@ -891,7 +891,6 @@ static struct resource dbgu_resources[] = { | |||
891 | static struct atmel_uart_data dbgu_data = { | 891 | static struct atmel_uart_data dbgu_data = { |
892 | .use_dma_tx = 0, | 892 | .use_dma_tx = 0, |
893 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 893 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
894 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
895 | }; | 894 | }; |
896 | 895 | ||
897 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 896 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c index 24b6f8c0440d..25e3464fb07f 100644 --- a/arch/arm/mach-at91/at91sam9260_devices.c +++ b/arch/arm/mach-at91/at91sam9260_devices.c | |||
@@ -837,8 +837,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
837 | #if defined(CONFIG_SERIAL_ATMEL) | 837 | #if defined(CONFIG_SERIAL_ATMEL) |
838 | static struct resource dbgu_resources[] = { | 838 | static struct resource dbgu_resources[] = { |
839 | [0] = { | 839 | [0] = { |
840 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 840 | .start = AT91_BASE_SYS + AT91_DBGU, |
841 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 841 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
842 | .flags = IORESOURCE_MEM, | 842 | .flags = IORESOURCE_MEM, |
843 | }, | 843 | }, |
844 | [1] = { | 844 | [1] = { |
@@ -851,7 +851,6 @@ static struct resource dbgu_resources[] = { | |||
851 | static struct atmel_uart_data dbgu_data = { | 851 | static struct atmel_uart_data dbgu_data = { |
852 | .use_dma_tx = 0, | 852 | .use_dma_tx = 0, |
853 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 853 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
854 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
855 | }; | 854 | }; |
856 | 855 | ||
857 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 856 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index 3b70b3897d95..ae78f4d03b73 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c | |||
@@ -816,8 +816,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
816 | #if defined(CONFIG_SERIAL_ATMEL) | 816 | #if defined(CONFIG_SERIAL_ATMEL) |
817 | static struct resource dbgu_resources[] = { | 817 | static struct resource dbgu_resources[] = { |
818 | [0] = { | 818 | [0] = { |
819 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 819 | .start = AT91_BASE_SYS + AT91_DBGU, |
820 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 820 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
821 | .flags = IORESOURCE_MEM, | 821 | .flags = IORESOURCE_MEM, |
822 | }, | 822 | }, |
823 | [1] = { | 823 | [1] = { |
@@ -830,7 +830,6 @@ static struct resource dbgu_resources[] = { | |||
830 | static struct atmel_uart_data dbgu_data = { | 830 | static struct atmel_uart_data dbgu_data = { |
831 | .use_dma_tx = 0, | 831 | .use_dma_tx = 0, |
832 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 832 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
833 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
834 | }; | 833 | }; |
835 | 834 | ||
836 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 835 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index 3faa1fde9ad9..ad017eb1f8df 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c | |||
@@ -1196,8 +1196,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
1196 | 1196 | ||
1197 | static struct resource dbgu_resources[] = { | 1197 | static struct resource dbgu_resources[] = { |
1198 | [0] = { | 1198 | [0] = { |
1199 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 1199 | .start = AT91_BASE_SYS + AT91_DBGU, |
1200 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 1200 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
1201 | .flags = IORESOURCE_MEM, | 1201 | .flags = IORESOURCE_MEM, |
1202 | }, | 1202 | }, |
1203 | [1] = { | 1203 | [1] = { |
@@ -1210,7 +1210,6 @@ static struct resource dbgu_resources[] = { | |||
1210 | static struct atmel_uart_data dbgu_data = { | 1210 | static struct atmel_uart_data dbgu_data = { |
1211 | .use_dma_tx = 0, | 1211 | .use_dma_tx = 0, |
1212 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 1212 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
1213 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
1214 | }; | 1213 | }; |
1215 | 1214 | ||
1216 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 1215 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index 000b5e1da965..09a16d6bd5cd 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c | |||
@@ -197,7 +197,7 @@ void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) {} | |||
197 | * USB HS Device (Gadget) | 197 | * USB HS Device (Gadget) |
198 | * -------------------------------------------------------------------- */ | 198 | * -------------------------------------------------------------------- */ |
199 | 199 | ||
200 | #if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) | 200 | #if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) |
201 | static struct resource usba_udc_resources[] = { | 201 | static struct resource usba_udc_resources[] = { |
202 | [0] = { | 202 | [0] = { |
203 | .start = AT91SAM9G45_UDPHS_FIFO, | 203 | .start = AT91SAM9G45_UDPHS_FIFO, |
@@ -1332,8 +1332,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
1332 | #if defined(CONFIG_SERIAL_ATMEL) | 1332 | #if defined(CONFIG_SERIAL_ATMEL) |
1333 | static struct resource dbgu_resources[] = { | 1333 | static struct resource dbgu_resources[] = { |
1334 | [0] = { | 1334 | [0] = { |
1335 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 1335 | .start = AT91_BASE_SYS + AT91_DBGU, |
1336 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 1336 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
1337 | .flags = IORESOURCE_MEM, | 1337 | .flags = IORESOURCE_MEM, |
1338 | }, | 1338 | }, |
1339 | [1] = { | 1339 | [1] = { |
@@ -1346,7 +1346,6 @@ static struct resource dbgu_resources[] = { | |||
1346 | static struct atmel_uart_data dbgu_data = { | 1346 | static struct atmel_uart_data dbgu_data = { |
1347 | .use_dma_tx = 0, | 1347 | .use_dma_tx = 0, |
1348 | .use_dma_rx = 0, | 1348 | .use_dma_rx = 0, |
1349 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
1350 | }; | 1349 | }; |
1351 | 1350 | ||
1352 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 1351 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c index 305a851b5bff..628eb566d60c 100644 --- a/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/arch/arm/mach-at91/at91sam9rl_devices.c | |||
@@ -75,7 +75,7 @@ void __init at91_add_device_hdmac(void) {} | |||
75 | * USB HS Device (Gadget) | 75 | * USB HS Device (Gadget) |
76 | * -------------------------------------------------------------------- */ | 76 | * -------------------------------------------------------------------- */ |
77 | 77 | ||
78 | #if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) | 78 | #if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) |
79 | 79 | ||
80 | static struct resource usba_udc_resources[] = { | 80 | static struct resource usba_udc_resources[] = { |
81 | [0] = { | 81 | [0] = { |
@@ -908,8 +908,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} | |||
908 | #if defined(CONFIG_SERIAL_ATMEL) | 908 | #if defined(CONFIG_SERIAL_ATMEL) |
909 | static struct resource dbgu_resources[] = { | 909 | static struct resource dbgu_resources[] = { |
910 | [0] = { | 910 | [0] = { |
911 | .start = AT91_VA_BASE_SYS + AT91_DBGU, | 911 | .start = AT91_BASE_SYS + AT91_DBGU, |
912 | .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, | 912 | .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, |
913 | .flags = IORESOURCE_MEM, | 913 | .flags = IORESOURCE_MEM, |
914 | }, | 914 | }, |
915 | [1] = { | 915 | [1] = { |
@@ -922,7 +922,6 @@ static struct resource dbgu_resources[] = { | |||
922 | static struct atmel_uart_data dbgu_data = { | 922 | static struct atmel_uart_data dbgu_data = { |
923 | .use_dma_tx = 0, | 923 | .use_dma_tx = 0, |
924 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 924 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
925 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
926 | }; | 925 | }; |
927 | 926 | ||
928 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); | 927 | static u64 dbgu_dmamask = DMA_BIT_MASK(32); |
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c index 649b052231f5..12a3f955162b 100644 --- a/arch/arm/mach-at91/board-yl-9200.c +++ b/arch/arm/mach-at91/board-yl-9200.c | |||
@@ -384,7 +384,7 @@ static struct spi_board_info yl9200_spi_devices[] = { | |||
384 | #include <video/s1d13xxxfb.h> | 384 | #include <video/s1d13xxxfb.h> |
385 | 385 | ||
386 | 386 | ||
387 | static void __init yl9200_init_video(void) | 387 | static void yl9200_init_video(void) |
388 | { | 388 | { |
389 | /* NWAIT Signal */ | 389 | /* NWAIT Signal */ |
390 | at91_set_A_periph(AT91_PIN_PC6, 0); | 390 | at91_set_A_periph(AT91_PIN_PC6, 0); |
diff --git a/arch/arm/mach-at91/include/mach/vmalloc.h b/arch/arm/mach-at91/include/mach/vmalloc.h index 8eb459f3f5b7..8e4a1bd0ab1d 100644 --- a/arch/arm/mach-at91/include/mach/vmalloc.h +++ b/arch/arm/mach-at91/include/mach/vmalloc.h | |||
@@ -21,6 +21,8 @@ | |||
21 | #ifndef __ASM_ARCH_VMALLOC_H | 21 | #ifndef __ASM_ARCH_VMALLOC_H |
22 | #define __ASM_ARCH_VMALLOC_H | 22 | #define __ASM_ARCH_VMALLOC_H |
23 | 23 | ||
24 | #include <mach/hardware.h> | ||
25 | |||
24 | #define VMALLOC_END (AT91_VIRT_BASE & PGDIR_MASK) | 26 | #define VMALLOC_END (AT91_VIRT_BASE & PGDIR_MASK) |
25 | 27 | ||
26 | #endif | 28 | #endif |
diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot index 22d85889f622..cfede5768aa0 100644 --- a/arch/arm/mach-imx/Makefile.boot +++ b/arch/arm/mach-imx/Makefile.boot | |||
@@ -1,22 +1,26 @@ | |||
1 | zreladdr-$(CONFIG_ARCH_MX1) += 0x08008000 | 1 | zreladdr-$(CONFIG_SOC_IMX1) += 0x08008000 |
2 | params_phys-$(CONFIG_ARCH_MX1) := 0x08000100 | 2 | params_phys-$(CONFIG_SOC_IMX1) := 0x08000100 |
3 | initrd_phys-$(CONFIG_ARCH_MX1) := 0x08800000 | 3 | initrd_phys-$(CONFIG_SOC_IMX1) := 0x08800000 |
4 | 4 | ||
5 | zreladdr-$(CONFIG_MACH_MX21) += 0xC0008000 | 5 | zreladdr-$(CONFIG_SOC_IMX21) += 0xC0008000 |
6 | params_phys-$(CONFIG_MACH_MX21) := 0xC0000100 | 6 | params_phys-$(CONFIG_SOC_IMX21) := 0xC0000100 |
7 | initrd_phys-$(CONFIG_MACH_MX21) := 0xC0800000 | 7 | initrd_phys-$(CONFIG_SOC_IMX21) := 0xC0800000 |
8 | 8 | ||
9 | zreladdr-$(CONFIG_ARCH_MX25) += 0x80008000 | 9 | zreladdr-$(CONFIG_SOC_IMX25) += 0x80008000 |
10 | params_phys-$(CONFIG_ARCH_MX25) := 0x80000100 | 10 | params_phys-$(CONFIG_SOC_IMX25) := 0x80000100 |
11 | initrd_phys-$(CONFIG_ARCH_MX25) := 0x80800000 | 11 | initrd_phys-$(CONFIG_SOC_IMX25) := 0x80800000 |
12 | 12 | ||
13 | zreladdr-$(CONFIG_MACH_MX27) += 0xA0008000 | 13 | zreladdr-$(CONFIG_SOC_IMX27) += 0xA0008000 |
14 | params_phys-$(CONFIG_MACH_MX27) := 0xA0000100 | 14 | params_phys-$(CONFIG_SOC_IMX27) := 0xA0000100 |
15 | initrd_phys-$(CONFIG_MACH_MX27) := 0xA0800000 | 15 | initrd_phys-$(CONFIG_SOC_IMX27) := 0xA0800000 |
16 | 16 | ||
17 | zreladdr-$(CONFIG_ARCH_MX3) += 0x80008000 | 17 | zreladdr-$(CONFIG_SOC_IMX31) += 0x80008000 |
18 | params_phys-$(CONFIG_ARCH_MX3) := 0x80000100 | 18 | params_phys-$(CONFIG_SOC_IMX31) := 0x80000100 |
19 | initrd_phys-$(CONFIG_ARCH_MX3) := 0x80800000 | 19 | initrd_phys-$(CONFIG_SOC_IMX31) := 0x80800000 |
20 | |||
21 | zreladdr-$(CONFIG_SOC_IMX35) += 0x80008000 | ||
22 | params_phys-$(CONFIG_SOC_IMX35) := 0x80000100 | ||
23 | initrd_phys-$(CONFIG_SOC_IMX35) := 0x80800000 | ||
20 | 24 | ||
21 | zreladdr-$(CONFIG_SOC_IMX6Q) += 0x10008000 | 25 | zreladdr-$(CONFIG_SOC_IMX6Q) += 0x10008000 |
22 | params_phys-$(CONFIG_SOC_IMX6Q) := 0x10000100 | 26 | params_phys-$(CONFIG_SOC_IMX6Q) := 0x10000100 |
diff --git a/arch/arm/mach-imx/clock-imx6q.c b/arch/arm/mach-imx/clock-imx6q.c index e0b926dfeced..613a1b993bff 100644 --- a/arch/arm/mach-imx/clock-imx6q.c +++ b/arch/arm/mach-imx/clock-imx6q.c | |||
@@ -1139,7 +1139,7 @@ static int _clk_set_rate(struct clk *clk, unsigned long rate) | |||
1139 | return -EINVAL; | 1139 | return -EINVAL; |
1140 | 1140 | ||
1141 | max_div = ((d->bm_pred >> d->bp_pred) + 1) * | 1141 | max_div = ((d->bm_pred >> d->bp_pred) + 1) * |
1142 | ((d->bm_pred >> d->bp_pred) + 1); | 1142 | ((d->bm_podf >> d->bp_podf) + 1); |
1143 | 1143 | ||
1144 | div = parent_rate / rate; | 1144 | div = parent_rate / rate; |
1145 | if (div == 0) | 1145 | if (div == 0) |
@@ -2002,6 +2002,21 @@ int __init mx6q_clocks_init(void) | |||
2002 | clk_set_rate(&asrc_serial_clk, 1500000); | 2002 | clk_set_rate(&asrc_serial_clk, 1500000); |
2003 | clk_set_rate(&enfc_clk, 11000000); | 2003 | clk_set_rate(&enfc_clk, 11000000); |
2004 | 2004 | ||
2005 | /* | ||
2006 | * Before pinctrl API is available, we have to rely on the pad | ||
2007 | * configuration set up by bootloader. For usdhc example here, | ||
2008 | * u-boot sets up the pads for 49.5 MHz case, and we have to lower | ||
2009 | * the usdhc clock from 198 to 49.5 MHz to match the pad configuration. | ||
2010 | * | ||
2011 | * FIXME: This is should be removed after pinctrl API is available. | ||
2012 | * At that time, usdhc driver can call pinctrl API to change pad | ||
2013 | * configuration dynamically per different usdhc clock settings. | ||
2014 | */ | ||
2015 | clk_set_rate(&usdhc1_clk, 49500000); | ||
2016 | clk_set_rate(&usdhc2_clk, 49500000); | ||
2017 | clk_set_rate(&usdhc3_clk, 49500000); | ||
2018 | clk_set_rate(&usdhc4_clk, 49500000); | ||
2019 | |||
2005 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); | 2020 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); |
2006 | base = of_iomap(np, 0); | 2021 | base = of_iomap(np, 0); |
2007 | WARN_ON(!base); | 2022 | WARN_ON(!base); |
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile index 4285dfd80b6f..4ad3969b9881 100644 --- a/arch/arm/mach-msm/Makefile +++ b/arch/arm/mach-msm/Makefile | |||
@@ -15,6 +15,8 @@ obj-$(CONFIG_MSM_SMD) += smd.o smd_debug.o | |||
15 | obj-$(CONFIG_MSM_SMD) += last_radio_log.o | 15 | obj-$(CONFIG_MSM_SMD) += last_radio_log.o |
16 | obj-$(CONFIG_MSM_SCM) += scm.o scm-boot.o | 16 | obj-$(CONFIG_MSM_SCM) += scm.o scm-boot.o |
17 | 17 | ||
18 | CFLAGS_scm.o :=$(call as-instr,.arch_extension sec,-DREQUIRES_SEC=1) | ||
19 | |||
18 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | 20 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o |
19 | obj-$(CONFIG_SMP) += headsmp.o platsmp.o | 21 | obj-$(CONFIG_SMP) += headsmp.o platsmp.o |
20 | 22 | ||
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c index 71de5062c71e..db81ed531031 100644 --- a/arch/arm/mach-msm/board-msm7x30.c +++ b/arch/arm/mach-msm/board-msm7x30.c | |||
@@ -42,8 +42,8 @@ | |||
42 | 42 | ||
43 | extern struct sys_timer msm_timer; | 43 | extern struct sys_timer msm_timer; |
44 | 44 | ||
45 | static void __init msm7x30_fixup(struct machine_desc *desc, struct tag *tag, | 45 | static void __init msm7x30_fixup(struct tag *tag, char **cmdline, |
46 | char **cmdline, struct meminfo *mi) | 46 | struct meminfo *mi) |
47 | { | 47 | { |
48 | for (; tag->hdr.size; tag = tag_next(tag)) | 48 | for (; tag->hdr.size; tag = tag_next(tag)) |
49 | if (tag->hdr.tag == ATAG_MEM && tag->u.mem.start == 0x200000) { | 49 | if (tag->hdr.tag == ATAG_MEM && tag->u.mem.start == 0x200000) { |
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c index b04468e7d00e..6dc1cbd2a595 100644 --- a/arch/arm/mach-msm/board-msm8960.c +++ b/arch/arm/mach-msm/board-msm8960.c | |||
@@ -32,8 +32,8 @@ | |||
32 | 32 | ||
33 | #include "devices.h" | 33 | #include "devices.h" |
34 | 34 | ||
35 | static void __init msm8960_fixup(struct machine_desc *desc, struct tag *tag, | 35 | static void __init msm8960_fixup(struct tag *tag, char **cmdline, |
36 | char **cmdline, struct meminfo *mi) | 36 | struct meminfo *mi) |
37 | { | 37 | { |
38 | for (; tag->hdr.size; tag = tag_next(tag)) | 38 | for (; tag->hdr.size; tag = tag_next(tag)) |
39 | if (tag->hdr.tag == ATAG_MEM && | 39 | if (tag->hdr.tag == ATAG_MEM && |
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c index cf38e2284fa9..44bf71688373 100644 --- a/arch/arm/mach-msm/board-msm8x60.c +++ b/arch/arm/mach-msm/board-msm8x60.c | |||
@@ -28,8 +28,8 @@ | |||
28 | #include <mach/board.h> | 28 | #include <mach/board.h> |
29 | #include <mach/msm_iomap.h> | 29 | #include <mach/msm_iomap.h> |
30 | 30 | ||
31 | static void __init msm8x60_fixup(struct machine_desc *desc, struct tag *tag, | 31 | static void __init msm8x60_fixup(struct tag *tag, char **cmdline, |
32 | char **cmdline, struct meminfo *mi) | 32 | struct meminfo *mi) |
33 | { | 33 | { |
34 | for (; tag->hdr.size; tag = tag_next(tag)) | 34 | for (; tag->hdr.size; tag = tag_next(tag)) |
35 | if (tag->hdr.tag == ATAG_MEM && | 35 | if (tag->hdr.tag == ATAG_MEM && |
diff --git a/arch/arm/mach-msm/scm.c b/arch/arm/mach-msm/scm.c index 232f97a04504..bafabb502580 100644 --- a/arch/arm/mach-msm/scm.c +++ b/arch/arm/mach-msm/scm.c | |||
@@ -180,6 +180,9 @@ static u32 smc(u32 cmd_addr) | |||
180 | __asmeq("%1", "r0") | 180 | __asmeq("%1", "r0") |
181 | __asmeq("%2", "r1") | 181 | __asmeq("%2", "r1") |
182 | __asmeq("%3", "r2") | 182 | __asmeq("%3", "r2") |
183 | #ifdef REQUIRES_SEC | ||
184 | ".arch_extension sec\n" | ||
185 | #endif | ||
183 | "smc #0 @ switch to secure world\n" | 186 | "smc #0 @ switch to secure world\n" |
184 | : "=r" (r0) | 187 | : "=r" (r0) |
185 | : "r" (r0), "r" (r1), "r" (r2) | 188 | : "r" (r0), "r" (r1), "r" (r2) |
diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index 2aacf41c48e7..4cb276977190 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c | |||
@@ -1281,9 +1281,9 @@ DEFINE_CLOCK(gpt_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG9_OFFSET, | |||
1281 | NULL, NULL, &ipg_clk, &gpt_ipg_clk); | 1281 | NULL, NULL, &ipg_clk, &gpt_ipg_clk); |
1282 | 1282 | ||
1283 | DEFINE_CLOCK(pwm1_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG6_OFFSET, | 1283 | DEFINE_CLOCK(pwm1_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG6_OFFSET, |
1284 | NULL, NULL, &ipg_clk, NULL); | 1284 | NULL, NULL, &ipg_perclk, NULL); |
1285 | DEFINE_CLOCK(pwm2_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG8_OFFSET, | 1285 | DEFINE_CLOCK(pwm2_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG8_OFFSET, |
1286 | NULL, NULL, &ipg_clk, NULL); | 1286 | NULL, NULL, &ipg_perclk, NULL); |
1287 | 1287 | ||
1288 | /* I2C */ | 1288 | /* I2C */ |
1289 | DEFINE_CLOCK(i2c1_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG9_OFFSET, | 1289 | DEFINE_CLOCK(i2c1_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG9_OFFSET, |
@@ -1634,6 +1634,7 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc, | |||
1634 | return 0; | 1634 | return 0; |
1635 | } | 1635 | } |
1636 | 1636 | ||
1637 | #ifdef CONFIG_OF | ||
1637 | static void __init clk_get_freq_dt(unsigned long *ckil, unsigned long *osc, | 1638 | static void __init clk_get_freq_dt(unsigned long *ckil, unsigned long *osc, |
1638 | unsigned long *ckih1, unsigned long *ckih2) | 1639 | unsigned long *ckih1, unsigned long *ckih2) |
1639 | { | 1640 | { |
@@ -1671,3 +1672,4 @@ int __init mx53_clocks_init_dt(void) | |||
1671 | clk_get_freq_dt(&ckil, &osc, &ckih1, &ckih2); | 1672 | clk_get_freq_dt(&ckil, &osc, &ckih1, &ckih2); |
1672 | return mx53_clocks_init(ckil, osc, ckih1, ckih2); | 1673 | return mx53_clocks_init(ckil, osc, ckih1, ckih2); |
1673 | } | 1674 | } |
1675 | #endif | ||
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c index ac2316d53d3c..064ec5abaa55 100644 --- a/arch/arm/mach-mxs/mach-mx28evk.c +++ b/arch/arm/mach-mxs/mach-mx28evk.c | |||
@@ -471,7 +471,8 @@ static void __init mx28evk_init(void) | |||
471 | "mmc0-slot-power"); | 471 | "mmc0-slot-power"); |
472 | if (ret) | 472 | if (ret) |
473 | pr_warn("failed to request gpio mmc0-slot-power: %d\n", ret); | 473 | pr_warn("failed to request gpio mmc0-slot-power: %d\n", ret); |
474 | mx28_add_mxs_mmc(0, &mx28evk_mmc_pdata[0]); | 474 | else |
475 | mx28_add_mxs_mmc(0, &mx28evk_mmc_pdata[0]); | ||
475 | 476 | ||
476 | ret = gpio_request_one(MX28EVK_MMC1_SLOT_POWER, GPIOF_OUT_INIT_LOW, | 477 | ret = gpio_request_one(MX28EVK_MMC1_SLOT_POWER, GPIOF_OUT_INIT_LOW, |
477 | "mmc1-slot-power"); | 478 | "mmc1-slot-power"); |
@@ -480,7 +481,6 @@ static void __init mx28evk_init(void) | |||
480 | else | 481 | else |
481 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | 482 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); |
482 | 483 | ||
483 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | ||
484 | mx28_add_rtc_stmp3xxx(); | 484 | mx28_add_rtc_stmp3xxx(); |
485 | 485 | ||
486 | gpio_led_register_device(0, &mx28evk_led_data); | 486 | gpio_led_register_device(0, &mx28evk_led_data); |
diff --git a/arch/arm/mach-picoxcell/include/mach/debug-macro.S b/arch/arm/mach-picoxcell/include/mach/debug-macro.S index 8f2c234ed9d9..58d4ee3ae949 100644 --- a/arch/arm/mach-picoxcell/include/mach/debug-macro.S +++ b/arch/arm/mach-picoxcell/include/mach/debug-macro.S | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | #define UART_SHIFT 2 | 15 | #define UART_SHIFT 2 |
16 | 16 | ||
17 | .macro addruart, rp, rv | 17 | .macro addruart, rp, rv, tmp |
18 | ldr \rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE) | 18 | ldr \rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE) |
19 | ldr \rp, =PICOXCELL_UART1_BASE | 19 | ldr \rp, =PICOXCELL_UART1_BASE |
20 | .endm | 20 | .endm |
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index d368f8dafcfd..74743ad3d2d3 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c | |||
@@ -101,6 +101,13 @@ static void __init tegra_dt_init(void) | |||
101 | 101 | ||
102 | tegra_clk_init_from_table(tegra_dt_clk_init_table); | 102 | tegra_clk_init_from_table(tegra_dt_clk_init_table); |
103 | 103 | ||
104 | /* | ||
105 | * Finished with the static registrations now; fill in the missing | ||
106 | * devices | ||
107 | */ | ||
108 | of_platform_populate(NULL, tegra_dt_match_table, | ||
109 | tegra20_auxdata_lookup, NULL); | ||
110 | |||
104 | for (i = 0; i < ARRAY_SIZE(pinmux_configs); i++) { | 111 | for (i = 0; i < ARRAY_SIZE(pinmux_configs); i++) { |
105 | if (of_machine_is_compatible(pinmux_configs[i].machine)) { | 112 | if (of_machine_is_compatible(pinmux_configs[i].machine)) { |
106 | pinmux_configs[i].init(); | 113 | pinmux_configs[i].init(); |
@@ -110,12 +117,6 @@ static void __init tegra_dt_init(void) | |||
110 | 117 | ||
111 | WARN(i == ARRAY_SIZE(pinmux_configs), | 118 | WARN(i == ARRAY_SIZE(pinmux_configs), |
112 | "Unknown platform! Pinmuxing not initialized\n"); | 119 | "Unknown platform! Pinmuxing not initialized\n"); |
113 | |||
114 | /* | ||
115 | * Finished with the static registrations now; fill in the missing | ||
116 | * devices | ||
117 | */ | ||
118 | of_platform_populate(NULL, tegra_dt_match_table, tegra20_auxdata_lookup, NULL); | ||
119 | } | 120 | } |
120 | 121 | ||
121 | static const char * tegra_dt_board_compat[] = { | 122 | static const char * tegra_dt_board_compat[] = { |
diff --git a/arch/arm/mach-tegra/board-harmony-pinmux.c b/arch/arm/mach-tegra/board-harmony-pinmux.c index e99b45618cd0..7a4a26d5174c 100644 --- a/arch/arm/mach-tegra/board-harmony-pinmux.c +++ b/arch/arm/mach-tegra/board-harmony-pinmux.c | |||
@@ -16,6 +16,8 @@ | |||
16 | 16 | ||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of.h> | ||
20 | |||
19 | #include <mach/pinmux.h> | 21 | #include <mach/pinmux.h> |
20 | 22 | ||
21 | #include "gpio-names.h" | 23 | #include "gpio-names.h" |
@@ -161,7 +163,9 @@ static struct tegra_gpio_table gpio_table[] = { | |||
161 | 163 | ||
162 | void harmony_pinmux_init(void) | 164 | void harmony_pinmux_init(void) |
163 | { | 165 | { |
164 | platform_add_devices(pinmux_devices, ARRAY_SIZE(pinmux_devices)); | 166 | if (!of_machine_is_compatible("nvidia,tegra20")) |
167 | platform_add_devices(pinmux_devices, | ||
168 | ARRAY_SIZE(pinmux_devices)); | ||
165 | 169 | ||
166 | tegra_pinmux_config_table(harmony_pinmux, ARRAY_SIZE(harmony_pinmux)); | 170 | tegra_pinmux_config_table(harmony_pinmux, ARRAY_SIZE(harmony_pinmux)); |
167 | 171 | ||
diff --git a/arch/arm/mach-tegra/board-paz00-pinmux.c b/arch/arm/mach-tegra/board-paz00-pinmux.c index fb20894862b0..be30e215f4b7 100644 --- a/arch/arm/mach-tegra/board-paz00-pinmux.c +++ b/arch/arm/mach-tegra/board-paz00-pinmux.c | |||
@@ -16,6 +16,8 @@ | |||
16 | 16 | ||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of.h> | ||
20 | |||
19 | #include <mach/pinmux.h> | 21 | #include <mach/pinmux.h> |
20 | 22 | ||
21 | #include "gpio-names.h" | 23 | #include "gpio-names.h" |
@@ -158,7 +160,9 @@ static struct tegra_gpio_table gpio_table[] = { | |||
158 | 160 | ||
159 | void paz00_pinmux_init(void) | 161 | void paz00_pinmux_init(void) |
160 | { | 162 | { |
161 | platform_add_devices(pinmux_devices, ARRAY_SIZE(pinmux_devices)); | 163 | if (!of_machine_is_compatible("nvidia,tegra20")) |
164 | platform_add_devices(pinmux_devices, | ||
165 | ARRAY_SIZE(pinmux_devices)); | ||
162 | 166 | ||
163 | tegra_pinmux_config_table(paz00_pinmux, ARRAY_SIZE(paz00_pinmux)); | 167 | tegra_pinmux_config_table(paz00_pinmux, ARRAY_SIZE(paz00_pinmux)); |
164 | 168 | ||
diff --git a/arch/arm/mach-tegra/board-seaboard-pinmux.c b/arch/arm/mach-tegra/board-seaboard-pinmux.c index fbce31daa3c9..b1c2972f62fe 100644 --- a/arch/arm/mach-tegra/board-seaboard-pinmux.c +++ b/arch/arm/mach-tegra/board-seaboard-pinmux.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of.h> | ||
19 | 20 | ||
20 | #include <mach/pinmux.h> | 21 | #include <mach/pinmux.h> |
21 | #include <mach/pinmux-t2.h> | 22 | #include <mach/pinmux-t2.h> |
@@ -191,6 +192,7 @@ static struct tegra_gpio_table common_gpio_table[] = { | |||
191 | { .gpio = TEGRA_GPIO_SD2_POWER, .enable = true }, | 192 | { .gpio = TEGRA_GPIO_SD2_POWER, .enable = true }, |
192 | { .gpio = TEGRA_GPIO_LIDSWITCH, .enable = true }, | 193 | { .gpio = TEGRA_GPIO_LIDSWITCH, .enable = true }, |
193 | { .gpio = TEGRA_GPIO_POWERKEY, .enable = true }, | 194 | { .gpio = TEGRA_GPIO_POWERKEY, .enable = true }, |
195 | { .gpio = TEGRA_GPIO_HP_DET, .enable = true }, | ||
194 | { .gpio = TEGRA_GPIO_ISL29018_IRQ, .enable = true }, | 196 | { .gpio = TEGRA_GPIO_ISL29018_IRQ, .enable = true }, |
195 | { .gpio = TEGRA_GPIO_CDC_IRQ, .enable = true }, | 197 | { .gpio = TEGRA_GPIO_CDC_IRQ, .enable = true }, |
196 | { .gpio = TEGRA_GPIO_USB1, .enable = true }, | 198 | { .gpio = TEGRA_GPIO_USB1, .enable = true }, |
@@ -218,7 +220,9 @@ static void __init update_pinmux(struct tegra_pingroup_config *newtbl, int size) | |||
218 | 220 | ||
219 | void __init seaboard_common_pinmux_init(void) | 221 | void __init seaboard_common_pinmux_init(void) |
220 | { | 222 | { |
221 | platform_add_devices(pinmux_devices, ARRAY_SIZE(pinmux_devices)); | 223 | if (!of_machine_is_compatible("nvidia,tegra20")) |
224 | platform_add_devices(pinmux_devices, | ||
225 | ARRAY_SIZE(pinmux_devices)); | ||
222 | 226 | ||
223 | tegra_pinmux_config_table(seaboard_pinmux, ARRAY_SIZE(seaboard_pinmux)); | 227 | tegra_pinmux_config_table(seaboard_pinmux, ARRAY_SIZE(seaboard_pinmux)); |
224 | 228 | ||
diff --git a/arch/arm/mach-tegra/board-trimslice-pinmux.c b/arch/arm/mach-tegra/board-trimslice-pinmux.c index 4969dd28a04c..7ab719d46da0 100644 --- a/arch/arm/mach-tegra/board-trimslice-pinmux.c +++ b/arch/arm/mach-tegra/board-trimslice-pinmux.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/of.h> | ||
19 | 20 | ||
20 | #include <mach/pinmux.h> | 21 | #include <mach/pinmux.h> |
21 | 22 | ||
@@ -157,7 +158,9 @@ static struct tegra_gpio_table gpio_table[] = { | |||
157 | 158 | ||
158 | void __init trimslice_pinmux_init(void) | 159 | void __init trimslice_pinmux_init(void) |
159 | { | 160 | { |
160 | platform_add_devices(pinmux_devices, ARRAY_SIZE(pinmux_devices)); | 161 | if (!of_machine_is_compatible("nvidia,tegra20")) |
162 | platform_add_devices(pinmux_devices, | ||
163 | ARRAY_SIZE(pinmux_devices)); | ||
161 | tegra_pinmux_config_table(trimslice_pinmux, ARRAY_SIZE(trimslice_pinmux)); | 164 | tegra_pinmux_config_table(trimslice_pinmux, ARRAY_SIZE(trimslice_pinmux)); |
162 | tegra_gpio_config(gpio_table, ARRAY_SIZE(gpio_table)); | 165 | tegra_gpio_config(gpio_table, ARRAY_SIZE(gpio_table)); |
163 | } | 166 | } |
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig index a08a95107a63..b3a1f2b3ada3 100644 --- a/arch/arm/plat-mxc/Kconfig +++ b/arch/arm/plat-mxc/Kconfig | |||
@@ -10,7 +10,7 @@ choice | |||
10 | 10 | ||
11 | config ARCH_IMX_V4_V5 | 11 | config ARCH_IMX_V4_V5 |
12 | bool "i.MX1, i.MX21, i.MX25, i.MX27" | 12 | bool "i.MX1, i.MX21, i.MX25, i.MX27" |
13 | select AUTO_ZRELADDR | 13 | select AUTO_ZRELADDR if !ZBOOT_ROM |
14 | select ARM_PATCH_PHYS_VIRT | 14 | select ARM_PATCH_PHYS_VIRT |
15 | help | 15 | help |
16 | This enables support for systems based on the Freescale i.MX ARMv4 | 16 | This enables support for systems based on the Freescale i.MX ARMv4 |
@@ -26,7 +26,7 @@ config ARCH_IMX_V6_V7 | |||
26 | 26 | ||
27 | config ARCH_MX5 | 27 | config ARCH_MX5 |
28 | bool "i.MX50, i.MX51, i.MX53" | 28 | bool "i.MX50, i.MX51, i.MX53" |
29 | select AUTO_ZRELADDR | 29 | select AUTO_ZRELADDR if !ZBOOT_ROM |
30 | select ARM_PATCH_PHYS_VIRT | 30 | select ARM_PATCH_PHYS_VIRT |
31 | help | 31 | help |
32 | This enables support for machines using Freescale's i.MX50 and i.MX53 | 32 | This enables support for machines using Freescale's i.MX50 and i.MX53 |
diff --git a/arch/arm/plat-mxc/avic.c b/arch/arm/plat-mxc/avic.c index 8875fb415f68..55f15699a383 100644 --- a/arch/arm/plat-mxc/avic.c +++ b/arch/arm/plat-mxc/avic.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <mach/common.h> | 23 | #include <mach/common.h> |
24 | #include <asm/mach/irq.h> | 24 | #include <asm/mach/irq.h> |
25 | #include <asm/exception.h> | ||
25 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
26 | 27 | ||
27 | #include "irq-common.h" | 28 | #include "irq-common.h" |
diff --git a/arch/arm/plat-mxc/gic.c b/arch/arm/plat-mxc/gic.c index b3b8eed263b8..12f8f8109010 100644 --- a/arch/arm/plat-mxc/gic.c +++ b/arch/arm/plat-mxc/gic.c | |||
@@ -28,21 +28,14 @@ asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) | |||
28 | if (irqnr == 1023) | 28 | if (irqnr == 1023) |
29 | break; | 29 | break; |
30 | 30 | ||
31 | if (irqnr > 29 && irqnr < 1021) | 31 | if (irqnr > 15 && irqnr < 1021) |
32 | handle_IRQ(irqnr, regs); | 32 | handle_IRQ(irqnr, regs); |
33 | #ifdef CONFIG_SMP | 33 | #ifdef CONFIG_SMP |
34 | else if (irqnr < 16) { | 34 | else { |
35 | writel_relaxed(irqstat, gic_cpu_base_addr + | 35 | writel_relaxed(irqstat, gic_cpu_base_addr + |
36 | GIC_CPU_EOI); | 36 | GIC_CPU_EOI); |
37 | handle_IPI(irqnr, regs); | 37 | handle_IPI(irqnr, regs); |
38 | } | 38 | } |
39 | #endif | 39 | #endif |
40 | #ifdef CONFIG_LOCAL_TIMERS | ||
41 | else if (irqnr == 29) { | ||
42 | writel_relaxed(irqstat, gic_cpu_base_addr + | ||
43 | GIC_CPU_EOI); | ||
44 | handle_local_timer(regs); | ||
45 | } | ||
46 | #endif | ||
47 | } while (1); | 40 | } while (1); |
48 | } | 41 | } |
diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S index 9fe0dfcf4e7e..ca5cf26a04b1 100644 --- a/arch/arm/plat-mxc/include/mach/entry-macro.S +++ b/arch/arm/plat-mxc/include/mach/entry-macro.S | |||
@@ -25,6 +25,3 @@ | |||
25 | 25 | ||
26 | .macro test_for_ipi, irqnr, irqstat, base, tmp | 26 | .macro test_for_ipi, irqnr, irqstat, base, tmp |
27 | .endm | 27 | .endm |
28 | |||
29 | .macro test_for_ltirq, irqnr, irqstat, base, tmp | ||
30 | .endm | ||
diff --git a/arch/arm/plat-mxc/tzic.c b/arch/arm/plat-mxc/tzic.c index e993a184189a..a3c164c7ba82 100644 --- a/arch/arm/plat-mxc/tzic.c +++ b/arch/arm/plat-mxc/tzic.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | 18 | ||
19 | #include <asm/mach/irq.h> | 19 | #include <asm/mach/irq.h> |
20 | #include <asm/exception.h> | ||
20 | 21 | ||
21 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
22 | #include <mach/common.h> | 23 | #include <mach/common.h> |
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index ae57769ba50d..4b976f00ea85 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c | |||
@@ -32,6 +32,7 @@ | |||
32 | /* VENDOR SPEC register */ | 32 | /* VENDOR SPEC register */ |
33 | #define SDHCI_VENDOR_SPEC 0xC0 | 33 | #define SDHCI_VENDOR_SPEC 0xC0 |
34 | #define SDHCI_VENDOR_SPEC_SDIO_QUIRK 0x00000002 | 34 | #define SDHCI_VENDOR_SPEC_SDIO_QUIRK 0x00000002 |
35 | #define SDHCI_WTMK_LVL 0x44 | ||
35 | #define SDHCI_MIX_CTRL 0x48 | 36 | #define SDHCI_MIX_CTRL 0x48 |
36 | 37 | ||
37 | /* | 38 | /* |
@@ -476,6 +477,13 @@ static int __devinit sdhci_esdhc_imx_probe(struct platform_device *pdev) | |||
476 | if (is_imx53_esdhc(imx_data)) | 477 | if (is_imx53_esdhc(imx_data)) |
477 | imx_data->flags |= ESDHC_FLAG_MULTIBLK_NO_INT; | 478 | imx_data->flags |= ESDHC_FLAG_MULTIBLK_NO_INT; |
478 | 479 | ||
480 | /* | ||
481 | * The imx6q ROM code will change the default watermark level setting | ||
482 | * to something insane. Change it back here. | ||
483 | */ | ||
484 | if (is_imx6q_usdhc(imx_data)) | ||
485 | writel(0x08100810, host->ioaddr + SDHCI_WTMK_LVL); | ||
486 | |||
479 | boarddata = &imx_data->boarddata; | 487 | boarddata = &imx_data->boarddata; |
480 | if (sdhci_esdhc_imx_probe_dt(pdev, boarddata) < 0) { | 488 | if (sdhci_esdhc_imx_probe_dt(pdev, boarddata) < 0) { |
481 | if (!host->mmc->parent->platform_data) { | 489 | if (!host->mmc->parent->platform_data) { |
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c index 79665e2e6ec5..16d6a839c7fa 100644 --- a/drivers/spi/spi-atmel.c +++ b/drivers/spi/spi-atmel.c | |||
@@ -907,7 +907,7 @@ static void atmel_spi_cleanup(struct spi_device *spi) | |||
907 | 907 | ||
908 | /*-------------------------------------------------------------------------*/ | 908 | /*-------------------------------------------------------------------------*/ |
909 | 909 | ||
910 | static int __init atmel_spi_probe(struct platform_device *pdev) | 910 | static int __devinit atmel_spi_probe(struct platform_device *pdev) |
911 | { | 911 | { |
912 | struct resource *regs; | 912 | struct resource *regs; |
913 | int irq; | 913 | int irq; |
@@ -1003,7 +1003,7 @@ out_free: | |||
1003 | return ret; | 1003 | return ret; |
1004 | } | 1004 | } |
1005 | 1005 | ||
1006 | static int __exit atmel_spi_remove(struct platform_device *pdev) | 1006 | static int __devexit atmel_spi_remove(struct platform_device *pdev) |
1007 | { | 1007 | { |
1008 | struct spi_master *master = platform_get_drvdata(pdev); | 1008 | struct spi_master *master = platform_get_drvdata(pdev); |
1009 | struct atmel_spi *as = spi_master_get_devdata(master); | 1009 | struct atmel_spi *as = spi_master_get_devdata(master); |
@@ -1072,6 +1072,7 @@ static struct platform_driver atmel_spi_driver = { | |||
1072 | }, | 1072 | }, |
1073 | .suspend = atmel_spi_suspend, | 1073 | .suspend = atmel_spi_suspend, |
1074 | .resume = atmel_spi_resume, | 1074 | .resume = atmel_spi_resume, |
1075 | .probe = atmel_spi_probe, | ||
1075 | .remove = __exit_p(atmel_spi_remove), | 1076 | .remove = __exit_p(atmel_spi_remove), |
1076 | }; | 1077 | }; |
1077 | module_platform_driver(atmel_spi_driver); | 1078 | module_platform_driver(atmel_spi_driver); |