diff options
| -rw-r--r-- | Documentation/devicetree/bindings/arm/davinci.txt | 17 | ||||
| -rw-r--r-- | arch/arm/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/da850-enbw-cmc.dts | 30 | ||||
| -rw-r--r-- | arch/arm/boot/dts/da850-evm.dts | 28 | ||||
| -rw-r--r-- | arch/arm/boot/dts/da850.dtsi | 60 | ||||
| -rw-r--r-- | arch/arm/configs/da8xx_omapl_defconfig | 3 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/Kconfig | 8 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/Makefile.boot | 2 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/da8xx-dt.c | 66 |
10 files changed, 216 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/davinci.txt b/Documentation/devicetree/bindings/arm/davinci.txt new file mode 100644 index 000000000000..cfaeda4274e6 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/davinci.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | Texas Instruments DaVinci Platforms Device Tree Bindings | ||
| 2 | -------------------------------------------------------- | ||
| 3 | |||
| 4 | DA850/OMAP-L138/AM18x Evaluation Module (EVM) board | ||
| 5 | Required root node properties: | ||
| 6 | - compatible = "ti,da850-evm", "ti,da850"; | ||
| 7 | |||
| 8 | EnBW AM1808 based CMC board | ||
| 9 | Required root node properties: | ||
| 10 | - compatible = "enbw,cmc", "ti,da850; | ||
| 11 | |||
| 12 | Generic DaVinci Boards | ||
| 13 | ---------------------- | ||
| 14 | |||
| 15 | DA850/OMAP-L138/AM18x generic board | ||
| 16 | Required root node properties: | ||
| 17 | - compatible = "ti,da850"; | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index ade7e924bef5..fce168333036 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -924,6 +924,7 @@ config ARCH_DAVINCI | |||
| 924 | select GENERIC_IRQ_CHIP | 924 | select GENERIC_IRQ_CHIP |
| 925 | select HAVE_IDE | 925 | select HAVE_IDE |
| 926 | select NEED_MACH_GPIO_H | 926 | select NEED_MACH_GPIO_H |
| 927 | select USE_OF | ||
| 927 | select ZONE_DMA | 928 | select ZONE_DMA |
| 928 | help | 929 | help |
| 929 | Support for TI's DaVinci platform. | 930 | Support for TI's DaVinci platform. |
diff --git a/arch/arm/boot/dts/da850-enbw-cmc.dts b/arch/arm/boot/dts/da850-enbw-cmc.dts new file mode 100644 index 000000000000..422fdb3fcfc1 --- /dev/null +++ b/arch/arm/boot/dts/da850-enbw-cmc.dts | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree for AM1808 EnBW CMC board | ||
| 3 | * | ||
| 4 | * Copyright 2012 DENX Software Engineering GmbH | ||
| 5 | * Heiko Schocher <hs@denx.de> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify it | ||
| 8 | * under the terms of the GNU General Public License as published by the | ||
| 9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 10 | * option) any later version. | ||
| 11 | */ | ||
| 12 | /dts-v1/; | ||
| 13 | /include/ "da850.dtsi" | ||
| 14 | |||
| 15 | / { | ||
| 16 | compatible = "enbw,cmc", "ti,da850"; | ||
| 17 | model = "EnBW CMC"; | ||
| 18 | |||
| 19 | soc { | ||
| 20 | serial0: serial@1c42000 { | ||
| 21 | status = "okay"; | ||
| 22 | }; | ||
| 23 | serial1: serial@1d0c000 { | ||
| 24 | status = "okay"; | ||
| 25 | }; | ||
| 26 | serial2: serial@1d0d000 { | ||
| 27 | status = "okay"; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts new file mode 100644 index 000000000000..37dc5a3243b8 --- /dev/null +++ b/arch/arm/boot/dts/da850-evm.dts | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree for DA850 EVM board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify it | ||
| 7 | * under the terms of the GNU General Public License as published by the | ||
| 8 | * Free Software Foundation, version 2. | ||
| 9 | */ | ||
| 10 | /dts-v1/; | ||
| 11 | /include/ "da850.dtsi" | ||
| 12 | |||
| 13 | / { | ||
| 14 | compatible = "ti,da850-evm", "ti,da850"; | ||
| 15 | model = "DA850/AM1808/OMAP-L138 EVM"; | ||
| 16 | |||
| 17 | soc { | ||
| 18 | serial0: serial@1c42000 { | ||
| 19 | status = "okay"; | ||
| 20 | }; | ||
| 21 | serial1: serial@1d0c000 { | ||
| 22 | status = "okay"; | ||
| 23 | }; | ||
| 24 | serial2: serial@1d0d000 { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | }; | ||
| 28 | }; | ||
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi new file mode 100644 index 000000000000..640ab75c20db --- /dev/null +++ b/arch/arm/boot/dts/da850.dtsi | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 DENX Software Engineering GmbH | ||
| 3 | * Heiko Schocher <hs@denx.de> | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify it | ||
| 6 | * under the terms of the GNU General Public License as published by the | ||
| 7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 8 | * option) any later version. | ||
| 9 | */ | ||
| 10 | /include/ "skeleton.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | arm { | ||
| 14 | #address-cells = <1>; | ||
| 15 | #size-cells = <1>; | ||
| 16 | ranges; | ||
| 17 | intc: interrupt-controller { | ||
| 18 | compatible = "ti,cp-intc"; | ||
| 19 | interrupt-controller; | ||
| 20 | #interrupt-cells = <1>; | ||
| 21 | ti,intc-size = <100>; | ||
| 22 | reg = <0xfffee000 0x2000>; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | soc { | ||
| 26 | compatible = "simple-bus"; | ||
| 27 | model = "da850"; | ||
| 28 | #address-cells = <1>; | ||
| 29 | #size-cells = <1>; | ||
| 30 | ranges = <0x0 0x01c00000 0x400000>; | ||
| 31 | |||
| 32 | serial0: serial@1c42000 { | ||
| 33 | compatible = "ns16550a"; | ||
| 34 | reg = <0x42000 0x100>; | ||
| 35 | clock-frequency = <150000000>; | ||
| 36 | reg-shift = <2>; | ||
| 37 | interrupts = <25>; | ||
| 38 | interrupt-parent = <&intc>; | ||
| 39 | status = "disabled"; | ||
| 40 | }; | ||
| 41 | serial1: serial@1d0c000 { | ||
| 42 | compatible = "ns16550a"; | ||
| 43 | reg = <0x10c000 0x100>; | ||
| 44 | clock-frequency = <150000000>; | ||
| 45 | reg-shift = <2>; | ||
| 46 | interrupts = <53>; | ||
| 47 | interrupt-parent = <&intc>; | ||
| 48 | status = "disabled"; | ||
| 49 | }; | ||
| 50 | serial2: serial@1d0d000 { | ||
| 51 | compatible = "ns16550a"; | ||
| 52 | reg = <0x10d000 0x100>; | ||
| 53 | clock-frequency = <150000000>; | ||
| 54 | reg-shift = <2>; | ||
| 55 | interrupts = <61>; | ||
| 56 | interrupt-parent = <&intc>; | ||
| 57 | status = "disabled"; | ||
| 58 | }; | ||
| 59 | }; | ||
| 60 | }; | ||
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig index 88ccde058ba4..f29223954af8 100644 --- a/arch/arm/configs/da8xx_omapl_defconfig +++ b/arch/arm/configs/da8xx_omapl_defconfig | |||
| @@ -17,6 +17,7 @@ CONFIG_MODVERSIONS=y | |||
| 17 | CONFIG_ARCH_DAVINCI=y | 17 | CONFIG_ARCH_DAVINCI=y |
| 18 | CONFIG_ARCH_DAVINCI_DA830=y | 18 | CONFIG_ARCH_DAVINCI_DA830=y |
| 19 | CONFIG_ARCH_DAVINCI_DA850=y | 19 | CONFIG_ARCH_DAVINCI_DA850=y |
| 20 | CONFIG_MACH_DA8XX_DT=y | ||
| 20 | CONFIG_MACH_MITYOMAPL138=y | 21 | CONFIG_MACH_MITYOMAPL138=y |
| 21 | CONFIG_MACH_OMAPL138_HAWKBOARD=y | 22 | CONFIG_MACH_OMAPL138_HAWKBOARD=y |
| 22 | CONFIG_DAVINCI_RESET_CLOCKS=y | 23 | CONFIG_DAVINCI_RESET_CLOCKS=y |
| @@ -26,6 +27,7 @@ CONFIG_PREEMPT=y | |||
| 26 | CONFIG_AEABI=y | 27 | CONFIG_AEABI=y |
| 27 | # CONFIG_OABI_COMPAT is not set | 28 | # CONFIG_OABI_COMPAT is not set |
| 28 | CONFIG_LEDS=y | 29 | CONFIG_LEDS=y |
| 30 | CONFIG_USE_OF=y | ||
| 29 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 31 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 30 | CONFIG_ZBOOT_ROM_BSS=0x0 | 32 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 31 | CONFIG_CPU_FREQ=y | 33 | CONFIG_CPU_FREQ=y |
| @@ -75,6 +77,7 @@ CONFIG_SERIO_LIBPS2=y | |||
| 75 | CONFIG_SERIAL_8250=y | 77 | CONFIG_SERIAL_8250=y |
| 76 | CONFIG_SERIAL_8250_CONSOLE=y | 78 | CONFIG_SERIAL_8250_CONSOLE=y |
| 77 | CONFIG_SERIAL_8250_NR_UARTS=3 | 79 | CONFIG_SERIAL_8250_NR_UARTS=3 |
| 80 | CONFIG_SERIAL_OF_PLATFORM=y | ||
| 78 | CONFIG_I2C=y | 81 | CONFIG_I2C=y |
| 79 | CONFIG_I2C_CHARDEV=y | 82 | CONFIG_I2C_CHARDEV=y |
| 80 | CONFIG_I2C_DAVINCI=y | 83 | CONFIG_I2C_DAVINCI=y |
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index f8eecb959413..0153950f6068 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig | |||
| @@ -58,6 +58,14 @@ config ARCH_DAVINCI_TNETV107X | |||
| 58 | 58 | ||
| 59 | comment "DaVinci Board Type" | 59 | comment "DaVinci Board Type" |
| 60 | 60 | ||
| 61 | config MACH_DA8XX_DT | ||
| 62 | bool "Support DA8XX platforms using device tree" | ||
| 63 | default y | ||
| 64 | depends on ARCH_DAVINCI_DA8XX | ||
| 65 | help | ||
| 66 | Say y here to include support for TI DaVinci DA850 based using | ||
| 67 | Flattened Device Tree. More information at Documentation/devicetree | ||
| 68 | |||
| 61 | config MACH_DAVINCI_EVM | 69 | config MACH_DAVINCI_EVM |
| 62 | bool "TI DM644x EVM" | 70 | bool "TI DM644x EVM" |
| 63 | default ARCH_DAVINCI_DM644x | 71 | default ARCH_DAVINCI_DM644x |
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile index 2227effcb0e9..fb5c1aa98a63 100644 --- a/arch/arm/mach-davinci/Makefile +++ b/arch/arm/mach-davinci/Makefile | |||
| @@ -22,6 +22,7 @@ obj-$(CONFIG_AINTC) += irq.o | |||
| 22 | obj-$(CONFIG_CP_INTC) += cp_intc.o | 22 | obj-$(CONFIG_CP_INTC) += cp_intc.o |
| 23 | 23 | ||
| 24 | # Board specific | 24 | # Board specific |
| 25 | obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o | ||
| 25 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o | 26 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o |
| 26 | obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o | 27 | obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o |
| 27 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o | 28 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o |
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot index 04a6c4e67b14..5c5a95a9d7d2 100644 --- a/arch/arm/mach-davinci/Makefile.boot +++ b/arch/arm/mach-davinci/Makefile.boot | |||
| @@ -11,3 +11,5 @@ else | |||
| 11 | params_phys-y := 0x80000100 | 11 | params_phys-y := 0x80000100 |
| 12 | initrd_phys-y := 0x80800000 | 12 | initrd_phys-y := 0x80800000 |
| 13 | endif | 13 | endif |
| 14 | |||
| 15 | dtb-$(CONFIG_MACH_DA8XX_DT) += da850-enbw-cmc.dtb da850-evm.dtb | ||
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c new file mode 100644 index 000000000000..37c27af18fa0 --- /dev/null +++ b/arch/arm/mach-davinci/da8xx-dt.c | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 3 | * | ||
| 4 | * Modified from mach-omap/omap2/board-generic.c | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #include <linux/io.h> | ||
| 11 | #include <linux/of_irq.h> | ||
| 12 | #include <linux/of_platform.h> | ||
| 13 | #include <linux/irqdomain.h> | ||
| 14 | |||
| 15 | #include <asm/mach/arch.h> | ||
| 16 | |||
| 17 | #include <mach/common.h> | ||
| 18 | #include <mach/cp_intc.h> | ||
| 19 | #include <mach/da8xx.h> | ||
| 20 | |||
| 21 | #define DA8XX_NUM_UARTS 3 | ||
| 22 | |||
| 23 | void __init da8xx_uart_clk_enable(void) | ||
| 24 | { | ||
| 25 | int i; | ||
| 26 | for (i = 0; i < DA8XX_NUM_UARTS; i++) | ||
| 27 | davinci_serial_setup_clk(i, NULL); | ||
| 28 | } | ||
| 29 | |||
| 30 | static struct of_device_id da8xx_irq_match[] __initdata = { | ||
| 31 | { .compatible = "ti,cp-intc", .data = cp_intc_of_init, }, | ||
| 32 | { } | ||
| 33 | }; | ||
| 34 | |||
| 35 | static void __init da8xx_init_irq(void) | ||
| 36 | { | ||
| 37 | of_irq_init(da8xx_irq_match); | ||
| 38 | } | ||
| 39 | |||
| 40 | #ifdef CONFIG_ARCH_DAVINCI_DA850 | ||
| 41 | |||
| 42 | static void __init da850_init_machine(void) | ||
| 43 | { | ||
| 44 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
| 45 | |||
| 46 | da8xx_uart_clk_enable(); | ||
| 47 | } | ||
| 48 | |||
| 49 | static const char *da850_boards_compat[] __initdata = { | ||
| 50 | "enbw,cmc", | ||
| 51 | "ti,da850-evm", | ||
| 52 | "ti,da850", | ||
| 53 | NULL, | ||
| 54 | }; | ||
| 55 | |||
| 56 | DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") | ||
| 57 | .map_io = da850_init, | ||
| 58 | .init_irq = da8xx_init_irq, | ||
| 59 | .timer = &davinci_timer, | ||
| 60 | .init_machine = da850_init_machine, | ||
| 61 | .dt_compat = da850_boards_compat, | ||
| 62 | .init_late = davinci_init_late, | ||
| 63 | .restart = da8xx_restart, | ||
| 64 | MACHINE_END | ||
| 65 | |||
| 66 | #endif | ||
