diff options
86 files changed, 2500 insertions, 1322 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/Documentation/devicetree/bindings/gpio/leds-ns2.txt b/Documentation/devicetree/bindings/gpio/leds-ns2.txt new file mode 100644 index 000000000000..aef3aca34d2d --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/leds-ns2.txt | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | Binding for dual-GPIO LED found on Network Space v2 (and parents). | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "lacie,ns2-leds". | ||
| 5 | |||
| 6 | Each LED is represented as a sub-node of the ns2-leds device. | ||
| 7 | |||
| 8 | Required sub-node properties: | ||
| 9 | - cmd-gpio: Command LED GPIO. See OF device-tree GPIO specification. | ||
| 10 | - slow-gpio: Slow LED GPIO. See OF device-tree GPIO specification. | ||
| 11 | |||
| 12 | Optional sub-node properties: | ||
| 13 | - label: Name for this LED. If omitted, the label is taken from the node name. | ||
| 14 | - linux,default-trigger: Trigger assigned to the LED. | ||
| 15 | |||
| 16 | Example: | ||
| 17 | |||
| 18 | ns2-leds { | ||
| 19 | compatible = "lacie,ns2-leds"; | ||
| 20 | |||
| 21 | blue-sata { | ||
| 22 | label = "ns2:blue:sata"; | ||
| 23 | slow-gpio = <&gpio0 29 0>; | ||
| 24 | cmd-gpio = <&gpio0 30 0>; | ||
| 25 | }; | ||
| 26 | }; | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 29b85e6bd71d..d7d7c2fc5388 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -926,6 +926,7 @@ config ARCH_DAVINCI | |||
| 926 | select GENERIC_IRQ_CHIP | 926 | select GENERIC_IRQ_CHIP |
| 927 | select HAVE_IDE | 927 | select HAVE_IDE |
| 928 | select NEED_MACH_GPIO_H | 928 | select NEED_MACH_GPIO_H |
| 929 | select USE_OF | ||
| 929 | select ZONE_DMA | 930 | select ZONE_DMA |
| 930 | help | 931 | help |
| 931 | Support for TI's DaVinci platform. | 932 | Support for TI's DaVinci platform. |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 42917866fcde..f3f2f80cdf3b 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -55,11 +55,20 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ | |||
| 55 | kirkwood-ib62x0.dtb \ | 55 | kirkwood-ib62x0.dtb \ |
| 56 | kirkwood-iconnect.dtb \ | 56 | kirkwood-iconnect.dtb \ |
| 57 | kirkwood-iomega_ix2_200.dtb \ | 57 | kirkwood-iomega_ix2_200.dtb \ |
| 58 | kirkwood-is2.dtb \ | ||
| 58 | kirkwood-km_kirkwood.dtb \ | 59 | kirkwood-km_kirkwood.dtb \ |
| 59 | kirkwood-lschlv2.dtb \ | 60 | kirkwood-lschlv2.dtb \ |
| 60 | kirkwood-lsxhl.dtb \ | 61 | kirkwood-lsxhl.dtb \ |
| 62 | kirkwood-mplcec4.dtb \ | ||
| 63 | kirkwood-ns2.dtb \ | ||
| 64 | kirkwood-ns2lite.dtb \ | ||
| 65 | kirkwood-ns2max.dtb \ | ||
| 66 | kirkwood-ns2mini.dtb \ | ||
| 67 | kirkwood-nsa310.dtb \ | ||
| 68 | kirkwood-topkick.dtb \ | ||
| 61 | kirkwood-ts219-6281.dtb \ | 69 | kirkwood-ts219-6281.dtb \ |
| 62 | kirkwood-ts219-6282.dtb | 70 | kirkwood-ts219-6282.dtb \ |
| 71 | kirkwood-openblocks_a6.dtb | ||
| 63 | dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ | 72 | dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ |
| 64 | msm8960-cdp.dtb | 73 | msm8960-cdp.dtb |
| 65 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ | 74 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ |
| @@ -94,11 +103,13 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
| 94 | am335x-evm.dtb \ | 103 | am335x-evm.dtb \ |
| 95 | am335x-evmsk.dtb \ | 104 | am335x-evmsk.dtb \ |
| 96 | am335x-bone.dtb | 105 | am335x-bone.dtb |
| 106 | dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb | ||
| 97 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb | 107 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb |
| 98 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb | 108 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb |
| 99 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 109 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ |
| 100 | r8a7740-armadillo800eva.dtb \ | 110 | r8a7740-armadillo800eva.dtb \ |
| 101 | sh73a0-kzm9g.dtb | 111 | sh73a0-kzm9g.dtb \ |
| 112 | sh7372-mackerel.dtb | ||
| 102 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ | 113 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ |
| 103 | spear1340-evb.dtb | 114 | spear1340-evb.dtb |
| 104 | dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ | 115 | dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ |
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/boot/dts/kirkwood-is2.dts b/arch/arm/boot/dts/kirkwood-is2.dts new file mode 100644 index 000000000000..0bdce0ad7277 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-is2.dts | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood-ns2-common.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "LaCie Internet Space v2"; | ||
| 7 | compatible = "lacie,inetspace_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x8000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ocp@f1000000 { | ||
| 15 | sata@80000 { | ||
| 16 | status = "okay"; | ||
| 17 | nr-ports = <1>; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | ns2-leds { | ||
| 22 | compatible = "lacie,ns2-leds"; | ||
| 23 | |||
| 24 | blue-sata { | ||
| 25 | label = "ns2:blue:sata"; | ||
| 26 | slow-gpio = <&gpio0 29 0>; | ||
| 27 | cmd-gpio = <&gpio0 30 0>; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-lsxl.dtsi b/arch/arm/boot/dts/kirkwood-lsxl.dtsi index 8fea375c734d..798e60eeedf3 100644 --- a/arch/arm/boot/dts/kirkwood-lsxl.dtsi +++ b/arch/arm/boot/dts/kirkwood-lsxl.dtsi | |||
| @@ -94,4 +94,15 @@ | |||
| 94 | gpios = <&gpio1 16 1>; | 94 | gpios = <&gpio1 16 1>; |
| 95 | }; | 95 | }; |
| 96 | }; | 96 | }; |
| 97 | |||
| 98 | gpio_fan { | ||
| 99 | compatible = "gpio-fan"; | ||
| 100 | gpios = <&gpio0 19 1 | ||
| 101 | &gpio0 18 1>; | ||
| 102 | gpio-fan,speed-map = <0 3 | ||
| 103 | 1500 2 | ||
| 104 | 3250 1 | ||
| 105 | 5000 0>; | ||
| 106 | alarm-gpios = <&gpio1 8 0>; | ||
| 107 | }; | ||
| 97 | }; | 108 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts new file mode 100644 index 000000000000..ac3c080bed21 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "MPL CEC4"; | ||
| 7 | compatible = "mpl,cec4-10", "mpl,cec4", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x20000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | chosen { | ||
| 15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 16 | }; | ||
| 17 | |||
| 18 | ocp@f1000000 { | ||
| 19 | i2c@11000 { | ||
| 20 | status = "okay"; | ||
| 21 | |||
| 22 | rtc@51 { | ||
| 23 | compatible = "nxp,pcf8563"; | ||
| 24 | reg = <0x51>; | ||
| 25 | }; | ||
| 26 | |||
| 27 | eeprom@57 { | ||
| 28 | compatible = "atmel,24c02"; | ||
| 29 | reg = <0x57>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | }; | ||
| 33 | |||
| 34 | serial@12000 { | ||
| 35 | clock-frequency = <200000000>; | ||
| 36 | status = "ok"; | ||
| 37 | }; | ||
| 38 | |||
| 39 | nand@3000000 { | ||
| 40 | status = "okay"; | ||
| 41 | |||
| 42 | partition@0 { | ||
| 43 | label = "uboot"; | ||
| 44 | reg = <0x0000000 0x100000>; | ||
| 45 | }; | ||
| 46 | |||
| 47 | partition@100000 { | ||
| 48 | label = "env"; | ||
| 49 | reg = <0x100000 0x80000>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | partition@180000 { | ||
| 53 | label = "fdt"; | ||
| 54 | reg = <0x180000 0x80000>; | ||
| 55 | }; | ||
| 56 | |||
| 57 | partition@200000 { | ||
| 58 | label = "kernel"; | ||
| 59 | reg = <0x200000 0x400000>; | ||
| 60 | }; | ||
| 61 | |||
| 62 | partition@600000 { | ||
| 63 | label = "rootfs"; | ||
| 64 | reg = <0x600000 0x1fa00000>; | ||
| 65 | }; | ||
| 66 | }; | ||
| 67 | |||
| 68 | rtc@10300 { | ||
| 69 | status = "disabled"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | sata@80000 { | ||
| 73 | nr-ports = <2>; | ||
| 74 | status = "okay"; | ||
| 75 | |||
| 76 | }; | ||
| 77 | }; | ||
| 78 | |||
| 79 | gpio-leds { | ||
| 80 | compatible = "gpio-leds"; | ||
| 81 | |||
| 82 | health { | ||
| 83 | label = "status:green:health"; | ||
| 84 | gpios = <&gpio0 7 1>; | ||
| 85 | }; | ||
| 86 | |||
| 87 | user1o { | ||
| 88 | label = "user1:orange"; | ||
| 89 | gpios = <&gpio1 8 1>; | ||
| 90 | default-state = "on"; | ||
| 91 | }; | ||
| 92 | |||
| 93 | user1g { | ||
| 94 | label = "user1:green"; | ||
| 95 | gpios = <&gpio1 9 1>; | ||
| 96 | default-state = "on"; | ||
| 97 | }; | ||
| 98 | |||
| 99 | user0o { | ||
| 100 | label = "user0:orange"; | ||
| 101 | gpios = <&gpio1 12 1>; | ||
| 102 | default-state = "on"; | ||
| 103 | }; | ||
| 104 | |||
| 105 | user0g { | ||
| 106 | label = "user0:green"; | ||
| 107 | gpios = <&gpio1 13 1>; | ||
| 108 | default-state = "on"; | ||
| 109 | }; | ||
| 110 | |||
| 111 | misc { | ||
| 112 | label = "status:orange:misc"; | ||
| 113 | gpios = <&gpio1 14 1>; | ||
| 114 | default-state = "on"; | ||
| 115 | }; | ||
| 116 | |||
| 117 | }; | ||
| 118 | }; | ||
| 119 | |||
diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi new file mode 100644 index 000000000000..9bc6785ad228 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | /include/ "kirkwood.dtsi" | ||
| 2 | |||
| 3 | / { | ||
| 4 | chosen { | ||
| 5 | bootargs = "console=ttyS0,115200n8"; | ||
| 6 | }; | ||
| 7 | |||
| 8 | ocp@f1000000 { | ||
| 9 | serial@12000 { | ||
| 10 | clock-frequency = <166666667>; | ||
| 11 | status = "okay"; | ||
| 12 | }; | ||
| 13 | |||
| 14 | spi@10600 { | ||
| 15 | status = "okay"; | ||
| 16 | |||
| 17 | flash@0 { | ||
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <1>; | ||
| 20 | compatible = "mx25l4005a"; | ||
| 21 | reg = <0>; | ||
| 22 | spi-max-frequency = <20000000>; | ||
| 23 | mode = <0>; | ||
| 24 | |||
| 25 | partition@0 { | ||
| 26 | reg = <0x0 0x80000>; | ||
| 27 | label = "u-boot"; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | i2c@11000 { | ||
| 33 | status = "okay"; | ||
| 34 | |||
| 35 | eeprom@50 { | ||
| 36 | compatible = "at,24c04"; | ||
| 37 | pagesize = <16>; | ||
| 38 | reg = <0x50>; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | }; | ||
| 42 | |||
| 43 | gpio_keys { | ||
| 44 | compatible = "gpio-keys"; | ||
| 45 | #address-cells = <1>; | ||
| 46 | #size-cells = <0>; | ||
| 47 | |||
| 48 | button@1 { | ||
| 49 | label = "Power push button"; | ||
| 50 | linux,code = <116>; | ||
| 51 | gpios = <&gpio1 0 0>; | ||
| 52 | }; | ||
| 53 | }; | ||
| 54 | |||
| 55 | gpio-leds { | ||
| 56 | compatible = "gpio-leds"; | ||
| 57 | |||
| 58 | red-fail { | ||
| 59 | label = "ns2:red:fail"; | ||
| 60 | gpios = <&gpio0 12 0>; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2.dts b/arch/arm/boot/dts/kirkwood-ns2.dts new file mode 100644 index 000000000000..f2d36ecf36d8 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2.dts | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood-ns2-common.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "LaCie Network Space v2"; | ||
| 7 | compatible = "lacie,netspace_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x10000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ocp@f1000000 { | ||
| 15 | sata@80000 { | ||
| 16 | status = "okay"; | ||
| 17 | nr-ports = <1>; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | ns2-leds { | ||
| 22 | compatible = "lacie,ns2-leds"; | ||
| 23 | |||
| 24 | blue-sata { | ||
| 25 | label = "ns2:blue:sata"; | ||
| 26 | slow-gpio = <&gpio0 29 0>; | ||
| 27 | cmd-gpio = <&gpio0 30 0>; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2lite.dts b/arch/arm/boot/dts/kirkwood-ns2lite.dts new file mode 100644 index 000000000000..b02eb4ea1bb4 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2lite.dts | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood-ns2-common.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "LaCie Network Space Lite v2"; | ||
| 7 | compatible = "lacie,netspace_lite_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x8000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ocp@f1000000 { | ||
| 15 | sata@80000 { | ||
| 16 | status = "okay"; | ||
| 17 | nr-ports = <1>; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | gpio-leds { | ||
| 22 | compatible = "gpio-leds"; | ||
| 23 | |||
| 24 | blue-sata { | ||
| 25 | label = "ns2:blue:sata"; | ||
| 26 | gpios = <&gpio0 30 1>; | ||
| 27 | linux,default-trigger = "default-on"; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2max.dts b/arch/arm/boot/dts/kirkwood-ns2max.dts new file mode 100644 index 000000000000..bcec4d6cada7 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2max.dts | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood-ns2-common.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "LaCie Network Space Max v2"; | ||
| 7 | compatible = "lacie,netspace_max_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x10000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ocp@f1000000 { | ||
| 15 | sata@80000 { | ||
| 16 | status = "okay"; | ||
| 17 | nr-ports = <2>; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | gpio_fan { | ||
| 22 | compatible = "gpio-fan"; | ||
| 23 | gpios = <&gpio0 22 1 | ||
| 24 | &gpio0 7 1 | ||
| 25 | &gpio1 1 1 | ||
| 26 | &gpio0 23 1>; | ||
| 27 | gpio-fan,speed-map = | ||
| 28 | < 0 0 | ||
| 29 | 1500 15 | ||
| 30 | 1700 14 | ||
| 31 | 1800 13 | ||
| 32 | 2100 12 | ||
| 33 | 3100 11 | ||
| 34 | 3300 10 | ||
| 35 | 4300 9 | ||
| 36 | 5500 8>; | ||
| 37 | alarm-gpios = <&gpio0 25 1>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | ns2-leds { | ||
| 41 | compatible = "lacie,ns2-leds"; | ||
| 42 | |||
| 43 | blue-sata { | ||
| 44 | label = "ns2:blue:sata"; | ||
| 45 | slow-gpio = <&gpio0 29 0>; | ||
| 46 | cmd-gpio = <&gpio0 30 0>; | ||
| 47 | }; | ||
| 48 | }; | ||
| 49 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2mini.dts b/arch/arm/boot/dts/kirkwood-ns2mini.dts new file mode 100644 index 000000000000..b79f5eb25589 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2mini.dts | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood-ns2-common.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "LaCie Network Space Mini v2"; | ||
| 7 | compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x8000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ocp@f1000000 { | ||
| 15 | sata@80000 { | ||
| 16 | status = "okay"; | ||
| 17 | nr-ports = <1>; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | gpio_fan { | ||
| 22 | compatible = "gpio-fan"; | ||
| 23 | gpios = <&gpio0 22 1 | ||
| 24 | &gpio0 7 1 | ||
| 25 | &gpio1 1 1 | ||
| 26 | &gpio0 23 1>; | ||
| 27 | gpio-fan,speed-map = | ||
| 28 | < 0 0 | ||
| 29 | 3000 15 | ||
| 30 | 3180 14 | ||
| 31 | 4140 13 | ||
| 32 | 4570 12 | ||
| 33 | 6760 11 | ||
| 34 | 7140 10 | ||
| 35 | 7980 9 | ||
| 36 | 9200 8>; | ||
| 37 | alarm-gpios = <&gpio0 25 1>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | ns2-leds { | ||
| 41 | compatible = "lacie,ns2-leds"; | ||
| 42 | |||
| 43 | blue-sata { | ||
| 44 | label = "ns2:blue:sata"; | ||
| 45 | slow-gpio = <&gpio0 29 0>; | ||
| 46 | cmd-gpio = <&gpio0 30 0>; | ||
| 47 | }; | ||
| 48 | }; | ||
| 49 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-nsa310.dts b/arch/arm/boot/dts/kirkwood-nsa310.dts new file mode 100644 index 000000000000..5509f9659546 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-nsa310.dts | |||
| @@ -0,0 +1,144 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "ZyXEL NSA310"; | ||
| 7 | compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x10000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | chosen { | ||
| 15 | bootargs = "console=ttyS0,115200"; | ||
| 16 | }; | ||
| 17 | |||
| 18 | ocp@f1000000 { | ||
| 19 | |||
| 20 | serial@12000 { | ||
| 21 | clock-frequency = <200000000>; | ||
| 22 | status = "ok"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | sata@80000 { | ||
| 26 | status = "okay"; | ||
| 27 | nr-ports = <2>; | ||
| 28 | }; | ||
| 29 | |||
| 30 | i2c@11000 { | ||
| 31 | status = "okay"; | ||
| 32 | }; | ||
| 33 | |||
| 34 | nand@3000000 { | ||
| 35 | status = "okay"; | ||
| 36 | chip-delay = <35>; | ||
| 37 | |||
| 38 | partition@0 { | ||
| 39 | label = "uboot"; | ||
| 40 | reg = <0x0000000 0x0100000>; | ||
| 41 | read-only; | ||
| 42 | }; | ||
| 43 | partition@100000 { | ||
| 44 | label = "uboot_env"; | ||
| 45 | reg = <0x0100000 0x0080000>; | ||
| 46 | }; | ||
| 47 | partition@180000 { | ||
| 48 | label = "key_store"; | ||
| 49 | reg = <0x0180000 0x0080000>; | ||
| 50 | }; | ||
| 51 | partition@200000 { | ||
| 52 | label = "info"; | ||
| 53 | reg = <0x0200000 0x0080000>; | ||
| 54 | }; | ||
| 55 | partition@280000 { | ||
| 56 | label = "etc"; | ||
| 57 | reg = <0x0280000 0x0a00000>; | ||
| 58 | }; | ||
| 59 | partition@c80000 { | ||
| 60 | label = "kernel_1"; | ||
| 61 | reg = <0x0c80000 0x0a00000>; | ||
| 62 | }; | ||
| 63 | partition@1680000 { | ||
| 64 | label = "rootfs1"; | ||
| 65 | reg = <0x1680000 0x2fc0000>; | ||
| 66 | }; | ||
| 67 | partition@4640000 { | ||
| 68 | label = "kernel_2"; | ||
| 69 | reg = <0x4640000 0x0a00000>; | ||
| 70 | }; | ||
| 71 | partition@5040000 { | ||
| 72 | label = "rootfs2"; | ||
| 73 | reg = <0x5040000 0x2fc0000>; | ||
| 74 | }; | ||
| 75 | }; | ||
| 76 | }; | ||
| 77 | |||
| 78 | gpio_keys { | ||
| 79 | compatible = "gpio-keys"; | ||
| 80 | #address-cells = <1>; | ||
| 81 | #size-cells = <0>; | ||
| 82 | |||
| 83 | button@1 { | ||
| 84 | label = "Power Button"; | ||
| 85 | linux,code = <116>; | ||
| 86 | gpios = <&gpio1 14 0>; | ||
| 87 | }; | ||
| 88 | button@2 { | ||
| 89 | label = "Copy Button"; | ||
| 90 | linux,code = <133>; | ||
| 91 | gpios = <&gpio1 5 1>; | ||
| 92 | }; | ||
| 93 | button@3 { | ||
| 94 | label = "Reset Button"; | ||
| 95 | linux,code = <0x198>; | ||
| 96 | gpios = <&gpio1 4 1>; | ||
| 97 | }; | ||
| 98 | }; | ||
| 99 | |||
| 100 | gpio-leds { | ||
| 101 | compatible = "gpio-leds"; | ||
| 102 | |||
| 103 | green-sys { | ||
| 104 | label = "nsa310:green:sys"; | ||
| 105 | gpios = <&gpio0 28 0>; | ||
| 106 | }; | ||
| 107 | red-sys { | ||
| 108 | label = "nsa310:red:sys"; | ||
| 109 | gpios = <&gpio0 29 0>; | ||
| 110 | }; | ||
| 111 | green-hdd { | ||
| 112 | label = "nsa310:green:hdd"; | ||
| 113 | gpios = <&gpio1 9 0>; | ||
| 114 | }; | ||
| 115 | red-hdd { | ||
| 116 | label = "nsa310:red:hdd"; | ||
| 117 | gpios = <&gpio1 10 0>; | ||
| 118 | }; | ||
| 119 | green-esata { | ||
| 120 | label = "nsa310:green:esata"; | ||
| 121 | gpios = <&gpio0 12 0>; | ||
| 122 | }; | ||
| 123 | red-esata { | ||
| 124 | label = "nsa310:red:esata"; | ||
| 125 | gpios = <&gpio0 13 0>; | ||
| 126 | }; | ||
| 127 | green-usb { | ||
| 128 | label = "nsa310:green:usb"; | ||
| 129 | gpios = <&gpio0 15 0>; | ||
| 130 | }; | ||
| 131 | red-usb { | ||
| 132 | label = "nsa310:red:usb"; | ||
| 133 | gpios = <&gpio0 16 0>; | ||
| 134 | }; | ||
| 135 | green-copy { | ||
| 136 | label = "nsa310:green:copy"; | ||
| 137 | gpios = <&gpio1 7 0>; | ||
| 138 | }; | ||
| 139 | red-copy { | ||
| 140 | label = "nsa310:red:copy"; | ||
| 141 | gpios = <&gpio1 8 0>; | ||
| 142 | }; | ||
| 143 | }; | ||
| 144 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts new file mode 100644 index 000000000000..9a2606c8b78f --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "Plat'Home OpenBlocksA6"; | ||
| 7 | compatible = "plathome,openblocks-a6", "marvell,kirkwood-88f6283", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x20000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | chosen { | ||
| 15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 16 | }; | ||
| 17 | |||
| 18 | ocp@f1000000 { | ||
| 19 | serial@12000 { | ||
| 20 | clock-frequency = <200000000>; | ||
| 21 | status = "ok"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | serial@12100 { | ||
| 25 | clock-frequency = <200000000>; | ||
| 26 | status = "ok"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | nand@3000000 { | ||
| 30 | chip-delay = <25>; | ||
| 31 | status = "okay"; | ||
| 32 | }; | ||
| 33 | |||
| 34 | sata@80000 { | ||
| 35 | nr-ports = <1>; | ||
| 36 | status = "okay"; | ||
| 37 | }; | ||
| 38 | }; | ||
| 39 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts new file mode 100644 index 000000000000..c0de5a7f660d --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | |||
| 3 | /include/ "kirkwood.dtsi" | ||
| 4 | |||
| 5 | / { | ||
| 6 | model = "Univeral Scientific Industrial Co. Topkick-1281P2"; | ||
| 7 | compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood"; | ||
| 8 | |||
| 9 | memory { | ||
| 10 | device_type = "memory"; | ||
| 11 | reg = <0x00000000 0x10000000>; | ||
| 12 | }; | ||
| 13 | |||
| 14 | chosen { | ||
| 15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 16 | }; | ||
| 17 | |||
| 18 | ocp@f1000000 { | ||
| 19 | serial@12000 { | ||
| 20 | clock-frequency = <200000000>; | ||
| 21 | status = "ok"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | nand@3000000 { | ||
| 25 | status = "okay"; | ||
| 26 | |||
| 27 | partition@0 { | ||
| 28 | label = "u-boot"; | ||
| 29 | reg = <0x0000000 0x180000>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | partition@180000 { | ||
| 33 | label = "u-boot env"; | ||
| 34 | reg = <0x0180000 0x20000>; | ||
| 35 | }; | ||
| 36 | |||
| 37 | partition@200000 { | ||
| 38 | label = "uImage"; | ||
| 39 | reg = <0x0200000 0x600000>; | ||
| 40 | }; | ||
| 41 | |||
| 42 | partition@800000 { | ||
| 43 | label = "uInitrd"; | ||
| 44 | reg = <0x0800000 0x1000000>; | ||
| 45 | }; | ||
| 46 | |||
| 47 | partition@1800000 { | ||
| 48 | label = "rootfs"; | ||
| 49 | reg = <0x1800000 0xe800000>; | ||
| 50 | }; | ||
| 51 | }; | ||
| 52 | |||
| 53 | sata@80000 { | ||
| 54 | status = "okay"; | ||
| 55 | nr-ports = <1>; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | |||
| 59 | gpio-leds { | ||
| 60 | compatible = "gpio-leds"; | ||
| 61 | |||
| 62 | disk { | ||
| 63 | label = "topkick:yellow:disk"; | ||
| 64 | gpios = <&gpio0 21 1>; | ||
| 65 | linux,default-trigger = "ide-disk"; | ||
| 66 | }; | ||
| 67 | system2 { | ||
| 68 | label = "topkick:red:system"; | ||
| 69 | gpios = <&gpio1 5 1>; | ||
| 70 | }; | ||
| 71 | system { | ||
| 72 | label = "topkick:blue:system"; | ||
| 73 | gpios = <&gpio1 6 1>; | ||
| 74 | default-state = "on"; | ||
| 75 | }; | ||
| 76 | wifi { | ||
| 77 | label = "topkick:green:wifi"; | ||
| 78 | gpios = <&gpio1 7 1>; | ||
| 79 | }; | ||
| 80 | wifi2 { | ||
| 81 | label = "topkick:yellow:wifi"; | ||
| 82 | gpios = <&gpio1 16 1>; | ||
| 83 | }; | ||
| 84 | }; | ||
| 85 | }; | ||
diff --git a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts new file mode 100644 index 000000000000..5a3a58b7e18f --- /dev/null +++ b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
| 3 | * | ||
| 4 | * This file is licensed under the terms of the GNU General Public | ||
| 5 | * License version 2. This program is licensed "as is" without any | ||
| 6 | * warranty of any kind, whether express or implied. | ||
| 7 | */ | ||
| 8 | |||
| 9 | /dts-v1/; | ||
| 10 | /include/ "orion5x.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "LaCie Ethernet Disk mini V2"; | ||
| 14 | compatible = "lacie,ethernet-disk-mini-v2", "marvell-orion5x-88f5182", "marvell,orion5x"; | ||
| 15 | |||
| 16 | memory { | ||
| 17 | reg = <0x00000000 0x4000000>; /* 64 MB */ | ||
| 18 | }; | ||
| 19 | |||
| 20 | chosen { | ||
| 21 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | ocp@f1000000 { | ||
| 25 | serial@12000 { | ||
| 26 | clock-frequency = <166666667>; | ||
| 27 | status = "okay"; | ||
| 28 | }; | ||
| 29 | |||
| 30 | sata@80000 { | ||
| 31 | status = "okay"; | ||
| 32 | nr-ports = <2>; | ||
| 33 | }; | ||
| 34 | }; | ||
| 35 | |||
| 36 | gpio_keys { | ||
| 37 | compatible = "gpio-keys"; | ||
| 38 | #address-cells = <1>; | ||
| 39 | #size-cells = <0>; | ||
| 40 | button@1 { | ||
| 41 | label = "Power-on Switch"; | ||
| 42 | linux,code = <116>; /* KEY_POWER */ | ||
| 43 | gpios = <&gpio0 18 0>; | ||
| 44 | }; | ||
| 45 | }; | ||
| 46 | |||
| 47 | gpio_leds { | ||
| 48 | compatible = "gpio-leds"; | ||
| 49 | |||
| 50 | led@1 { | ||
| 51 | label = "power:blue"; | ||
| 52 | gpios = <&gpio0 16 1>; | ||
| 53 | }; | ||
| 54 | }; | ||
| 55 | }; | ||
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi new file mode 100644 index 000000000000..8aad00f81ed9 --- /dev/null +++ b/arch/arm/boot/dts/orion5x.dtsi | |||
| @@ -0,0 +1,98 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
| 3 | * | ||
| 4 | * This file is licensed under the terms of the GNU General Public | ||
| 5 | * License version 2. This program is licensed "as is" without any | ||
| 6 | * warranty of any kind, whether express or implied. | ||
| 7 | */ | ||
| 8 | |||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | ||
| 12 | model = "Marvell Orion5x SoC"; | ||
| 13 | compatible = "marvell,orion5x"; | ||
| 14 | interrupt-parent = <&intc>; | ||
| 15 | |||
| 16 | intc: interrupt-controller { | ||
| 17 | compatible = "marvell,orion-intc", "marvell,intc"; | ||
| 18 | interrupt-controller; | ||
| 19 | #interrupt-cells = <1>; | ||
| 20 | reg = <0xf1020204 0x04>; | ||
| 21 | }; | ||
| 22 | |||
| 23 | ocp@f1000000 { | ||
| 24 | compatible = "simple-bus"; | ||
| 25 | ranges = <0x00000000 0xf1000000 0x4000000 | ||
| 26 | 0xf2200000 0xf2200000 0x0000800>; | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 29 | |||
| 30 | gpio0: gpio@10100 { | ||
| 31 | compatible = "marvell,orion-gpio"; | ||
| 32 | #gpio-cells = <2>; | ||
| 33 | gpio-controller; | ||
| 34 | reg = <0x10100 0x40>; | ||
| 35 | ngpio = <32>; | ||
| 36 | interrupts = <6>, <7>, <8>, <9>; | ||
| 37 | }; | ||
| 38 | |||
| 39 | serial@12000 { | ||
| 40 | compatible = "ns16550a"; | ||
| 41 | reg = <0x12000 0x100>; | ||
| 42 | reg-shift = <2>; | ||
| 43 | interrupts = <3>; | ||
| 44 | /* set clock-frequency in board dts */ | ||
| 45 | status = "disabled"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | serial@12100 { | ||
| 49 | compatible = "ns16550a"; | ||
| 50 | reg = <0x12100 0x100>; | ||
| 51 | reg-shift = <2>; | ||
| 52 | interrupts = <4>; | ||
| 53 | /* set clock-frequency in board dts */ | ||
| 54 | status = "disabled"; | ||
| 55 | }; | ||
| 56 | |||
| 57 | spi@10600 { | ||
| 58 | compatible = "marvell,orion-spi"; | ||
| 59 | #address-cells = <1>; | ||
| 60 | #size-cells = <0>; | ||
| 61 | cell-index = <0>; | ||
| 62 | reg = <0x10600 0x28>; | ||
| 63 | status = "disabled"; | ||
| 64 | }; | ||
| 65 | |||
| 66 | wdt@20300 { | ||
| 67 | compatible = "marvell,orion-wdt"; | ||
| 68 | reg = <0x20300 0x28>; | ||
| 69 | status = "okay"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | sata@80000 { | ||
| 73 | compatible = "marvell,orion-sata"; | ||
| 74 | reg = <0x80000 0x5000>; | ||
| 75 | interrupts = <29>; | ||
| 76 | status = "disabled"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | i2c@11000 { | ||
| 80 | compatible = "marvell,mv64xxx-i2c"; | ||
| 81 | reg = <0x11000 0x20>; | ||
| 82 | #address-cells = <1>; | ||
| 83 | #size-cells = <0>; | ||
| 84 | interrupts = <5>; | ||
| 85 | clock-frequency = <100000>; | ||
| 86 | status = "disabled"; | ||
| 87 | }; | ||
| 88 | |||
| 89 | crypto@90000 { | ||
| 90 | compatible = "marvell,orion-crypto"; | ||
| 91 | reg = <0x90000 0x10000>, | ||
| 92 | <0xf2200000 0x800>; | ||
| 93 | reg-names = "regs", "sram"; | ||
| 94 | interrupts = <22>; | ||
| 95 | status = "okay"; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | }; | ||
diff --git a/arch/arm/boot/dts/sh7372-mackerel.dts b/arch/arm/boot/dts/sh7372-mackerel.dts new file mode 100644 index 000000000000..286f0caef013 --- /dev/null +++ b/arch/arm/boot/dts/sh7372-mackerel.dts | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree Source for the mackerel board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2012 Renesas Solutions Corp. | ||
| 5 | * | ||
| 6 | * This file is licensed under the terms of the GNU General Public License | ||
| 7 | * version 2. This program is licensed "as is" without any warranty of any | ||
| 8 | * kind, whether express or implied. | ||
| 9 | */ | ||
| 10 | |||
| 11 | /dts-v1/; | ||
| 12 | /include/ "skeleton.dtsi" | ||
| 13 | |||
| 14 | / { | ||
| 15 | model = "Mackerel (AP4 EVM 2nd)"; | ||
| 16 | compatible = "renesas,mackerel"; | ||
| 17 | |||
| 18 | memory { | ||
| 19 | device_type = "memory"; | ||
| 20 | reg = <0x40000000 0x10000000>; | ||
| 21 | }; | ||
| 22 | }; | ||
diff --git a/arch/arm/configs/ap4evb_defconfig b/arch/arm/configs/ap4evb_defconfig index 2eef85e3c9b9..66894f736d04 100644 --- a/arch/arm/configs/ap4evb_defconfig +++ b/arch/arm/configs/ap4evb_defconfig | |||
| @@ -46,7 +46,6 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y | |||
| 46 | # CONFIG_HID_SUPPORT is not set | 46 | # CONFIG_HID_SUPPORT is not set |
| 47 | # CONFIG_USB_SUPPORT is not set | 47 | # CONFIG_USB_SUPPORT is not set |
| 48 | # CONFIG_DNOTIFY is not set | 48 | # CONFIG_DNOTIFY is not set |
| 49 | # CONFIG_INOTIFY_USER is not set | ||
| 50 | CONFIG_TMPFS=y | 49 | CONFIG_TMPFS=y |
| 51 | # CONFIG_MISC_FILESYSTEMS is not set | 50 | # CONFIG_MISC_FILESYSTEMS is not set |
| 52 | CONFIG_MAGIC_SYSRQ=y | 51 | CONFIG_MAGIC_SYSRQ=y |
diff --git a/arch/arm/configs/armadillo800eva_defconfig b/arch/arm/configs/armadillo800eva_defconfig index 3d764072dd54..2e1a82577207 100644 --- a/arch/arm/configs/armadillo800eva_defconfig +++ b/arch/arm/configs/armadillo800eva_defconfig | |||
| @@ -21,7 +21,7 @@ CONFIG_MACH_ARMADILLO800EVA=y | |||
| 21 | # CONFIG_SH_TIMER_TMU is not set | 21 | # CONFIG_SH_TIMER_TMU is not set |
| 22 | CONFIG_ARM_THUMB=y | 22 | CONFIG_ARM_THUMB=y |
| 23 | CONFIG_CPU_BPREDICT_DISABLE=y | 23 | CONFIG_CPU_BPREDICT_DISABLE=y |
| 24 | # CONFIG_CACHE_L2X0 is not set | 24 | CONFIG_CACHE_L2X0=y |
| 25 | CONFIG_ARM_ERRATA_430973=y | 25 | CONFIG_ARM_ERRATA_430973=y |
| 26 | CONFIG_ARM_ERRATA_458693=y | 26 | CONFIG_ARM_ERRATA_458693=y |
| 27 | CONFIG_ARM_ERRATA_460075=y | 27 | CONFIG_ARM_ERRATA_460075=y |
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/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index 40db34cf2771..0b7ee92c5713 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig | |||
| @@ -8,11 +8,19 @@ CONFIG_MODULE_UNLOAD=y | |||
| 8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
| 9 | CONFIG_ARCH_DOVE=y | 9 | CONFIG_ARCH_DOVE=y |
| 10 | CONFIG_MACH_DOVE_DB=y | 10 | CONFIG_MACH_DOVE_DB=y |
| 11 | CONFIG_MACH_CM_A510=y | ||
| 12 | CONFIG_MACH_DOVE_DT=y | ||
| 11 | CONFIG_NO_HZ=y | 13 | CONFIG_NO_HZ=y |
| 12 | CONFIG_HIGH_RES_TIMERS=y | 14 | CONFIG_HIGH_RES_TIMERS=y |
| 13 | CONFIG_AEABI=y | 15 | CONFIG_AEABI=y |
| 14 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 16 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 15 | CONFIG_ZBOOT_ROM_BSS=0x0 | 17 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 18 | CONFIG_HIGHMEM=y | ||
| 19 | CONFIG_USE_OF=y | ||
| 20 | CONFIG_ATAGS=y | ||
| 21 | CONFIG_ARM_APPENDED_DTB=y | ||
| 22 | CONFIG_ARM_ATAG_DTB_COMPAT=y | ||
| 23 | CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y | ||
| 16 | CONFIG_VFP=y | 24 | CONFIG_VFP=y |
| 17 | CONFIG_NET=y | 25 | CONFIG_NET=y |
| 18 | CONFIG_PACKET=y | 26 | CONFIG_PACKET=y |
| @@ -62,6 +70,9 @@ CONFIG_SERIAL_8250=y | |||
| 62 | CONFIG_SERIAL_8250_CONSOLE=y | 70 | CONFIG_SERIAL_8250_CONSOLE=y |
| 63 | # CONFIG_SERIAL_8250_PCI is not set | 71 | # CONFIG_SERIAL_8250_PCI is not set |
| 64 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | 72 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 |
| 73 | CONFIG_SERIAL_CORE=y | ||
| 74 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 75 | CONFIG_SERIAL_OF_PLATFORM=y | ||
| 65 | # CONFIG_HW_RANDOM is not set | 76 | # CONFIG_HW_RANDOM is not set |
| 66 | CONFIG_I2C=y | 77 | CONFIG_I2C=y |
| 67 | CONFIG_I2C_CHARDEV=y | 78 | CONFIG_I2C_CHARDEV=y |
| @@ -74,6 +85,18 @@ CONFIG_USB_DEVICEFS=y | |||
| 74 | CONFIG_USB_EHCI_HCD=y | 85 | CONFIG_USB_EHCI_HCD=y |
| 75 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 86 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
| 76 | CONFIG_USB_STORAGE=y | 87 | CONFIG_USB_STORAGE=y |
| 88 | CONFIG_MMC=y | ||
| 89 | CONFIG_MMC_SDHCI=y | ||
| 90 | CONFIG_MMC_SDHCI_IO_ACCESSORS=y | ||
| 91 | CONFIG_MMC_SDHCI_PLTFM=y | ||
| 92 | CONFIG_MMC_SDHCI_DOVE=y | ||
| 93 | CONFIG_NEW_LEDS=y | ||
| 94 | CONFIG_LEDS_CLASS=y | ||
| 95 | CONFIG_LEDS_GPIO=y | ||
| 96 | CONFIG_LEDS_TRIGGERS=y | ||
| 97 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
| 98 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
| 99 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
| 77 | CONFIG_RTC_CLASS=y | 100 | CONFIG_RTC_CLASS=y |
| 78 | CONFIG_RTC_DRV_MV=y | 101 | CONFIG_RTC_DRV_MV=y |
| 79 | CONFIG_DMADEVICES=y | 102 | CONFIG_DMADEVICES=y |
| @@ -122,6 +145,7 @@ CONFIG_CRYPTO_TWOFISH=y | |||
| 122 | CONFIG_CRYPTO_DEFLATE=y | 145 | CONFIG_CRYPTO_DEFLATE=y |
| 123 | CONFIG_CRYPTO_LZO=y | 146 | CONFIG_CRYPTO_LZO=y |
| 124 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 147 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 148 | CONFIG_CRYPTO_DEV_MV_CESA=y | ||
| 125 | CONFIG_CRC_CCITT=y | 149 | CONFIG_CRC_CCITT=y |
| 126 | CONFIG_CRC16=y | 150 | CONFIG_CRC16=y |
| 127 | CONFIG_LIBCRC32C=y | 151 | CONFIG_LIBCRC32C=y |
diff --git a/arch/arm/configs/g3evm_defconfig b/arch/arm/configs/g3evm_defconfig deleted file mode 100644 index 4a336ab5a0c0..000000000000 --- a/arch/arm/configs/g3evm_defconfig +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | CONFIG_EXPERIMENTAL=y | ||
| 2 | CONFIG_SYSVIPC=y | ||
| 3 | CONFIG_IKCONFIG=y | ||
| 4 | CONFIG_IKCONFIG_PROC=y | ||
| 5 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 6 | CONFIG_BLK_DEV_INITRD=y | ||
| 7 | CONFIG_SLAB=y | ||
| 8 | # CONFIG_BLK_DEV_BSG is not set | ||
| 9 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 10 | # CONFIG_IOSCHED_CFQ is not set | ||
| 11 | CONFIG_ARCH_SHMOBILE=y | ||
| 12 | CONFIG_ARCH_SH7367=y | ||
| 13 | CONFIG_MACH_G3EVM=y | ||
| 14 | CONFIG_AEABI=y | ||
| 15 | # CONFIG_OABI_COMPAT is not set | ||
| 16 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 17 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 18 | CONFIG_CMDLINE="console=ttySC1,115200 earlyprintk=sh-sci.1,115200" | ||
| 19 | CONFIG_KEXEC=y | ||
| 20 | CONFIG_PM=y | ||
| 21 | # CONFIG_SUSPEND is not set | ||
| 22 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 23 | # CONFIG_FIRMWARE_IN_KERNEL is not set | ||
| 24 | CONFIG_MTD=y | ||
| 25 | CONFIG_MTD_CONCAT=y | ||
| 26 | CONFIG_MTD_PARTITIONS=y | ||
| 27 | CONFIG_MTD_CHAR=y | ||
| 28 | CONFIG_MTD_BLOCK=y | ||
| 29 | CONFIG_MTD_CFI=y | ||
| 30 | CONFIG_MTD_CFI_INTELEXT=y | ||
| 31 | CONFIG_MTD_PHYSMAP=y | ||
| 32 | CONFIG_MTD_NAND=y | ||
| 33 | # CONFIG_BLK_DEV is not set | ||
| 34 | # CONFIG_MISC_DEVICES is not set | ||
| 35 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
| 36 | # CONFIG_INPUT_KEYBOARD is not set | ||
| 37 | # CONFIG_INPUT_MOUSE is not set | ||
| 38 | # CONFIG_SERIO is not set | ||
| 39 | CONFIG_SERIAL_SH_SCI=y | ||
| 40 | CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | ||
| 41 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
| 42 | # CONFIG_LEGACY_PTYS is not set | ||
| 43 | # CONFIG_HW_RANDOM is not set | ||
| 44 | # CONFIG_HWMON is not set | ||
| 45 | # CONFIG_VGA_CONSOLE is not set | ||
| 46 | # CONFIG_HID_SUPPORT is not set | ||
| 47 | # CONFIG_USB_SUPPORT is not set | ||
| 48 | # CONFIG_DNOTIFY is not set | ||
| 49 | # CONFIG_INOTIFY_USER is not set | ||
| 50 | CONFIG_TMPFS=y | ||
| 51 | # CONFIG_MISC_FILESYSTEMS is not set | ||
| 52 | CONFIG_MAGIC_SYSRQ=y | ||
| 53 | CONFIG_DEBUG_KERNEL=y | ||
| 54 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
| 55 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 56 | # CONFIG_FTRACE is not set | ||
| 57 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/arm/configs/g4evm_defconfig b/arch/arm/configs/g4evm_defconfig deleted file mode 100644 index 21c6d0307bc3..000000000000 --- a/arch/arm/configs/g4evm_defconfig +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | CONFIG_EXPERIMENTAL=y | ||
| 2 | CONFIG_SYSVIPC=y | ||
| 3 | CONFIG_IKCONFIG=y | ||
| 4 | CONFIG_IKCONFIG_PROC=y | ||
| 5 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 6 | CONFIG_BLK_DEV_INITRD=y | ||
| 7 | CONFIG_SLAB=y | ||
| 8 | # CONFIG_BLK_DEV_BSG is not set | ||
| 9 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 10 | # CONFIG_IOSCHED_CFQ is not set | ||
| 11 | CONFIG_ARCH_SHMOBILE=y | ||
| 12 | CONFIG_ARCH_SH7377=y | ||
| 13 | CONFIG_MACH_G4EVM=y | ||
| 14 | CONFIG_AEABI=y | ||
| 15 | # CONFIG_OABI_COMPAT is not set | ||
| 16 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 17 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 18 | CONFIG_CMDLINE="console=ttySC4,115200 earlyprintk=sh-sci.4,115200" | ||
| 19 | CONFIG_KEXEC=y | ||
| 20 | CONFIG_PM=y | ||
| 21 | # CONFIG_SUSPEND is not set | ||
| 22 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 23 | # CONFIG_FIRMWARE_IN_KERNEL is not set | ||
| 24 | CONFIG_MTD=y | ||
| 25 | CONFIG_MTD_CONCAT=y | ||
| 26 | CONFIG_MTD_PARTITIONS=y | ||
| 27 | CONFIG_MTD_CHAR=y | ||
| 28 | CONFIG_MTD_BLOCK=y | ||
| 29 | CONFIG_MTD_CFI=y | ||
| 30 | CONFIG_MTD_CFI_INTELEXT=y | ||
| 31 | CONFIG_MTD_PHYSMAP=y | ||
| 32 | CONFIG_MTD_NAND=y | ||
| 33 | # CONFIG_BLK_DEV is not set | ||
| 34 | # CONFIG_MISC_DEVICES is not set | ||
| 35 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
| 36 | # CONFIG_INPUT_KEYBOARD is not set | ||
| 37 | # CONFIG_INPUT_MOUSE is not set | ||
| 38 | # CONFIG_SERIO is not set | ||
| 39 | CONFIG_SERIAL_SH_SCI=y | ||
| 40 | CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | ||
| 41 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
| 42 | # CONFIG_LEGACY_PTYS is not set | ||
| 43 | # CONFIG_HW_RANDOM is not set | ||
| 44 | # CONFIG_HWMON is not set | ||
| 45 | # CONFIG_VGA_CONSOLE is not set | ||
| 46 | # CONFIG_HID_SUPPORT is not set | ||
| 47 | # CONFIG_USB_SUPPORT is not set | ||
| 48 | # CONFIG_DNOTIFY is not set | ||
| 49 | # CONFIG_INOTIFY_USER is not set | ||
| 50 | CONFIG_TMPFS=y | ||
| 51 | # CONFIG_MISC_FILESYSTEMS is not set | ||
| 52 | CONFIG_MAGIC_SYSRQ=y | ||
| 53 | CONFIG_DEBUG_KERNEL=y | ||
| 54 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
| 55 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 56 | # CONFIG_FTRACE is not set | ||
| 57 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig index f71302c3ac33..ebbfb27e0e74 100644 --- a/arch/arm/configs/imx_v4_v5_defconfig +++ b/arch/arm/configs/imx_v4_v5_defconfig | |||
| @@ -123,6 +123,7 @@ CONFIG_REGULATOR_MC13892=y | |||
| 123 | CONFIG_MEDIA_SUPPORT=y | 123 | CONFIG_MEDIA_SUPPORT=y |
| 124 | CONFIG_VIDEO_DEV=y | 124 | CONFIG_VIDEO_DEV=y |
| 125 | CONFIG_V4L_PLATFORM_DRIVERS=y | 125 | CONFIG_V4L_PLATFORM_DRIVERS=y |
| 126 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
| 126 | CONFIG_SOC_CAMERA=y | 127 | CONFIG_SOC_CAMERA=y |
| 127 | CONFIG_SOC_CAMERA_OV2640=y | 128 | CONFIG_SOC_CAMERA_OV2640=y |
| 128 | CONFIG_VIDEO_MX2=y | 129 | CONFIG_VIDEO_MX2=y |
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig index 44f117aab52c..69667133321f 100644 --- a/arch/arm/configs/imx_v6_v7_defconfig +++ b/arch/arm/configs/imx_v6_v7_defconfig | |||
| @@ -145,15 +145,18 @@ CONFIG_GPIO_MC9S08DZ60=y | |||
| 145 | # CONFIG_HWMON is not set | 145 | # CONFIG_HWMON is not set |
| 146 | CONFIG_WATCHDOG=y | 146 | CONFIG_WATCHDOG=y |
| 147 | CONFIG_IMX2_WDT=y | 147 | CONFIG_IMX2_WDT=y |
| 148 | CONFIG_MFD_DA9052_I2C=y | ||
| 148 | CONFIG_MFD_MC13XXX_SPI=y | 149 | CONFIG_MFD_MC13XXX_SPI=y |
| 149 | CONFIG_MFD_MC13XXX_I2C=y | 150 | CONFIG_MFD_MC13XXX_I2C=y |
| 150 | CONFIG_REGULATOR=y | 151 | CONFIG_REGULATOR=y |
| 151 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | 152 | CONFIG_REGULATOR_FIXED_VOLTAGE=y |
| 153 | CONFIG_REGULATOR_DA9052=y | ||
| 152 | CONFIG_REGULATOR_MC13783=y | 154 | CONFIG_REGULATOR_MC13783=y |
| 153 | CONFIG_REGULATOR_MC13892=y | 155 | CONFIG_REGULATOR_MC13892=y |
| 154 | CONFIG_MEDIA_SUPPORT=y | 156 | CONFIG_MEDIA_SUPPORT=y |
| 155 | CONFIG_VIDEO_DEV=y | 157 | CONFIG_VIDEO_DEV=y |
| 156 | CONFIG_V4L_PLATFORM_DRIVERS=y | 158 | CONFIG_V4L_PLATFORM_DRIVERS=y |
| 159 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
| 157 | CONFIG_SOC_CAMERA=y | 160 | CONFIG_SOC_CAMERA=y |
| 158 | CONFIG_SOC_CAMERA_OV2640=y | 161 | CONFIG_SOC_CAMERA_OV2640=y |
| 159 | CONFIG_VIDEO_MX3=y | 162 | CONFIG_VIDEO_MX3=y |
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig index 74eee0c78f28..93f3794ba5cb 100644 --- a/arch/arm/configs/kirkwood_defconfig +++ b/arch/arm/configs/kirkwood_defconfig | |||
| @@ -27,6 +27,14 @@ CONFIG_MACH_GOFLEXNET_DT=y | |||
| 27 | CONFIG_MACH_LSXL_DT=y | 27 | CONFIG_MACH_LSXL_DT=y |
| 28 | CONFIG_MACH_IOMEGA_IX2_200_DT=y | 28 | CONFIG_MACH_IOMEGA_IX2_200_DT=y |
| 29 | CONFIG_MACH_KM_KIRKWOOD_DT=y | 29 | CONFIG_MACH_KM_KIRKWOOD_DT=y |
| 30 | CONFIG_MACH_INETSPACE_V2_DT=y | ||
| 31 | CONFIG_MACH_MPLCEC4_DT=y | ||
| 32 | CONFIG_MACH_NETSPACE_V2_DT=y | ||
| 33 | CONFIG_MACH_NETSPACE_MAX_V2_DT=y | ||
| 34 | CONFIG_MACH_NETSPACE_LITE_V2_DT=y | ||
| 35 | CONFIG_MACH_NETSPACE_MINI_V2_DT=y | ||
| 36 | CONFIG_MACH_OPENBLOCKS_A6_DT=y | ||
| 37 | CONFIG_MACH_TOPKICK_DT=y | ||
| 30 | CONFIG_MACH_TS219=y | 38 | CONFIG_MACH_TS219=y |
| 31 | CONFIG_MACH_TS41X=y | 39 | CONFIG_MACH_TS41X=y |
| 32 | CONFIG_MACH_DOCKSTAR=y | 40 | CONFIG_MACH_DOCKSTAR=y |
| @@ -40,6 +48,7 @@ CONFIG_MACH_D2NET_V2=y | |||
| 40 | CONFIG_MACH_NET2BIG_V2=y | 48 | CONFIG_MACH_NET2BIG_V2=y |
| 41 | CONFIG_MACH_NET5BIG_V2=y | 49 | CONFIG_MACH_NET5BIG_V2=y |
| 42 | CONFIG_MACH_T5325=y | 50 | CONFIG_MACH_T5325=y |
| 51 | CONFIG_MACH_NSA310_DT=y | ||
| 43 | # CONFIG_CPU_FEROCEON_OLD_ID is not set | 52 | # CONFIG_CPU_FEROCEON_OLD_ID is not set |
| 44 | CONFIG_PREEMPT=y | 53 | CONFIG_PREEMPT=y |
| 45 | CONFIG_AEABI=y | 54 | CONFIG_AEABI=y |
diff --git a/arch/arm/configs/kota2_defconfig b/arch/arm/configs/kota2_defconfig index b7735d6347ac..fa83db1ef0eb 100644 --- a/arch/arm/configs/kota2_defconfig +++ b/arch/arm/configs/kota2_defconfig | |||
| @@ -112,7 +112,6 @@ CONFIG_LEDS_GPIO=y | |||
| 112 | CONFIG_LEDS_RENESAS_TPU=y | 112 | CONFIG_LEDS_RENESAS_TPU=y |
| 113 | CONFIG_LEDS_TRIGGERS=y | 113 | CONFIG_LEDS_TRIGGERS=y |
| 114 | # CONFIG_DNOTIFY is not set | 114 | # CONFIG_DNOTIFY is not set |
| 115 | # CONFIG_INOTIFY_USER is not set | ||
| 116 | CONFIG_TMPFS=y | 115 | CONFIG_TMPFS=y |
| 117 | # CONFIG_MISC_FILESYSTEMS is not set | 116 | # CONFIG_MISC_FILESYSTEMS is not set |
| 118 | CONFIG_MAGIC_SYSRQ=y | 117 | CONFIG_MAGIC_SYSRQ=y |
diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig index c88b57886e79..afbae287436b 100644 --- a/arch/arm/configs/kzm9g_defconfig +++ b/arch/arm/configs/kzm9g_defconfig | |||
| @@ -74,6 +74,8 @@ CONFIG_KEYBOARD_GPIO=y | |||
| 74 | # CONFIG_INPUT_MOUSE is not set | 74 | # CONFIG_INPUT_MOUSE is not set |
| 75 | CONFIG_INPUT_TOUCHSCREEN=y | 75 | CONFIG_INPUT_TOUCHSCREEN=y |
| 76 | CONFIG_TOUCHSCREEN_ST1232=y | 76 | CONFIG_TOUCHSCREEN_ST1232=y |
| 77 | CONFIG_INPUT_MISC=y | ||
| 78 | CONFIG_INPUT_ADXL34X=y | ||
| 77 | # CONFIG_LEGACY_PTYS is not set | 79 | # CONFIG_LEGACY_PTYS is not set |
| 78 | CONFIG_SERIAL_SH_SCI=y | 80 | CONFIG_SERIAL_SH_SCI=y |
| 79 | CONFIG_SERIAL_SH_SCI_NR_UARTS=9 | 81 | CONFIG_SERIAL_SH_SCI_NR_UARTS=9 |
| @@ -119,8 +121,9 @@ CONFIG_DMADEVICES=y | |||
| 119 | CONFIG_SH_DMAE=y | 121 | CONFIG_SH_DMAE=y |
| 120 | CONFIG_ASYNC_TX_DMA=y | 122 | CONFIG_ASYNC_TX_DMA=y |
| 121 | CONFIG_STAGING=y | 123 | CONFIG_STAGING=y |
| 124 | CONFIG_SENSORS_AK8975=y | ||
| 125 | CONFIG_IIO=y | ||
| 122 | # CONFIG_DNOTIFY is not set | 126 | # CONFIG_DNOTIFY is not set |
| 123 | CONFIG_INOTIFY_USER=y | ||
| 124 | CONFIG_VFAT_FS=y | 127 | CONFIG_VFAT_FS=y |
| 125 | CONFIG_TMPFS=y | 128 | CONFIG_TMPFS=y |
| 126 | # CONFIG_MISC_FILESYSTEMS is not set | 129 | # CONFIG_MISC_FILESYSTEMS is not set |
diff --git a/arch/arm/configs/mackerel_defconfig b/arch/arm/configs/mackerel_defconfig index 306a2e2d3622..2098ce155542 100644 --- a/arch/arm/configs/mackerel_defconfig +++ b/arch/arm/configs/mackerel_defconfig | |||
| @@ -70,17 +70,31 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | |||
| 70 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | 70 | CONFIG_SERIAL_SH_SCI_CONSOLE=y |
| 71 | # CONFIG_LEGACY_PTYS is not set | 71 | # CONFIG_LEGACY_PTYS is not set |
| 72 | # CONFIG_HW_RANDOM is not set | 72 | # CONFIG_HW_RANDOM is not set |
| 73 | CONFIG_I2C=y | ||
| 74 | CONFIG_I2C_SH_MOBILE=y | ||
| 73 | # CONFIG_HWMON is not set | 75 | # CONFIG_HWMON is not set |
| 74 | # CONFIG_MFD_SUPPORT is not set | 76 | # CONFIG_MFD_SUPPORT is not set |
| 75 | CONFIG_FB=y | 77 | CONFIG_FB=y |
| 76 | CONFIG_FB_MODE_HELPERS=y | 78 | CONFIG_FB_MODE_HELPERS=y |
| 77 | CONFIG_FB_SH_MOBILE_LCDC=y | 79 | CONFIG_FB_SH_MOBILE_LCDC=y |
| 80 | CONFIG_FB_SH_MOBILE_HDMI=y | ||
| 78 | CONFIG_FRAMEBUFFER_CONSOLE=y | 81 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 79 | CONFIG_LOGO=y | 82 | CONFIG_LOGO=y |
| 80 | # CONFIG_LOGO_LINUX_MONO is not set | 83 | # CONFIG_LOGO_LINUX_MONO is not set |
| 81 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 84 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 82 | # CONFIG_HID_SUPPORT is not set | 85 | # CONFIG_SND_SUPPORT_OLD_API is not set |
| 83 | # CONFIG_USB_SUPPORT is not set | 86 | # CONFIG_SND_VERBOSE_PROCFS is not set |
| 87 | # CONFIG_SND_DRIVERS is not set | ||
| 88 | # CONFIG_SND_ARM is not set | ||
| 89 | CONFIG_SND_SOC_SH4_FSI=y | ||
| 90 | CONFIG_USB=y | ||
| 91 | CONFIG_USB_RENESAS_USBHS_HCD=y | ||
| 92 | CONFIG_USB_RENESAS_USBHS=y | ||
| 93 | CONFIG_USB_STORAGE=y | ||
| 94 | CONFIG_USB_GADGET=y | ||
| 95 | CONFIG_USB_RENESAS_USBHS_UDC=y | ||
| 96 | CONFIG_DMADEVICES=y | ||
| 97 | CONFIG_SH_DMAE=y | ||
| 84 | CONFIG_EXT2_FS=y | 98 | CONFIG_EXT2_FS=y |
| 85 | CONFIG_EXT2_FS_XATTR=y | 99 | CONFIG_EXT2_FS_XATTR=y |
| 86 | CONFIG_EXT2_FS_POSIX_ACL=y | 100 | CONFIG_EXT2_FS_POSIX_ACL=y |
| @@ -91,7 +105,6 @@ CONFIG_EXT3_FS=y | |||
| 91 | CONFIG_EXT3_FS_POSIX_ACL=y | 105 | CONFIG_EXT3_FS_POSIX_ACL=y |
| 92 | CONFIG_EXT3_FS_SECURITY=y | 106 | CONFIG_EXT3_FS_SECURITY=y |
| 93 | # CONFIG_DNOTIFY is not set | 107 | # CONFIG_DNOTIFY is not set |
| 94 | # CONFIG_INOTIFY_USER is not set | ||
| 95 | CONFIG_MSDOS_FS=y | 108 | CONFIG_MSDOS_FS=y |
| 96 | CONFIG_VFAT_FS=y | 109 | CONFIG_VFAT_FS=y |
| 97 | CONFIG_TMPFS=y | 110 | CONFIG_TMPFS=y |
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig index f79b55c512d0..5b8215f424c5 100644 --- a/arch/arm/configs/marzen_defconfig +++ b/arch/arm/configs/marzen_defconfig | |||
| @@ -71,6 +71,8 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y | |||
| 71 | # CONFIG_HW_RANDOM is not set | 71 | # CONFIG_HW_RANDOM is not set |
| 72 | CONFIG_I2C=y | 72 | CONFIG_I2C=y |
| 73 | CONFIG_I2C_RCAR=y | 73 | CONFIG_I2C_RCAR=y |
| 74 | CONFIG_SPI=y | ||
| 75 | CONFIG_SPI_SH_HSPI=y | ||
| 74 | CONFIG_GPIO_SYSFS=y | 76 | CONFIG_GPIO_SYSFS=y |
| 75 | # CONFIG_HWMON is not set | 77 | # CONFIG_HWMON is not set |
| 76 | CONFIG_THERMAL=y | 78 | CONFIG_THERMAL=y |
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index cd5e6ba9a54d..952430d9e2d9 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
| 2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_HIGH_RES_TIMERS=y | ||
| 3 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
| 4 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 5 | CONFIG_EXPERT=y | 6 | CONFIG_EXPERT=y |
| 6 | # CONFIG_SLUB_DEBUG is not set | 7 | # CONFIG_SLUB_DEBUG is not set |
| 7 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
| @@ -10,6 +11,8 @@ CONFIG_KPROBES=y | |||
| 10 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
| 11 | CONFIG_MODULE_UNLOAD=y | 12 | CONFIG_MODULE_UNLOAD=y |
| 12 | # CONFIG_BLK_DEV_BSG is not set | 13 | # CONFIG_BLK_DEV_BSG is not set |
| 14 | CONFIG_PARTITION_ADVANCED=y | ||
| 15 | CONFIG_BSD_DISKLABEL=y | ||
| 13 | CONFIG_ARCH_ORION5X=y | 16 | CONFIG_ARCH_ORION5X=y |
| 14 | CONFIG_MACH_DB88F5281=y | 17 | CONFIG_MACH_DB88F5281=y |
| 15 | CONFIG_MACH_RD88F5182=y | 18 | CONFIG_MACH_RD88F5182=y |
| @@ -24,7 +27,7 @@ CONFIG_MACH_TS409=y | |||
| 24 | CONFIG_MACH_WRT350N_V2=y | 27 | CONFIG_MACH_WRT350N_V2=y |
| 25 | CONFIG_MACH_TS78XX=y | 28 | CONFIG_MACH_TS78XX=y |
| 26 | CONFIG_MACH_MV2120=y | 29 | CONFIG_MACH_MV2120=y |
| 27 | CONFIG_MACH_EDMINI_V2=y | 30 | CONFIG_MACH_EDMINI_V2_DT=y |
| 28 | CONFIG_MACH_D2NET=y | 31 | CONFIG_MACH_D2NET=y |
| 29 | CONFIG_MACH_BIGDISK=y | 32 | CONFIG_MACH_BIGDISK=y |
| 30 | CONFIG_MACH_NET2BIG=y | 33 | CONFIG_MACH_NET2BIG=y |
| @@ -33,17 +36,13 @@ CONFIG_MACH_WNR854T=y | |||
| 33 | CONFIG_MACH_RD88F5181L_GE=y | 36 | CONFIG_MACH_RD88F5181L_GE=y |
| 34 | CONFIG_MACH_RD88F5181L_FXO=y | 37 | CONFIG_MACH_RD88F5181L_FXO=y |
| 35 | CONFIG_MACH_RD88F6183AP_GE=y | 38 | CONFIG_MACH_RD88F6183AP_GE=y |
| 36 | CONFIG_NO_HZ=y | ||
| 37 | CONFIG_HIGH_RES_TIMERS=y | ||
| 38 | CONFIG_PREEMPT=y | 39 | CONFIG_PREEMPT=y |
| 39 | CONFIG_AEABI=y | 40 | CONFIG_AEABI=y |
| 40 | CONFIG_LEDS=y | ||
| 41 | CONFIG_LEDS_CPU=y | ||
| 42 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 41 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 43 | CONFIG_ZBOOT_ROM_BSS=0x0 | 42 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 43 | CONFIG_ARM_APPENDED_DTB=y | ||
| 44 | CONFIG_FPE_NWFPE=y | 44 | CONFIG_FPE_NWFPE=y |
| 45 | CONFIG_VFP=y | 45 | CONFIG_VFP=y |
| 46 | # CONFIG_SUSPEND is not set | ||
| 47 | CONFIG_NET=y | 46 | CONFIG_NET=y |
| 48 | CONFIG_PACKET=y | 47 | CONFIG_PACKET=y |
| 49 | CONFIG_UNIX=y | 48 | CONFIG_UNIX=y |
| @@ -54,13 +53,10 @@ CONFIG_IP_PNP_DHCP=y | |||
| 54 | CONFIG_IP_PNP_BOOTP=y | 53 | CONFIG_IP_PNP_BOOTP=y |
| 55 | # CONFIG_IPV6 is not set | 54 | # CONFIG_IPV6 is not set |
| 56 | CONFIG_NET_DSA=y | 55 | CONFIG_NET_DSA=y |
| 57 | CONFIG_NET_DSA_MV88E6131=y | ||
| 58 | CONFIG_NET_DSA_MV88E6123_61_65=y | ||
| 59 | CONFIG_NET_PKTGEN=m | 56 | CONFIG_NET_PKTGEN=m |
| 60 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 57 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 61 | # CONFIG_FIRMWARE_IN_KERNEL is not set | 58 | # CONFIG_FIRMWARE_IN_KERNEL is not set |
| 62 | CONFIG_MTD=y | 59 | CONFIG_MTD=y |
| 63 | CONFIG_MTD_PARTITIONS=y | ||
| 64 | CONFIG_MTD_CMDLINE_PARTS=y | 60 | CONFIG_MTD_CMDLINE_PARTS=y |
| 65 | CONFIG_MTD_CHAR=y | 61 | CONFIG_MTD_CHAR=y |
| 66 | CONFIG_MTD_BLOCK=y | 62 | CONFIG_MTD_BLOCK=y |
| @@ -82,12 +78,11 @@ CONFIG_CHR_DEV_SG=m | |||
| 82 | CONFIG_ATA=y | 78 | CONFIG_ATA=y |
| 83 | CONFIG_SATA_MV=y | 79 | CONFIG_SATA_MV=y |
| 84 | CONFIG_NETDEVICES=y | 80 | CONFIG_NETDEVICES=y |
| 85 | CONFIG_MARVELL_PHY=y | ||
| 86 | CONFIG_NET_ETHERNET=y | ||
| 87 | CONFIG_MII=y | 81 | CONFIG_MII=y |
| 88 | CONFIG_NET_PCI=y | 82 | CONFIG_NET_DSA_MV88E6131=y |
| 83 | CONFIG_NET_DSA_MV88E6123_61_65=y | ||
| 89 | CONFIG_MV643XX_ETH=y | 84 | CONFIG_MV643XX_ETH=y |
| 90 | # CONFIG_NETDEV_10000 is not set | 85 | CONFIG_MARVELL_PHY=y |
| 91 | # CONFIG_INPUT_MOUSEDEV is not set | 86 | # CONFIG_INPUT_MOUSEDEV is not set |
| 92 | CONFIG_INPUT_EVDEV=y | 87 | CONFIG_INPUT_EVDEV=y |
| 93 | # CONFIG_KEYBOARD_ATKBD is not set | 88 | # CONFIG_KEYBOARD_ATKBD is not set |
| @@ -95,11 +90,12 @@ CONFIG_KEYBOARD_GPIO=y | |||
| 95 | # CONFIG_INPUT_MOUSE is not set | 90 | # CONFIG_INPUT_MOUSE is not set |
| 96 | # CONFIG_SERIO is not set | 91 | # CONFIG_SERIO is not set |
| 97 | # CONFIG_VT is not set | 92 | # CONFIG_VT is not set |
| 93 | CONFIG_LEGACY_PTY_COUNT=16 | ||
| 98 | CONFIG_SERIAL_8250=y | 94 | CONFIG_SERIAL_8250=y |
| 99 | CONFIG_SERIAL_8250_CONSOLE=y | 95 | CONFIG_SERIAL_8250_CONSOLE=y |
| 100 | # CONFIG_SERIAL_8250_PCI is not set | 96 | # CONFIG_SERIAL_8250_PCI is not set |
| 101 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | 97 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 |
| 102 | CONFIG_LEGACY_PTY_COUNT=16 | 98 | CONFIG_SERIAL_OF_PLATFORM=y |
| 103 | CONFIG_HW_RANDOM_TIMERIOMEM=m | 99 | CONFIG_HW_RANDOM_TIMERIOMEM=m |
| 104 | CONFIG_I2C=y | 100 | CONFIG_I2C=y |
| 105 | # CONFIG_I2C_COMPAT is not set | 101 | # CONFIG_I2C_COMPAT is not set |
| @@ -109,10 +105,8 @@ CONFIG_GPIO_SYSFS=y | |||
| 109 | CONFIG_SENSORS_LM75=y | 105 | CONFIG_SENSORS_LM75=y |
| 110 | # CONFIG_VGA_ARB is not set | 106 | # CONFIG_VGA_ARB is not set |
| 111 | CONFIG_USB=y | 107 | CONFIG_USB=y |
| 112 | CONFIG_USB_DEVICEFS=y | ||
| 113 | CONFIG_USB_EHCI_HCD=y | 108 | CONFIG_USB_EHCI_HCD=y |
| 114 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 109 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
| 115 | CONFIG_USB_EHCI_TT_NEWSCHED=y | ||
| 116 | CONFIG_USB_PRINTER=y | 110 | CONFIG_USB_PRINTER=y |
| 117 | CONFIG_USB_STORAGE=y | 111 | CONFIG_USB_STORAGE=y |
| 118 | CONFIG_USB_STORAGE_DATAFAB=y | 112 | CONFIG_USB_STORAGE_DATAFAB=y |
| @@ -140,7 +134,6 @@ CONFIG_EXT2_FS=y | |||
| 140 | CONFIG_EXT3_FS=y | 134 | CONFIG_EXT3_FS=y |
| 141 | # CONFIG_EXT3_FS_XATTR is not set | 135 | # CONFIG_EXT3_FS_XATTR is not set |
| 142 | CONFIG_EXT4_FS=m | 136 | CONFIG_EXT4_FS=m |
| 143 | CONFIG_INOTIFY=y | ||
| 144 | CONFIG_ISO9660_FS=m | 137 | CONFIG_ISO9660_FS=m |
| 145 | CONFIG_JOLIET=y | 138 | CONFIG_JOLIET=y |
| 146 | CONFIG_UDF_FS=m | 139 | CONFIG_UDF_FS=m |
| @@ -150,25 +143,18 @@ CONFIG_TMPFS=y | |||
| 150 | CONFIG_JFFS2_FS=y | 143 | CONFIG_JFFS2_FS=y |
| 151 | CONFIG_CRAMFS=y | 144 | CONFIG_CRAMFS=y |
| 152 | CONFIG_NFS_FS=y | 145 | CONFIG_NFS_FS=y |
| 153 | CONFIG_NFS_V3=y | ||
| 154 | CONFIG_ROOT_NFS=y | 146 | CONFIG_ROOT_NFS=y |
| 155 | CONFIG_PARTITION_ADVANCED=y | ||
| 156 | CONFIG_BSD_DISKLABEL=y | ||
| 157 | CONFIG_NLS_CODEPAGE_437=y | 147 | CONFIG_NLS_CODEPAGE_437=y |
| 158 | CONFIG_NLS_CODEPAGE_850=y | 148 | CONFIG_NLS_CODEPAGE_850=y |
| 159 | CONFIG_NLS_ISO8859_1=y | 149 | CONFIG_NLS_ISO8859_1=y |
| 160 | CONFIG_NLS_ISO8859_2=y | 150 | CONFIG_NLS_ISO8859_2=y |
| 161 | CONFIG_MAGIC_SYSRQ=y | 151 | CONFIG_MAGIC_SYSRQ=y |
| 162 | CONFIG_DEBUG_FS=y | 152 | CONFIG_DEBUG_FS=y |
| 163 | CONFIG_DEBUG_KERNEL=y | ||
| 164 | # CONFIG_DEBUG_BUGVERBOSE is not set | 153 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 165 | CONFIG_DEBUG_INFO=y | 154 | CONFIG_DEBUG_INFO=y |
| 166 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 167 | CONFIG_LATENCYTOP=y | 155 | CONFIG_LATENCYTOP=y |
| 168 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
| 169 | # CONFIG_FTRACE is not set | 156 | # CONFIG_FTRACE is not set |
| 170 | CONFIG_DEBUG_USER=y | 157 | CONFIG_DEBUG_USER=y |
| 171 | CONFIG_DEBUG_ERRORS=y | ||
| 172 | CONFIG_DEBUG_LL=y | 158 | CONFIG_DEBUG_LL=y |
| 173 | CONFIG_CRYPTO_CBC=m | 159 | CONFIG_CRYPTO_CBC=m |
| 174 | CONFIG_CRYPTO_ECB=m | 160 | CONFIG_CRYPTO_ECB=m |
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/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 32ee3f895967..d4f4dbfc0e59 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
| @@ -11,39 +11,40 @@ | |||
| 11 | * is licensed "as is" without any warranty of any kind, whether express | 11 | * is licensed "as is" without any warranty of any kind, whether express |
| 12 | * or implied. | 12 | * or implied. |
| 13 | */ | 13 | */ |
| 14 | #include <linux/kernel.h> | ||
| 15 | #include <linux/init.h> | ||
| 16 | #include <linux/console.h> | 14 | #include <linux/console.h> |
| 15 | #include <linux/delay.h> | ||
| 16 | #include <linux/gpio.h> | ||
| 17 | #include <linux/gpio_keys.h> | ||
| 18 | #include <linux/init.h> | ||
| 19 | #include <linux/kernel.h> | ||
| 17 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
| 18 | #include <linux/i2c/at24.h> | 21 | #include <linux/i2c/at24.h> |
| 19 | #include <linux/i2c/pca953x.h> | 22 | #include <linux/i2c/pca953x.h> |
| 20 | #include <linux/input.h> | 23 | #include <linux/input.h> |
| 24 | #include <linux/input/tps6507x-ts.h> | ||
| 21 | #include <linux/mfd/tps6507x.h> | 25 | #include <linux/mfd/tps6507x.h> |
| 22 | #include <linux/gpio.h> | ||
| 23 | #include <linux/gpio_keys.h> | ||
| 24 | #include <linux/platform_device.h> | ||
| 25 | #include <linux/mtd/mtd.h> | 26 | #include <linux/mtd/mtd.h> |
| 26 | #include <linux/mtd/nand.h> | 27 | #include <linux/mtd/nand.h> |
| 27 | #include <linux/mtd/partitions.h> | 28 | #include <linux/mtd/partitions.h> |
| 28 | #include <linux/mtd/physmap.h> | 29 | #include <linux/mtd/physmap.h> |
| 30 | #include <linux/platform_device.h> | ||
| 31 | #include <linux/platform_data/mtd-davinci.h> | ||
| 32 | #include <linux/platform_data/mtd-davinci-aemif.h> | ||
| 33 | #include <linux/platform_data/spi-davinci.h> | ||
| 34 | #include <linux/platform_data/uio_pruss.h> | ||
| 29 | #include <linux/regulator/machine.h> | 35 | #include <linux/regulator/machine.h> |
| 30 | #include <linux/regulator/tps6507x.h> | 36 | #include <linux/regulator/tps6507x.h> |
| 31 | #include <linux/input/tps6507x-ts.h> | ||
| 32 | #include <linux/spi/spi.h> | 37 | #include <linux/spi/spi.h> |
| 33 | #include <linux/spi/flash.h> | 38 | #include <linux/spi/flash.h> |
| 34 | #include <linux/delay.h> | ||
| 35 | #include <linux/wl12xx.h> | 39 | #include <linux/wl12xx.h> |
| 36 | 40 | ||
| 37 | #include <asm/mach-types.h> | ||
| 38 | #include <asm/mach/arch.h> | ||
| 39 | #include <asm/system_info.h> | ||
| 40 | |||
| 41 | #include <mach/cp_intc.h> | 41 | #include <mach/cp_intc.h> |
| 42 | #include <mach/da8xx.h> | 42 | #include <mach/da8xx.h> |
| 43 | #include <linux/platform_data/mtd-davinci.h> | ||
| 44 | #include <mach/mux.h> | 43 | #include <mach/mux.h> |
| 45 | #include <linux/platform_data/mtd-davinci-aemif.h> | 44 | |
| 46 | #include <linux/platform_data/spi-davinci.h> | 45 | #include <asm/mach-types.h> |
| 46 | #include <asm/mach/arch.h> | ||
| 47 | #include <asm/system_info.h> | ||
| 47 | 48 | ||
| 48 | #include <media/tvp514x.h> | 49 | #include <media/tvp514x.h> |
| 49 | #include <media/adv7343.h> | 50 | #include <media/adv7343.h> |
| @@ -1516,6 +1517,11 @@ static __init void da850_evm_init(void) | |||
| 1516 | pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", | 1517 | pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", |
| 1517 | ret); | 1518 | ret); |
| 1518 | 1519 | ||
| 1520 | ret = da8xx_register_uio_pruss(); | ||
| 1521 | if (ret) | ||
| 1522 | pr_warn("da850_evm_init: pruss initialization failed: %d\n", | ||
| 1523 | ret); | ||
| 1524 | |||
| 1519 | /* Handle board specific muxing for LCD here */ | 1525 | /* Handle board specific muxing for LCD here */ |
| 1520 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); | 1526 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); |
| 1521 | if (ret) | 1527 | if (ret) |
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 | ||
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 485ce6c477f9..c606080b5dfa 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
| @@ -100,6 +100,7 @@ static struct regulator_consumer_supply __initdata ldo3_consumer[] = { | |||
| 100 | REGULATOR_SUPPLY("vddcore", "s5p-mipi-csis.0"), /* MIPI */ | 100 | REGULATOR_SUPPLY("vddcore", "s5p-mipi-csis.0"), /* MIPI */ |
| 101 | REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ | 101 | REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ |
| 102 | REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ | 102 | REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ |
| 103 | REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"), /* OTG */ | ||
| 103 | }; | 104 | }; |
| 104 | static struct regulator_consumer_supply __initdata ldo6_consumer[] = { | 105 | static struct regulator_consumer_supply __initdata ldo6_consumer[] = { |
| 105 | REGULATOR_SUPPLY("vddio", "s5p-mipi-csis.0"), /* MIPI */ | 106 | REGULATOR_SUPPLY("vddio", "s5p-mipi-csis.0"), /* MIPI */ |
| @@ -110,6 +111,7 @@ static struct regulator_consumer_supply __initdata ldo7_consumer[] = { | |||
| 110 | static struct regulator_consumer_supply __initdata ldo8_consumer[] = { | 111 | static struct regulator_consumer_supply __initdata ldo8_consumer[] = { |
| 111 | REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ | 112 | REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ |
| 112 | REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ | 113 | REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ |
| 114 | REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"), /* OTG */ | ||
| 113 | }; | 115 | }; |
| 114 | static struct regulator_consumer_supply __initdata ldo9_consumer[] = { | 116 | static struct regulator_consumer_supply __initdata ldo9_consumer[] = { |
| 115 | REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ | 117 | REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index b74422679126..318bd8df7fcc 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
| @@ -51,6 +51,10 @@ | |||
| 51 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) | 51 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) |
| 52 | #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25) | 52 | #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25) |
| 53 | 53 | ||
| 54 | #define VERSION_MASK 0x7 | ||
| 55 | #define MOTHERBOARD_SHIFT 4 | ||
| 56 | #define EXPBOARD_SHIFT 0 | ||
| 57 | |||
| 54 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) | 58 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) |
| 55 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) | 59 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) |
| 56 | #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29) | 60 | #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29) |
| @@ -237,7 +241,7 @@ static struct mx2_camera_platform_data visstrim_camera = { | |||
| 237 | static phys_addr_t mx2_camera_base __initdata; | 241 | static phys_addr_t mx2_camera_base __initdata; |
| 238 | #define MX2_CAMERA_BUF_SIZE SZ_8M | 242 | #define MX2_CAMERA_BUF_SIZE SZ_8M |
| 239 | 243 | ||
| 240 | static void __init visstrim_camera_init(void) | 244 | static void __init visstrim_analog_camera_init(void) |
| 241 | { | 245 | { |
| 242 | struct platform_device *pdev; | 246 | struct platform_device *pdev; |
| 243 | int dma; | 247 | int dma; |
| @@ -474,6 +478,27 @@ static void __init visstrim_deinterlace_init(void) | |||
| 474 | return; | 478 | return; |
| 475 | } | 479 | } |
| 476 | 480 | ||
| 481 | /* Emma-PrP for format conversion */ | ||
| 482 | static void __init visstrim_emmaprp_init(void) | ||
| 483 | { | ||
| 484 | struct platform_device *pdev; | ||
| 485 | int dma; | ||
| 486 | |||
| 487 | pdev = imx27_add_mx2_emmaprp(); | ||
| 488 | if (IS_ERR(pdev)) | ||
| 489 | return; | ||
| 490 | |||
| 491 | /* | ||
| 492 | * Use the same memory area as the analog camera since both | ||
| 493 | * devices are, by nature, exclusive. | ||
| 494 | */ | ||
| 495 | dma = dma_declare_coherent_memory(&pdev->dev, | ||
| 496 | mx2_camera_base, mx2_camera_base, | ||
| 497 | MX2_CAMERA_BUF_SIZE, | ||
| 498 | DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); | ||
| 499 | if (!(dma & DMA_MEMORY_MAP)) | ||
| 500 | pr_err("Failed to declare memory for emmaprp\n"); | ||
| 501 | } | ||
| 477 | 502 | ||
| 478 | /* Audio */ | 503 | /* Audio */ |
| 479 | static const struct snd_mx27vis_platform_data snd_mx27vis_pdata __initconst = { | 504 | static const struct snd_mx27vis_platform_data snd_mx27vis_pdata __initconst = { |
| @@ -507,13 +532,14 @@ static void __init visstrim_m10_revision(void) | |||
| 507 | mo_version |= !gpio_get_value(MOTHERBOARD_BIT0); | 532 | mo_version |= !gpio_get_value(MOTHERBOARD_BIT0); |
| 508 | 533 | ||
| 509 | system_rev = 0x27000; | 534 | system_rev = 0x27000; |
| 510 | system_rev |= (mo_version << 4); | 535 | system_rev |= (mo_version << MOTHERBOARD_SHIFT); |
| 511 | system_rev |= exp_version; | 536 | system_rev |= (exp_version << EXPBOARD_SHIFT); |
| 512 | } | 537 | } |
| 513 | 538 | ||
| 514 | static void __init visstrim_m10_board_init(void) | 539 | static void __init visstrim_m10_board_init(void) |
| 515 | { | 540 | { |
| 516 | int ret; | 541 | int ret; |
| 542 | int mo_version; | ||
| 517 | 543 | ||
| 518 | imx27_soc_init(); | 544 | imx27_soc_init(); |
| 519 | visstrim_m10_revision(); | 545 | visstrim_m10_revision(); |
| @@ -546,8 +572,24 @@ static void __init visstrim_m10_board_init(void) | |||
| 546 | platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, | 572 | platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, |
| 547 | &iclink_tvp5150, sizeof(iclink_tvp5150)); | 573 | &iclink_tvp5150, sizeof(iclink_tvp5150)); |
| 548 | gpio_led_register_device(0, &visstrim_m10_led_data); | 574 | gpio_led_register_device(0, &visstrim_m10_led_data); |
| 549 | visstrim_deinterlace_init(); | 575 | |
| 550 | visstrim_camera_init(); | 576 | /* Use mother board version to decide what video devices we shall use */ |
| 577 | mo_version = (system_rev >> MOTHERBOARD_SHIFT) & VERSION_MASK; | ||
| 578 | if (mo_version & 0x1) { | ||
| 579 | visstrim_emmaprp_init(); | ||
| 580 | |||
| 581 | /* | ||
| 582 | * Despite not being used, tvp5150 must be | ||
| 583 | * powered on to avoid I2C problems. To minimize | ||
| 584 | * power consupmtion keep reset enabled. | ||
| 585 | */ | ||
| 586 | gpio_set_value(TVP5150_PWDN, 1); | ||
| 587 | ndelay(1); | ||
| 588 | gpio_set_value(TVP5150_RSTN, 0); | ||
| 589 | } else { | ||
| 590 | visstrim_deinterlace_init(); | ||
| 591 | visstrim_analog_camera_init(); | ||
| 592 | } | ||
| 551 | visstrim_coda_init(); | 593 | visstrim_coda_init(); |
| 552 | } | 594 | } |
| 553 | 595 | ||
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index 50bca5032b7e..d018ad4bcc3c 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig | |||
| @@ -130,6 +130,63 @@ config MACH_KM_KIRKWOOD_DT | |||
| 130 | Say 'Y' here if you want your kernel to support the | 130 | Say 'Y' here if you want your kernel to support the |
| 131 | Keymile Kirkwood Reference Desgin, using Flattened Device Tree. | 131 | Keymile Kirkwood Reference Desgin, using Flattened Device Tree. |
| 132 | 132 | ||
| 133 | config MACH_INETSPACE_V2_DT | ||
| 134 | bool "LaCie Internet Space v2 NAS (Flattened Device Tree)" | ||
| 135 | select ARCH_KIRKWOOD_DT | ||
| 136 | help | ||
| 137 | Say 'Y' here if you want your kernel to support the LaCie | ||
| 138 | Internet Space v2 NAS, using Flattened Device Tree. | ||
| 139 | |||
| 140 | config MACH_MPLCEC4_DT | ||
| 141 | bool "MPL CEC4 (Flattened Device Tree)" | ||
| 142 | select ARCH_KIRKWOOD_DT | ||
| 143 | help | ||
| 144 | Say 'Y' here if you want your kernel to support the | ||
| 145 | MPL CEC4 (Flattened Device Tree). | ||
| 146 | |||
| 147 | config MACH_NETSPACE_V2_DT | ||
| 148 | bool "LaCie Network Space v2 NAS (Flattened Device Tree)" | ||
| 149 | select ARCH_KIRKWOOD_DT | ||
| 150 | help | ||
| 151 | Say 'Y' here if you want your kernel to support the LaCie | ||
| 152 | Network Space v2 NAS, using Flattened Device Tree. | ||
| 153 | |||
| 154 | config MACH_NETSPACE_MAX_V2_DT | ||
| 155 | bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)" | ||
| 156 | select ARCH_KIRKWOOD_DT | ||
| 157 | help | ||
| 158 | Say 'Y' here if you want your kernel to support the LaCie | ||
| 159 | Network Space Max v2 NAS, using Flattened Device Tree. | ||
| 160 | |||
| 161 | config MACH_NETSPACE_LITE_V2_DT | ||
| 162 | bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)" | ||
| 163 | select ARCH_KIRKWOOD_DT | ||
| 164 | help | ||
| 165 | Say 'Y' here if you want your kernel to support the LaCie | ||
| 166 | Network Space Lite v2 NAS, using Flattened Device Tree. | ||
| 167 | |||
| 168 | config MACH_NETSPACE_MINI_V2_DT | ||
| 169 | bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)" | ||
| 170 | select ARCH_KIRKWOOD_DT | ||
| 171 | help | ||
| 172 | Say 'Y' here if you want your kernel to support the LaCie | ||
| 173 | Network Space Mini v2 NAS (aka SafeBox), using Flattened | ||
| 174 | Device Tree. | ||
| 175 | |||
| 176 | config MACH_OPENBLOCKS_A6_DT | ||
| 177 | bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" | ||
| 178 | select ARCH_KIRKWOOD_DT | ||
| 179 | help | ||
| 180 | Say 'Y' here if you want your kernel to support the | ||
| 181 | Plat'Home OpenBlocks A6 (Flattened Device Tree). | ||
| 182 | |||
| 183 | config MACH_TOPKICK_DT | ||
| 184 | bool "USI Topkick (Flattened Device Tree)" | ||
| 185 | select ARCH_KIRKWOOD_DT | ||
| 186 | help | ||
| 187 | Say 'Y' here if you want your kernel to support the | ||
| 188 | USI Topkick, using Flattened Device Tree | ||
| 189 | |||
| 133 | config MACH_TS219 | 190 | config MACH_TS219 |
| 134 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" | 191 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" |
| 135 | help | 192 | help |
| @@ -216,6 +273,14 @@ config MACH_T5325 | |||
| 216 | Say 'Y' here if you want your kernel to support the | 273 | Say 'Y' here if you want your kernel to support the |
| 217 | HP t5325 Thin Client. | 274 | HP t5325 Thin Client. |
| 218 | 275 | ||
| 276 | config MACH_NSA310_DT | ||
| 277 | bool "ZyXEL NSA-310 (Flattened Device Tree)" | ||
| 278 | select ARCH_KIRKWOOD_DT | ||
| 279 | select ARM_ATAG_DTB_COMPAT | ||
| 280 | help | ||
| 281 | Say 'Y' here if you want your kernel to support the | ||
| 282 | ZyXEL NSA-310 board (Flattened Device Tree). | ||
| 283 | |||
| 219 | endmenu | 284 | endmenu |
| 220 | 285 | ||
| 221 | endif | 286 | endif |
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index 294779f892d9..8d2e5a96247c 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile | |||
| @@ -31,3 +31,12 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o | |||
| 31 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o | 31 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o |
| 32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o | 32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o |
| 33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o | 33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o |
| 34 | obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o | ||
| 35 | obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o | ||
| 36 | obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o | ||
| 37 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o | ||
| 38 | obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o | ||
| 39 | obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o | ||
| 40 | obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o | ||
| 41 | obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o | ||
| 42 | obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o | ||
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index e75fbdb533de..375f7d88551c 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
| @@ -30,6 +30,8 @@ static struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { | |||
| 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), |
| 31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | 31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", |
| 32 | NULL), | 32 | NULL), |
| 33 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011100, "mv64xxx_i2c.1", | ||
| 34 | NULL), | ||
| 33 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | 35 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), |
| 34 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), | 36 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), |
| 35 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), | 37 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), |
| @@ -94,6 +96,25 @@ static void __init kirkwood_dt_init(void) | |||
| 94 | if (of_machine_is_compatible("keymile,km_kirkwood")) | 96 | if (of_machine_is_compatible("keymile,km_kirkwood")) |
| 95 | km_kirkwood_init(); | 97 | km_kirkwood_init(); |
| 96 | 98 | ||
| 99 | if (of_machine_is_compatible("lacie,inetspace_v2") || | ||
| 100 | of_machine_is_compatible("lacie,netspace_v2") || | ||
| 101 | of_machine_is_compatible("lacie,netspace_max_v2") || | ||
| 102 | of_machine_is_compatible("lacie,netspace_lite_v2") || | ||
| 103 | of_machine_is_compatible("lacie,netspace_mini_v2")) | ||
| 104 | ns2_init(); | ||
| 105 | |||
| 106 | if (of_machine_is_compatible("mpl,cec4")) | ||
| 107 | mplcec4_init(); | ||
| 108 | |||
| 109 | if (of_machine_is_compatible("plathome,openblocks-a6")) | ||
| 110 | openblocks_a6_init(); | ||
| 111 | |||
| 112 | if (of_machine_is_compatible("usi,topkick")) | ||
| 113 | usi_topkick_init(); | ||
| 114 | |||
| 115 | if (of_machine_is_compatible("zyxel,nsa310")) | ||
| 116 | nsa310_init(); | ||
| 117 | |||
| 97 | of_platform_populate(NULL, kirkwood_dt_match_table, | 118 | of_platform_populate(NULL, kirkwood_dt_match_table, |
| 98 | kirkwood_auxdata_lookup, NULL); | 119 | kirkwood_auxdata_lookup, NULL); |
| 99 | } | 120 | } |
| @@ -110,6 +131,15 @@ static const char * const kirkwood_dt_board_compat[] = { | |||
| 110 | "buffalo,lsxl", | 131 | "buffalo,lsxl", |
| 111 | "iom,ix2-200", | 132 | "iom,ix2-200", |
| 112 | "keymile,km_kirkwood", | 133 | "keymile,km_kirkwood", |
| 134 | "lacie,inetspace_v2", | ||
| 135 | "lacie,netspace_max_v2", | ||
| 136 | "lacie,netspace_v2", | ||
| 137 | "lacie,netspace_lite_v2", | ||
| 138 | "lacie,netspace_mini_v2", | ||
| 139 | "mpl,cec4", | ||
| 140 | "plathome,openblocks-a6", | ||
| 141 | "usi,topkick", | ||
| 142 | "zyxel,nsa310", | ||
| 113 | NULL | 143 | NULL |
| 114 | }; | 144 | }; |
| 115 | 145 | ||
diff --git a/arch/arm/mach-kirkwood/board-lsxl.c b/arch/arm/mach-kirkwood/board-lsxl.c index 64e5cc6b6d5f..7e18cad9b796 100644 --- a/arch/arm/mach-kirkwood/board-lsxl.c +++ b/arch/arm/mach-kirkwood/board-lsxl.c | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
| 19 | #include <linux/gpio-fan.h> | ||
| 20 | #include "common.h" | 19 | #include "common.h" |
| 21 | #include "mpp.h" | 20 | #include "mpp.h" |
| 22 | 21 | ||
| @@ -45,51 +44,6 @@ static unsigned int lsxl_mpp_config[] __initdata = { | |||
| 45 | 0 | 44 | 0 |
| 46 | }; | 45 | }; |
| 47 | 46 | ||
| 48 | #define LSXL_GPIO_FAN_HIGH 18 | ||
| 49 | #define LSXL_GPIO_FAN_LOW 19 | ||
| 50 | #define LSXL_GPIO_FAN_LOCK 40 | ||
| 51 | |||
| 52 | static struct gpio_fan_alarm lsxl_alarm = { | ||
| 53 | .gpio = LSXL_GPIO_FAN_LOCK, | ||
| 54 | }; | ||
| 55 | |||
| 56 | static struct gpio_fan_speed lsxl_speeds[] = { | ||
| 57 | { | ||
| 58 | .rpm = 0, | ||
| 59 | .ctrl_val = 3, | ||
| 60 | }, { | ||
| 61 | .rpm = 1500, | ||
| 62 | .ctrl_val = 1, | ||
| 63 | }, { | ||
| 64 | .rpm = 3250, | ||
| 65 | .ctrl_val = 2, | ||
| 66 | }, { | ||
| 67 | .rpm = 5000, | ||
| 68 | .ctrl_val = 0, | ||
| 69 | } | ||
| 70 | }; | ||
| 71 | |||
| 72 | static int lsxl_gpio_list[] = { | ||
| 73 | LSXL_GPIO_FAN_HIGH, LSXL_GPIO_FAN_LOW, | ||
| 74 | }; | ||
| 75 | |||
| 76 | static struct gpio_fan_platform_data lsxl_fan_data = { | ||
| 77 | .num_ctrl = ARRAY_SIZE(lsxl_gpio_list), | ||
| 78 | .ctrl = lsxl_gpio_list, | ||
| 79 | .alarm = &lsxl_alarm, | ||
| 80 | .num_speed = ARRAY_SIZE(lsxl_speeds), | ||
| 81 | .speed = lsxl_speeds, | ||
| 82 | }; | ||
| 83 | |||
| 84 | static struct platform_device lsxl_fan_device = { | ||
| 85 | .name = "gpio-fan", | ||
| 86 | .id = -1, | ||
| 87 | .num_resources = 0, | ||
| 88 | .dev = { | ||
| 89 | .platform_data = &lsxl_fan_data, | ||
| 90 | }, | ||
| 91 | }; | ||
| 92 | |||
| 93 | /* | 47 | /* |
| 94 | * On the LS-XHL/LS-CHLv2, the shutdown process is following: | 48 | * On the LS-XHL/LS-CHLv2, the shutdown process is following: |
| 95 | * - Userland monitors key events until the power switch goes to off position | 49 | * - Userland monitors key events until the power switch goes to off position |
| @@ -120,7 +74,6 @@ void __init lsxl_init(void) | |||
| 120 | kirkwood_ehci_init(); | 74 | kirkwood_ehci_init(); |
| 121 | kirkwood_ge00_init(&lsxl_ge00_data); | 75 | kirkwood_ge00_init(&lsxl_ge00_data); |
| 122 | kirkwood_ge01_init(&lsxl_ge01_data); | 76 | kirkwood_ge01_init(&lsxl_ge01_data); |
| 123 | platform_device_register(&lsxl_fan_device); | ||
| 124 | 77 | ||
| 125 | /* register power-off method */ | 78 | /* register power-off method */ |
| 126 | pm_power_off = lsxl_power_off; | 79 | pm_power_off = lsxl_power_off; |
diff --git a/arch/arm/mach-kirkwood/board-mplcec4.c b/arch/arm/mach-kirkwood/board-mplcec4.c new file mode 100644 index 000000000000..e78a227468e6 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-mplcec4.c | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 MPL AG, Switzerland | ||
| 3 | * Stefan Peter <s.peter@mpl.ch> | ||
| 4 | * | ||
| 5 | * arch/arm/mach-kirkwood/board-mplcec4.c | ||
| 6 | * | ||
| 7 | * This file is licensed under the terms of the GNU General Public | ||
| 8 | * License version 2. This program is licensed "as is" without any | ||
| 9 | * warranty of any kind, whether express or implied. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #include <linux/kernel.h> | ||
| 13 | #include <linux/init.h> | ||
| 14 | #include <linux/mv643xx_eth.h> | ||
| 15 | #include <linux/platform_data/mmc-mvsdio.h> | ||
| 16 | #include "common.h" | ||
| 17 | #include "mpp.h" | ||
| 18 | |||
| 19 | static struct mv643xx_eth_platform_data mplcec4_ge00_data = { | ||
| 20 | .phy_addr = MV643XX_ETH_PHY_ADDR(1), | ||
| 21 | }; | ||
| 22 | |||
| 23 | static struct mv643xx_eth_platform_data mplcec4_ge01_data = { | ||
| 24 | .phy_addr = MV643XX_ETH_PHY_ADDR(2), | ||
| 25 | }; | ||
| 26 | |||
| 27 | static unsigned int mplcec4_mpp_config[] __initdata = { | ||
| 28 | MPP0_NF_IO2, | ||
| 29 | MPP1_NF_IO3, | ||
| 30 | MPP2_NF_IO4, | ||
| 31 | MPP3_NF_IO5, | ||
| 32 | MPP4_NF_IO6, | ||
| 33 | MPP5_NF_IO7, | ||
| 34 | MPP6_SYSRST_OUTn, | ||
| 35 | MPP7_GPO, /* Status LED Green High Active */ | ||
| 36 | MPP10_UART0_TXD, | ||
| 37 | MPP11_UART0_RXD, | ||
| 38 | MPP12_SD_CLK, | ||
| 39 | MPP13_SD_CMD, /* Alt UART1_TXD */ | ||
| 40 | MPP14_SD_D0, /* Alt UART1_RXD */ | ||
| 41 | MPP15_SD_D1, | ||
| 42 | MPP16_SD_D2, | ||
| 43 | MPP17_SD_D3, | ||
| 44 | MPP18_NF_IO0, | ||
| 45 | MPP19_NF_IO1, | ||
| 46 | MPP28_GPIO, /* Input SYS_POR_DET (active High) */ | ||
| 47 | MPP29_GPIO, /* Input SYS_RTC_INT (active High) */ | ||
| 48 | MPP34_SATA1_ACTn, | ||
| 49 | MPP35_SATA0_ACTn, | ||
| 50 | MPP40_GPIO, /* LED User1 orange */ | ||
| 51 | MPP41_GPIO, /* LED User1 green */ | ||
| 52 | MPP44_GPIO, /* LED User0 orange */ | ||
| 53 | MPP45_GPIO, /* LED User0 green */ | ||
| 54 | MPP46_GPIO, /* Status LED Yellow High Active */ | ||
| 55 | MPP47_GPIO, /* SD_CD# (in/IRQ)*/ | ||
| 56 | 0 | ||
| 57 | }; | ||
| 58 | |||
| 59 | |||
| 60 | static struct mvsdio_platform_data mplcec4_mvsdio_data = { | ||
| 61 | .gpio_card_detect = 47, /* MPP47 used as SD card detect */ | ||
| 62 | }; | ||
| 63 | |||
| 64 | |||
| 65 | |||
| 66 | void __init mplcec4_init(void) | ||
| 67 | { | ||
| 68 | /* | ||
| 69 | * Basic setup. Needs to be called early. | ||
| 70 | */ | ||
| 71 | kirkwood_mpp_conf(mplcec4_mpp_config); | ||
| 72 | kirkwood_ehci_init(); | ||
| 73 | kirkwood_ge00_init(&mplcec4_ge00_data); | ||
| 74 | kirkwood_ge01_init(&mplcec4_ge01_data); | ||
| 75 | kirkwood_sdio_init(&mplcec4_mvsdio_data); | ||
| 76 | kirkwood_pcie_init(KW_PCIE0); | ||
| 77 | } | ||
| 78 | |||
| 79 | |||
| 80 | |||
diff --git a/arch/arm/mach-kirkwood/board-ns2.c b/arch/arm/mach-kirkwood/board-ns2.c new file mode 100644 index 000000000000..78596c4f76d2 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-ns2.c | |||
| @@ -0,0 +1,87 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 (C), Simon Guinot <simon.guinot@sequanux.org> | ||
| 3 | * | ||
| 4 | * arch/arm/mach-kirkwood/board-ns2.c | ||
| 5 | * | ||
| 6 | * LaCie Network Space v2 board (and parents) initialization for drivers | ||
| 7 | * not converted to flattened device tree yet. | ||
| 8 | * | ||
| 9 | * This file is licensed under the terms of the GNU General Public | ||
| 10 | * License version 2. This program is licensed "as is" without any | ||
| 11 | * warranty of any kind, whether express or implied. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include <linux/kernel.h> | ||
| 15 | #include <linux/init.h> | ||
| 16 | #include <linux/platform_device.h> | ||
| 17 | #include <linux/mv643xx_eth.h> | ||
| 18 | #include <linux/gpio.h> | ||
| 19 | #include <linux/of.h> | ||
| 20 | #include "common.h" | ||
| 21 | #include "mpp.h" | ||
| 22 | |||
| 23 | static struct mv643xx_eth_platform_data ns2_ge00_data = { | ||
| 24 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), | ||
| 25 | }; | ||
| 26 | |||
| 27 | static unsigned int ns2_mpp_config[] __initdata = { | ||
| 28 | MPP0_SPI_SCn, | ||
| 29 | MPP1_SPI_MOSI, | ||
| 30 | MPP2_SPI_SCK, | ||
| 31 | MPP3_SPI_MISO, | ||
| 32 | MPP4_NF_IO6, | ||
| 33 | MPP5_NF_IO7, | ||
| 34 | MPP6_SYSRST_OUTn, | ||
| 35 | MPP7_GPO, /* Fan speed (bit 1) */ | ||
| 36 | MPP8_TW0_SDA, | ||
| 37 | MPP9_TW0_SCK, | ||
| 38 | MPP10_UART0_TXD, | ||
| 39 | MPP11_UART0_RXD, | ||
| 40 | MPP12_GPO, /* Red led */ | ||
| 41 | MPP14_GPIO, /* USB fuse */ | ||
| 42 | MPP16_GPIO, /* SATA 0 power */ | ||
| 43 | MPP17_GPIO, /* SATA 1 power */ | ||
| 44 | MPP18_NF_IO0, | ||
| 45 | MPP19_NF_IO1, | ||
| 46 | MPP20_SATA1_ACTn, | ||
| 47 | MPP21_SATA0_ACTn, | ||
| 48 | MPP22_GPIO, /* Fan speed (bit 0) */ | ||
| 49 | MPP23_GPIO, /* Fan power */ | ||
| 50 | MPP24_GPIO, /* USB mode select */ | ||
| 51 | MPP25_GPIO, /* Fan rotation fail */ | ||
| 52 | MPP26_GPIO, /* USB device vbus */ | ||
| 53 | MPP28_GPIO, /* USB enable host vbus */ | ||
| 54 | MPP29_GPIO, /* Blue led (slow register) */ | ||
| 55 | MPP30_GPIO, /* Blue led (command register) */ | ||
| 56 | MPP31_GPIO, /* Board power off */ | ||
| 57 | MPP32_GPIO, /* Power button (0 = Released, 1 = Pushed) */ | ||
| 58 | MPP33_GPO, /* Fan speed (bit 2) */ | ||
| 59 | 0 | ||
| 60 | }; | ||
| 61 | |||
| 62 | #define NS2_GPIO_POWER_OFF 31 | ||
| 63 | |||
| 64 | static void ns2_power_off(void) | ||
| 65 | { | ||
| 66 | gpio_set_value(NS2_GPIO_POWER_OFF, 1); | ||
| 67 | } | ||
| 68 | |||
| 69 | void __init ns2_init(void) | ||
| 70 | { | ||
| 71 | /* | ||
| 72 | * Basic setup. Needs to be called early. | ||
| 73 | */ | ||
| 74 | kirkwood_mpp_conf(ns2_mpp_config); | ||
| 75 | |||
| 76 | kirkwood_ehci_init(); | ||
| 77 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || | ||
| 78 | of_machine_is_compatible("lacie,netspace_mini_v2")) | ||
| 79 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); | ||
| 80 | kirkwood_ge00_init(&ns2_ge00_data); | ||
| 81 | |||
| 82 | if (gpio_request(NS2_GPIO_POWER_OFF, "power-off") == 0 && | ||
| 83 | gpio_direction_output(NS2_GPIO_POWER_OFF, 0) == 0) | ||
| 84 | pm_power_off = ns2_power_off; | ||
| 85 | else | ||
| 86 | pr_err("ns2: failed to configure power-off GPIO\n"); | ||
| 87 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-nsa310.c b/arch/arm/mach-kirkwood/board-nsa310.c new file mode 100644 index 000000000000..027ce83f3fe5 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-nsa310.c | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-kirkwood/nsa-310-setup.c | ||
| 3 | * | ||
| 4 | * ZyXEL NSA-310 Setup | ||
| 5 | * | ||
| 6 | * This file is licensed under the terms of the GNU General Public | ||
| 7 | * License version 2. This program is licensed "as is" without any | ||
| 8 | * warranty of any kind, whether express or implied. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #include <linux/kernel.h> | ||
| 12 | #include <linux/init.h> | ||
| 13 | #include <linux/i2c.h> | ||
| 14 | #include <linux/gpio.h> | ||
| 15 | |||
| 16 | #include <asm/mach-types.h> | ||
| 17 | #include <asm/mach/arch.h> | ||
| 18 | #include <mach/kirkwood.h> | ||
| 19 | #include "common.h" | ||
| 20 | #include "mpp.h" | ||
| 21 | |||
| 22 | #define NSA310_GPIO_USB_POWER_OFF 21 | ||
| 23 | #define NSA310_GPIO_POWER_OFF 48 | ||
| 24 | |||
| 25 | static unsigned int nsa310_mpp_config[] __initdata = { | ||
| 26 | MPP12_GPIO, /* led esata green */ | ||
| 27 | MPP13_GPIO, /* led esata red */ | ||
| 28 | MPP15_GPIO, /* led usb green */ | ||
| 29 | MPP16_GPIO, /* led usb red */ | ||
| 30 | MPP21_GPIO, /* control usb power off */ | ||
| 31 | MPP28_GPIO, /* led sys green */ | ||
| 32 | MPP29_GPIO, /* led sys red */ | ||
| 33 | MPP36_GPIO, /* key reset */ | ||
| 34 | MPP37_GPIO, /* key copy */ | ||
| 35 | MPP39_GPIO, /* led copy green */ | ||
| 36 | MPP40_GPIO, /* led copy red */ | ||
| 37 | MPP41_GPIO, /* led hdd green */ | ||
| 38 | MPP42_GPIO, /* led hdd red */ | ||
| 39 | MPP44_GPIO, /* ?? */ | ||
| 40 | MPP46_GPIO, /* key power */ | ||
| 41 | MPP48_GPIO, /* control power off */ | ||
| 42 | 0 | ||
| 43 | }; | ||
| 44 | |||
| 45 | static struct i2c_board_info __initdata nsa310_i2c_info[] = { | ||
| 46 | { I2C_BOARD_INFO("adt7476", 0x2e) }, | ||
| 47 | }; | ||
| 48 | |||
| 49 | static void nsa310_power_off(void) | ||
| 50 | { | ||
| 51 | gpio_set_value(NSA310_GPIO_POWER_OFF, 1); | ||
| 52 | } | ||
| 53 | |||
| 54 | static int __init nsa310_gpio_request(unsigned int gpio, unsigned long flags, | ||
| 55 | const char *label) | ||
| 56 | { | ||
| 57 | int err; | ||
| 58 | |||
| 59 | err = gpio_request_one(gpio, flags, label); | ||
| 60 | if (err) | ||
| 61 | pr_err("NSA-310: can't setup GPIO%u (%s), err=%d\n", | ||
| 62 | gpio, label, err); | ||
| 63 | |||
| 64 | return err; | ||
| 65 | } | ||
| 66 | |||
| 67 | static void __init nsa310_gpio_init(void) | ||
| 68 | { | ||
| 69 | int err; | ||
| 70 | |||
| 71 | err = nsa310_gpio_request(NSA310_GPIO_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
| 72 | "Power Off"); | ||
| 73 | if (!err) | ||
| 74 | pm_power_off = nsa310_power_off; | ||
| 75 | |||
| 76 | nsa310_gpio_request(NSA310_GPIO_USB_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
| 77 | "USB Power Off"); | ||
| 78 | } | ||
| 79 | |||
| 80 | void __init nsa310_init(void) | ||
| 81 | { | ||
| 82 | u32 dev, rev; | ||
| 83 | |||
| 84 | kirkwood_mpp_conf(nsa310_mpp_config); | ||
| 85 | |||
| 86 | nsa310_gpio_init(); | ||
| 87 | |||
| 88 | /* this can be removed once the mainline kirkwood.dtsi gets | ||
| 89 | * the ehci configuration by default */ | ||
| 90 | kirkwood_ehci_init(); | ||
| 91 | |||
| 92 | kirkwood_pcie_id(&dev, &rev); | ||
| 93 | |||
| 94 | i2c_register_board_info(0, ARRAY_AND_SIZE(nsa310_i2c_info)); | ||
| 95 | } | ||
| 96 | |||
| 97 | static int __init nsa310_pci_init(void) | ||
| 98 | { | ||
| 99 | if (of_machine_is_compatible("zyxel,nsa310")) | ||
| 100 | kirkwood_pcie_init(KW_PCIE0); | ||
| 101 | |||
| 102 | return 0; | ||
| 103 | } | ||
| 104 | |||
| 105 | subsys_initcall(nsa310_pci_init); | ||
diff --git a/arch/arm/mach-kirkwood/board-openblocks_a6.c b/arch/arm/mach-kirkwood/board-openblocks_a6.c new file mode 100644 index 000000000000..e807e8cfdd44 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-openblocks_a6.c | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> | ||
| 3 | * | ||
| 4 | * arch/arm/mach-kirkwood/board-openblocks_a6.c | ||
| 5 | * | ||
| 6 | * This file is licensed under the terms of the GNU General Public | ||
| 7 | * License version 2. This program is licensed "as is" without any | ||
| 8 | * warranty of any kind, whether express or implied. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #include <linux/kernel.h> | ||
| 12 | #include <linux/init.h> | ||
| 13 | #include <linux/mv643xx_eth.h> | ||
| 14 | #include <linux/clk.h> | ||
| 15 | #include <linux/clk-private.h> | ||
| 16 | #include "common.h" | ||
| 17 | #include "mpp.h" | ||
| 18 | |||
| 19 | static struct mv643xx_eth_platform_data openblocks_ge00_data = { | ||
| 20 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
| 21 | }; | ||
| 22 | |||
| 23 | static unsigned int openblocks_a6_mpp_config[] __initdata = { | ||
| 24 | MPP0_NF_IO2, | ||
| 25 | MPP1_NF_IO3, | ||
| 26 | MPP2_NF_IO4, | ||
| 27 | MPP3_NF_IO5, | ||
| 28 | MPP4_NF_IO6, | ||
| 29 | MPP5_NF_IO7, | ||
| 30 | MPP6_SYSRST_OUTn, | ||
| 31 | MPP8_UART1_RTS, | ||
| 32 | MPP9_UART1_CTS, | ||
| 33 | MPP10_UART0_TXD, | ||
| 34 | MPP11_UART0_RXD, | ||
| 35 | MPP13_UART1_TXD, | ||
| 36 | MPP14_UART1_RXD, | ||
| 37 | MPP15_UART0_RTS, | ||
| 38 | MPP16_UART0_CTS, | ||
| 39 | MPP18_NF_IO0, | ||
| 40 | MPP19_NF_IO1, | ||
| 41 | MPP20_GPIO, /* DIP SW0 */ | ||
| 42 | MPP21_GPIO, /* DIP SW1 */ | ||
| 43 | MPP22_GPIO, /* DIP SW2 */ | ||
| 44 | MPP23_GPIO, /* DIP SW3 */ | ||
| 45 | MPP24_GPIO, /* GPIO 0 */ | ||
| 46 | MPP25_GPIO, /* GPIO 1 */ | ||
| 47 | MPP26_GPIO, /* GPIO 2 */ | ||
| 48 | MPP27_GPIO, /* GPIO 3 */ | ||
| 49 | MPP28_GPIO, /* GPIO 4 */ | ||
| 50 | MPP29_GPIO, /* GPIO 5 */ | ||
| 51 | MPP30_GPIO, /* GPIO 6 */ | ||
| 52 | MPP31_GPIO, /* GPIO 7 */ | ||
| 53 | MPP36_TW1_SDA, | ||
| 54 | MPP37_TW1_SCK, | ||
| 55 | MPP38_GPIO, /* INIT */ | ||
| 56 | MPP39_GPIO, /* USB OC */ | ||
| 57 | MPP41_GPIO, /* LED: Red */ | ||
| 58 | MPP42_GPIO, /* LED: Yellow */ | ||
| 59 | MPP43_GPIO, /* LED: Green */ | ||
| 60 | 0, | ||
| 61 | }; | ||
| 62 | |||
| 63 | void __init openblocks_a6_init(void) | ||
| 64 | { | ||
| 65 | /* | ||
| 66 | * Basic setup. Needs to be called early. | ||
| 67 | */ | ||
| 68 | kirkwood_mpp_conf(openblocks_a6_mpp_config); | ||
| 69 | kirkwood_ehci_init(); | ||
| 70 | kirkwood_ge00_init(&openblocks_ge00_data); | ||
| 71 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-usi_topkick.c b/arch/arm/mach-kirkwood/board-usi_topkick.c new file mode 100644 index 000000000000..e2ec9d891fe3 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-usi_topkick.c | |||
| @@ -0,0 +1,82 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> | ||
| 3 | * | ||
| 4 | * arch/arm/mach-kirkwood/board-usi_topkick.c | ||
| 5 | * | ||
| 6 | * USI Topkick Init for drivers not converted to flattened device tree yet. | ||
| 7 | * | ||
| 8 | * This file is licensed under the terms of the GNU General Public | ||
| 9 | * License version 2. This program is licensed "as is" without any | ||
| 10 | * warranty of any kind, whether express or implied. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/kernel.h> | ||
| 14 | #include <linux/init.h> | ||
| 15 | #include <linux/mv643xx_eth.h> | ||
| 16 | #include <linux/gpio.h> | ||
| 17 | #include <linux/platform_data/mmc-mvsdio.h> | ||
| 18 | #include "common.h" | ||
| 19 | #include "mpp.h" | ||
| 20 | |||
| 21 | static struct mv643xx_eth_platform_data topkick_ge00_data = { | ||
| 22 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
| 23 | }; | ||
| 24 | |||
| 25 | static struct mvsdio_platform_data topkick_mvsdio_data = { | ||
| 26 | /* unfortunately the CD signal has not been connected */ | ||
| 27 | }; | ||
| 28 | |||
| 29 | /* | ||
| 30 | * GPIO LED layout | ||
| 31 | * | ||
| 32 | * /-SYS_LED(2) | ||
| 33 | * | | ||
| 34 | * | /-DISK_LED | ||
| 35 | * | | | ||
| 36 | * | | /-WLAN_LED(2) | ||
| 37 | * | | | | ||
| 38 | * [SW] [*] [*] [*] | ||
| 39 | */ | ||
| 40 | |||
| 41 | /* | ||
| 42 | * Switch positions | ||
| 43 | * | ||
| 44 | * /-SW_LEFT | ||
| 45 | * | | ||
| 46 | * | /-SW_IDLE | ||
| 47 | * | | | ||
| 48 | * | | /-SW_RIGHT | ||
| 49 | * | | | | ||
| 50 | * PS [L] [I] [R] LEDS | ||
| 51 | */ | ||
| 52 | |||
| 53 | static unsigned int topkick_mpp_config[] __initdata = { | ||
| 54 | MPP21_GPIO, /* DISK_LED (low active) - yellow */ | ||
| 55 | MPP36_GPIO, /* SATA0 power enable (high active) */ | ||
| 56 | MPP37_GPIO, /* SYS_LED2 (low active) - red */ | ||
| 57 | MPP38_GPIO, /* SYS_LED (low active) - blue */ | ||
| 58 | MPP39_GPIO, /* WLAN_LED (low active) - green */ | ||
| 59 | MPP43_GPIO, /* SW_LEFT (low active) */ | ||
| 60 | MPP44_GPIO, /* SW_RIGHT (low active) */ | ||
| 61 | MPP45_GPIO, /* SW_IDLE (low active) */ | ||
| 62 | MPP46_GPIO, /* SW_LEFT (low active) */ | ||
| 63 | MPP48_GPIO, /* WLAN_LED2 (low active) - yellow */ | ||
| 64 | 0 | ||
| 65 | }; | ||
| 66 | |||
| 67 | #define TOPKICK_SATA0_PWR_ENABLE 36 | ||
| 68 | |||
| 69 | void __init usi_topkick_init(void) | ||
| 70 | { | ||
| 71 | /* | ||
| 72 | * Basic setup. Needs to be called early. | ||
| 73 | */ | ||
| 74 | kirkwood_mpp_conf(topkick_mpp_config); | ||
| 75 | |||
| 76 | /* SATA0 power enable */ | ||
| 77 | gpio_set_value(TOPKICK_SATA0_PWR_ENABLE, 1); | ||
| 78 | |||
| 79 | kirkwood_ehci_init(); | ||
| 80 | kirkwood_ge00_init(&topkick_ge00_data); | ||
| 81 | kirkwood_sdio_init(&topkick_mvsdio_data); | ||
| 82 | } | ||
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index f0fc25bd3ffe..5303be62b311 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -266,6 +266,7 @@ void __init kirkwood_clk_init(void) | |||
| 266 | orion_clkdev_add("1", "pcie", pex1); | 266 | orion_clkdev_add("1", "pcie", pex1); |
| 267 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); | 267 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); |
| 268 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); | 268 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); |
| 269 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit); | ||
| 269 | 270 | ||
| 270 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., | 271 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., |
| 271 | * so should never be gated. | 272 | * so should never be gated. |
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 6088e9227889..5ffa57f08c80 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
| @@ -113,6 +113,40 @@ void km_kirkwood_init(void); | |||
| 113 | static inline void km_kirkwood_init(void) {}; | 113 | static inline void km_kirkwood_init(void) {}; |
| 114 | #endif | 114 | #endif |
| 115 | 115 | ||
| 116 | #ifdef CONFIG_MACH_MPLCEC4_DT | ||
| 117 | void mplcec4_init(void); | ||
| 118 | #else | ||
| 119 | static inline void mplcec4_init(void) {}; | ||
| 120 | #endif | ||
| 121 | |||
| 122 | #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \ | ||
| 123 | defined(CONFIG_MACH_NETSPACE_V2_DT) || \ | ||
| 124 | defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \ | ||
| 125 | defined(CONFIG_MACH_NETSPACE_LITE_V2_DT) || \ | ||
| 126 | defined(CONFIG_MACH_NETSPACE_MINI_V2_DT) | ||
| 127 | void ns2_init(void); | ||
| 128 | #else | ||
| 129 | static inline void ns2_init(void) {}; | ||
| 130 | #endif | ||
| 131 | |||
| 132 | #ifdef CONFIG_MACH_NSA310_DT | ||
| 133 | void nsa310_init(void); | ||
| 134 | #else | ||
| 135 | static inline void nsa310_init(void) {}; | ||
| 136 | #endif | ||
| 137 | |||
| 138 | #ifdef CONFIG_MACH_OPENBLOCKS_A6_DT | ||
| 139 | void openblocks_a6_init(void); | ||
| 140 | #else | ||
| 141 | static inline void openblocks_a6_init(void) {}; | ||
| 142 | #endif | ||
| 143 | |||
| 144 | #ifdef CONFIG_MACH_TOPKICK_DT | ||
| 145 | void usi_topkick_init(void); | ||
| 146 | #else | ||
| 147 | static inline void usi_topkick_init(void) {}; | ||
| 148 | #endif | ||
| 149 | |||
| 116 | /* early init functions not converted to fdt yet */ | 150 | /* early init functions not converted to fdt yet */ |
| 117 | char *kirkwood_id(void); | 151 | char *kirkwood_id(void); |
| 118 | void kirkwood_l2_init(void); | 152 | void kirkwood_l2_init(void); |
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig index 178d4daa5e1d..ebdda8346a26 100644 --- a/arch/arm/mach-mmp/Kconfig +++ b/arch/arm/mach-mmp/Kconfig | |||
| @@ -89,6 +89,8 @@ config MACH_MMP_DT | |||
| 89 | select CPU_PXA168 | 89 | select CPU_PXA168 |
| 90 | select CPU_PXA910 | 90 | select CPU_PXA910 |
| 91 | select USE_OF | 91 | select USE_OF |
| 92 | select PINCTRL | ||
| 93 | select PINCTRL_SINGLE | ||
| 92 | help | 94 | help |
| 93 | Include support for Marvell MMP2 based platforms using | 95 | Include support for Marvell MMP2 based platforms using |
| 94 | the device tree. Needn't select any other machine while | 96 | the device tree. Needn't select any other machine while |
| @@ -99,6 +101,8 @@ config MACH_MMP2_DT | |||
| 99 | depends on !CPU_MOHAWK | 101 | depends on !CPU_MOHAWK |
| 100 | select CPU_MMP2 | 102 | select CPU_MMP2 |
| 101 | select USE_OF | 103 | select USE_OF |
| 104 | select PINCTRL | ||
| 105 | select PINCTRL_SINGLE | ||
| 102 | help | 106 | help |
| 103 | Include support for Marvell MMP2 based platforms using | 107 | Include support for Marvell MMP2 based platforms using |
| 104 | the device tree. | 108 | the device tree. |
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index e067f221f0f9..560a7dcf0a56 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c | |||
| @@ -307,8 +307,7 @@ static void __init omap_fsample_init(void) | |||
| 307 | 307 | ||
| 308 | fsample_init_smc91x(); | 308 | fsample_init_smc91x(); |
| 309 | 309 | ||
| 310 | if (gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 310 | BUG_ON(gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
| 311 | BUG(); | ||
| 312 | gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN); | 311 | gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN); |
| 313 | 312 | ||
| 314 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 313 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index 9134b646f01b..4953cf7a5123 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
| @@ -412,8 +412,7 @@ static void __init h2_init(void) | |||
| 412 | 412 | ||
| 413 | h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS; | 413 | h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS; |
| 414 | h2_nand_resource.end += SZ_4K - 1; | 414 | h2_nand_resource.end += SZ_4K - 1; |
| 415 | if (gpio_request(H2_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 415 | BUG_ON(gpio_request(H2_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
| 416 | BUG(); | ||
| 417 | gpio_direction_input(H2_NAND_RB_GPIO_PIN); | 416 | gpio_direction_input(H2_NAND_RB_GPIO_PIN); |
| 418 | 417 | ||
| 419 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 418 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index bf213d1d8075..563ba167bb16 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
| @@ -406,8 +406,7 @@ static void __init h3_init(void) | |||
| 406 | 406 | ||
| 407 | nand_resource.end = nand_resource.start = OMAP_CS2B_PHYS; | 407 | nand_resource.end = nand_resource.start = OMAP_CS2B_PHYS; |
| 408 | nand_resource.end += SZ_4K - 1; | 408 | nand_resource.end += SZ_4K - 1; |
| 409 | if (gpio_request(H3_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 409 | BUG_ON(gpio_request(H3_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
| 410 | BUG(); | ||
| 411 | gpio_direction_input(H3_NAND_RB_GPIO_PIN); | 410 | gpio_direction_input(H3_NAND_RB_GPIO_PIN); |
| 412 | 411 | ||
| 413 | /* GPIO10 Func_MUX_CTRL reg bit 29:27, Configure V2 to mode1 as GPIO */ | 412 | /* GPIO10 Func_MUX_CTRL reg bit 29:27, Configure V2 to mode1 as GPIO */ |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 9a7e483ed6fd..27f8d12ec222 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
| @@ -275,8 +275,7 @@ static void __init omap_perseus2_init(void) | |||
| 275 | 275 | ||
| 276 | perseus2_init_smc91x(); | 276 | perseus2_init_smc91x(); |
| 277 | 277 | ||
| 278 | if (gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 278 | BUG_ON(gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
| 279 | BUG(); | ||
| 280 | gpio_direction_input(P2_NAND_RB_GPIO_PIN); | 279 | gpio_direction_input(P2_NAND_RB_GPIO_PIN); |
| 281 | 280 | ||
| 282 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 281 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index d669e227e00c..2265e5826883 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
| @@ -270,14 +270,14 @@ config MACH_NOKIA_N8X0 | |||
| 270 | select OMAP_PACKAGE_ZAC | 270 | select OMAP_PACKAGE_ZAC |
| 271 | 271 | ||
| 272 | config MACH_NOKIA_RM680 | 272 | config MACH_NOKIA_RM680 |
| 273 | bool "Nokia RM-680/696 board" | 273 | bool "Nokia N950 (RM-680) / N9 (RM-696) phones" |
| 274 | depends on ARCH_OMAP3 | 274 | depends on ARCH_OMAP3 |
| 275 | default y | 275 | default y |
| 276 | select MACH_NOKIA_RM696 | 276 | select MACH_NOKIA_RM696 |
| 277 | select OMAP_PACKAGE_CBB | 277 | select OMAP_PACKAGE_CBB |
| 278 | 278 | ||
| 279 | config MACH_NOKIA_RX51 | 279 | config MACH_NOKIA_RX51 |
| 280 | bool "Nokia RX-51 board" | 280 | bool "Nokia N900 (RX-51) phone" |
| 281 | depends on ARCH_OMAP3 | 281 | depends on ARCH_OMAP3 |
| 282 | default y | 282 | default y |
| 283 | select OMAP_PACKAGE_CBB | 283 | select OMAP_PACKAGE_CBB |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 11c57af01a88..b455ffc12ebe 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -295,4 +295,4 @@ endif | |||
| 295 | emac-$(CONFIG_TI_DAVINCI_EMAC) := am35xx-emac.o | 295 | emac-$(CONFIG_TI_DAVINCI_EMAC) := am35xx-emac.o |
| 296 | obj-y += $(emac-m) $(emac-y) | 296 | obj-y += $(emac-m) $(emac-y) |
| 297 | 297 | ||
| 298 | obj-y += common-board-devices.o twl-common.o | 298 | obj-y += common-board-devices.o twl-common.o dss-common.o |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 85dfa71e0dc6..1cc6696594fd 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
| @@ -36,9 +36,6 @@ | |||
| 36 | 36 | ||
| 37 | #include "common.h" | 37 | #include "common.h" |
| 38 | #include "omap4-keypad.h" | 38 | #include "omap4-keypad.h" |
| 39 | #include <video/omapdss.h> | ||
| 40 | #include <video/omap-panel-nokia-dsi.h> | ||
| 41 | #include <video/omap-panel-picodlp.h> | ||
| 42 | #include <linux/wl12xx.h> | 39 | #include <linux/wl12xx.h> |
| 43 | #include <linux/platform_data/omap-abe-twl6040.h> | 40 | #include <linux/platform_data/omap-abe-twl6040.h> |
| 44 | 41 | ||
| @@ -48,17 +45,13 @@ | |||
| 48 | #include "hsmmc.h" | 45 | #include "hsmmc.h" |
| 49 | #include "control.h" | 46 | #include "control.h" |
| 50 | #include "common-board-devices.h" | 47 | #include "common-board-devices.h" |
| 48 | #include "dss-common.h" | ||
| 51 | 49 | ||
| 52 | #define ETH_KS8851_IRQ 34 | 50 | #define ETH_KS8851_IRQ 34 |
| 53 | #define ETH_KS8851_POWER_ON 48 | 51 | #define ETH_KS8851_POWER_ON 48 |
| 54 | #define ETH_KS8851_QUART 138 | 52 | #define ETH_KS8851_QUART 138 |
| 55 | #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 | 53 | #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 |
| 56 | #define OMAP4_SFH7741_ENABLE_GPIO 188 | 54 | #define OMAP4_SFH7741_ENABLE_GPIO 188 |
| 57 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
| 58 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
| 59 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
| 60 | #define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ | ||
| 61 | #define DLP_POWER_ON_GPIO 40 | ||
| 62 | 55 | ||
| 63 | #define GPIO_WIFI_PMENA 54 | 56 | #define GPIO_WIFI_PMENA 54 |
| 64 | #define GPIO_WIFI_IRQ 53 | 57 | #define GPIO_WIFI_IRQ 53 |
| @@ -607,154 +600,6 @@ static void __init omap_sfh7741prox_init(void) | |||
| 607 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); | 600 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); |
| 608 | } | 601 | } |
| 609 | 602 | ||
| 610 | static struct nokia_dsi_panel_data dsi1_panel = { | ||
| 611 | .name = "taal", | ||
| 612 | .reset_gpio = 102, | ||
| 613 | .use_ext_te = false, | ||
| 614 | .ext_te_gpio = 101, | ||
| 615 | .esd_interval = 0, | ||
| 616 | .pin_config = { | ||
| 617 | .num_pins = 6, | ||
| 618 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
| 619 | }, | ||
| 620 | }; | ||
| 621 | |||
| 622 | static struct omap_dss_device sdp4430_lcd_device = { | ||
| 623 | .name = "lcd", | ||
| 624 | .driver_name = "taal", | ||
| 625 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
| 626 | .data = &dsi1_panel, | ||
| 627 | .phy.dsi = { | ||
| 628 | .module = 0, | ||
| 629 | }, | ||
| 630 | .channel = OMAP_DSS_CHANNEL_LCD, | ||
| 631 | }; | ||
| 632 | |||
| 633 | static struct nokia_dsi_panel_data dsi2_panel = { | ||
| 634 | .name = "taal", | ||
| 635 | .reset_gpio = 104, | ||
| 636 | .use_ext_te = false, | ||
| 637 | .ext_te_gpio = 103, | ||
| 638 | .esd_interval = 0, | ||
| 639 | .pin_config = { | ||
| 640 | .num_pins = 6, | ||
| 641 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
| 642 | }, | ||
| 643 | }; | ||
| 644 | |||
| 645 | static struct omap_dss_device sdp4430_lcd2_device = { | ||
| 646 | .name = "lcd2", | ||
| 647 | .driver_name = "taal", | ||
| 648 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
| 649 | .data = &dsi2_panel, | ||
| 650 | .phy.dsi = { | ||
| 651 | |||
| 652 | .module = 1, | ||
| 653 | }, | ||
| 654 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 655 | }; | ||
| 656 | |||
| 657 | static struct omap_dss_hdmi_data sdp4430_hdmi_data = { | ||
| 658 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
| 659 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
| 660 | .hpd_gpio = HDMI_GPIO_HPD, | ||
| 661 | }; | ||
| 662 | |||
| 663 | static struct omap_dss_device sdp4430_hdmi_device = { | ||
| 664 | .name = "hdmi", | ||
| 665 | .driver_name = "hdmi_panel", | ||
| 666 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
| 667 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
| 668 | .data = &sdp4430_hdmi_data, | ||
| 669 | }; | ||
| 670 | |||
| 671 | static struct picodlp_panel_data sdp4430_picodlp_pdata = { | ||
| 672 | .picodlp_adapter_id = 2, | ||
| 673 | .emu_done_gpio = 44, | ||
| 674 | .pwrgood_gpio = 45, | ||
| 675 | }; | ||
| 676 | |||
| 677 | static void sdp4430_picodlp_init(void) | ||
| 678 | { | ||
| 679 | int r; | ||
| 680 | const struct gpio picodlp_gpios[] = { | ||
| 681 | {DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, | ||
| 682 | "DLP POWER ON"}, | ||
| 683 | {sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN, | ||
| 684 | "DLP EMU DONE"}, | ||
| 685 | {sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW, | ||
| 686 | "DLP PWRGOOD"}, | ||
| 687 | }; | ||
| 688 | |||
| 689 | r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios)); | ||
| 690 | if (r) | ||
| 691 | pr_err("Cannot request PicoDLP GPIOs, error %d\n", r); | ||
| 692 | } | ||
| 693 | |||
| 694 | static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev) | ||
| 695 | { | ||
| 696 | gpio_set_value(DISPLAY_SEL_GPIO, 0); | ||
| 697 | gpio_set_value(DLP_POWER_ON_GPIO, 1); | ||
| 698 | |||
| 699 | return 0; | ||
| 700 | } | ||
| 701 | |||
| 702 | static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev) | ||
| 703 | { | ||
| 704 | gpio_set_value(DLP_POWER_ON_GPIO, 0); | ||
| 705 | gpio_set_value(DISPLAY_SEL_GPIO, 1); | ||
| 706 | } | ||
| 707 | |||
| 708 | static struct omap_dss_device sdp4430_picodlp_device = { | ||
| 709 | .name = "picodlp", | ||
| 710 | .driver_name = "picodlp_panel", | ||
| 711 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
| 712 | .phy.dpi.data_lines = 24, | ||
| 713 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 714 | .platform_enable = sdp4430_panel_enable_picodlp, | ||
| 715 | .platform_disable = sdp4430_panel_disable_picodlp, | ||
| 716 | .data = &sdp4430_picodlp_pdata, | ||
| 717 | }; | ||
| 718 | |||
| 719 | static struct omap_dss_device *sdp4430_dss_devices[] = { | ||
| 720 | &sdp4430_lcd_device, | ||
| 721 | &sdp4430_lcd2_device, | ||
| 722 | &sdp4430_hdmi_device, | ||
| 723 | &sdp4430_picodlp_device, | ||
| 724 | }; | ||
| 725 | |||
| 726 | static struct omap_dss_board_info sdp4430_dss_data = { | ||
| 727 | .num_devices = ARRAY_SIZE(sdp4430_dss_devices), | ||
| 728 | .devices = sdp4430_dss_devices, | ||
| 729 | .default_device = &sdp4430_lcd_device, | ||
| 730 | }; | ||
| 731 | |||
| 732 | static void __init omap_4430sdp_display_init(void) | ||
| 733 | { | ||
| 734 | int r; | ||
| 735 | |||
| 736 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
| 737 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
| 738 | "display_sel"); | ||
| 739 | if (r) | ||
| 740 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
| 741 | |||
| 742 | sdp4430_picodlp_init(); | ||
| 743 | omap_display_init(&sdp4430_dss_data); | ||
| 744 | /* | ||
| 745 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
| 746 | * later have external pull up on the HDMI I2C lines | ||
| 747 | */ | ||
| 748 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
| 749 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
| 750 | else | ||
| 751 | omap_hdmi_init(0); | ||
| 752 | |||
| 753 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
| 754 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
| 755 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
| 756 | } | ||
| 757 | |||
| 758 | #ifdef CONFIG_OMAP_MUX | 603 | #ifdef CONFIG_OMAP_MUX |
| 759 | static struct omap_board_mux board_mux[] __initdata = { | 604 | static struct omap_board_mux board_mux[] __initdata = { |
| 760 | OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | 605 | OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index f0715a369c44..53cb380b7877 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #include "common.h" | 22 | #include "common.h" |
| 23 | #include "common-board-devices.h" | 23 | #include "common-board-devices.h" |
| 24 | #include "dss-common.h" | ||
| 24 | 25 | ||
| 25 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) | 26 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) |
| 26 | #define intc_of_init NULL | 27 | #define intc_of_init NULL |
| @@ -40,6 +41,15 @@ static void __init omap_generic_init(void) | |||
| 40 | omap_sdrc_init(NULL, NULL); | 41 | omap_sdrc_init(NULL, NULL); |
| 41 | 42 | ||
| 42 | of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); | 43 | of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); |
| 44 | |||
| 45 | /* | ||
| 46 | * HACK: call display setup code for selected boards to enable omapdss. | ||
| 47 | * This will be removed when omapdss supports DT. | ||
| 48 | */ | ||
| 49 | if (of_machine_is_compatible("ti,omap4-panda")) | ||
| 50 | omap4_panda_display_init_of(); | ||
| 51 | else if (of_machine_is_compatible("ti,omap4-sdp")) | ||
| 52 | omap_4430sdp_display_init_of(); | ||
| 43 | } | 53 | } |
| 44 | 54 | ||
| 45 | #ifdef CONFIG_SOC_OMAP2420 | 55 | #ifdef CONFIG_SOC_OMAP2420 |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 12a3a24d5bb5..5c8e9cee2c2e 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
| @@ -37,9 +37,6 @@ | |||
| 37 | #include <asm/mach-types.h> | 37 | #include <asm/mach-types.h> |
| 38 | #include <asm/mach/arch.h> | 38 | #include <asm/mach/arch.h> |
| 39 | #include <asm/mach/map.h> | 39 | #include <asm/mach/map.h> |
| 40 | #include <video/omapdss.h> | ||
| 41 | |||
| 42 | #include <video/omap-panel-tfp410.h> | ||
| 43 | 40 | ||
| 44 | #include "common.h" | 41 | #include "common.h" |
| 45 | #include "soc.h" | 42 | #include "soc.h" |
| @@ -48,14 +45,12 @@ | |||
| 48 | #include "control.h" | 45 | #include "control.h" |
| 49 | #include "mux.h" | 46 | #include "mux.h" |
| 50 | #include "common-board-devices.h" | 47 | #include "common-board-devices.h" |
| 48 | #include "dss-common.h" | ||
| 51 | 49 | ||
| 52 | #define GPIO_HUB_POWER 1 | 50 | #define GPIO_HUB_POWER 1 |
| 53 | #define GPIO_HUB_NRESET 62 | 51 | #define GPIO_HUB_NRESET 62 |
| 54 | #define GPIO_WIFI_PMENA 43 | 52 | #define GPIO_WIFI_PMENA 43 |
| 55 | #define GPIO_WIFI_IRQ 53 | 53 | #define GPIO_WIFI_IRQ 53 |
| 56 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
| 57 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
| 58 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
| 59 | 54 | ||
| 60 | /* wl127x BT, FM, GPS connectivity chip */ | 55 | /* wl127x BT, FM, GPS connectivity chip */ |
| 61 | static struct ti_st_plat_data wilink_platform_data = { | 56 | static struct ti_st_plat_data wilink_platform_data = { |
| @@ -409,68 +404,6 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
| 409 | #define board_mux NULL | 404 | #define board_mux NULL |
| 410 | #endif | 405 | #endif |
| 411 | 406 | ||
| 412 | /* Display DVI */ | ||
| 413 | #define PANDA_DVI_TFP410_POWER_DOWN_GPIO 0 | ||
| 414 | |||
| 415 | /* Using generic display panel */ | ||
| 416 | static struct tfp410_platform_data omap4_dvi_panel = { | ||
| 417 | .i2c_bus_num = 3, | ||
| 418 | .power_down_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
| 419 | }; | ||
| 420 | |||
| 421 | static struct omap_dss_device omap4_panda_dvi_device = { | ||
| 422 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
| 423 | .name = "dvi", | ||
| 424 | .driver_name = "tfp410", | ||
| 425 | .data = &omap4_dvi_panel, | ||
| 426 | .phy.dpi.data_lines = 24, | ||
| 427 | .reset_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
| 428 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 429 | }; | ||
| 430 | |||
| 431 | static struct omap_dss_hdmi_data omap4_panda_hdmi_data = { | ||
| 432 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
| 433 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
| 434 | .hpd_gpio = HDMI_GPIO_HPD, | ||
| 435 | }; | ||
| 436 | |||
| 437 | static struct omap_dss_device omap4_panda_hdmi_device = { | ||
| 438 | .name = "hdmi", | ||
| 439 | .driver_name = "hdmi_panel", | ||
| 440 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
| 441 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
| 442 | .data = &omap4_panda_hdmi_data, | ||
| 443 | }; | ||
| 444 | |||
| 445 | static struct omap_dss_device *omap4_panda_dss_devices[] = { | ||
| 446 | &omap4_panda_dvi_device, | ||
| 447 | &omap4_panda_hdmi_device, | ||
| 448 | }; | ||
| 449 | |||
| 450 | static struct omap_dss_board_info omap4_panda_dss_data = { | ||
| 451 | .num_devices = ARRAY_SIZE(omap4_panda_dss_devices), | ||
| 452 | .devices = omap4_panda_dss_devices, | ||
| 453 | .default_device = &omap4_panda_dvi_device, | ||
| 454 | }; | ||
| 455 | |||
| 456 | static void __init omap4_panda_display_init(void) | ||
| 457 | { | ||
| 458 | |||
| 459 | omap_display_init(&omap4_panda_dss_data); | ||
| 460 | |||
| 461 | /* | ||
| 462 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
| 463 | * later have external pull up on the HDMI I2C lines | ||
| 464 | */ | ||
| 465 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
| 466 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
| 467 | else | ||
| 468 | omap_hdmi_init(0); | ||
| 469 | |||
| 470 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
| 471 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
| 472 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
| 473 | } | ||
| 474 | 407 | ||
| 475 | static void omap4_panda_init_rev(void) | 408 | static void omap4_panda_init_rev(void) |
| 476 | { | 409 | { |
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index cbcb1b2dc31f..0c777b75e484 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Board support file for Nokia RM-680/696. | 2 | * Board support file for Nokia N950 (RM-680) / N9 (RM-696). |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2010 Nokia | 4 | * Copyright (C) 2010 Nokia |
| 5 | * | 5 | * |
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index bf8f74b0ce3e..b67fe11d0d94 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/arch/arm/mach-omap2/board-rx51.c | 2 | * Board support file for Nokia N900 (aka RX-51). |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2007, 2008 Nokia | 4 | * Copyright (C) 2007, 2008 Nokia |
| 5 | * | 5 | * |
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c new file mode 100644 index 000000000000..679a0478644f --- /dev/null +++ b/arch/arm/mach-omap2/dss-common.c | |||
| @@ -0,0 +1,276 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Texas Instruments, Inc.. | ||
| 3 | * Author: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or | ||
| 6 | * modify it under the terms of the GNU General Public License | ||
| 7 | * version 2 as published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, but | ||
| 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | * General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program; if not, write to the Free Software | ||
| 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
| 17 | * 02110-1301 USA | ||
| 18 | * | ||
| 19 | */ | ||
| 20 | |||
| 21 | /* | ||
| 22 | * NOTE: this is a transitional file to help with DT adaptation. | ||
| 23 | * This file will be removed when DSS supports DT. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #include <linux/kernel.h> | ||
| 27 | #include <linux/gpio.h> | ||
| 28 | |||
| 29 | #include <video/omapdss.h> | ||
| 30 | #include <video/omap-panel-tfp410.h> | ||
| 31 | #include <video/omap-panel-nokia-dsi.h> | ||
| 32 | #include <video/omap-panel-picodlp.h> | ||
| 33 | |||
| 34 | #include <plat/cpu.h> | ||
| 35 | |||
| 36 | #include "dss-common.h" | ||
| 37 | #include "mux.h" | ||
| 38 | |||
| 39 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
| 40 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
| 41 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
| 42 | |||
| 43 | /* Display DVI */ | ||
| 44 | #define PANDA_DVI_TFP410_POWER_DOWN_GPIO 0 | ||
| 45 | |||
| 46 | /* Using generic display panel */ | ||
| 47 | static struct tfp410_platform_data omap4_dvi_panel = { | ||
| 48 | .i2c_bus_num = 3, | ||
| 49 | .power_down_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
| 50 | }; | ||
| 51 | |||
| 52 | static struct omap_dss_device omap4_panda_dvi_device = { | ||
| 53 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
| 54 | .name = "dvi", | ||
| 55 | .driver_name = "tfp410", | ||
| 56 | .data = &omap4_dvi_panel, | ||
| 57 | .phy.dpi.data_lines = 24, | ||
| 58 | .reset_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
| 59 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 60 | }; | ||
| 61 | |||
| 62 | static struct omap_dss_hdmi_data omap4_panda_hdmi_data = { | ||
| 63 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
| 64 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
| 65 | .hpd_gpio = HDMI_GPIO_HPD, | ||
| 66 | }; | ||
| 67 | |||
| 68 | static struct omap_dss_device omap4_panda_hdmi_device = { | ||
| 69 | .name = "hdmi", | ||
| 70 | .driver_name = "hdmi_panel", | ||
| 71 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
| 72 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
| 73 | .data = &omap4_panda_hdmi_data, | ||
| 74 | }; | ||
| 75 | |||
| 76 | static struct omap_dss_device *omap4_panda_dss_devices[] = { | ||
| 77 | &omap4_panda_dvi_device, | ||
| 78 | &omap4_panda_hdmi_device, | ||
| 79 | }; | ||
| 80 | |||
| 81 | static struct omap_dss_board_info omap4_panda_dss_data = { | ||
| 82 | .num_devices = ARRAY_SIZE(omap4_panda_dss_devices), | ||
| 83 | .devices = omap4_panda_dss_devices, | ||
| 84 | .default_device = &omap4_panda_dvi_device, | ||
| 85 | }; | ||
| 86 | |||
| 87 | void __init omap4_panda_display_init(void) | ||
| 88 | { | ||
| 89 | omap_display_init(&omap4_panda_dss_data); | ||
| 90 | |||
| 91 | /* | ||
| 92 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
| 93 | * later have external pull up on the HDMI I2C lines | ||
| 94 | */ | ||
| 95 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
| 96 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
| 97 | else | ||
| 98 | omap_hdmi_init(0); | ||
| 99 | |||
| 100 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
| 101 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
| 102 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
| 103 | } | ||
| 104 | |||
| 105 | void __init omap4_panda_display_init_of(void) | ||
| 106 | { | ||
| 107 | omap_display_init(&omap4_panda_dss_data); | ||
| 108 | } | ||
| 109 | |||
| 110 | |||
| 111 | /* OMAP4 Blaze display data */ | ||
| 112 | |||
| 113 | #define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ | ||
| 114 | #define DLP_POWER_ON_GPIO 40 | ||
| 115 | |||
| 116 | static struct nokia_dsi_panel_data dsi1_panel = { | ||
| 117 | .name = "taal", | ||
| 118 | .reset_gpio = 102, | ||
| 119 | .use_ext_te = false, | ||
| 120 | .ext_te_gpio = 101, | ||
| 121 | .esd_interval = 0, | ||
| 122 | .pin_config = { | ||
| 123 | .num_pins = 6, | ||
| 124 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
| 125 | }, | ||
| 126 | }; | ||
| 127 | |||
| 128 | static struct omap_dss_device sdp4430_lcd_device = { | ||
| 129 | .name = "lcd", | ||
| 130 | .driver_name = "taal", | ||
| 131 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
| 132 | .data = &dsi1_panel, | ||
| 133 | .phy.dsi = { | ||
| 134 | .module = 0, | ||
| 135 | }, | ||
| 136 | .channel = OMAP_DSS_CHANNEL_LCD, | ||
| 137 | }; | ||
| 138 | |||
| 139 | static struct nokia_dsi_panel_data dsi2_panel = { | ||
| 140 | .name = "taal", | ||
| 141 | .reset_gpio = 104, | ||
| 142 | .use_ext_te = false, | ||
| 143 | .ext_te_gpio = 103, | ||
| 144 | .esd_interval = 0, | ||
| 145 | .pin_config = { | ||
| 146 | .num_pins = 6, | ||
| 147 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
| 148 | }, | ||
| 149 | }; | ||
| 150 | |||
| 151 | static struct omap_dss_device sdp4430_lcd2_device = { | ||
| 152 | .name = "lcd2", | ||
| 153 | .driver_name = "taal", | ||
| 154 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
| 155 | .data = &dsi2_panel, | ||
| 156 | .phy.dsi = { | ||
| 157 | |||
| 158 | .module = 1, | ||
| 159 | }, | ||
| 160 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 161 | }; | ||
| 162 | |||
| 163 | static struct omap_dss_hdmi_data sdp4430_hdmi_data = { | ||
| 164 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
| 165 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
| 166 | .hpd_gpio = HDMI_GPIO_HPD, | ||
| 167 | }; | ||
| 168 | |||
| 169 | static struct omap_dss_device sdp4430_hdmi_device = { | ||
| 170 | .name = "hdmi", | ||
| 171 | .driver_name = "hdmi_panel", | ||
| 172 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
| 173 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
| 174 | .data = &sdp4430_hdmi_data, | ||
| 175 | }; | ||
| 176 | |||
| 177 | static struct picodlp_panel_data sdp4430_picodlp_pdata = { | ||
| 178 | .picodlp_adapter_id = 2, | ||
| 179 | .emu_done_gpio = 44, | ||
| 180 | .pwrgood_gpio = 45, | ||
| 181 | }; | ||
| 182 | |||
| 183 | static void sdp4430_picodlp_init(void) | ||
| 184 | { | ||
| 185 | int r; | ||
| 186 | const struct gpio picodlp_gpios[] = { | ||
| 187 | {DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, | ||
| 188 | "DLP POWER ON"}, | ||
| 189 | {sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN, | ||
| 190 | "DLP EMU DONE"}, | ||
| 191 | {sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW, | ||
| 192 | "DLP PWRGOOD"}, | ||
| 193 | }; | ||
| 194 | |||
| 195 | r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios)); | ||
| 196 | if (r) | ||
| 197 | pr_err("Cannot request PicoDLP GPIOs, error %d\n", r); | ||
| 198 | } | ||
| 199 | |||
| 200 | static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev) | ||
| 201 | { | ||
| 202 | gpio_set_value(DISPLAY_SEL_GPIO, 0); | ||
| 203 | gpio_set_value(DLP_POWER_ON_GPIO, 1); | ||
| 204 | |||
| 205 | return 0; | ||
| 206 | } | ||
| 207 | |||
| 208 | static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev) | ||
| 209 | { | ||
| 210 | gpio_set_value(DLP_POWER_ON_GPIO, 0); | ||
| 211 | gpio_set_value(DISPLAY_SEL_GPIO, 1); | ||
| 212 | } | ||
| 213 | |||
| 214 | static struct omap_dss_device sdp4430_picodlp_device = { | ||
| 215 | .name = "picodlp", | ||
| 216 | .driver_name = "picodlp_panel", | ||
| 217 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
| 218 | .phy.dpi.data_lines = 24, | ||
| 219 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
| 220 | .platform_enable = sdp4430_panel_enable_picodlp, | ||
| 221 | .platform_disable = sdp4430_panel_disable_picodlp, | ||
| 222 | .data = &sdp4430_picodlp_pdata, | ||
| 223 | }; | ||
| 224 | |||
| 225 | static struct omap_dss_device *sdp4430_dss_devices[] = { | ||
| 226 | &sdp4430_lcd_device, | ||
| 227 | &sdp4430_lcd2_device, | ||
| 228 | &sdp4430_hdmi_device, | ||
| 229 | &sdp4430_picodlp_device, | ||
| 230 | }; | ||
| 231 | |||
| 232 | static struct omap_dss_board_info sdp4430_dss_data = { | ||
| 233 | .num_devices = ARRAY_SIZE(sdp4430_dss_devices), | ||
| 234 | .devices = sdp4430_dss_devices, | ||
| 235 | .default_device = &sdp4430_lcd_device, | ||
| 236 | }; | ||
| 237 | |||
| 238 | void __init omap_4430sdp_display_init(void) | ||
| 239 | { | ||
| 240 | int r; | ||
| 241 | |||
| 242 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
| 243 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
| 244 | "display_sel"); | ||
| 245 | if (r) | ||
| 246 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
| 247 | |||
| 248 | sdp4430_picodlp_init(); | ||
| 249 | omap_display_init(&sdp4430_dss_data); | ||
| 250 | /* | ||
| 251 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
| 252 | * later have external pull up on the HDMI I2C lines | ||
| 253 | */ | ||
| 254 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
| 255 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
| 256 | else | ||
| 257 | omap_hdmi_init(0); | ||
| 258 | |||
| 259 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
| 260 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
| 261 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
| 262 | } | ||
| 263 | |||
| 264 | void __init omap_4430sdp_display_init_of(void) | ||
| 265 | { | ||
| 266 | int r; | ||
| 267 | |||
| 268 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
| 269 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
| 270 | "display_sel"); | ||
| 271 | if (r) | ||
| 272 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
| 273 | |||
| 274 | sdp4430_picodlp_init(); | ||
| 275 | omap_display_init(&sdp4430_dss_data); | ||
| 276 | } | ||
diff --git a/arch/arm/mach-omap2/dss-common.h b/arch/arm/mach-omap2/dss-common.h new file mode 100644 index 000000000000..915f6fff5106 --- /dev/null +++ b/arch/arm/mach-omap2/dss-common.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | #ifndef __OMAP_DSS_COMMON__ | ||
| 2 | #define __OMAP_DSS_COMMON__ | ||
| 3 | |||
| 4 | /* | ||
| 5 | * NOTE: this is a transitional file to help with DT adaptation. | ||
| 6 | * This file will be removed when DSS supports DT. | ||
| 7 | */ | ||
| 8 | |||
| 9 | void __init omap4_panda_display_init(void); | ||
| 10 | void __init omap4_panda_display_init_of(void); | ||
| 11 | void __init omap_4430sdp_display_init(void); | ||
| 12 | void __init omap_4430sdp_display_init_of(void); | ||
| 13 | |||
| 14 | #endif | ||
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index 0673f0c10432..2cb2f06c20f5 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig | |||
| @@ -2,6 +2,13 @@ if ARCH_ORION5X | |||
| 2 | 2 | ||
| 3 | menu "Orion Implementations" | 3 | menu "Orion Implementations" |
| 4 | 4 | ||
| 5 | config ARCH_ORION5X_DT | ||
| 6 | bool "Marvell Orion5x Flattened Device Tree" | ||
| 7 | select USE_OF | ||
| 8 | help | ||
| 9 | Say 'Y' here if you want your kernel to support the | ||
| 10 | Marvell Orion5x using flattened device tree. | ||
| 11 | |||
| 5 | config MACH_DB88F5281 | 12 | config MACH_DB88F5281 |
| 6 | bool "Marvell Orion-2 Development Board" | 13 | bool "Marvell Orion-2 Development Board" |
| 7 | select I2C_BOARDINFO | 14 | select I2C_BOARDINFO |
| @@ -96,12 +103,13 @@ config MACH_MV2120 | |||
| 96 | Say 'Y' here if you want your kernel to support the | 103 | Say 'Y' here if you want your kernel to support the |
| 97 | HP Media Vault mv2120 or mv5100. | 104 | HP Media Vault mv2120 or mv5100. |
| 98 | 105 | ||
| 99 | config MACH_EDMINI_V2 | 106 | config MACH_EDMINI_V2_DT |
| 100 | bool "LaCie Ethernet Disk mini V2" | 107 | bool "LaCie Ethernet Disk mini V2 (Flattened Device Tree)" |
| 101 | select I2C_BOARDINFO | 108 | select I2C_BOARDINFO |
| 109 | select ARCH_ORION5X_DT | ||
| 102 | help | 110 | help |
| 103 | Say 'Y' here if you want your kernel to support the | 111 | Say 'Y' here if you want your kernel to support the |
| 104 | LaCie Ethernet Disk mini V2. | 112 | LaCie Ethernet Disk mini V2 (Flattened Device Tree). |
| 105 | 113 | ||
| 106 | config MACH_D2NET | 114 | config MACH_D2NET |
| 107 | bool "LaCie d2 Network" | 115 | bool "LaCie d2 Network" |
diff --git a/arch/arm/mach-orion5x/Makefile b/arch/arm/mach-orion5x/Makefile index 7f18cdacd487..9e809a7c05c0 100644 --- a/arch/arm/mach-orion5x/Makefile +++ b/arch/arm/mach-orion5x/Makefile | |||
| @@ -12,7 +12,6 @@ obj-$(CONFIG_MACH_TS409) += ts409-setup.o tsx09-common.o | |||
| 12 | obj-$(CONFIG_MACH_WRT350N_V2) += wrt350n-v2-setup.o | 12 | obj-$(CONFIG_MACH_WRT350N_V2) += wrt350n-v2-setup.o |
| 13 | obj-$(CONFIG_MACH_TS78XX) += ts78xx-setup.o | 13 | obj-$(CONFIG_MACH_TS78XX) += ts78xx-setup.o |
| 14 | obj-$(CONFIG_MACH_MV2120) += mv2120-setup.o | 14 | obj-$(CONFIG_MACH_MV2120) += mv2120-setup.o |
| 15 | obj-$(CONFIG_MACH_EDMINI_V2) += edmini_v2-setup.o | ||
| 16 | obj-$(CONFIG_MACH_D2NET) += d2net-setup.o | 15 | obj-$(CONFIG_MACH_D2NET) += d2net-setup.o |
| 17 | obj-$(CONFIG_MACH_BIGDISK) += d2net-setup.o | 16 | obj-$(CONFIG_MACH_BIGDISK) += d2net-setup.o |
| 18 | obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o | 17 | obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o |
| @@ -22,3 +21,6 @@ obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o | |||
| 22 | obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o | 21 | obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o |
| 23 | obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o | 22 | obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o |
| 24 | obj-$(CONFIG_MACH_LINKSTATION_LSCHL) += ls-chl-setup.o | 23 | obj-$(CONFIG_MACH_LINKSTATION_LSCHL) += ls-chl-setup.o |
| 24 | |||
| 25 | obj-$(CONFIG_ARCH_ORION5X_DT) += board-dt.o | ||
| 26 | obj-$(CONFIG_MACH_EDMINI_V2_DT) += edmini_v2-setup.o | ||
diff --git a/arch/arm/mach-orion5x/board-dt.c b/arch/arm/mach-orion5x/board-dt.c new file mode 100644 index 000000000000..32e5c211a89b --- /dev/null +++ b/arch/arm/mach-orion5x/board-dt.c | |||
| @@ -0,0 +1,79 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 (C), Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
| 3 | * | ||
| 4 | * arch/arm/mach-orion5x/board-dt.c | ||
| 5 | * | ||
| 6 | * Flattened Device Tree board initialization | ||
| 7 | * | ||
| 8 | * This file is licensed under the terms of the GNU General Public | ||
| 9 | * License version 2. This program is licensed "as is" without any | ||
| 10 | * warranty of any kind, whether express or implied. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/kernel.h> | ||
| 14 | #include <linux/init.h> | ||
| 15 | #include <linux/of.h> | ||
| 16 | #include <linux/of_platform.h> | ||
| 17 | #include <asm/system_misc.h> | ||
| 18 | #include <asm/mach/arch.h> | ||
| 19 | #include <mach/orion5x.h> | ||
| 20 | #include <plat/irq.h> | ||
| 21 | #include "common.h" | ||
| 22 | |||
| 23 | struct of_dev_auxdata orion5x_auxdata_lookup[] __initdata = { | ||
| 24 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | ||
| 25 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | ||
| 26 | NULL), | ||
| 27 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | ||
| 28 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), | ||
| 29 | OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1090000, "mv_crypto", NULL), | ||
| 30 | {}, | ||
| 31 | }; | ||
| 32 | |||
| 33 | static void __init orion5x_dt_init(void) | ||
| 34 | { | ||
| 35 | char *dev_name; | ||
| 36 | u32 dev, rev; | ||
| 37 | |||
| 38 | orion5x_id(&dev, &rev, &dev_name); | ||
| 39 | printk(KERN_INFO "Orion ID: %s. TCLK=%d.\n", dev_name, orion5x_tclk); | ||
| 40 | |||
| 41 | /* | ||
| 42 | * Setup Orion address map | ||
| 43 | */ | ||
| 44 | orion5x_setup_cpu_mbus_bridge(); | ||
| 45 | |||
| 46 | /* Setup root of clk tree */ | ||
| 47 | clk_init(); | ||
| 48 | |||
| 49 | /* | ||
| 50 | * Don't issue "Wait for Interrupt" instruction if we are | ||
| 51 | * running on D0 5281 silicon. | ||
| 52 | */ | ||
| 53 | if (dev == MV88F5281_DEV_ID && rev == MV88F5281_REV_D0) { | ||
| 54 | printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); | ||
| 55 | disable_hlt(); | ||
| 56 | } | ||
| 57 | |||
| 58 | if (of_machine_is_compatible("lacie,ethernet-disk-mini-v2")) | ||
| 59 | edmini_v2_init(); | ||
| 60 | |||
| 61 | of_platform_populate(NULL, of_default_bus_match_table, | ||
| 62 | orion5x_auxdata_lookup, NULL); | ||
| 63 | } | ||
| 64 | |||
| 65 | static const char *orion5x_dt_compat[] = { | ||
| 66 | "marvell,orion5x", | ||
| 67 | NULL, | ||
| 68 | }; | ||
| 69 | |||
| 70 | DT_MACHINE_START(ORION5X_DT, "Marvell Orion5x (Flattened Device Tree)") | ||
| 71 | /* Maintainer: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> */ | ||
| 72 | .map_io = orion5x_map_io, | ||
| 73 | .init_early = orion5x_init_early, | ||
| 74 | .init_irq = orion_dt_init_irq, | ||
| 75 | .timer = &orion5x_timer, | ||
| 76 | .init_machine = orion5x_dt_init, | ||
| 77 | .restart = orion5x_restart, | ||
| 78 | .dt_compat = orion5x_dt_compat, | ||
| 79 | MACHINE_END | ||
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index b3eb3da01160..550f92320afb 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
| @@ -65,7 +65,7 @@ void __init orion5x_map_io(void) | |||
| 65 | ****************************************************************************/ | 65 | ****************************************************************************/ |
| 66 | static struct clk *tclk; | 66 | static struct clk *tclk; |
| 67 | 67 | ||
| 68 | static void __init clk_init(void) | 68 | void __init clk_init(void) |
| 69 | { | 69 | { |
| 70 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, | 70 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, |
| 71 | orion5x_tclk); | 71 | orion5x_tclk); |
| @@ -236,7 +236,7 @@ struct sys_timer orion5x_timer = { | |||
| 236 | /* | 236 | /* |
| 237 | * Identify device ID and rev from PCIe configuration header space '0'. | 237 | * Identify device ID and rev from PCIe configuration header space '0'. |
| 238 | */ | 238 | */ |
| 239 | static void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) | 239 | void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) |
| 240 | { | 240 | { |
| 241 | orion5x_pcie_id(dev, rev); | 241 | orion5x_pcie_id(dev, rev); |
| 242 | 242 | ||
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h index 31bab92ce038..7db5cdd9c4b7 100644 --- a/arch/arm/mach-orion5x/common.h +++ b/arch/arm/mach-orion5x/common.h | |||
| @@ -12,6 +12,8 @@ void orion5x_map_io(void); | |||
| 12 | void orion5x_init_early(void); | 12 | void orion5x_init_early(void); |
| 13 | void orion5x_init_irq(void); | 13 | void orion5x_init_irq(void); |
| 14 | void orion5x_init(void); | 14 | void orion5x_init(void); |
| 15 | void orion5x_id(u32 *dev, u32 *rev, char **dev_name); | ||
| 16 | void clk_init(void); | ||
| 15 | extern int orion5x_tclk; | 17 | extern int orion5x_tclk; |
| 16 | extern struct sys_timer orion5x_timer; | 18 | extern struct sys_timer orion5x_timer; |
| 17 | 19 | ||
| @@ -54,6 +56,13 @@ int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys); | |||
| 54 | struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); | 56 | struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); |
| 55 | int orion5x_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); | 57 | int orion5x_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); |
| 56 | 58 | ||
| 59 | /* board init functions for boards not fully converted to fdt */ | ||
| 60 | #ifdef CONFIG_MACH_EDMINI_V2_DT | ||
| 61 | void edmini_v2_init(void); | ||
| 62 | #else | ||
| 63 | static inline void edmini_v2_init(void) {}; | ||
| 64 | #endif | ||
| 65 | |||
| 57 | struct meminfo; | 66 | struct meminfo; |
| 58 | struct tag; | 67 | struct tag; |
| 59 | extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *); | 68 | extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *); |
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c index 355e962137c7..d675e727803d 100644 --- a/arch/arm/mach-orion5x/edmini_v2-setup.c +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c | |||
| @@ -115,69 +115,6 @@ static struct i2c_board_info __initdata edmini_v2_i2c_rtc = { | |||
| 115 | }; | 115 | }; |
| 116 | 116 | ||
| 117 | /***************************************************************************** | 117 | /***************************************************************************** |
| 118 | * Sata | ||
| 119 | ****************************************************************************/ | ||
| 120 | |||
| 121 | static struct mv_sata_platform_data edmini_v2_sata_data = { | ||
| 122 | .n_ports = 2, | ||
| 123 | }; | ||
| 124 | |||
| 125 | /***************************************************************************** | ||
| 126 | * GPIO LED (simple - doesn't use hardware blinking support) | ||
| 127 | ****************************************************************************/ | ||
| 128 | |||
| 129 | #define EDMINI_V2_GPIO_LED_POWER 16 | ||
| 130 | |||
| 131 | static struct gpio_led edmini_v2_leds[] = { | ||
| 132 | { | ||
| 133 | .name = "power:blue", | ||
| 134 | .gpio = EDMINI_V2_GPIO_LED_POWER, | ||
| 135 | .active_low = 1, | ||
| 136 | }, | ||
| 137 | }; | ||
| 138 | |||
| 139 | static struct gpio_led_platform_data edmini_v2_led_data = { | ||
| 140 | .num_leds = ARRAY_SIZE(edmini_v2_leds), | ||
| 141 | .leds = edmini_v2_leds, | ||
| 142 | }; | ||
| 143 | |||
| 144 | static struct platform_device edmini_v2_gpio_leds = { | ||
| 145 | .name = "leds-gpio", | ||
| 146 | .id = -1, | ||
| 147 | .dev = { | ||
| 148 | .platform_data = &edmini_v2_led_data, | ||
| 149 | }, | ||
| 150 | }; | ||
| 151 | |||
| 152 | /**************************************************************************** | ||
| 153 | * GPIO key | ||
| 154 | ****************************************************************************/ | ||
| 155 | |||
| 156 | #define EDMINI_V2_GPIO_KEY_POWER 18 | ||
| 157 | |||
| 158 | static struct gpio_keys_button edmini_v2_buttons[] = { | ||
| 159 | { | ||
| 160 | .code = KEY_POWER, | ||
| 161 | .gpio = EDMINI_V2_GPIO_KEY_POWER, | ||
| 162 | .desc = "Power Button", | ||
| 163 | .active_low = 0, | ||
| 164 | }, | ||
| 165 | }; | ||
| 166 | |||
| 167 | static struct gpio_keys_platform_data edmini_v2_button_data = { | ||
| 168 | .buttons = edmini_v2_buttons, | ||
| 169 | .nbuttons = ARRAY_SIZE(edmini_v2_buttons), | ||
| 170 | }; | ||
| 171 | |||
| 172 | static struct platform_device edmini_v2_gpio_buttons = { | ||
| 173 | .name = "gpio-keys", | ||
| 174 | .id = -1, | ||
| 175 | .dev = { | ||
| 176 | .platform_data = &edmini_v2_button_data, | ||
| 177 | }, | ||
| 178 | }; | ||
| 179 | |||
| 180 | /***************************************************************************** | ||
| 181 | * General Setup | 118 | * General Setup |
| 182 | ****************************************************************************/ | 119 | ****************************************************************************/ |
| 183 | static unsigned int edminiv2_mpp_modes[] __initdata = { | 120 | static unsigned int edminiv2_mpp_modes[] __initdata = { |
| @@ -207,13 +144,8 @@ static unsigned int edminiv2_mpp_modes[] __initdata = { | |||
| 207 | 0, | 144 | 0, |
| 208 | }; | 145 | }; |
| 209 | 146 | ||
| 210 | static void __init edmini_v2_init(void) | 147 | void __init edmini_v2_init(void) |
| 211 | { | 148 | { |
| 212 | /* | ||
| 213 | * Setup basic Orion functions. Need to be called early. | ||
| 214 | */ | ||
| 215 | orion5x_init(); | ||
| 216 | |||
| 217 | orion5x_mpp_conf(edminiv2_mpp_modes); | 149 | orion5x_mpp_conf(edminiv2_mpp_modes); |
| 218 | 150 | ||
| 219 | /* | 151 | /* |
| @@ -221,15 +153,10 @@ static void __init edmini_v2_init(void) | |||
| 221 | */ | 153 | */ |
| 222 | orion5x_ehci0_init(); | 154 | orion5x_ehci0_init(); |
| 223 | orion5x_eth_init(&edmini_v2_eth_data); | 155 | orion5x_eth_init(&edmini_v2_eth_data); |
| 224 | orion5x_i2c_init(); | ||
| 225 | orion5x_sata_init(&edmini_v2_sata_data); | ||
| 226 | orion5x_uart0_init(); | ||
| 227 | 156 | ||
| 228 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, | 157 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, |
| 229 | EDMINI_V2_NOR_BOOT_SIZE); | 158 | EDMINI_V2_NOR_BOOT_SIZE); |
| 230 | platform_device_register(&edmini_v2_nor_flash); | 159 | platform_device_register(&edmini_v2_nor_flash); |
| 231 | platform_device_register(&edmini_v2_gpio_leds); | ||
| 232 | platform_device_register(&edmini_v2_gpio_buttons); | ||
| 233 | 160 | ||
| 234 | pr_notice("edmini_v2: USB device port, flash write and power-off " | 161 | pr_notice("edmini_v2: USB device port, flash write and power-off " |
| 235 | "are not yet supported.\n"); | 162 | "are not yet supported.\n"); |
| @@ -247,16 +174,3 @@ static void __init edmini_v2_init(void) | |||
| 247 | 174 | ||
| 248 | i2c_register_board_info(0, &edmini_v2_i2c_rtc, 1); | 175 | i2c_register_board_info(0, &edmini_v2_i2c_rtc, 1); |
| 249 | } | 176 | } |
| 250 | |||
| 251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | ||
| 252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") | ||
| 253 | /* Maintainer: Christopher Moore <moore@free.fr> */ | ||
| 254 | .atag_offset = 0x100, | ||
| 255 | .init_machine = edmini_v2_init, | ||
| 256 | .map_io = orion5x_map_io, | ||
| 257 | .init_early = orion5x_init_early, | ||
| 258 | .init_irq = orion5x_init_irq, | ||
| 259 | .timer = &orion5x_timer, | ||
| 260 | .fixup = tag_fixup_mem32, | ||
| 261 | .restart = orion5x_restart, | ||
| 262 | MACHINE_END | ||
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index 63e7ae3ee9e6..131c86284711 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig | |||
| @@ -294,6 +294,7 @@ config MACH_WLF_CRAGG_6410 | |||
| 294 | select S3C64XX_SETUP_SDHCI | 294 | select S3C64XX_SETUP_SDHCI |
| 295 | select S3C64XX_SETUP_SPI | 295 | select S3C64XX_SETUP_SPI |
| 296 | select S3C64XX_SETUP_USB_PHY | 296 | select S3C64XX_SETUP_USB_PHY |
| 297 | select S3C_DEV_FB | ||
| 297 | select S3C_DEV_HSMMC | 298 | select S3C_DEV_HSMMC |
| 298 | select S3C_DEV_HSMMC1 | 299 | select S3C_DEV_HSMMC1 |
| 299 | select S3C_DEV_HSMMC2 | 300 | select S3C_DEV_HSMMC2 |
| @@ -304,6 +305,7 @@ config MACH_WLF_CRAGG_6410 | |||
| 304 | select S3C_DEV_WDT | 305 | select S3C_DEV_WDT |
| 305 | select SAMSUNG_DEV_ADC | 306 | select SAMSUNG_DEV_ADC |
| 306 | select SAMSUNG_DEV_KEYPAD | 307 | select SAMSUNG_DEV_KEYPAD |
| 308 | select SAMSUNG_DEV_PWM | ||
| 307 | select SAMSUNG_GPIO_EXTRA128 | 309 | select SAMSUNG_GPIO_EXTRA128 |
| 308 | help | 310 | help |
| 309 | Machine support for the Wolfson Cragganmore S3C6410 variant. | 311 | Machine support for the Wolfson Cragganmore S3C6410 variant. |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 4e3fe57674c8..c6d8dba90623 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c | |||
| @@ -20,6 +20,8 @@ | |||
| 20 | 20 | ||
| 21 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
| 22 | 22 | ||
| 23 | #include <sound/wm0010.h> | ||
| 24 | #include <sound/wm2200.h> | ||
| 23 | #include <sound/wm5100.h> | 25 | #include <sound/wm5100.h> |
| 24 | #include <sound/wm8996.h> | 26 | #include <sound/wm8996.h> |
| 25 | #include <sound/wm8962.h> | 27 | #include <sound/wm8962.h> |
| @@ -33,14 +35,34 @@ static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { | |||
| 33 | .line = S3C64XX_GPC(3), | 35 | .line = S3C64XX_GPC(3), |
| 34 | }; | 36 | }; |
| 35 | 37 | ||
| 38 | static struct wm0010_pdata wm0010_pdata = { | ||
| 39 | .gpio_reset = S3C64XX_GPN(6), | ||
| 40 | .reset_active_high = 1, /* Active high for Glenfarclas Rev 2 */ | ||
| 41 | }; | ||
| 42 | |||
| 36 | static struct spi_board_info wm1253_devs[] = { | 43 | static struct spi_board_info wm1253_devs[] = { |
| 37 | [0] = { | 44 | [0] = { |
| 38 | .modalias = "wm0010", | 45 | .modalias = "wm0010", |
| 46 | .max_speed_hz = 26 * 1000 * 1000, | ||
| 39 | .bus_num = 0, | 47 | .bus_num = 0, |
| 40 | .chip_select = 0, | 48 | .chip_select = 0, |
| 41 | .mode = SPI_MODE_0, | 49 | .mode = SPI_MODE_0, |
| 42 | .irq = S3C_EINT(5), | 50 | .irq = S3C_EINT(5), |
| 43 | .controller_data = &wm0010_spi_csinfo, | 51 | .controller_data = &wm0010_spi_csinfo, |
| 52 | .platform_data = &wm0010_pdata, | ||
| 53 | }, | ||
| 54 | }; | ||
| 55 | |||
| 56 | static struct spi_board_info balblair_devs[] = { | ||
| 57 | [0] = { | ||
| 58 | .modalias = "wm0010", | ||
| 59 | .max_speed_hz = 26 * 1000 * 1000, | ||
| 60 | .bus_num = 0, | ||
| 61 | .chip_select = 0, | ||
| 62 | .mode = SPI_MODE_0, | ||
| 63 | .irq = S3C_EINT(4), | ||
| 64 | .controller_data = &wm0010_spi_csinfo, | ||
| 65 | .platform_data = &wm0010_pdata, | ||
| 44 | }, | 66 | }, |
| 45 | }; | 67 | }; |
| 46 | 68 | ||
| @@ -166,12 +188,13 @@ static struct regulator_init_data wm8994_ldo2 = { | |||
| 166 | 188 | ||
| 167 | static struct wm8994_pdata wm8994_pdata = { | 189 | static struct wm8994_pdata wm8994_pdata = { |
| 168 | .gpio_base = CODEC_GPIO_BASE, | 190 | .gpio_base = CODEC_GPIO_BASE, |
| 191 | .micb2_delay = 150, | ||
| 169 | .gpio_defaults = { | 192 | .gpio_defaults = { |
| 170 | 0x3, /* IRQ out, active high, CMOS */ | 193 | 0x3, /* IRQ out, active high, CMOS */ |
| 171 | }, | 194 | }, |
| 172 | .ldo = { | 195 | .ldo = { |
| 173 | { .init_data = &wm8994_ldo1, }, | 196 | { .enable = S3C64XX_GPN(6), .init_data = &wm8994_ldo1, }, |
| 174 | { .init_data = &wm8994_ldo2, }, | 197 | { .enable = S3C64XX_GPN(4), .init_data = &wm8994_ldo2, }, |
| 175 | }, | 198 | }, |
| 176 | }; | 199 | }; |
| 177 | 200 | ||
| @@ -182,7 +205,7 @@ static const struct i2c_board_info wm1277_devs[] = { | |||
| 182 | }, | 205 | }, |
| 183 | }; | 206 | }; |
| 184 | 207 | ||
| 185 | static struct arizona_pdata wm5102_pdata = { | 208 | static struct arizona_pdata wm5102_reva_pdata = { |
| 186 | .ldoena = S3C64XX_GPN(7), | 209 | .ldoena = S3C64XX_GPN(7), |
| 187 | .gpio_base = CODEC_GPIO_BASE, | 210 | .gpio_base = CODEC_GPIO_BASE, |
| 188 | .irq_active_high = true, | 211 | .irq_active_high = true, |
| @@ -193,64 +216,131 @@ static struct arizona_pdata wm5102_pdata = { | |||
| 193 | }, | 216 | }, |
| 194 | }; | 217 | }; |
| 195 | 218 | ||
| 196 | static struct s3c64xx_spi_csinfo wm5102_spi_csinfo = { | 219 | static struct s3c64xx_spi_csinfo codec_spi_csinfo = { |
| 197 | .line = S3C64XX_GPN(5), | 220 | .line = S3C64XX_GPN(5), |
| 198 | }; | 221 | }; |
| 199 | 222 | ||
| 223 | static struct spi_board_info wm5102_reva_spi_devs[] = { | ||
| 224 | [0] = { | ||
| 225 | .modalias = "wm5102", | ||
| 226 | .max_speed_hz = 10 * 1000 * 1000, | ||
| 227 | .bus_num = 0, | ||
| 228 | .chip_select = 1, | ||
| 229 | .mode = SPI_MODE_0, | ||
| 230 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | ||
| 231 | WM831X_IRQ_GPIO_2, | ||
| 232 | .controller_data = &codec_spi_csinfo, | ||
| 233 | .platform_data = &wm5102_reva_pdata, | ||
| 234 | }, | ||
| 235 | }; | ||
| 236 | |||
| 237 | static struct arizona_pdata wm5102_pdata = { | ||
| 238 | .ldoena = S3C64XX_GPN(7), | ||
| 239 | .gpio_base = CODEC_GPIO_BASE, | ||
| 240 | .irq_active_high = true, | ||
| 241 | .micd_pol_gpio = CODEC_GPIO_BASE + 2, | ||
| 242 | .gpio_defaults = { | ||
| 243 | [2] = 0x10000, /* AIF3TXLRCLK */ | ||
| 244 | [3] = 0x4, /* OPCLK */ | ||
| 245 | }, | ||
| 246 | }; | ||
| 247 | |||
| 200 | static struct spi_board_info wm5102_spi_devs[] = { | 248 | static struct spi_board_info wm5102_spi_devs[] = { |
| 201 | [0] = { | 249 | [0] = { |
| 202 | .modalias = "wm5102", | 250 | .modalias = "wm5102", |
| 203 | .max_speed_hz = 10 * 1000 * 1000, | 251 | .max_speed_hz = 10 * 1000 * 1000, |
| 204 | .bus_num = 0, | 252 | .bus_num = 0, |
| 205 | .chip_select = 0, | 253 | .chip_select = 1, |
| 206 | .mode = SPI_MODE_0, | 254 | .mode = SPI_MODE_0, |
| 207 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | 255 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + |
| 208 | WM831X_IRQ_GPIO_2, | 256 | WM831X_IRQ_GPIO_2, |
| 209 | .controller_data = &wm5102_spi_csinfo, | 257 | .controller_data = &codec_spi_csinfo, |
| 210 | .platform_data = &wm5102_pdata, | 258 | .platform_data = &wm5102_pdata, |
| 211 | }, | 259 | }, |
| 212 | }; | 260 | }; |
| 213 | 261 | ||
| 262 | static struct spi_board_info wm5110_spi_devs[] = { | ||
| 263 | [0] = { | ||
| 264 | .modalias = "wm5110", | ||
| 265 | .max_speed_hz = 10 * 1000 * 1000, | ||
| 266 | .bus_num = 0, | ||
| 267 | .chip_select = 1, | ||
| 268 | .mode = SPI_MODE_0, | ||
| 269 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | ||
| 270 | WM831X_IRQ_GPIO_2, | ||
| 271 | .controller_data = &codec_spi_csinfo, | ||
| 272 | .platform_data = &wm5102_reva_pdata, | ||
| 273 | }, | ||
| 274 | }; | ||
| 275 | |||
| 214 | static const struct i2c_board_info wm6230_i2c_devs[] = { | 276 | static const struct i2c_board_info wm6230_i2c_devs[] = { |
| 215 | { I2C_BOARD_INFO("wm9081", 0x6c), | 277 | { I2C_BOARD_INFO("wm9081", 0x6c), |
| 216 | .platform_data = &wm9081_pdata, }, | 278 | .platform_data = &wm9081_pdata, }, |
| 217 | }; | 279 | }; |
| 218 | 280 | ||
| 281 | static struct wm2200_pdata wm2200_pdata = { | ||
| 282 | .ldo_ena = S3C64XX_GPN(7), | ||
| 283 | .gpio_defaults = { | ||
| 284 | [2] = 0x0005, /* GPIO3 24.576MHz output clock */ | ||
| 285 | }, | ||
| 286 | }; | ||
| 287 | |||
| 288 | static const struct i2c_board_info wm2200_i2c[] = { | ||
| 289 | { I2C_BOARD_INFO("wm2200", 0x3a), | ||
| 290 | .platform_data = &wm2200_pdata, }, | ||
| 291 | }; | ||
| 292 | |||
| 219 | static __devinitdata const struct { | 293 | static __devinitdata const struct { |
| 220 | u8 id; | 294 | u8 id; |
| 295 | u8 rev; | ||
| 221 | const char *name; | 296 | const char *name; |
| 222 | const struct i2c_board_info *i2c_devs; | 297 | const struct i2c_board_info *i2c_devs; |
| 223 | int num_i2c_devs; | 298 | int num_i2c_devs; |
| 224 | const struct spi_board_info *spi_devs; | 299 | const struct spi_board_info *spi_devs; |
| 225 | int num_spi_devs; | 300 | int num_spi_devs; |
| 226 | } gf_mods[] = { | 301 | } gf_mods[] = { |
| 227 | { .id = 0x01, .name = "1250-EV1 Springbank" }, | 302 | { .id = 0x01, .rev = 0xff, .name = "1250-EV1 Springbank" }, |
| 228 | { .id = 0x02, .name = "1251-EV1 Jura" }, | 303 | { .id = 0x02, .rev = 0xff, .name = "1251-EV1 Jura" }, |
| 229 | { .id = 0x03, .name = "1252-EV1 Glenlivet" }, | 304 | { .id = 0x03, .rev = 0xff, .name = "1252-EV1 Glenlivet" }, |
| 230 | { .id = 0x11, .name = "6249-EV2 Glenfarclas", }, | 305 | { .id = 0x06, .rev = 0xff, .name = "WM8997-6721-CS96-EV1 Lapraoig" }, |
| 231 | { .id = 0x14, .name = "6271-EV1 Lochnagar" }, | 306 | { .id = 0x07, .rev = 0xff, .name = "WM5110-6271 Deanston", |
| 232 | { .id = 0x15, .name = "6320-EV1 Bells", | 307 | .spi_devs = wm5110_spi_devs, |
| 308 | .num_spi_devs = ARRAY_SIZE(wm5110_spi_devs) }, | ||
| 309 | { .id = 0x08, .rev = 0xff, .name = "WM8903-6102 Tamdhu" }, | ||
| 310 | { .id = 0x09, .rev = 0xff, .name = "WM1811A-6305 Adelphi" }, | ||
| 311 | { .id = 0x0a, .rev = 0xff, .name = "WM8996-6272 Blackadder" }, | ||
| 312 | { .id = 0x0b, .rev = 0xff, .name = "WM8994-6235 Benromach" }, | ||
| 313 | { .id = 0x11, .rev = 0xff, .name = "6249-EV2 Glenfarclas", }, | ||
| 314 | { .id = 0x14, .rev = 0xff, .name = "6271-EV1 Lochnagar" }, | ||
| 315 | { .id = 0x15, .rev = 0xff, .name = "6320-EV1 Bells", | ||
| 233 | .i2c_devs = wm6230_i2c_devs, | 316 | .i2c_devs = wm6230_i2c_devs, |
| 234 | .num_i2c_devs = ARRAY_SIZE(wm6230_i2c_devs) }, | 317 | .num_i2c_devs = ARRAY_SIZE(wm6230_i2c_devs) }, |
| 235 | { .id = 0x21, .name = "1275-EV1 Mortlach" }, | 318 | { .id = 0x21, .rev = 0xff, .name = "1275-EV1 Mortlach" }, |
| 236 | { .id = 0x25, .name = "1274-EV1 Glencadam" }, | 319 | { .id = 0x25, .rev = 0xff, .name = "1274-EV1 Glencadam" }, |
| 237 | { .id = 0x31, .name = "1253-EV1 Tomatin", | 320 | { .id = 0x31, .rev = 0xff, .name = "1253-EV1 Tomatin", |
| 238 | .spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) }, | 321 | .spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) }, |
| 239 | { .id = 0x32, .name = "XXXX-EV1 Caol Illa" }, | 322 | { .id = 0x32, .rev = 0xff, .name = "XXXX-EV1 Caol Illa" }, |
| 240 | { .id = 0x33, .name = "XXXX-EV1 Oban" }, | 323 | { .id = 0x33, .rev = 0xff, .name = "XXXX-EV1 Oban" }, |
| 241 | { .id = 0x34, .name = "WM0010-6320-CS42 Balblair" }, | 324 | { .id = 0x34, .rev = 0xff, .name = "WM0010-6320-CS42 Balblair", |
| 242 | { .id = 0x39, .name = "1254-EV1 Dallas Dhu", | 325 | .spi_devs = balblair_devs, |
| 326 | .num_spi_devs = ARRAY_SIZE(balblair_devs) }, | ||
| 327 | { .id = 0x39, .rev = 0xff, .name = "1254-EV1 Dallas Dhu", | ||
| 243 | .i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) }, | 328 | .i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) }, |
| 244 | { .id = 0x3a, .name = "1259-EV1 Tobermory", | 329 | { .id = 0x3a, .rev = 0xff, .name = "1259-EV1 Tobermory", |
| 245 | .i2c_devs = wm1259_devs, .num_i2c_devs = ARRAY_SIZE(wm1259_devs) }, | 330 | .i2c_devs = wm1259_devs, .num_i2c_devs = ARRAY_SIZE(wm1259_devs) }, |
| 246 | { .id = 0x3b, .name = "1255-EV1 Kilchoman", | 331 | { .id = 0x3b, .rev = 0xff, .name = "1255-EV1 Kilchoman", |
| 247 | .i2c_devs = wm1255_devs, .num_i2c_devs = ARRAY_SIZE(wm1255_devs) }, | 332 | .i2c_devs = wm1255_devs, .num_i2c_devs = ARRAY_SIZE(wm1255_devs) }, |
| 248 | { .id = 0x3c, .name = "1273-EV1 Longmorn" }, | 333 | { .id = 0x3c, .rev = 0xff, .name = "1273-EV1 Longmorn" }, |
| 249 | { .id = 0x3d, .name = "1277-EV1 Littlemill", | 334 | { .id = 0x3d, .rev = 0xff, .name = "1277-EV1 Littlemill", |
| 250 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, | 335 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, |
| 251 | { .id = 0x3e, .name = "WM5102-6271-EV1-CS127 Amrut", | 336 | { .id = 0x3e, .rev = 0, .name = "WM5102-6271-EV1-CS127 Amrut", |
| 337 | .spi_devs = wm5102_reva_spi_devs, | ||
| 338 | .num_spi_devs = ARRAY_SIZE(wm5102_reva_spi_devs) }, | ||
| 339 | { .id = 0x3e, .rev = -1, .name = "WM5102-6271-EV1-CS127 Amrut", | ||
| 252 | .spi_devs = wm5102_spi_devs, | 340 | .spi_devs = wm5102_spi_devs, |
| 253 | .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, | 341 | .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, |
| 342 | { .id = 0x3f, .rev = -1, .name = "WM2200-6271-CS90-M-REV1", | ||
| 343 | .i2c_devs = wm2200_i2c, .num_i2c_devs = ARRAY_SIZE(wm2200_i2c) }, | ||
| 254 | }; | 344 | }; |
| 255 | 345 | ||
| 256 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | 346 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, |
| @@ -267,7 +357,8 @@ static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | |||
| 267 | id = (ret & 0xfe) >> 2; | 357 | id = (ret & 0xfe) >> 2; |
| 268 | rev = ret & 0x3; | 358 | rev = ret & 0x3; |
| 269 | for (i = 0; i < ARRAY_SIZE(gf_mods); i++) | 359 | for (i = 0; i < ARRAY_SIZE(gf_mods); i++) |
| 270 | if (id == gf_mods[i].id) | 360 | if (id == gf_mods[i].id && (gf_mods[i].rev == 0xff || |
| 361 | rev == gf_mods[i].rev)) | ||
| 271 | break; | 362 | break; |
| 272 | 363 | ||
| 273 | if (i < ARRAY_SIZE(gf_mods)) { | 364 | if (i < ARRAY_SIZE(gf_mods)) { |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 13b7eaa45fd0..701f421de1a8 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
| @@ -287,16 +287,21 @@ static struct platform_device littlemill_device = { | |||
| 287 | .id = -1, | 287 | .id = -1, |
| 288 | }; | 288 | }; |
| 289 | 289 | ||
| 290 | static struct platform_device bells_wm5102_device = { | 290 | static struct platform_device bells_wm2200_device = { |
| 291 | .name = "bells", | 291 | .name = "bells", |
| 292 | .id = 0, | 292 | .id = 0, |
| 293 | }; | 293 | }; |
| 294 | 294 | ||
| 295 | static struct platform_device bells_wm5110_device = { | 295 | static struct platform_device bells_wm5102_device = { |
| 296 | .name = "bells", | 296 | .name = "bells", |
| 297 | .id = 1, | 297 | .id = 1, |
| 298 | }; | 298 | }; |
| 299 | 299 | ||
| 300 | static struct platform_device bells_wm5110_device = { | ||
| 301 | .name = "bells", | ||
| 302 | .id = 2, | ||
| 303 | }; | ||
| 304 | |||
| 300 | static struct regulator_consumer_supply wallvdd_consumers[] = { | 305 | static struct regulator_consumer_supply wallvdd_consumers[] = { |
| 301 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), | 306 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), |
| 302 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), | 307 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), |
| @@ -304,6 +309,13 @@ static struct regulator_consumer_supply wallvdd_consumers[] = { | |||
| 304 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), | 309 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), |
| 305 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), | 310 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), |
| 306 | 311 | ||
| 312 | REGULATOR_SUPPLY("SPKVDDL", "spi0.1"), | ||
| 313 | REGULATOR_SUPPLY("SPKVDDR", "spi0.1"), | ||
| 314 | REGULATOR_SUPPLY("SPKVDDL", "wm5102-codec"), | ||
| 315 | REGULATOR_SUPPLY("SPKVDDR", "wm5102-codec"), | ||
| 316 | REGULATOR_SUPPLY("SPKVDDL", "wm5110-codec"), | ||
| 317 | REGULATOR_SUPPLY("SPKVDDR", "wm5110-codec"), | ||
| 318 | |||
| 307 | REGULATOR_SUPPLY("DC1VDD", "0-0034"), | 319 | REGULATOR_SUPPLY("DC1VDD", "0-0034"), |
| 308 | REGULATOR_SUPPLY("DC2VDD", "0-0034"), | 320 | REGULATOR_SUPPLY("DC2VDD", "0-0034"), |
| 309 | REGULATOR_SUPPLY("DC3VDD", "0-0034"), | 321 | REGULATOR_SUPPLY("DC3VDD", "0-0034"), |
| @@ -321,6 +333,16 @@ static struct regulator_consumer_supply wallvdd_consumers[] = { | |||
| 321 | REGULATOR_SUPPLY("DC1VDD", "1-0034"), | 333 | REGULATOR_SUPPLY("DC1VDD", "1-0034"), |
| 322 | REGULATOR_SUPPLY("DC2VDD", "1-0034"), | 334 | REGULATOR_SUPPLY("DC2VDD", "1-0034"), |
| 323 | REGULATOR_SUPPLY("DC3VDD", "1-0034"), | 335 | REGULATOR_SUPPLY("DC3VDD", "1-0034"), |
| 336 | REGULATOR_SUPPLY("LDO1VDD", "1-0034"), | ||
| 337 | REGULATOR_SUPPLY("LDO2VDD", "1-0034"), | ||
| 338 | REGULATOR_SUPPLY("LDO4VDD", "1-0034"), | ||
| 339 | REGULATOR_SUPPLY("LDO5VDD", "1-0034"), | ||
| 340 | REGULATOR_SUPPLY("LDO6VDD", "1-0034"), | ||
| 341 | REGULATOR_SUPPLY("LDO7VDD", "1-0034"), | ||
| 342 | REGULATOR_SUPPLY("LDO8VDD", "1-0034"), | ||
| 343 | REGULATOR_SUPPLY("LDO9VDD", "1-0034"), | ||
| 344 | REGULATOR_SUPPLY("LDO10VDD", "1-0034"), | ||
| 345 | REGULATOR_SUPPLY("LDO11VDD", "1-0034"), | ||
| 324 | }; | 346 | }; |
| 325 | 347 | ||
| 326 | static struct regulator_init_data wallvdd_data = { | 348 | static struct regulator_init_data wallvdd_data = { |
| @@ -369,6 +391,7 @@ static struct platform_device *crag6410_devices[] __initdata = { | |||
| 369 | &tobermory_device, | 391 | &tobermory_device, |
| 370 | &littlemill_device, | 392 | &littlemill_device, |
| 371 | &lowland_device, | 393 | &lowland_device, |
| 394 | &bells_wm2200_device, | ||
| 372 | &bells_wm5102_device, | 395 | &bells_wm5102_device, |
| 373 | &bells_wm5110_device, | 396 | &bells_wm5110_device, |
| 374 | &wallvdd_device, | 397 | &wallvdd_device, |
| @@ -597,6 +620,7 @@ static struct s3c2410_platform_i2c i2c0_pdata = { | |||
| 597 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { | 620 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { |
| 598 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), | 621 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), |
| 599 | REGULATOR_SUPPLY("AVDD", "spi0.0"), | 622 | REGULATOR_SUPPLY("AVDD", "spi0.0"), |
| 623 | REGULATOR_SUPPLY("AVDD", "spi0.1"), | ||
| 600 | }; | 624 | }; |
| 601 | 625 | ||
| 602 | static struct regulator_init_data pvdd_1v2 __devinitdata = { | 626 | static struct regulator_init_data pvdd_1v2 __devinitdata = { |
| @@ -621,6 +645,24 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { | |||
| 621 | REGULATOR_SUPPLY("DCVDD", "1-001a"), | 645 | REGULATOR_SUPPLY("DCVDD", "1-001a"), |
| 622 | REGULATOR_SUPPLY("AVDD", "1-001a"), | 646 | REGULATOR_SUPPLY("AVDD", "1-001a"), |
| 623 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), | 647 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), |
| 648 | |||
| 649 | REGULATOR_SUPPLY("DBVDD", "1-003a"), | ||
| 650 | REGULATOR_SUPPLY("LDOVDD", "1-003a"), | ||
| 651 | REGULATOR_SUPPLY("CPVDD", "1-003a"), | ||
| 652 | REGULATOR_SUPPLY("AVDD", "1-003a"), | ||
| 653 | REGULATOR_SUPPLY("DBVDD1", "spi0.1"), | ||
| 654 | REGULATOR_SUPPLY("DBVDD2", "spi0.1"), | ||
| 655 | REGULATOR_SUPPLY("DBVDD3", "spi0.1"), | ||
| 656 | REGULATOR_SUPPLY("LDOVDD", "spi0.1"), | ||
| 657 | REGULATOR_SUPPLY("CPVDD", "spi0.1"), | ||
| 658 | |||
| 659 | REGULATOR_SUPPLY("DBVDD2", "wm5102-codec"), | ||
| 660 | REGULATOR_SUPPLY("DBVDD3", "wm5102-codec"), | ||
| 661 | REGULATOR_SUPPLY("CPVDD", "wm5102-codec"), | ||
| 662 | |||
| 663 | REGULATOR_SUPPLY("DBVDD2", "wm5110-codec"), | ||
| 664 | REGULATOR_SUPPLY("DBVDD3", "wm5110-codec"), | ||
| 665 | REGULATOR_SUPPLY("CPVDD", "wm5110-codec"), | ||
| 624 | }; | 666 | }; |
| 625 | 667 | ||
| 626 | static struct regulator_init_data pvdd_1v8 __devinitdata = { | 668 | static struct regulator_init_data pvdd_1v8 __devinitdata = { |
| @@ -685,6 +727,7 @@ static struct i2c_board_info i2c_devs1[] __devinitdata = { | |||
| 685 | .irq = S3C_EINT(0), | 727 | .irq = S3C_EINT(0), |
| 686 | .platform_data = &glenfarclas_pmic_pdata }, | 728 | .platform_data = &glenfarclas_pmic_pdata }, |
| 687 | 729 | ||
| 730 | { I2C_BOARD_INFO("wlf-gf-module", 0x20) }, | ||
| 688 | { I2C_BOARD_INFO("wlf-gf-module", 0x22) }, | 731 | { I2C_BOARD_INFO("wlf-gf-module", 0x22) }, |
| 689 | { I2C_BOARD_INFO("wlf-gf-module", 0x24) }, | 732 | { I2C_BOARD_INFO("wlf-gf-module", 0x24) }, |
| 690 | { I2C_BOARD_INFO("wlf-gf-module", 0x25) }, | 733 | { I2C_BOARD_INFO("wlf-gf-module", 0x25) }, |
| @@ -810,7 +853,7 @@ static void __init crag6410_machine_init(void) | |||
| 810 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); | 853 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); |
| 811 | 854 | ||
| 812 | samsung_keypad_set_platdata(&crag6410_keypad_data); | 855 | samsung_keypad_set_platdata(&crag6410_keypad_data); |
| 813 | s3c64xx_spi0_set_platdata(NULL, 0, 1); | 856 | s3c64xx_spi0_set_platdata(NULL, 0, 2); |
| 814 | 857 | ||
| 815 | platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices)); | 858 | platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices)); |
| 816 | 859 | ||
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 546e40a9dcaf..4eddca14ae07 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
| @@ -38,17 +38,6 @@ config ARCH_EMEV2 | |||
| 38 | 38 | ||
| 39 | comment "SH-Mobile Board Type" | 39 | comment "SH-Mobile Board Type" |
| 40 | 40 | ||
| 41 | config MACH_G3EVM | ||
| 42 | bool "G3EVM board" | ||
| 43 | depends on ARCH_SH7367 | ||
| 44 | select ARCH_REQUIRE_GPIOLIB | ||
| 45 | |||
| 46 | config MACH_G4EVM | ||
| 47 | bool "G4EVM board" | ||
| 48 | depends on ARCH_SH7377 | ||
| 49 | select ARCH_REQUIRE_GPIOLIB | ||
| 50 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
| 51 | |||
| 52 | config MACH_AP4EVB | 41 | config MACH_AP4EVB |
| 53 | bool "AP4EVB board" | 42 | bool "AP4EVB board" |
| 54 | depends on ARCH_SH7372 | 43 | depends on ARCH_SH7372 |
| @@ -83,6 +72,7 @@ config MACH_MACKEREL | |||
| 83 | select ARCH_REQUIRE_GPIOLIB | 72 | select ARCH_REQUIRE_GPIOLIB |
| 84 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | 73 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 85 | select SND_SOC_AK4642 if SND_SIMPLE_CARD | 74 | select SND_SOC_AK4642 if SND_SIMPLE_CARD |
| 75 | select USE_OF | ||
| 86 | 76 | ||
| 87 | config MACH_KOTA2 | 77 | config MACH_KOTA2 |
| 88 | bool "KOTA2 board" | 78 | bool "KOTA2 board" |
| @@ -134,8 +124,7 @@ menu "Memory configuration" | |||
| 134 | 124 | ||
| 135 | config MEMORY_START | 125 | config MEMORY_START |
| 136 | hex "Physical memory start address" | 126 | hex "Physical memory start address" |
| 137 | default "0x50000000" if MACH_G3EVM | 127 | default "0x40000000" if MACH_AP4EVB || MACH_AG5EVM || \ |
| 138 | default "0x40000000" if MACH_G4EVM || MACH_AP4EVB || MACH_AG5EVM || \ | ||
| 139 | MACH_MACKEREL || MACH_BONITO || \ | 128 | MACH_MACKEREL || MACH_BONITO || \ |
| 140 | MACH_ARMADILLO800EVA | 129 | MACH_ARMADILLO800EVA |
| 141 | default "0x41000000" if MACH_KOTA2 | 130 | default "0x41000000" if MACH_KOTA2 |
| @@ -147,8 +136,6 @@ config MEMORY_START | |||
| 147 | 136 | ||
| 148 | config MEMORY_SIZE | 137 | config MEMORY_SIZE |
| 149 | hex "Physical memory size" | 138 | hex "Physical memory size" |
| 150 | default "0x08000000" if MACH_G3EVM | ||
| 151 | default "0x08000000" if MACH_G4EVM | ||
| 152 | default "0x20000000" if MACH_AG5EVM || MACH_BONITO || \ | 139 | default "0x20000000" if MACH_AG5EVM || MACH_BONITO || \ |
| 153 | MACH_ARMADILLO800EVA | 140 | MACH_ARMADILLO800EVA |
| 154 | default "0x1e000000" if MACH_KOTA2 | 141 | default "0x1e000000" if MACH_KOTA2 |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index f4fd247bde61..0b7147928aa3 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
| @@ -39,8 +39,6 @@ obj-$(CONFIG_ARCH_R8A7740) += pm-r8a7740.o | |||
| 39 | obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o | 39 | obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o |
| 40 | 40 | ||
| 41 | # Board objects | 41 | # Board objects |
| 42 | obj-$(CONFIG_MACH_G3EVM) += board-g3evm.o | ||
| 43 | obj-$(CONFIG_MACH_G4EVM) += board-g4evm.o | ||
| 44 | obj-$(CONFIG_MACH_AP4EVB) += board-ap4evb.o | 42 | obj-$(CONFIG_MACH_AP4EVB) += board-ap4evb.o |
| 45 | obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o | 43 | obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o |
| 46 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o | 44 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index 3cc8b1c21da9..499e6e376666 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
| @@ -1229,6 +1229,13 @@ static void __init eva_add_early_devices(void) | |||
| 1229 | shmobile_timer.init = eva_earlytimer_init; | 1229 | shmobile_timer.init = eva_earlytimer_init; |
| 1230 | } | 1230 | } |
| 1231 | 1231 | ||
| 1232 | #define RESCNT2 IOMEM(0xe6188020) | ||
| 1233 | static void eva_restart(char mode, const char *cmd) | ||
| 1234 | { | ||
| 1235 | /* Do soft power on reset */ | ||
| 1236 | writel((1 << 31), RESCNT2); | ||
| 1237 | } | ||
| 1238 | |||
| 1232 | static const char *eva_boards_compat_dt[] __initdata = { | 1239 | static const char *eva_boards_compat_dt[] __initdata = { |
| 1233 | "renesas,armadillo800eva", | 1240 | "renesas,armadillo800eva", |
| 1234 | NULL, | 1241 | NULL, |
| @@ -1243,4 +1250,5 @@ DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") | |||
| 1243 | .init_late = shmobile_init_late, | 1250 | .init_late = shmobile_init_late, |
| 1244 | .timer = &shmobile_timer, | 1251 | .timer = &shmobile_timer, |
| 1245 | .dt_compat = eva_boards_compat_dt, | 1252 | .dt_compat = eva_boards_compat_dt, |
| 1253 | .restart = eva_restart, | ||
| 1246 | MACHINE_END | 1254 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c deleted file mode 100644 index b179d4c213bb..000000000000 --- a/arch/arm/mach-shmobile/board-g3evm.c +++ /dev/null | |||
| @@ -1,343 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * G3EVM board support | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 Magnus Damm | ||
| 5 | * Copyright (C) 2008 Yoshihiro Shimoda | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License as published by | ||
| 9 | * the Free Software Foundation; version 2 of the License. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
| 19 | */ | ||
| 20 | #include <linux/kernel.h> | ||
| 21 | #include <linux/init.h> | ||
| 22 | #include <linux/interrupt.h> | ||
| 23 | #include <linux/irq.h> | ||
| 24 | #include <linux/platform_device.h> | ||
| 25 | #include <linux/delay.h> | ||
| 26 | #include <linux/mtd/mtd.h> | ||
| 27 | #include <linux/mtd/partitions.h> | ||
| 28 | #include <linux/mtd/physmap.h> | ||
| 29 | #include <linux/mtd/sh_flctl.h> | ||
| 30 | #include <linux/usb/r8a66597.h> | ||
| 31 | #include <linux/io.h> | ||
| 32 | #include <linux/gpio.h> | ||
| 33 | #include <linux/input.h> | ||
| 34 | #include <linux/input/sh_keysc.h> | ||
| 35 | #include <linux/dma-mapping.h> | ||
| 36 | #include <mach/irqs.h> | ||
| 37 | #include <mach/sh7367.h> | ||
| 38 | #include <mach/common.h> | ||
| 39 | #include <asm/mach-types.h> | ||
| 40 | #include <asm/mach/arch.h> | ||
| 41 | |||
| 42 | /* | ||
| 43 | * IrDA | ||
| 44 | * | ||
| 45 | * S67: 5bit : ON power | ||
| 46 | * : 6bit : ON remote control | ||
| 47 | * OFF IrDA | ||
| 48 | */ | ||
| 49 | |||
| 50 | static struct mtd_partition nor_flash_partitions[] = { | ||
| 51 | { | ||
| 52 | .name = "loader", | ||
| 53 | .offset = 0x00000000, | ||
| 54 | .size = 512 * 1024, | ||
| 55 | }, | ||
| 56 | { | ||
| 57 | .name = "bootenv", | ||
| 58 | .offset = MTDPART_OFS_APPEND, | ||
| 59 | .size = 512 * 1024, | ||
| 60 | }, | ||
| 61 | { | ||
| 62 | .name = "kernel_ro", | ||
| 63 | .offset = MTDPART_OFS_APPEND, | ||
| 64 | .size = 8 * 1024 * 1024, | ||
| 65 | .mask_flags = MTD_WRITEABLE, | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | .name = "kernel", | ||
| 69 | .offset = MTDPART_OFS_APPEND, | ||
| 70 | .size = 8 * 1024 * 1024, | ||
| 71 | }, | ||
| 72 | { | ||
| 73 | .name = "data", | ||
| 74 | .offset = MTDPART_OFS_APPEND, | ||
| 75 | .size = MTDPART_SIZ_FULL, | ||
| 76 | }, | ||
| 77 | }; | ||
| 78 | |||
| 79 | static struct physmap_flash_data nor_flash_data = { | ||
| 80 | .width = 2, | ||
| 81 | .parts = nor_flash_partitions, | ||
| 82 | .nr_parts = ARRAY_SIZE(nor_flash_partitions), | ||
| 83 | }; | ||
| 84 | |||
| 85 | static struct resource nor_flash_resources[] = { | ||
| 86 | [0] = { | ||
| 87 | .start = 0x00000000, | ||
| 88 | .end = 0x08000000 - 1, | ||
| 89 | .flags = IORESOURCE_MEM, | ||
| 90 | } | ||
| 91 | }; | ||
| 92 | |||
| 93 | static struct platform_device nor_flash_device = { | ||
| 94 | .name = "physmap-flash", | ||
| 95 | .dev = { | ||
| 96 | .platform_data = &nor_flash_data, | ||
| 97 | }, | ||
| 98 | .num_resources = ARRAY_SIZE(nor_flash_resources), | ||
| 99 | .resource = nor_flash_resources, | ||
| 100 | }; | ||
| 101 | |||
| 102 | /* USBHS */ | ||
| 103 | static void usb_host_port_power(int port, int power) | ||
| 104 | { | ||
| 105 | if (!power) /* only power-on supported for now */ | ||
| 106 | return; | ||
| 107 | |||
| 108 | /* set VBOUT/PWEN and EXTLP0 in DVSTCTR */ | ||
| 109 | __raw_writew(__raw_readw(IOMEM(0xe6890008)) | 0x600, IOMEM(0xe6890008)); | ||
| 110 | } | ||
| 111 | |||
| 112 | static struct r8a66597_platdata usb_host_data = { | ||
| 113 | .on_chip = 1, | ||
| 114 | .port_power = usb_host_port_power, | ||
| 115 | }; | ||
| 116 | |||
| 117 | static struct resource usb_host_resources[] = { | ||
| 118 | [0] = { | ||
| 119 | .name = "USBHS", | ||
| 120 | .start = 0xe6890000, | ||
| 121 | .end = 0xe68900e5, | ||
| 122 | .flags = IORESOURCE_MEM, | ||
| 123 | }, | ||
| 124 | [1] = { | ||
| 125 | .start = evt2irq(0xa20), /* USBHS_USHI0 */ | ||
| 126 | .flags = IORESOURCE_IRQ, | ||
| 127 | }, | ||
| 128 | }; | ||
| 129 | |||
| 130 | static struct platform_device usb_host_device = { | ||
| 131 | .name = "r8a66597_hcd", | ||
| 132 | .id = 0, | ||
| 133 | .dev = { | ||
| 134 | .platform_data = &usb_host_data, | ||
| 135 | .dma_mask = NULL, | ||
| 136 | .coherent_dma_mask = 0xffffffff, | ||
| 137 | }, | ||
| 138 | .num_resources = ARRAY_SIZE(usb_host_resources), | ||
| 139 | .resource = usb_host_resources, | ||
| 140 | }; | ||
| 141 | |||
| 142 | /* KEYSC */ | ||
| 143 | static struct sh_keysc_info keysc_info = { | ||
| 144 | .mode = SH_KEYSC_MODE_5, | ||
| 145 | .scan_timing = 3, | ||
| 146 | .delay = 100, | ||
| 147 | .keycodes = { | ||
| 148 | KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, | ||
| 149 | KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, | ||
| 150 | KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, | ||
| 151 | KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, | ||
| 152 | KEY_WAKEUP, KEY_COFFEE, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, | ||
| 153 | KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER, | ||
| 154 | }, | ||
| 155 | }; | ||
| 156 | |||
| 157 | static struct resource keysc_resources[] = { | ||
| 158 | [0] = { | ||
| 159 | .name = "KEYSC", | ||
| 160 | .start = 0xe61b0000, | ||
| 161 | .end = 0xe61b000f, | ||
| 162 | .flags = IORESOURCE_MEM, | ||
| 163 | }, | ||
| 164 | [1] = { | ||
| 165 | .start = evt2irq(0xbe0), /* KEYSC_KEY */ | ||
| 166 | .flags = IORESOURCE_IRQ, | ||
| 167 | }, | ||
| 168 | }; | ||
| 169 | |||
| 170 | static struct platform_device keysc_device = { | ||
| 171 | .name = "sh_keysc", | ||
| 172 | .num_resources = ARRAY_SIZE(keysc_resources), | ||
| 173 | .resource = keysc_resources, | ||
| 174 | .dev = { | ||
| 175 | .platform_data = &keysc_info, | ||
| 176 | }, | ||
| 177 | }; | ||
| 178 | |||
| 179 | static struct mtd_partition nand_partition_info[] = { | ||
| 180 | { | ||
| 181 | .name = "system", | ||
| 182 | .offset = 0, | ||
| 183 | .size = 64 * 1024 * 1024, | ||
| 184 | }, | ||
| 185 | { | ||
| 186 | .name = "userdata", | ||
| 187 | .offset = MTDPART_OFS_APPEND, | ||
| 188 | .size = 128 * 1024 * 1024, | ||
| 189 | }, | ||
| 190 | { | ||
| 191 | .name = "cache", | ||
| 192 | .offset = MTDPART_OFS_APPEND, | ||
| 193 | .size = 64 * 1024 * 1024, | ||
| 194 | }, | ||
| 195 | }; | ||
| 196 | |||
| 197 | static struct resource nand_flash_resources[] = { | ||
| 198 | [0] = { | ||
| 199 | .start = 0xe6a30000, | ||
| 200 | .end = 0xe6a3009b, | ||
| 201 | .flags = IORESOURCE_MEM, | ||
| 202 | } | ||
| 203 | }; | ||
| 204 | |||
| 205 | static struct sh_flctl_platform_data nand_flash_data = { | ||
| 206 | .parts = nand_partition_info, | ||
| 207 | .nr_parts = ARRAY_SIZE(nand_partition_info), | ||
| 208 | .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E | ||
| 209 | | SHBUSSEL | SEL_16BIT, | ||
| 210 | }; | ||
| 211 | |||
| 212 | static struct platform_device nand_flash_device = { | ||
| 213 | .name = "sh_flctl", | ||
| 214 | .resource = nand_flash_resources, | ||
| 215 | .num_resources = ARRAY_SIZE(nand_flash_resources), | ||
| 216 | .dev = { | ||
| 217 | .platform_data = &nand_flash_data, | ||
| 218 | }, | ||
| 219 | }; | ||
| 220 | |||
| 221 | static struct resource irda_resources[] = { | ||
| 222 | [0] = { | ||
| 223 | .start = 0xE6D00000, | ||
| 224 | .end = 0xE6D01FD4 - 1, | ||
| 225 | .flags = IORESOURCE_MEM, | ||
| 226 | }, | ||
| 227 | [1] = { | ||
| 228 | .start = evt2irq(0x480), /* IRDA */ | ||
| 229 | .flags = IORESOURCE_IRQ, | ||
| 230 | }, | ||
| 231 | }; | ||
| 232 | |||
| 233 | static struct platform_device irda_device = { | ||
| 234 | .name = "sh_irda", | ||
| 235 | .id = -1, | ||
| 236 | .resource = irda_resources, | ||
| 237 | .num_resources = ARRAY_SIZE(irda_resources), | ||
| 238 | }; | ||
| 239 | |||
| 240 | static struct platform_device *g3evm_devices[] __initdata = { | ||
| 241 | &nor_flash_device, | ||
| 242 | &usb_host_device, | ||
| 243 | &keysc_device, | ||
| 244 | &nand_flash_device, | ||
| 245 | &irda_device, | ||
| 246 | }; | ||
| 247 | |||
| 248 | static void __init g3evm_init(void) | ||
| 249 | { | ||
| 250 | sh7367_pinmux_init(); | ||
| 251 | |||
| 252 | /* Lit DS4 LED */ | ||
| 253 | gpio_request(GPIO_PORT22, NULL); | ||
| 254 | gpio_direction_output(GPIO_PORT22, 1); | ||
| 255 | gpio_export(GPIO_PORT22, 0); | ||
| 256 | |||
| 257 | /* Lit DS8 LED */ | ||
| 258 | gpio_request(GPIO_PORT23, NULL); | ||
| 259 | gpio_direction_output(GPIO_PORT23, 1); | ||
| 260 | gpio_export(GPIO_PORT23, 0); | ||
| 261 | |||
| 262 | /* Lit DS3 LED */ | ||
| 263 | gpio_request(GPIO_PORT24, NULL); | ||
| 264 | gpio_direction_output(GPIO_PORT24, 1); | ||
| 265 | gpio_export(GPIO_PORT24, 0); | ||
| 266 | |||
| 267 | /* SCIFA1 */ | ||
| 268 | gpio_request(GPIO_FN_SCIFA1_TXD, NULL); | ||
| 269 | gpio_request(GPIO_FN_SCIFA1_RXD, NULL); | ||
| 270 | gpio_request(GPIO_FN_SCIFA1_CTS, NULL); | ||
| 271 | gpio_request(GPIO_FN_SCIFA1_RTS, NULL); | ||
| 272 | |||
| 273 | /* USBHS */ | ||
| 274 | gpio_request(GPIO_FN_VBUS0, NULL); | ||
| 275 | gpio_request(GPIO_FN_PWEN, NULL); | ||
| 276 | gpio_request(GPIO_FN_OVCN, NULL); | ||
| 277 | gpio_request(GPIO_FN_OVCN2, NULL); | ||
| 278 | gpio_request(GPIO_FN_EXTLP, NULL); | ||
| 279 | gpio_request(GPIO_FN_IDIN, NULL); | ||
| 280 | |||
| 281 | /* setup USB phy */ | ||
| 282 | __raw_writew(0x0300, IOMEM(0xe605810a)); /* USBCR1 */ | ||
| 283 | __raw_writew(0x00e0, IOMEM(0xe60581c0)); /* CPFCH */ | ||
| 284 | __raw_writew(0x6010, IOMEM(0xe60581c6)); /* CGPOSR */ | ||
| 285 | __raw_writew(0x8a0a, IOMEM(0xe605810c)); /* USBCR2 */ | ||
| 286 | |||
| 287 | /* KEYSC @ CN7 */ | ||
| 288 | gpio_request(GPIO_FN_PORT42_KEYOUT0, NULL); | ||
| 289 | gpio_request(GPIO_FN_PORT43_KEYOUT1, NULL); | ||
| 290 | gpio_request(GPIO_FN_PORT44_KEYOUT2, NULL); | ||
| 291 | gpio_request(GPIO_FN_PORT45_KEYOUT3, NULL); | ||
| 292 | gpio_request(GPIO_FN_PORT46_KEYOUT4, NULL); | ||
| 293 | gpio_request(GPIO_FN_PORT47_KEYOUT5, NULL); | ||
| 294 | gpio_request(GPIO_FN_PORT48_KEYIN0_PU, NULL); | ||
| 295 | gpio_request(GPIO_FN_PORT49_KEYIN1_PU, NULL); | ||
| 296 | gpio_request(GPIO_FN_PORT50_KEYIN2_PU, NULL); | ||
| 297 | gpio_request(GPIO_FN_PORT55_KEYIN3_PU, NULL); | ||
| 298 | gpio_request(GPIO_FN_PORT56_KEYIN4_PU, NULL); | ||
| 299 | gpio_request(GPIO_FN_PORT57_KEYIN5_PU, NULL); | ||
| 300 | gpio_request(GPIO_FN_PORT58_KEYIN6_PU, NULL); | ||
| 301 | |||
| 302 | /* FLCTL */ | ||
| 303 | gpio_request(GPIO_FN_FCE0, NULL); | ||
| 304 | gpio_request(GPIO_FN_D0_ED0_NAF0, NULL); | ||
| 305 | gpio_request(GPIO_FN_D1_ED1_NAF1, NULL); | ||
| 306 | gpio_request(GPIO_FN_D2_ED2_NAF2, NULL); | ||
| 307 | gpio_request(GPIO_FN_D3_ED3_NAF3, NULL); | ||
| 308 | gpio_request(GPIO_FN_D4_ED4_NAF4, NULL); | ||
| 309 | gpio_request(GPIO_FN_D5_ED5_NAF5, NULL); | ||
| 310 | gpio_request(GPIO_FN_D6_ED6_NAF6, NULL); | ||
| 311 | gpio_request(GPIO_FN_D7_ED7_NAF7, NULL); | ||
| 312 | gpio_request(GPIO_FN_D8_ED8_NAF8, NULL); | ||
| 313 | gpio_request(GPIO_FN_D9_ED9_NAF9, NULL); | ||
| 314 | gpio_request(GPIO_FN_D10_ED10_NAF10, NULL); | ||
| 315 | gpio_request(GPIO_FN_D11_ED11_NAF11, NULL); | ||
| 316 | gpio_request(GPIO_FN_D12_ED12_NAF12, NULL); | ||
| 317 | gpio_request(GPIO_FN_D13_ED13_NAF13, NULL); | ||
| 318 | gpio_request(GPIO_FN_D14_ED14_NAF14, NULL); | ||
| 319 | gpio_request(GPIO_FN_D15_ED15_NAF15, NULL); | ||
| 320 | gpio_request(GPIO_FN_WE0_XWR0_FWE, NULL); | ||
| 321 | gpio_request(GPIO_FN_FRB, NULL); | ||
| 322 | /* FOE, FCDE, FSC on dedicated pins */ | ||
| 323 | __raw_writel(__raw_readl(IOMEM(0xe6158048)) & ~(1 << 15), IOMEM(0xe6158048)); | ||
| 324 | |||
| 325 | /* IrDA */ | ||
| 326 | gpio_request(GPIO_FN_IRDA_OUT, NULL); | ||
| 327 | gpio_request(GPIO_FN_IRDA_IN, NULL); | ||
| 328 | gpio_request(GPIO_FN_IRDA_FIRSEL, NULL); | ||
| 329 | |||
| 330 | sh7367_add_standard_devices(); | ||
| 331 | |||
| 332 | platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); | ||
| 333 | } | ||
| 334 | |||
| 335 | MACHINE_START(G3EVM, "g3evm") | ||
| 336 | .map_io = sh7367_map_io, | ||
| 337 | .init_early = sh7367_add_early_devices, | ||
| 338 | .init_irq = sh7367_init_irq, | ||
| 339 | .handle_irq = shmobile_handle_irq_intc, | ||
| 340 | .init_machine = g3evm_init, | ||
| 341 | .init_late = shmobile_init_late, | ||
| 342 | .timer = &shmobile_timer, | ||
| 343 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c deleted file mode 100644 index 35c126caa4d8..000000000000 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ /dev/null | |||
| @@ -1,384 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * G4EVM board support | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 Magnus Damm | ||
| 5 | * Copyright (C) 2008 Yoshihiro Shimoda | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License as published by | ||
| 9 | * the Free Software Foundation; version 2 of the License. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
| 19 | */ | ||
| 20 | #include <linux/kernel.h> | ||
| 21 | #include <linux/init.h> | ||
| 22 | #include <linux/interrupt.h> | ||
| 23 | #include <linux/irq.h> | ||
| 24 | #include <linux/platform_device.h> | ||
| 25 | #include <linux/delay.h> | ||
| 26 | #include <linux/mtd/mtd.h> | ||
| 27 | #include <linux/mtd/partitions.h> | ||
| 28 | #include <linux/mtd/physmap.h> | ||
| 29 | #include <linux/regulator/fixed.h> | ||
| 30 | #include <linux/regulator/machine.h> | ||
| 31 | #include <linux/usb/r8a66597.h> | ||
| 32 | #include <linux/io.h> | ||
| 33 | #include <linux/input.h> | ||
| 34 | #include <linux/input/sh_keysc.h> | ||
| 35 | #include <linux/mmc/host.h> | ||
| 36 | #include <linux/mmc/sh_mobile_sdhi.h> | ||
| 37 | #include <linux/gpio.h> | ||
| 38 | #include <linux/dma-mapping.h> | ||
| 39 | #include <mach/irqs.h> | ||
| 40 | #include <mach/sh7377.h> | ||
| 41 | #include <mach/common.h> | ||
| 42 | #include <asm/mach-types.h> | ||
| 43 | #include <asm/mach/arch.h> | ||
| 44 | |||
| 45 | #include "sh-gpio.h" | ||
| 46 | |||
| 47 | /* | ||
| 48 | * SDHI | ||
| 49 | * | ||
| 50 | * SDHI0 : card detection is possible | ||
| 51 | * SDHI1 : card detection is impossible | ||
| 52 | * | ||
| 53 | * [G4-MAIN-BOARD] | ||
| 54 | * JP74 : short # DBG_2V8A for SDHI0 | ||
| 55 | * JP75 : NC # DBG_3V3A for SDHI0 | ||
| 56 | * JP76 : NC # DBG_3V3A_SD for SDHI0 | ||
| 57 | * JP77 : NC # 3V3A_SDIO for SDHI1 | ||
| 58 | * JP78 : short # DBG_2V8A for SDHI1 | ||
| 59 | * JP79 : NC # DBG_3V3A for SDHI1 | ||
| 60 | * JP80 : NC # DBG_3V3A_SD for SDHI1 | ||
| 61 | * | ||
| 62 | * [G4-CORE-BOARD] | ||
| 63 | * S32 : all off # to dissever from G3-CORE_DBG board | ||
| 64 | * S33 : all off # to dissever from G3-CORE_DBG board | ||
| 65 | * | ||
| 66 | * [G3-CORE_DBG-BOARD] | ||
| 67 | * S1 : all off # to dissever from G3-CORE_DBG board | ||
| 68 | * S3 : all off # to dissever from G3-CORE_DBG board | ||
| 69 | * S4 : all off # to dissever from G3-CORE_DBG board | ||
| 70 | */ | ||
| 71 | |||
| 72 | static struct mtd_partition nor_flash_partitions[] = { | ||
| 73 | { | ||
| 74 | .name = "loader", | ||
| 75 | .offset = 0x00000000, | ||
| 76 | .size = 512 * 1024, | ||
| 77 | }, | ||
| 78 | { | ||
| 79 | .name = "bootenv", | ||
| 80 | .offset = MTDPART_OFS_APPEND, | ||
| 81 | .size = 512 * 1024, | ||
| 82 | }, | ||
| 83 | { | ||
| 84 | .name = "kernel_ro", | ||
| 85 | .offset = MTDPART_OFS_APPEND, | ||
| 86 | .size = 8 * 1024 * 1024, | ||
| 87 | .mask_flags = MTD_WRITEABLE, | ||
| 88 | }, | ||
| 89 | { | ||
| 90 | .name = "kernel", | ||
| 91 | .offset = MTDPART_OFS_APPEND, | ||
| 92 | .size = 8 * 1024 * 1024, | ||
| 93 | }, | ||
| 94 | { | ||
| 95 | .name = "data", | ||
| 96 | .offset = MTDPART_OFS_APPEND, | ||
| 97 | .size = MTDPART_SIZ_FULL, | ||
| 98 | }, | ||
| 99 | }; | ||
| 100 | |||
| 101 | static struct physmap_flash_data nor_flash_data = { | ||
| 102 | .width = 2, | ||
| 103 | .parts = nor_flash_partitions, | ||
| 104 | .nr_parts = ARRAY_SIZE(nor_flash_partitions), | ||
| 105 | }; | ||
| 106 | |||
| 107 | static struct resource nor_flash_resources[] = { | ||
| 108 | [0] = { | ||
| 109 | .start = 0x00000000, | ||
| 110 | .end = 0x08000000 - 1, | ||
| 111 | .flags = IORESOURCE_MEM, | ||
| 112 | } | ||
| 113 | }; | ||
| 114 | |||
| 115 | static struct platform_device nor_flash_device = { | ||
| 116 | .name = "physmap-flash", | ||
| 117 | .dev = { | ||
| 118 | .platform_data = &nor_flash_data, | ||
| 119 | }, | ||
| 120 | .num_resources = ARRAY_SIZE(nor_flash_resources), | ||
| 121 | .resource = nor_flash_resources, | ||
| 122 | }; | ||
| 123 | |||
| 124 | /* USBHS */ | ||
| 125 | static void usb_host_port_power(int port, int power) | ||
| 126 | { | ||
| 127 | if (!power) /* only power-on supported for now */ | ||
| 128 | return; | ||
| 129 | |||
| 130 | /* set VBOUT/PWEN and EXTLP0 in DVSTCTR */ | ||
| 131 | __raw_writew(__raw_readw(IOMEM(0xe6890008)) | 0x600, IOMEM(0xe6890008)); | ||
| 132 | } | ||
| 133 | |||
| 134 | static struct r8a66597_platdata usb_host_data = { | ||
| 135 | .on_chip = 1, | ||
| 136 | .port_power = usb_host_port_power, | ||
| 137 | }; | ||
| 138 | |||
| 139 | static struct resource usb_host_resources[] = { | ||
| 140 | [0] = { | ||
| 141 | .name = "USBHS", | ||
| 142 | .start = 0xe6890000, | ||
| 143 | .end = 0xe68900e5, | ||
| 144 | .flags = IORESOURCE_MEM, | ||
| 145 | }, | ||
| 146 | [1] = { | ||
| 147 | .start = evt2irq(0x0a20), /* USBHS_USHI0 */ | ||
| 148 | .flags = IORESOURCE_IRQ, | ||
| 149 | }, | ||
| 150 | }; | ||
| 151 | |||
| 152 | static struct platform_device usb_host_device = { | ||
| 153 | .name = "r8a66597_hcd", | ||
| 154 | .id = 0, | ||
| 155 | .dev = { | ||
| 156 | .platform_data = &usb_host_data, | ||
| 157 | .dma_mask = NULL, | ||
| 158 | .coherent_dma_mask = 0xffffffff, | ||
| 159 | }, | ||
| 160 | .num_resources = ARRAY_SIZE(usb_host_resources), | ||
| 161 | .resource = usb_host_resources, | ||
| 162 | }; | ||
| 163 | |||
| 164 | /* KEYSC */ | ||
| 165 | static struct sh_keysc_info keysc_info = { | ||
| 166 | .mode = SH_KEYSC_MODE_5, | ||
| 167 | .scan_timing = 3, | ||
| 168 | .delay = 100, | ||
| 169 | .keycodes = { | ||
| 170 | KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, | ||
| 171 | KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, | ||
| 172 | KEY_M, KEY_N, KEY_U, KEY_P, KEY_Q, KEY_R, | ||
| 173 | KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, | ||
| 174 | KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, KEY_WAKEUP, KEY_COFFEE, | ||
| 175 | KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, | ||
| 176 | KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER, | ||
| 177 | }, | ||
| 178 | }; | ||
| 179 | |||
| 180 | static struct resource keysc_resources[] = { | ||
| 181 | [0] = { | ||
| 182 | .name = "KEYSC", | ||
| 183 | .start = 0xe61b0000, | ||
| 184 | .end = 0xe61b000f, | ||
| 185 | .flags = IORESOURCE_MEM, | ||
| 186 | }, | ||
| 187 | [1] = { | ||
| 188 | .start = evt2irq(0x0be0), /* KEYSC_KEY */ | ||
| 189 | .flags = IORESOURCE_IRQ, | ||
| 190 | }, | ||
| 191 | }; | ||
| 192 | |||
| 193 | static struct platform_device keysc_device = { | ||
| 194 | .name = "sh_keysc", | ||
| 195 | .id = 0, /* keysc0 clock */ | ||
| 196 | .num_resources = ARRAY_SIZE(keysc_resources), | ||
| 197 | .resource = keysc_resources, | ||
| 198 | .dev = { | ||
| 199 | .platform_data = &keysc_info, | ||
| 200 | }, | ||
| 201 | }; | ||
| 202 | |||
| 203 | /* Fixed 3.3V regulator to be used by SDHI0 and SDHI1 */ | ||
| 204 | static struct regulator_consumer_supply fixed3v3_power_consumers[] = | ||
| 205 | { | ||
| 206 | REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), | ||
| 207 | REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), | ||
| 208 | REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"), | ||
| 209 | REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"), | ||
| 210 | }; | ||
| 211 | |||
| 212 | /* SDHI */ | ||
| 213 | static struct sh_mobile_sdhi_info sdhi0_info = { | ||
| 214 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
| 215 | }; | ||
| 216 | |||
| 217 | static struct resource sdhi0_resources[] = { | ||
| 218 | [0] = { | ||
| 219 | .name = "SDHI0", | ||
| 220 | .start = 0xe6d50000, | ||
| 221 | .end = 0xe6d500ff, | ||
| 222 | .flags = IORESOURCE_MEM, | ||
| 223 | }, | ||
| 224 | [1] = { | ||
| 225 | .start = evt2irq(0x0e00), /* SDHI0 */ | ||
| 226 | .flags = IORESOURCE_IRQ, | ||
| 227 | }, | ||
| 228 | }; | ||
| 229 | |||
| 230 | static struct platform_device sdhi0_device = { | ||
| 231 | .name = "sh_mobile_sdhi", | ||
| 232 | .num_resources = ARRAY_SIZE(sdhi0_resources), | ||
| 233 | .resource = sdhi0_resources, | ||
| 234 | .id = 0, | ||
| 235 | .dev = { | ||
| 236 | .platform_data = &sdhi0_info, | ||
| 237 | }, | ||
| 238 | }; | ||
| 239 | |||
| 240 | static struct sh_mobile_sdhi_info sdhi1_info = { | ||
| 241 | .tmio_caps = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ, | ||
| 242 | }; | ||
| 243 | |||
| 244 | static struct resource sdhi1_resources[] = { | ||
| 245 | [0] = { | ||
| 246 | .name = "SDHI1", | ||
| 247 | .start = 0xe6d60000, | ||
| 248 | .end = 0xe6d600ff, | ||
| 249 | .flags = IORESOURCE_MEM, | ||
| 250 | }, | ||
| 251 | [1] = { | ||
| 252 | .start = evt2irq(0x0e80), /* SDHI1 */ | ||
| 253 | .flags = IORESOURCE_IRQ, | ||
| 254 | }, | ||
| 255 | }; | ||
| 256 | |||
| 257 | static struct platform_device sdhi1_device = { | ||
| 258 | .name = "sh_mobile_sdhi", | ||
| 259 | .num_resources = ARRAY_SIZE(sdhi1_resources), | ||
| 260 | .resource = sdhi1_resources, | ||
| 261 | .id = 1, | ||
| 262 | .dev = { | ||
| 263 | .platform_data = &sdhi1_info, | ||
| 264 | }, | ||
| 265 | }; | ||
| 266 | |||
| 267 | static struct platform_device *g4evm_devices[] __initdata = { | ||
| 268 | &nor_flash_device, | ||
| 269 | &usb_host_device, | ||
| 270 | &keysc_device, | ||
| 271 | &sdhi0_device, | ||
| 272 | &sdhi1_device, | ||
| 273 | }; | ||
| 274 | |||
| 275 | #define GPIO_SDHID0_D0 IOMEM(0xe60520fc) | ||
| 276 | #define GPIO_SDHID0_D1 IOMEM(0xe60520fd) | ||
| 277 | #define GPIO_SDHID0_D2 IOMEM(0xe60520fe) | ||
| 278 | #define GPIO_SDHID0_D3 IOMEM(0xe60520ff) | ||
| 279 | #define GPIO_SDHICMD0 IOMEM(0xe6052100) | ||
| 280 | |||
| 281 | #define GPIO_SDHID1_D0 IOMEM(0xe6052103) | ||
| 282 | #define GPIO_SDHID1_D1 IOMEM(0xe6052104) | ||
| 283 | #define GPIO_SDHID1_D2 IOMEM(0xe6052105) | ||
| 284 | #define GPIO_SDHID1_D3 IOMEM(0xe6052106) | ||
| 285 | #define GPIO_SDHICMD1 IOMEM(0xe6052107) | ||
| 286 | |||
| 287 | static void __init g4evm_init(void) | ||
| 288 | { | ||
| 289 | regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers, | ||
| 290 | ARRAY_SIZE(fixed3v3_power_consumers), 3300000); | ||
| 291 | |||
| 292 | sh7377_pinmux_init(); | ||
| 293 | |||
| 294 | /* Lit DS14 LED */ | ||
| 295 | gpio_request(GPIO_PORT109, NULL); | ||
| 296 | gpio_direction_output(GPIO_PORT109, 1); | ||
| 297 | gpio_export(GPIO_PORT109, 1); | ||
| 298 | |||
| 299 | /* Lit DS15 LED */ | ||
| 300 | gpio_request(GPIO_PORT110, NULL); | ||
| 301 | gpio_direction_output(GPIO_PORT110, 1); | ||
| 302 | gpio_export(GPIO_PORT110, 1); | ||
| 303 | |||
| 304 | /* Lit DS16 LED */ | ||
| 305 | gpio_request(GPIO_PORT112, NULL); | ||
| 306 | gpio_direction_output(GPIO_PORT112, 1); | ||
| 307 | gpio_export(GPIO_PORT112, 1); | ||
| 308 | |||
| 309 | /* Lit DS17 LED */ | ||
| 310 | gpio_request(GPIO_PORT113, NULL); | ||
| 311 | gpio_direction_output(GPIO_PORT113, 1); | ||
| 312 | gpio_export(GPIO_PORT113, 1); | ||
| 313 | |||
| 314 | /* USBHS */ | ||
| 315 | gpio_request(GPIO_FN_VBUS_0, NULL); | ||
| 316 | gpio_request(GPIO_FN_PWEN, NULL); | ||
| 317 | gpio_request(GPIO_FN_OVCN, NULL); | ||
| 318 | gpio_request(GPIO_FN_OVCN2, NULL); | ||
| 319 | gpio_request(GPIO_FN_EXTLP, NULL); | ||
| 320 | gpio_request(GPIO_FN_IDIN, NULL); | ||
| 321 | |||
| 322 | /* setup USB phy */ | ||
| 323 | __raw_writew(0x0200, IOMEM(0xe605810a)); /* USBCR1 */ | ||
| 324 | __raw_writew(0x00e0, IOMEM(0xe60581c0)); /* CPFCH */ | ||
| 325 | __raw_writew(0x6010, IOMEM(0xe60581c6)); /* CGPOSR */ | ||
| 326 | __raw_writew(0x8a0a, IOMEM(0xe605810c)); /* USBCR2 */ | ||
| 327 | |||
| 328 | /* KEYSC @ CN31 */ | ||
| 329 | gpio_request(GPIO_FN_PORT60_KEYOUT5, NULL); | ||
| 330 | gpio_request(GPIO_FN_PORT61_KEYOUT4, NULL); | ||
| 331 | gpio_request(GPIO_FN_PORT62_KEYOUT3, NULL); | ||
| 332 | gpio_request(GPIO_FN_PORT63_KEYOUT2, NULL); | ||
| 333 | gpio_request(GPIO_FN_PORT64_KEYOUT1, NULL); | ||
| 334 | gpio_request(GPIO_FN_PORT65_KEYOUT0, NULL); | ||
| 335 | gpio_request(GPIO_FN_PORT66_KEYIN0_PU, NULL); | ||
| 336 | gpio_request(GPIO_FN_PORT67_KEYIN1_PU, NULL); | ||
| 337 | gpio_request(GPIO_FN_PORT68_KEYIN2_PU, NULL); | ||
| 338 | gpio_request(GPIO_FN_PORT69_KEYIN3_PU, NULL); | ||
| 339 | gpio_request(GPIO_FN_PORT70_KEYIN4_PU, NULL); | ||
| 340 | gpio_request(GPIO_FN_PORT71_KEYIN5_PU, NULL); | ||
| 341 | gpio_request(GPIO_FN_PORT72_KEYIN6_PU, NULL); | ||
| 342 | |||
| 343 | /* SDHI0 */ | ||
| 344 | gpio_request(GPIO_FN_SDHICLK0, NULL); | ||
| 345 | gpio_request(GPIO_FN_SDHICD0, NULL); | ||
| 346 | gpio_request(GPIO_FN_SDHID0_0, NULL); | ||
| 347 | gpio_request(GPIO_FN_SDHID0_1, NULL); | ||
| 348 | gpio_request(GPIO_FN_SDHID0_2, NULL); | ||
| 349 | gpio_request(GPIO_FN_SDHID0_3, NULL); | ||
| 350 | gpio_request(GPIO_FN_SDHICMD0, NULL); | ||
| 351 | gpio_request(GPIO_FN_SDHIWP0, NULL); | ||
| 352 | gpio_request_pullup(GPIO_SDHID0_D0); | ||
| 353 | gpio_request_pullup(GPIO_SDHID0_D1); | ||
| 354 | gpio_request_pullup(GPIO_SDHID0_D2); | ||
| 355 | gpio_request_pullup(GPIO_SDHID0_D3); | ||
| 356 | gpio_request_pullup(GPIO_SDHICMD0); | ||
| 357 | |||
| 358 | /* SDHI1 */ | ||
| 359 | gpio_request(GPIO_FN_SDHICLK1, NULL); | ||
| 360 | gpio_request(GPIO_FN_SDHID1_0, NULL); | ||
| 361 | gpio_request(GPIO_FN_SDHID1_1, NULL); | ||
| 362 | gpio_request(GPIO_FN_SDHID1_2, NULL); | ||
| 363 | gpio_request(GPIO_FN_SDHID1_3, NULL); | ||
| 364 | gpio_request(GPIO_FN_SDHICMD1, NULL); | ||
| 365 | gpio_request_pullup(GPIO_SDHID1_D0); | ||
| 366 | gpio_request_pullup(GPIO_SDHID1_D1); | ||
| 367 | gpio_request_pullup(GPIO_SDHID1_D2); | ||
| 368 | gpio_request_pullup(GPIO_SDHID1_D3); | ||
| 369 | gpio_request_pullup(GPIO_SDHICMD1); | ||
| 370 | |||
| 371 | sh7377_add_standard_devices(); | ||
| 372 | |||
| 373 | platform_add_devices(g4evm_devices, ARRAY_SIZE(g4evm_devices)); | ||
| 374 | } | ||
| 375 | |||
| 376 | MACHINE_START(G4EVM, "g4evm") | ||
| 377 | .map_io = sh7377_map_io, | ||
| 378 | .init_early = sh7377_add_early_devices, | ||
| 379 | .init_irq = sh7377_init_irq, | ||
| 380 | .handle_irq = shmobile_handle_irq_intc, | ||
| 381 | .init_machine = g4evm_init, | ||
| 382 | .init_late = shmobile_init_late, | ||
| 383 | .timer = &shmobile_timer, | ||
| 384 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c index 7a05de794a8c..c02448d6847f 100644 --- a/arch/arm/mach-shmobile/board-kzm9g.c +++ b/arch/arm/mach-shmobile/board-kzm9g.c | |||
| @@ -384,6 +384,8 @@ static struct regulator_consumer_supply fixed2v8_power_consumers[] = | |||
| 384 | 384 | ||
| 385 | /* SDHI */ | 385 | /* SDHI */ |
| 386 | static struct sh_mobile_sdhi_info sdhi0_info = { | 386 | static struct sh_mobile_sdhi_info sdhi0_info = { |
| 387 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | ||
| 388 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | ||
| 387 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, | 389 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, |
| 388 | .tmio_caps = MMC_CAP_SD_HIGHSPEED, | 390 | .tmio_caps = MMC_CAP_SD_HIGHSPEED, |
| 389 | .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, | 391 | .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, |
| @@ -424,6 +426,8 @@ static struct platform_device sdhi0_device = { | |||
| 424 | 426 | ||
| 425 | /* Micro SD */ | 427 | /* Micro SD */ |
| 426 | static struct sh_mobile_sdhi_info sdhi2_info = { | 428 | static struct sh_mobile_sdhi_info sdhi2_info = { |
| 429 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, | ||
| 430 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, | ||
| 427 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | | 431 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | |
| 428 | TMIO_MMC_USE_GPIO_CD | | 432 | TMIO_MMC_USE_GPIO_CD | |
| 429 | TMIO_MMC_WRPROTECT_DISABLE, | 433 | TMIO_MMC_WRPROTECT_DISABLE, |
| @@ -556,7 +560,15 @@ static struct i2c_board_info i2c0_devices[] = { | |||
| 556 | }, | 560 | }, |
| 557 | { | 561 | { |
| 558 | I2C_BOARD_INFO("r2025sd", 0x32), | 562 | I2C_BOARD_INFO("r2025sd", 0x32), |
| 559 | } | 563 | }, |
| 564 | { | ||
| 565 | I2C_BOARD_INFO("ak8975", 0x0c), | ||
| 566 | .irq = intcs_evt2irq(0x3380), /* IRQ28 */ | ||
| 567 | }, | ||
| 568 | { | ||
| 569 | I2C_BOARD_INFO("adxl34x", 0x1d), | ||
| 570 | .irq = intcs_evt2irq(0x3340), /* IRQ26 */ | ||
| 571 | }, | ||
| 560 | }; | 572 | }; |
| 561 | 573 | ||
| 562 | static struct i2c_board_info i2c1_devices[] = { | 574 | static struct i2c_board_info i2c1_devices[] = { |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index c826d77ab8a6..f274252e4705 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
| @@ -1651,7 +1651,12 @@ static void __init mackerel_init(void) | |||
| 1651 | pm_clk_add(&hdmi_lcdc_device.dev, "hdmi"); | 1651 | pm_clk_add(&hdmi_lcdc_device.dev, "hdmi"); |
| 1652 | } | 1652 | } |
| 1653 | 1653 | ||
| 1654 | MACHINE_START(MACKEREL, "mackerel") | 1654 | static const char *mackerel_boards_compat_dt[] __initdata = { |
| 1655 | "renesas,mackerel", | ||
| 1656 | NULL, | ||
| 1657 | }; | ||
| 1658 | |||
| 1659 | DT_MACHINE_START(MACKEREL_DT, "mackerel") | ||
| 1655 | .map_io = sh7372_map_io, | 1660 | .map_io = sh7372_map_io, |
| 1656 | .init_early = sh7372_add_early_devices, | 1661 | .init_early = sh7372_add_early_devices, |
| 1657 | .init_irq = sh7372_init_irq, | 1662 | .init_irq = sh7372_init_irq, |
| @@ -1659,4 +1664,5 @@ MACHINE_START(MACKEREL, "mackerel") | |||
| 1659 | .init_machine = mackerel_init, | 1664 | .init_machine = mackerel_init, |
| 1660 | .init_late = sh7372_pm_init_late, | 1665 | .init_late = sh7372_pm_init_late, |
| 1661 | .timer = &shmobile_timer, | 1666 | .timer = &shmobile_timer, |
| 1667 | .dt_compat = mackerel_boards_compat_dt, | ||
| 1662 | MACHINE_END | 1668 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index b8a7525a4e2f..69f7f464eff8 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
| @@ -30,6 +30,8 @@ | |||
| 30 | #include <linux/regulator/fixed.h> | 30 | #include <linux/regulator/fixed.h> |
| 31 | #include <linux/regulator/machine.h> | 31 | #include <linux/regulator/machine.h> |
| 32 | #include <linux/smsc911x.h> | 32 | #include <linux/smsc911x.h> |
| 33 | #include <linux/spi/spi.h> | ||
| 34 | #include <linux/spi/sh_hspi.h> | ||
| 33 | #include <linux/mmc/sh_mobile_sdhi.h> | 35 | #include <linux/mmc/sh_mobile_sdhi.h> |
| 34 | #include <linux/mfd/tmio.h> | 36 | #include <linux/mfd/tmio.h> |
| 35 | #include <mach/hardware.h> | 37 | #include <mach/hardware.h> |
| @@ -126,10 +128,27 @@ static struct platform_device thermal_device = { | |||
| 126 | .num_resources = ARRAY_SIZE(thermal_resources), | 128 | .num_resources = ARRAY_SIZE(thermal_resources), |
| 127 | }; | 129 | }; |
| 128 | 130 | ||
| 131 | /* HSPI */ | ||
| 132 | static struct resource hspi_resources[] = { | ||
| 133 | [0] = { | ||
| 134 | .start = 0xFFFC7000, | ||
| 135 | .end = 0xFFFC7018 - 1, | ||
| 136 | .flags = IORESOURCE_MEM, | ||
| 137 | }, | ||
| 138 | }; | ||
| 139 | |||
| 140 | static struct platform_device hspi_device = { | ||
| 141 | .name = "sh-hspi", | ||
| 142 | .id = 0, | ||
| 143 | .resource = hspi_resources, | ||
| 144 | .num_resources = ARRAY_SIZE(hspi_resources), | ||
| 145 | }; | ||
| 146 | |||
| 129 | static struct platform_device *marzen_devices[] __initdata = { | 147 | static struct platform_device *marzen_devices[] __initdata = { |
| 130 | ð_device, | 148 | ð_device, |
| 131 | &sdhi0_device, | 149 | &sdhi0_device, |
| 132 | &thermal_device, | 150 | &thermal_device, |
| 151 | &hspi_device, | ||
| 133 | }; | 152 | }; |
| 134 | 153 | ||
| 135 | static void __init marzen_init(void) | 154 | static void __init marzen_init(void) |
| @@ -163,6 +182,12 @@ static void __init marzen_init(void) | |||
| 163 | gpio_request(GPIO_FN_SD0_CD, NULL); | 182 | gpio_request(GPIO_FN_SD0_CD, NULL); |
| 164 | gpio_request(GPIO_FN_SD0_WP, NULL); | 183 | gpio_request(GPIO_FN_SD0_WP, NULL); |
| 165 | 184 | ||
| 185 | /* HSPI 0 */ | ||
| 186 | gpio_request(GPIO_FN_HSPI_CLK0, NULL); | ||
| 187 | gpio_request(GPIO_FN_HSPI_CS0, NULL); | ||
| 188 | gpio_request(GPIO_FN_HSPI_TX0, NULL); | ||
| 189 | gpio_request(GPIO_FN_HSPI_RX0, NULL); | ||
| 190 | |||
| 166 | r8a7779_add_standard_devices(); | 191 | r8a7779_add_standard_devices(); |
| 167 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); | 192 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); |
| 168 | } | 193 | } |
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index f508defc0d96..b58bc8a14b9c 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig | |||
| @@ -379,7 +379,9 @@ config LEDS_NS2 | |||
| 379 | tristate "LED support for Network Space v2 GPIO LEDs" | 379 | tristate "LED support for Network Space v2 GPIO LEDs" |
| 380 | depends on LEDS_CLASS | 380 | depends on LEDS_CLASS |
| 381 | depends on MACH_NETSPACE_V2 || MACH_INETSPACE_V2 || \ | 381 | depends on MACH_NETSPACE_V2 || MACH_INETSPACE_V2 || \ |
| 382 | MACH_NETSPACE_MAX_V2 || MACH_D2NET_V2 | 382 | MACH_NETSPACE_MAX_V2 || MACH_D2NET_V2 || \ |
| 383 | MACH_NETSPACE_V2_DT || MACH_INETSPACE_V2_DT || \ | ||
| 384 | MACH_NETSPACE_MAX_V2_DT || MACH_NETSPACE_MINI_V2_DT | ||
| 383 | default y | 385 | default y |
| 384 | help | 386 | help |
| 385 | This option enable support for the dual-GPIO LED found on the | 387 | This option enable support for the dual-GPIO LED found on the |
diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c index 6315e88d04fd..7b75affb308a 100644 --- a/drivers/leds/leds-ns2.c +++ b/drivers/leds/leds-ns2.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #include <linux/leds.h> | 30 | #include <linux/leds.h> |
| 31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
| 32 | #include <linux/platform_data/leds-kirkwood-ns2.h> | 32 | #include <linux/platform_data/leds-kirkwood-ns2.h> |
| 33 | #include <linux/of_gpio.h> | ||
| 33 | 34 | ||
| 34 | /* | 35 | /* |
| 35 | * The Network Space v2 dual-GPIO LED is wired to a CPLD and can blink in | 36 | * The Network Space v2 dual-GPIO LED is wired to a CPLD and can blink in |
| @@ -263,6 +264,62 @@ static void delete_ns2_led(struct ns2_led_data *led_dat) | |||
| 263 | gpio_free(led_dat->slow); | 264 | gpio_free(led_dat->slow); |
| 264 | } | 265 | } |
| 265 | 266 | ||
| 267 | #ifdef CONFIG_OF_GPIO | ||
| 268 | /* | ||
| 269 | * Translate OpenFirmware node properties into platform_data. | ||
| 270 | */ | ||
| 271 | static int | ||
| 272 | ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata) | ||
| 273 | { | ||
| 274 | struct device_node *np = dev->of_node; | ||
| 275 | struct device_node *child; | ||
| 276 | struct ns2_led *leds; | ||
| 277 | int num_leds = 0; | ||
| 278 | int i = 0; | ||
| 279 | |||
| 280 | num_leds = of_get_child_count(np); | ||
| 281 | if (!num_leds) | ||
| 282 | return -ENODEV; | ||
| 283 | |||
| 284 | leds = devm_kzalloc(dev, num_leds * sizeof(struct ns2_led), | ||
| 285 | GFP_KERNEL); | ||
| 286 | if (!leds) | ||
| 287 | return -ENOMEM; | ||
| 288 | |||
| 289 | for_each_child_of_node(np, child) { | ||
| 290 | const char *string; | ||
| 291 | int ret; | ||
| 292 | |||
| 293 | ret = of_get_named_gpio(child, "cmd-gpio", 0); | ||
| 294 | if (ret < 0) | ||
| 295 | return ret; | ||
| 296 | leds[i].cmd = ret; | ||
| 297 | ret = of_get_named_gpio(child, "slow-gpio", 0); | ||
| 298 | if (ret < 0) | ||
| 299 | return ret; | ||
| 300 | leds[i].slow = ret; | ||
| 301 | ret = of_property_read_string(child, "label", &string); | ||
| 302 | leds[i].name = (ret == 0) ? string : child->name; | ||
| 303 | ret = of_property_read_string(child, "linux,default-trigger", | ||
| 304 | &string); | ||
| 305 | if (ret == 0) | ||
| 306 | leds[i].default_trigger = string; | ||
| 307 | |||
| 308 | i++; | ||
| 309 | } | ||
| 310 | |||
| 311 | pdata->leds = leds; | ||
| 312 | pdata->num_leds = num_leds; | ||
| 313 | |||
| 314 | return 0; | ||
| 315 | } | ||
| 316 | |||
| 317 | static const struct of_device_id of_ns2_leds_match[] = { | ||
| 318 | { .compatible = "lacie,ns2-leds", }, | ||
| 319 | {}, | ||
| 320 | }; | ||
| 321 | #endif /* CONFIG_OF_GPIO */ | ||
| 322 | |||
| 266 | static int ns2_led_probe(struct platform_device *pdev) | 323 | static int ns2_led_probe(struct platform_device *pdev) |
| 267 | { | 324 | { |
| 268 | struct ns2_led_platform_data *pdata = pdev->dev.platform_data; | 325 | struct ns2_led_platform_data *pdata = pdev->dev.platform_data; |
| @@ -270,11 +327,25 @@ static int ns2_led_probe(struct platform_device *pdev) | |||
| 270 | int i; | 327 | int i; |
| 271 | int ret; | 328 | int ret; |
| 272 | 329 | ||
| 330 | #ifdef CONFIG_OF_GPIO | ||
| 331 | if (!pdata) { | ||
| 332 | pdata = devm_kzalloc(&pdev->dev, | ||
| 333 | sizeof(struct ns2_led_platform_data), | ||
| 334 | GFP_KERNEL); | ||
| 335 | if (!pdata) | ||
| 336 | return -ENOMEM; | ||
| 337 | |||
| 338 | ret = ns2_leds_get_of_pdata(&pdev->dev, pdata); | ||
| 339 | if (ret) | ||
| 340 | return ret; | ||
| 341 | } | ||
| 342 | #else | ||
| 273 | if (!pdata) | 343 | if (!pdata) |
| 274 | return -EINVAL; | 344 | return -EINVAL; |
| 345 | #endif /* CONFIG_OF_GPIO */ | ||
| 275 | 346 | ||
| 276 | leds_data = devm_kzalloc(&pdev->dev, sizeof(struct ns2_led_data) * | 347 | leds_data = devm_kzalloc(&pdev->dev, sizeof(struct ns2_led_data) * |
| 277 | pdata->num_leds, GFP_KERNEL); | 348 | pdata->num_leds, GFP_KERNEL); |
| 278 | if (!leds_data) | 349 | if (!leds_data) |
| 279 | return -ENOMEM; | 350 | return -ENOMEM; |
| 280 | 351 | ||
| @@ -312,8 +383,9 @@ static struct platform_driver ns2_led_driver = { | |||
| 312 | .probe = ns2_led_probe, | 383 | .probe = ns2_led_probe, |
| 313 | .remove = ns2_led_remove, | 384 | .remove = ns2_led_remove, |
| 314 | .driver = { | 385 | .driver = { |
| 315 | .name = "leds-ns2", | 386 | .name = "leds-ns2", |
| 316 | .owner = THIS_MODULE, | 387 | .owner = THIS_MODULE, |
| 388 | .of_match_table = of_match_ptr(of_ns2_leds_match), | ||
| 317 | }, | 389 | }, |
| 318 | }; | 390 | }; |
| 319 | 391 | ||
