Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 May 2013 19:34:30 +0000 (12:34 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 May 2013 19:34:30 +0000 (12:34 -0700)
Pull ARM SoC board specific changes (part 1) from Olof Johansson:
 "These changes are all for board specific files.  These used to make up
  a large portion of the ARM changes in the past, but as we are
  generalizing the support and moving to device tree probing, this has
  gotten significantly smaller.

  The only platform actually adding new code here at the moment is
  Renesas shmobile, as they are still busy converting their code to
  device tree and have not come far enough to not need it."

* tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
  ARM: msm: USB_MSM_OTG needs USB_PHY
  ARM: davinci: da850 evm: fix const qualifier placement
  ARM: davinci: da850 board: add remoteproc support
  ARM: pxa: move debug uart code
  ARM: pxa: select PXA935 on saar & tavorevb
  ARM: mmp: add more compatible names in gpio driver
  ARM: pxa: move PXA_GPIO_TO_IRQ macro
  ARM: pxa: remove cpu_is_xxx in gpio driver
  ARM: Kirkwood: update Network Space Mini v2 description
  ARM: Kirkwood: DT board setup for CloudBox
  ARM: Kirkwood: sort board entries by ASCII-code order
  ARM: OMAP: board-4430sdp: Provide regulator to pwm-backlight
  ARM: OMAP: zoom: Use pwm stack for lcd and keyboard backlight
  ARM: OMAP2+: omap2plus_defconfig: Add support for BMP085 pressure sensor
  omap2+: Remove useless Makefile line
  omap2+: Remove useless Makefile line
  ARM: OMAP: RX-51: add missing regulator supply definitions for lis3lv02d
  ARM: OMAP1: fix omap_udc registration
  ARM: davinci: use is IS_ENABLED macro
  ARM: kirkwood: add MACH_GURUPLUG_DT to defconfig
  ...

79 files changed:
Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
arch/arm/Kconfig.debug
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/kirkwood-cloudbox.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-ns2mini.dts
arch/arm/boot/dts/mmp2.dtsi
arch/arm/boot/dts/pxa168.dtsi
arch/arm/boot/dts/pxa910.dtsi
arch/arm/boot/dts/r8a7779-marzen-reference.dts [new file with mode: 0644]
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts [new file with mode: 0644]
arch/arm/boot/dts/sh73a0-reference.dtsi [deleted file]
arch/arm/boot/dts/sh73a0.dtsi
arch/arm/configs/da8xx_omapl_defconfig
arch/arm/configs/davinci_all_defconfig
arch/arm/configs/kirkwood_defconfig
arch/arm/configs/msm_defconfig
arch/arm/configs/omap2plus_defconfig
arch/arm/include/debug/pxa.S [new file with mode: 0644]
arch/arm/mach-davinci/board-da830-evm.c
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-davinci/board-dm644x-evm.c
arch/arm/mach-davinci/board-dm646x-evm.c
arch/arm/mach-davinci/board-neuros-osd2.c
arch/arm/mach-davinci/board-omapl138-hawk.c
arch/arm/mach-davinci/devices.c
arch/arm/mach-davinci/usb.c
arch/arm/mach-kirkwood/Kconfig
arch/arm/mach-kirkwood/Makefile
arch/arm/mach-kirkwood/board-dt.c
arch/arm/mach-kirkwood/board-ns2.c
arch/arm/mach-kirkwood/board-readynas.c [new file with mode: 0644]
arch/arm/mach-kirkwood/common.h
arch/arm/mach-mmp/aspenite.c
arch/arm/mach-mmp/avengers_lite.c
arch/arm/mach-mmp/brownstone.c
arch/arm/mach-mmp/clock-mmp2.c
arch/arm/mach-mmp/clock-pxa168.c
arch/arm/mach-mmp/clock-pxa910.c
arch/arm/mach-mmp/flint.c
arch/arm/mach-mmp/gplugd.c
arch/arm/mach-mmp/include/mach/debug-macro.S [deleted file]
arch/arm/mach-mmp/jasper.c
arch/arm/mach-mmp/mmp-dt.c
arch/arm/mach-mmp/mmp2-dt.c
arch/arm/mach-mmp/mmp2.c
arch/arm/mach-mmp/pxa168.c
arch/arm/mach-mmp/pxa910.c
arch/arm/mach-mmp/tavorevb.c
arch/arm/mach-mmp/teton_bga.c
arch/arm/mach-mmp/ttc_dkb.c
arch/arm/mach-omap1/include/mach/usb.h
arch/arm/mach-omap1/usb.c
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-rx51-peripherals.c
arch/arm/mach-omap2/board-zoom-display.c
arch/arm/mach-omap2/board-zoom-peripherals.c
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/devices.c
arch/arm/mach-pxa/devices.h
arch/arm/mach-pxa/include/mach/debug-macro.S [deleted file]
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa3xx.c
arch/arm/mach-pxa/pxa930.c
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/Makefile
arch/arm/mach-shmobile/board-armadillo800eva.c
arch/arm/mach-shmobile/board-kzm9g-reference.c [new file with mode: 0644]
arch/arm/mach-shmobile/board-kzm9g.c
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/board-marzen-reference.c [new file with mode: 0644]
arch/arm/mach-shmobile/board-marzen.c
drivers/clk/mmp/clk-mmp2.c
drivers/clk/mmp/clk-pxa168.c
drivers/clk/mmp/clk-pxa910.c
drivers/gpio/gpio-pxa.c
include/linux/gpio-pxa.h

index e13787498bcf443977ca534ebb2ccfe66fc87cb3..9b3f1d4a88d69fa931ca819c4776727435512104 100644 (file)
@@ -1,7 +1,10 @@
 * Marvell PXA GPIO controller
 
 Required properties:
-- compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio"
+- compatible : Should be "intel,pxa25x-gpio", "intel,pxa26x-gpio",
+               "intel,pxa27x-gpio", "intel,pxa3xx-gpio",
+               "marvell,pxa93x-gpio", "marvell,mmp-gpio" or
+               "marvell,mmp2-gpio".
 - reg : Address and length of the register set for the device
 - interrupts : Should be the port interrupt shared by all gpio pins.
   There're three gpio interrupts in arch-pxa, and they're gpio0,
@@ -18,7 +21,7 @@ Required properties:
 Example:
 
        gpio: gpio@d4019000 {
-               compatible = "mrvl,mmp-gpio";
+               compatible = "marvell,mmp-gpio";
                reg = <0xd4019000 0x1000>;
                interrupts = <49>;
                interrupt-name = "gpio_mux";
index 5c8e59f6a6f4dfab4e527cbc059fa32e4f571441..f57a6ba26e046b448f979720ee068689cfcb7901 100644 (file)
@@ -330,6 +330,13 @@ choice
                  Say Y here if you want kernel low-level debugging support
                  on PicoXcell based platforms.
 
+       config DEBUG_PXA_UART1
+               depends on ARCH_PXA
+               bool "Use PXA UART1 for low-level debug"
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on PXA UART1.
+
        config DEBUG_REALVIEW_STD_PORT
                bool "RealView Default UART"
                depends on ARCH_REALVIEW
@@ -615,6 +622,7 @@ config DEBUG_LL_INCLUDE
        default "debug/bcm2835.S" if DEBUG_BCM2835
        default "debug/cns3xxx.S" if DEBUG_CNS3XXX
        default "debug/exynos.S" if DEBUG_EXYNOS_UART
+       default "debug/highbank.S" if DEBUG_HIGHBANK_UART
        default "debug/icedcc.S" if DEBUG_ICEDCC
        default "debug/imx.S" if DEBUG_IMX1_UART || \
                                 DEBUG_IMX25_UART || \
@@ -624,20 +632,21 @@ config DEBUG_LL_INCLUDE
                                 DEBUG_IMX51_UART || \
                                 DEBUG_IMX53_UART ||\
                                 DEBUG_IMX6Q_UART
-       default "debug/highbank.S" if DEBUG_HIGHBANK_UART
        default "debug/mvebu.S" if DEBUG_MVEBU_UART
        default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
        default "debug/nomadik.S" if DEBUG_NOMADIK_UART
        default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
        default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
+       default "debug/pxa.S" if DEBUG_PXA_UART1 || DEBUG_MMP_UART2 || \
+                                DEBUG_MMP_UART3
        default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
        default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
        default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
+       default "debug/tegra.S" if DEBUG_TEGRA_UART
+       default "debug/ux500.S" if DEBUG_UX500_UART
        default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
                DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
        default "debug/vt8500.S" if DEBUG_VT8500_UART0
-       default "debug/tegra.S" if DEBUG_TEGRA_UART
-       default "debug/ux500.S" if DEBUG_UX500_UART
        default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
        default "mach/debug-macro.S"
 
index 55196639211dd40a4be320672f3d146ba30ea97e..853e199ea89fbf232fadcf864a1cb2bfb1508c8d 100644 (file)
@@ -61,7 +61,8 @@ dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
 dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
        integratorcp.dtb
 dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
-dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
+dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
+       kirkwood-dns320.dtb \
        kirkwood-dns325.dtb \
        kirkwood-dockstar.dtb \
        kirkwood-dreamplug.dtb \
@@ -75,6 +76,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
        kirkwood-lschlv2.dtb \
        kirkwood-lsxhl.dtb \
        kirkwood-mplcec4.dtb \
+       kirkwood-netgear_readynas_duo_v2.dtb \
        kirkwood-ns2.dtb \
        kirkwood-ns2lite.dtb \
        kirkwood-ns2max.dtb \
@@ -153,7 +155,9 @@ dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
        ccu9540.dtb
 dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
        r8a7740-armadillo800eva.dtb \
+       r8a7779-marzen-reference.dtb \
        sh73a0-kzm9g.dtb \
+       sh73a0-kzm9g-reference.dtb \
        sh7372-mackerel.dtb
 dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
        socfpga_vt.dtb
diff --git a/arch/arm/boot/dts/kirkwood-cloudbox.dts b/arch/arm/boot/dts/kirkwood-cloudbox.dts
new file mode 100644 (file)
index 0000000..5f21d4e
--- /dev/null
@@ -0,0 +1,89 @@
+/dts-v1/;
+
+/include/ "kirkwood.dtsi"
+/include/ "kirkwood-6281.dtsi"
+
+/ {
+       model = "LaCie CloudBox";
+       compatible = "lacie,cloudbox", "marvell,kirkwood-88f6702", "marvell,kirkwood";
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x10000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+                       pinctrl-0 = < &pmx_spi &pmx_uart0
+                                       &pmx_cloudbox_sata0 >;
+                       pinctrl-names = "default";
+
+                       pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
+                               marvell,pins = "mpp15";
+                               marvell,function = "sata0";
+                       };
+               };
+
+               serial@12000 {
+                       clock-frequency = <166666667>;
+                       status = "okay";
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <1>;
+               };
+
+               spi@10600 {
+                       status = "okay";
+
+                       flash@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "mx25l4005a";
+                               reg = <0>;
+                               spi-max-frequency = <20000000>;
+                               mode = <0>;
+
+                               partition@0 {
+                                       reg = <0x0 0x80000>;
+                                       label = "u-boot";
+                               };
+                       };
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               button@1 {
+                       label = "Power push button";
+                       linux,code = <116>;
+                       gpios = <&gpio0 16 1>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               red-fail {
+                       label = "cloudbox:red:fail";
+                       gpios = <&gpio0 14 0>;
+               };
+               blue-sata {
+                       label = "cloudbox:blue:sata";
+                       gpios = <&gpio0 15 0>;
+               };
+       };
+
+       gpio_poweroff {
+               compatible = "gpio-poweroff";
+               gpios = <&gpio0 17 0>;
+       };
+};
diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
new file mode 100644 (file)
index 0000000..1ca66ab
--- /dev/null
@@ -0,0 +1,180 @@
+/dts-v1/;
+
+/include/ "kirkwood.dtsi"
+/include/ "kirkwood-6282.dtsi"
+
+/ {
+       model = "NETGEAR ReadyNAS Duo v2";
+       compatible = "netgear,readynas-duo-v2", "netgear,readynas", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+       memory { /* 256 MB */
+               device_type = "memory";
+               reg = <0x00000000 0x10000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+
+                       pinctrl-0 = < &pmx_uart0
+                                     &pmx_button_power
+                                     &pmx_button_backup
+                                     &pmx_button_reset
+                                     &pmx_led_blue_power
+                                     &pmx_led_blue_activity
+                                     &pmx_led_blue_disk1
+                                     &pmx_led_blue_disk2
+                                     &pmx_led_blue_backup >;
+                       pinctrl-names = "default";
+
+                       pmx_button_power: pmx-button-power {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+                       pmx_button_backup: pmx-button-backup {
+                               marvell,pins = "mpp45";
+                               marvell,function = "gpio";
+                       };
+                       pmx_button_reset: pmx-button-reset {
+                               marvell,pins = "mpp13";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue_power: pmx-led-blue-power {
+                               marvell,pins = "mpp31";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue_activity: pmx-led-blue-activity {
+                               marvell,pins = "mpp38";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue_disk1: pmx-led-blue-disk1 {
+                               marvell,pins = "mpp23";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue_disk2: pmx-led-blue-disk2 {
+                               marvell,pins = "mpp22";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue_backup: pmx-led-blue-backup {
+                               marvell,pins = "mpp29";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               i2c@11000 {
+                       status = "okay";
+
+                       rs5c372a: rs5c372a@32 {
+                               compatible = "ricoh,rs5c372a";
+                               reg = <0x32>;
+                       };
+               };
+
+               serial@12000 {
+                       status = "okay";
+               };
+
+               nand@3000000 {
+                       status = "okay";
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0000000 0x180000>;
+                               read-only;
+                       };
+
+                       partition@180000 {
+                               label = "u-boot-env";
+                               reg = <0x180000 0x20000>;
+                       };
+
+                       partition@200000 {
+                               label = "uImage";
+                               reg = <0x0200000 0x600000>;
+                       };
+
+                       partition@800000 {
+                               label = "minirootfs";
+                               reg = <0x0800000 0x1000000>;
+                       };
+
+                       partition@1800000 {
+                               label = "jffs2";
+                               reg = <0x1800000 0x6800000>;
+                       };
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               power_led {
+                       label = "status:blue:power_led";
+                       gpios = <&gpio0 31 1>;   /* GPIO 31 Active Low */
+                       linux,default-trigger = "default-on";
+               };
+               activity_led {
+                       label = "status:blue:activity_led";
+                       gpios = <&gpio1 6 1>;    /* GPIO 38 Active Low */
+               };
+               disk1_led {
+                       label = "status:blue:disk1_led";
+                       gpios = <&gpio0 23 1>;   /* GPIO 23 Active Low */
+               };
+               disk2_led {
+                       label = "status:blue:disk2_led";
+                       gpios = <&gpio0 22 1>;   /* GPIO 22 Active Low */
+               };
+               backup_led {
+                       label = "status:blue:backup_led";
+                       gpios = <&gpio0 29 1>;   /* GPIO 29 Active Low*/
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               button@1 {
+                       label = "Power Button";
+                       linux,code = <116>;     /* KEY_POWER */
+                       gpios = <&gpio1 15 1>;
+               };
+               button@2 {
+                       label = "Reset Button";
+                       linux,code = <0x198>;   /* KEY_RESTART */
+                       gpios = <&gpio0 13 1>;
+               };
+               button@3 {
+                       label = "Backup Button";
+                       linux,code = <133>;     /* KEY_COPY */
+                       gpios = <&gpio1 13 1>;
+               };
+       };
+
+        regulators {
+                compatible = "simple-bus";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                usb_power: regulator@1 {
+                        compatible = "regulator-fixed";
+                        reg = <1>;
+                        regulator-name = "USB 3.0 Power";
+                        regulator-min-microvolt = <5000000>;
+                        regulator-max-microvolt = <5000000>;
+                        enable-active-high;
+                        regulator-always-on;
+                        regulator-boot-on;
+                        gpio = <&gpio1 14 0>;
+                };
+        };
+};
index b79f5eb255897da731424e78c26b474480375598..adab1ab257332c633cc46ec6e628ea2eadff27a7 100644 (file)
@@ -3,6 +3,7 @@
 /include/ "kirkwood-ns2-common.dtsi"
 
 / {
+       /* This machine is embedded in the first LaCie CloudBox product. */
        model = "LaCie Network Space Mini v2";
        compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood";
 
index 1429ac05b36d45cff8aff69e745e98444c547f88..4e8b08c628c7ee405efd864f743cbadc8a617321 100644 (file)
                        };
 
                        gpio@d4019000 {
-                               compatible = "mrvl,mmp-gpio";
+                               compatible = "marvell,mmp2-gpio";
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0xd4019000 0x1000>;
index 31a71869608033b4d1c461ce925a020f73c98714..975dad21ac3890d4b81bb23a0d1bf2962a831e09 100644 (file)
@@ -77,7 +77,7 @@
                        };
 
                        gpio@d4019000 {
-                               compatible = "mrvl,mmp-gpio";
+                               compatible = "marvell,mmp-gpio";
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0xd4019000 0x1000>;
index 825aaca33034d9f23e63ade23bd611a38c3a6f9d..0247c622f580728f77f31dbb36d555d310f524d0 100644 (file)
@@ -89,7 +89,7 @@
                        };
 
                        gpio@d4019000 {
-                               compatible = "mrvl,mmp-gpio";
+                               compatible = "marvell,mmp-gpio";
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0xd4019000 0x1000>;
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts
new file mode 100644 (file)
index 0000000..72be4c8
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Reference Device Tree Source for the Marzen board
+ *
+ * Copyright (C) 2013 Renesas Solutions Corp.
+ * Copyright (C) 2013 Simon Horman
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/dts-v1/;
+/include/ "r8a7779.dtsi"
+
+/ {
+       model = "marzen";
+       compatible = "renesas,marzen-reference", "renesas,r8a7779";
+
+       chosen {
+               bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x40000000>;
+       };
+
+       fixedregulator3v3: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       lan0@18000000 {
+               compatible = "smsc,lan9220", "smsc,lan9115";
+               reg = <0x18000000 0x100>;
+               phy-mode = "mii";
+               interrupt-parent = <&gic>;
+               interrupts = <0 28 0x4>;
+               reg-io-width = <4>;
+               vddvario-supply = <&fixedregulator3v3>;
+               vdd33a-supply = <&fixedregulator3v3>;
+       };
+};
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
new file mode 100644 (file)
index 0000000..f33b5cc
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Device Tree Source for the KZM-A9-GT board
+ *
+ * Copyright (C) 2012 Horms Solutions Ltd.
+ *
+ * Based on sh73a0-kzm9g.dts
+ * Copyright (C) 2012 Renesas Solutions Corp.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/dts-v1/;
+/include/ "sh73a0.dtsi"
+
+/ {
+       model = "KZM-A9-GT";
+       compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
+
+       chosen {
+               bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x41000000 0x1e800000>;
+       };
+
+       reg_1p8v: regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_3p3v: regulator@1 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&mmcif {
+       bus-width = <8>;
+       vmmc-supply = <&reg_1p8v>;
+       status = "okay";
+};
+
+&sdhi0 {
+       vmmc-supply = <&reg_3p3v>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&sdhi2 {
+       vmmc-supply = <&reg_3p3v>;
+       bus-width = <4>;
+       broken-cd;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sh73a0-reference.dtsi b/arch/arm/boot/dts/sh73a0-reference.dtsi
deleted file mode 100644 (file)
index d4bb012..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Device Tree Source for the SH73A0 SoC
- *
- * Copyright (C) 2012 Renesas Solutions Corp.
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2.  This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-/include/ "sh73a0.dtsi"
-
-/ {
-       compatible = "renesas,sh73a0";
-
-       mmcif: mmcif@0x10010000 {
-               compatible = "renesas,sh-mmcif";
-               reg = <0xe6bd0000 0x100>;
-               interrupt-parent = <&gic>;
-               interrupts = <0 140 0x4
-                             0 141 0x4>;
-               reg-io-width = <4>;
-       };
-};
index 8a59465d0231c63abe3d49329747226360f48841..3e4d383ac6d935ae6a8e0183a1fb2e39691ef979 100644 (file)
                              0 189 0x4
                              0 190 0x4>;
        };
+
+       mmcif: mmcif@0x10010000 {
+               compatible = "renesas,sh-mmcif";
+               reg = <0xe6bd0000 0x100>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 140 0x4
+                             0 141 0x4>;
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
+       sdhi0: sdhi@0xee100000 {
+               compatible = "renesas,r8a7740-sdhi";
+               reg = <0xee100000 0x100>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 83 4
+                               0 84 4
+                               0 85 4>;
+               cap-sd-highspeed;
+               status = "disabled";
+       };
+
+       /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
+       sdhi1: sdhi@0xee120000 {
+               compatible = "renesas,r8a7740-sdhi";
+               reg = <0xee120000 0x100>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 88 4
+                               0 89 4>;
+               toshiba,mmc-wrprotect-disable;
+               cap-sd-highspeed;
+               status = "disabled";
+       };
+
+       sdhi2: sdhi@0xee140000 {
+               compatible = "renesas,r8a7740-sdhi";
+               reg = <0xee140000 0x100>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 104 4
+                               0 105 4>;
+               toshiba,mmc-wrprotect-disable;
+               cap-sd-highspeed;
+               status = "disabled";
+       };
 };
index 9aaad36a17288dc1d93638db7ccbde5931b05e46..7c868139bdb0dd42e9b97d34b794d6cabe83dc64 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CGROUPS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_EXPERT=y
 CONFIG_MODULES=y
index 3edc78a40b66be890bc099a15860c1d4693c62f5..c86fd75e181ab003df201b1966f22594c2d24013 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CGROUPS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_EXPERT=y
 CONFIG_MODULES=y
index 3d8667f648b8873694cae26be8ac3bf4594f2839..a1d8252e9ec75339454611c5b1d8f0073b674544 100644 (file)
@@ -10,45 +10,48 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
 CONFIG_ARCH_KIRKWOOD=y
+CONFIG_MACH_D2NET_V2=y
 CONFIG_MACH_DB88F6281_BP=y
+CONFIG_MACH_DOCKSTAR=y
+CONFIG_MACH_ESATA_SHEEVAPLUG=y
+CONFIG_MACH_GURUPLUG=y
+CONFIG_MACH_INETSPACE_V2=y
+CONFIG_MACH_MV88F6281GTW_GE=y
+CONFIG_MACH_NET2BIG_V2=y
+CONFIG_MACH_NET5BIG_V2=y
+CONFIG_MACH_NETSPACE_MAX_V2=y
+CONFIG_MACH_NETSPACE_V2=y
+CONFIG_MACH_OPENRD_BASE=y
+CONFIG_MACH_OPENRD_CLIENT=y
+CONFIG_MACH_OPENRD_ULTIMATE=y
 CONFIG_MACH_RD88F6192_NAS=y
 CONFIG_MACH_RD88F6281=y
-CONFIG_MACH_MV88F6281GTW_GE=y
 CONFIG_MACH_SHEEVAPLUG=y
-CONFIG_MACH_ESATA_SHEEVAPLUG=y
-CONFIG_MACH_GURUPLUG=y
-CONFIG_MACH_DREAMPLUG_DT=y
-CONFIG_MACH_ICONNECT_DT=y
+CONFIG_MACH_T5325=y
+CONFIG_MACH_TS219=y
+CONFIG_MACH_TS41X=y
+CONFIG_MACH_CLOUDBOX_DT=y
 CONFIG_MACH_DLINK_KIRKWOOD_DT=y
-CONFIG_MACH_IB62X0_DT=y
-CONFIG_MACH_TS219_DT=y
 CONFIG_MACH_DOCKSTAR_DT=y
+CONFIG_MACH_DREAMPLUG_DT=y
 CONFIG_MACH_GOFLEXNET_DT=y
-CONFIG_MACH_LSXL_DT=y
+CONFIG_MACH_GURUPLUG_DT=y
+CONFIG_MACH_IB62X0_DT=y
+CONFIG_MACH_ICONNECT_DT=y
+CONFIG_MACH_INETSPACE_V2_DT=y
 CONFIG_MACH_IOMEGA_IX2_200_DT=y
 CONFIG_MACH_KM_KIRKWOOD_DT=y
-CONFIG_MACH_INETSPACE_V2_DT=y
+CONFIG_MACH_LSXL_DT=y
 CONFIG_MACH_MPLCEC4_DT=y
-CONFIG_MACH_NETSPACE_V2_DT=y
-CONFIG_MACH_NETSPACE_MAX_V2_DT=y
 CONFIG_MACH_NETSPACE_LITE_V2_DT=y
+CONFIG_MACH_NETSPACE_MAX_V2_DT=y
 CONFIG_MACH_NETSPACE_MINI_V2_DT=y
+CONFIG_MACH_NETSPACE_V2_DT=y
+CONFIG_MACH_NSA310_DT=y
 CONFIG_MACH_OPENBLOCKS_A6_DT=y
+CONFIG_MACH_READYNAS_DT=y
 CONFIG_MACH_TOPKICK_DT=y
-CONFIG_MACH_TS219=y
-CONFIG_MACH_TS41X=y
-CONFIG_MACH_DOCKSTAR=y
-CONFIG_MACH_OPENRD_BASE=y
-CONFIG_MACH_OPENRD_CLIENT=y
-CONFIG_MACH_OPENRD_ULTIMATE=y
-CONFIG_MACH_NETSPACE_V2=y
-CONFIG_MACH_INETSPACE_V2=y
-CONFIG_MACH_NETSPACE_MAX_V2=y
-CONFIG_MACH_D2NET_V2=y
-CONFIG_MACH_NET2BIG_V2=y
-CONFIG_MACH_NET5BIG_V2=y
-CONFIG_MACH_T5325=y
-CONFIG_MACH_NSA310_DT=y
+CONFIG_MACH_TS219_DT=y
 # CONFIG_CPU_FEROCEON_OLD_ID is not set
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
index 2b8f7affc1eb53748ea2e32b24c9068741e94f17..690b5f9c7462b8f6b09431cff11c16b0dc990589 100644 (file)
-CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_BLK_DEV_INITRD=y
-CONFIG_SLAB=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_EMBEDDED=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=y
+CONFIG_KPROBES=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_PARTITION_ADVANCED=y
 CONFIG_ARCH_MSM=y
-CONFIG_MACH_HALIBUT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
+CONFIG_ARCH_MSM8X60=y
+CONFIG_ARCH_MSM8960=y
+CONFIG_SMP=y
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8"
-CONFIG_PM=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_CLEANCACHE=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 CONFIG_NET=y
+CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_INET=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
+# CONFIG_INET_LRO is not set
 # CONFIG_IPV6 is not set
-CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
+CONFIG_CFG80211=y
+CONFIG_RFKILL=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_SCSI=y
+CONFIG_SCSI_TGT=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_NETDEVICES=y
 CONFIG_DUMMY=y
-CONFIG_NET_ETHERNET=y
-CONFIG_SMC91X=y
-CONFIG_PPP=y
-CONFIG_PPP_ASYNC=y
-CONFIG_PPP_DEFLATE=y
-CONFIG_PPP_BSDCOMP=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_PHYLIB=y
+CONFIG_SLIP=y
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_USBNET=y
+# CONFIG_USB_NET_AX8817X is not set
+# CONFIG_USB_NET_ZAURUS is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_INPUT_MOUSE is not set
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_JOYSTICK=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_INPUT_MISC=y
-# CONFIG_SERIO is not set
-CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_INPUT_UINPUT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_MSM=y
 CONFIG_SERIAL_MSM_CONSOLE=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_HW_RANDOM is not set
+CONFIG_HW_RANDOM=y
 CONFIG_I2C=y
-# CONFIG_HWMON is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_SPI=y
+CONFIG_SSBI=y
+CONFIG_DEBUG_GPIO=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_THERMAL=y
+CONFIG_REGULATOR=y
+CONFIG_MEDIA_SUPPORT=y
 CONFIG_FB=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-CONFIG_FB_MSM=y
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_DYNAMIC_MINORS=y
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_USB=y
+CONFIG_USB_PHY=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MSM=y
+CONFIG_USB_ACM=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DEBUG_FILES=y
+CONFIG_USB_GADGET_VBUS_DRAW=500
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_INOTIFY=y
+CONFIG_RTC_CLASS=y
+CONFIG_STAGING=y
+CONFIG_MSM_IOMMU=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_CIFS=y
+CONFIG_PRINTK_TIME=y
 CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_SCHEDSTATS=y
-CONFIG_DEBUG_MUTEXES=y
-CONFIG_DEBUG_SPINLOCK_SLEEP=y
+CONFIG_LOCKUP_DETECTOR=y
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_TIMER_STATS=y
 CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_LL=y
+CONFIG_DYNAMIC_DEBUG=y
index bd07864f14a00b0fd9608139cb607ae9f021a154..33903ca0d8798fa6c2449b7d357397c6285c3288 100644 (file)
@@ -93,6 +93,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_SENSORS_TSL2550=m
 CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_BMP085_I2C=m
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
diff --git a/arch/arm/include/debug/pxa.S b/arch/arm/include/debug/pxa.S
new file mode 100644 (file)
index 0000000..e1e795a
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Early serial output macro for Marvell PXA/MMP SoC
+ *
+ * Copyright (C) 1994-1999 Russell King
+ * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
+ *
+ * Copyright (C) 2013 Haojian Zhuang
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#if defined(CONFIG_DEBUG_PXA_UART1)
+#define PXA_UART_REG_PHYS_BASE 0x40100000
+#define PXA_UART_REG_VIRT_BASE 0xf2100000
+#elif defined(CONFIG_DEBUG_MMP_UART2)
+#define PXA_UART_REG_PHYS_BASE 0xd4017000
+#define PXA_UART_REG_VIRT_BASE 0xfe017000
+#elif defined(CONFIG_DEBUG_MMP_UART3)
+#define PXA_UART_REG_PHYS_BASE 0xd4018000
+#define PXA_UART_REG_VIRT_BASE 0xfe018000
+#else
+#error "Select uart for DEBUG_LL"
+#endif
+
+       .macro  addruart, rp, rv, tmp
+       ldr     \rp, =PXA_UART_REG_PHYS_BASE
+       ldr     \rv, =PXA_UART_REG_VIRT_BASE
+       .endm
+
+#define UART_SHIFT     2
+#include <asm/hardware/debug-8250.S>
index 12e6f756361da8b94c781082324ed94309eb7af1..1332de8c52c99dce492c57612e778229ec6a64bd 100644 (file)
@@ -297,11 +297,7 @@ static const short da830_evm_emif25_pins[] = {
        -1
 };
 
-#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
-#define HAS_MMC        1
-#else
-#define HAS_MMC        0
-#endif
+#define HAS_MMC                IS_ENABLED(CONFIG_MMC_DAVINCI)
 
 #ifdef CONFIG_DA830_UI_NAND
 static struct mtd_partition da830_evm_nand_partitions[] = {
index dcc8710936a5d598425f84efd35d3602d7b6bba9..8a24b6c6339f4005c11611f0d2ec2980bbfaa0c8 100644 (file)
@@ -335,12 +335,7 @@ static const short da850_evm_nor_pins[] = {
        -1
 };
 
-#if defined(CONFIG_MMC_DAVINCI) || \
-    defined(CONFIG_MMC_DAVINCI_MODULE)
-#define HAS_MMC 1
-#else
-#define HAS_MMC 0
-#endif
+#define HAS_MMC                IS_ENABLED(CONFIG_MMC_DAVINCI)
 
 static inline void da850_evm_setup_nor_nand(void)
 {
@@ -401,7 +396,7 @@ enum da850_evm_ui_exp_pins {
        DA850_EVM_UI_EXP_PB1,
 };
 
-static const char const *da850_evm_ui_exp[] = {
+static const char * const da850_evm_ui_exp[] = {
        [DA850_EVM_UI_EXP_SEL_C]        = "sel_c",
        [DA850_EVM_UI_EXP_SEL_B]        = "sel_b",
        [DA850_EVM_UI_EXP_SEL_A]        = "sel_a",
@@ -565,7 +560,7 @@ enum da850_evm_bb_exp_pins {
        DA850_EVM_BB_EXP_USER_SW8
 };
 
-static const char const *da850_evm_bb_exp[] = {
+static const char * const da850_evm_bb_exp[] = {
        [DA850_EVM_BB_EXP_DEEP_SLEEP_EN]        = "deep_sleep_en",
        [DA850_EVM_BB_EXP_SW_RST]               = "sw_rst",
        [DA850_EVM_BB_EXP_TP_23]                = "tp_23",
@@ -1577,6 +1572,11 @@ static __init void da850_evm_init(void)
                pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
 
        da850_evm_setup_mac_addr();
+
+       ret = da8xx_register_rproc();
+       if (ret)
+               pr_warn("%s: dsp/rproc registration failed: %d\n",
+                       __func__, ret);
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
@@ -1604,4 +1604,5 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
        .restart        = da8xx_restart,
+       .reserve        = da8xx_rproc_reserve_cma,
 MACHINE_END
index e62108fd7926f0da8f636d5513b0c911de73f51e..a33686a6fbb226f9b880c2268a87beeb6b6f98e9 100644 (file)
@@ -749,26 +749,11 @@ static int davinci_phy_fixup(struct phy_device *phydev)
        return 0;
 }
 
-#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
-    defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
-#define HAS_ATA 1
-#else
-#define HAS_ATA 0
-#endif
-
-#if defined(CONFIG_MTD_PHYSMAP) || \
-    defined(CONFIG_MTD_PHYSMAP_MODULE)
-#define HAS_NOR 1
-#else
-#define HAS_NOR 0
-#endif
-
-#if defined(CONFIG_MTD_NAND_DAVINCI) || \
-    defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
-#define HAS_NAND 1
-#else
-#define HAS_NAND 0
-#endif
+#define HAS_ATA                IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
+
+#define HAS_NOR                IS_ENABLED(CONFIG_MTD_PHYSMAP)
+
+#define HAS_NAND       IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
 
 static __init void davinci_evm_init(void)
 {
index fc4871ac1c2c81ca8bf3542e06d95e5e3153502e..fbb8e5ab1dc19bbd56e3508a5505929bb6c71406 100644 (file)
@@ -117,12 +117,7 @@ static struct platform_device davinci_nand_device = {
        },
 };
 
-#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
-    defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
-#define HAS_ATA 1
-#else
-#define HAS_ATA 0
-#endif
+#define HAS_ATA                IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
 
 /* CPLD Register 0 bits to control ATA */
 #define DM646X_EVM_ATA_RST             BIT(0)
index b70e83c03bed87c8769c4954d297ff4f5f8d05ba..2bc112adf565495aed9505bfc23a401e53341d52 100644 (file)
@@ -166,20 +166,9 @@ static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
        .wires          = 4,
 };
 
+#define HAS_ATA                IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
 
-#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
-       defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
-#define HAS_ATA 1
-#else
-#define HAS_ATA 0
-#endif
-
-#if defined(CONFIG_MTD_NAND_DAVINCI) || \
-       defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
-#define HAS_NAND 1
-#else
-#define HAS_NAND 0
-#endif
+#define HAS_NAND       IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
 
 static __init void davinci_ntosd2_init(void)
 {
index 328dbd8a37f5b3871fcad3edff523009c46dbb7a..b8c20de10ca2b07b276d03bd1f3d37ae9a9701e2 100644 (file)
@@ -310,6 +310,11 @@ static __init void omapl138_hawk_init(void)
        if (ret)
                pr_warn("%s: watchdog registration failed: %d\n",
                        __func__, ret);
+
+       ret = da8xx_register_rproc();
+       if (ret)
+               pr_warn("%s: dsp/rproc registration failed: %d\n",
+                       __func__, ret);
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
@@ -337,4 +342,5 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
        .restart        = da8xx_restart,
+       .reserve        = da8xx_rproc_reserve_cma,
 MACHINE_END
index f6927df2dda861ada422677564426a40fb3f6df4..a7068a3aa9d39e2e5bd519f93a6c06ee06e0b1a9 100644 (file)
@@ -119,7 +119,7 @@ void __init davinci_init_ide(void)
        platform_device_register(&ide_device);
 }
 
-#if    defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
+#if IS_ENABLED(CONFIG_MMC_DAVINCI)
 
 static u64 mmcsd0_dma_mask = DMA_BIT_MASK(32);
 
index 2b4c648f99b69a26cc5d946c1ed580d2c2e34585..b0a6b522575f1e51c646f52bd7426a3fd81eef89 100644 (file)
@@ -18,7 +18,7 @@
 #define DA8XX_USB0_BASE        0x01e00000
 #define DA8XX_USB1_BASE        0x01e25000
 
-#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
+#if IS_ENABLED(CONFIG_USB_MUSB_HDRC)
 static struct musb_hdrc_eps_bits musb_eps[] = {
        { "ep1_tx", 8, },
        { "ep1_rx", 8, },
index 7b6a64bc5f40b0cf1dc4d18d0f9eeca858f6ea35..7509a89af96704e32b318c787cdb8e3c0fa04e99 100644 (file)
@@ -2,23 +2,41 @@ if ARCH_KIRKWOOD
 
 menu "Marvell Kirkwood Implementations"
 
+config MACH_D2NET_V2
+       bool "LaCie d2 Network v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie d2 Network v2 NAS.
+
 config MACH_DB88F6281_BP
        bool "Marvell DB-88F6281-BP Development Board"
        help
          Say 'Y' here if you want your kernel to support the
          Marvell DB-88F6281-BP Development Board.
 
-config MACH_RD88F6192_NAS
-       bool "Marvell RD-88F6192-NAS Reference Board"
+config MACH_DOCKSTAR
+       bool "Seagate FreeAgent DockStar"
        help
          Say 'Y' here if you want your kernel to support the
-         Marvell RD-88F6192-NAS Reference Board.
+         Seagate FreeAgent DockStar.
 
-config MACH_RD88F6281
-       bool "Marvell RD-88F6281 Reference Board"
+config MACH_ESATA_SHEEVAPLUG
+       bool "Marvell eSATA SheevaPlug Reference Board"
        help
          Say 'Y' here if you want your kernel to support the
-         Marvell RD-88F6281 Reference Board.
+         Marvell eSATA SheevaPlug Reference Board.
+
+config MACH_GURUPLUG
+       bool "Marvell GuruPlug Reference Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell GuruPlug Reference Board.
+
+config MACH_INETSPACE_V2
+       bool "LaCie Internet Space v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie Internet Space v2 NAS.
 
 config MACH_MV88F6281GTW_GE
        bool "Marvell 88F6281 GTW GE Board"
@@ -26,23 +44,93 @@ config MACH_MV88F6281GTW_GE
          Say 'Y' here if you want your kernel to support the
          Marvell 88F6281 GTW GE Board.
 
+config MACH_NET2BIG_V2
+       bool "LaCie 2Big Network v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie 2Big Network v2 NAS.
+
+config MACH_NET5BIG_V2
+       bool "LaCie 5Big Network v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie 5Big Network v2 NAS.
+
+config MACH_NETSPACE_MAX_V2
+       bool "LaCie Network Space Max v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie Network Space Max v2 NAS.
+
+config MACH_NETSPACE_V2
+       bool "LaCie Network Space v2 NAS Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         LaCie Network Space v2 NAS.
+
+config MACH_OPENRD
+        bool
+
+config MACH_OPENRD_BASE
+       bool "Marvell OpenRD Base Board"
+       select MACH_OPENRD
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell OpenRD Base Board.
+
+config MACH_OPENRD_CLIENT
+       bool "Marvell OpenRD Client Board"
+       select MACH_OPENRD
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell OpenRD Client Board.
+
+config MACH_OPENRD_ULTIMATE
+       bool "Marvell OpenRD Ultimate Board"
+       select MACH_OPENRD
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell OpenRD Ultimate Board.
+
+config MACH_RD88F6192_NAS
+       bool "Marvell RD-88F6192-NAS Reference Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell RD-88F6192-NAS Reference Board.
+
+config MACH_RD88F6281
+       bool "Marvell RD-88F6281 Reference Board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell RD-88F6281 Reference Board.
+
 config MACH_SHEEVAPLUG
        bool "Marvell SheevaPlug Reference Board"
        help
          Say 'Y' here if you want your kernel to support the
          Marvell SheevaPlug Reference Board.
 
-config MACH_ESATA_SHEEVAPLUG
-       bool "Marvell eSATA SheevaPlug Reference Board"
+config MACH_T5325
+       bool "HP t5325 Thin Client"
        help
          Say 'Y' here if you want your kernel to support the
-         Marvell eSATA SheevaPlug Reference Board.
+         HP t5325 Thin Client.
 
-config MACH_GURUPLUG
-       bool "Marvell GuruPlug Reference Board"
+config MACH_TS219
+       bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
        help
          Say 'Y' here if you want your kernel to support the
-         Marvell GuruPlug Reference Board.
+         QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
+         TS-219P+ Turbo NAS devices.
+
+config MACH_TS41X
+       bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
+       help
+         Say 'Y' here if you want your kernel to support the
+         QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
+         NAS devices.
+
+comment "Device tree entries"
 
 config ARCH_KIRKWOOD_DT
        bool "Marvell Kirkwood Flattened Device Tree"
@@ -58,12 +146,27 @@ config ARCH_KIRKWOOD_DT
          Say 'Y' here if you want your kernel to support the
          Marvell Kirkwood using flattened device tree.
 
-config MACH_GURUPLUG_DT
-       bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
+config MACH_CLOUDBOX_DT
+       bool "LaCie CloudBox NAS (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       help
+         Say 'Y' here if you want your kernel to support the LaCie
+         CloudBox NAS, using Flattened Device Tree.
+
+config MACH_DLINK_KIRKWOOD_DT
+       bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the
-         Marvell GuruPlug Reference Board (Flattened Device Tree).
+         Kirkwood-based D-Link NASes such as DNS-320 & DNS-325,
+         using Flattened Device Tree.
+
+config MACH_DOCKSTAR_DT
+       bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       help
+         Say 'Y' here if you want your kernel to support the
+         Seagate FreeAgent Dockstar (Flattened Device Tree).
 
 config MACH_DREAMPLUG_DT
        bool "Marvell DreamPlug (Flattened Device Tree)"
@@ -72,19 +175,19 @@ config MACH_DREAMPLUG_DT
          Say 'Y' here if you want your kernel to support the
          Marvell DreamPlug (Flattened Device Tree).
 
-config MACH_ICONNECT_DT
-       bool "Iomega Iconnect (Flattened Device Tree)"
+config MACH_GOFLEXNET_DT
+       bool "Seagate GoFlex Net (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
-         Say 'Y' here to enable Iomega Iconnect support.
+         Say 'Y' here if you want your kernel to support the
+         Seagate GoFlex Net (Flattened Device Tree).
 
-config MACH_DLINK_KIRKWOOD_DT
-       bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
+config MACH_GURUPLUG_DT
+       bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the
-         Kirkwood-based D-Link NASes such as DNS-320 & DNS-325,
-         using Flattened Device Tree.
+         Marvell GuruPlug Reference Board (Flattened Device Tree).
 
 config MACH_IB62X0_DT
        bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)"
@@ -94,41 +197,18 @@ config MACH_IB62X0_DT
          RaidSonic IB-NAS6210 & IB-NAS6220 devices, using
          Flattened Device Tree.
 
-config MACH_TS219_DT
-       bool "Device Tree for QNAP TS-11X, TS-21X NAS"
-       select ARCH_KIRKWOOD_DT
-       select ARM_APPENDED_DTB
-       select ARM_ATAG_DTB_COMPAT
-       help
-         Say 'Y' here if you want your kernel to support the QNAP
-         TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
-         TS-219P+ Turbo NAS devices using Fattened Device Tree.
-         There are two different Device Tree descriptions, depending
-         on if the device is based on an if the board uses the MV6281
-         or MV6282. If you have the wrong one, the buttons will not
-         work.
-
-config MACH_DOCKSTAR_DT
-       bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
-       select ARCH_KIRKWOOD_DT
-       help
-         Say 'Y' here if you want your kernel to support the
-         Seagate FreeAgent Dockstar (Flattened Device Tree).
-
-config MACH_GOFLEXNET_DT
-       bool "Seagate GoFlex Net (Flattened Device Tree)"
+config MACH_ICONNECT_DT
+       bool "Iomega Iconnect (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
-         Say 'Y' here if you want your kernel to support the
-         Seagate GoFlex Net (Flattened Device Tree).
+         Say 'Y' here to enable Iomega Iconnect support.
 
-config MACH_LSXL_DT
-       bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
+config MACH_INETSPACE_V2_DT
+       bool "LaCie Internet Space v2 NAS (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
-         Say 'Y' here if you want your kernel to support the
-         Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
-         Flattened Device Tree.
+         Say 'Y' here if you want your kernel to support the LaCie
+         Internet Space v2 NAS, using Flattened Device Tree.
 
 config MACH_IOMEGA_IX2_200_DT
        bool "Iomega StorCenter ix2-200 (Flattened Device Tree)"
@@ -144,12 +224,13 @@ config MACH_KM_KIRKWOOD_DT
          Say 'Y' here if you want your kernel to support the
          Keymile Kirkwood Reference Desgin, using Flattened Device Tree.
 
-config MACH_INETSPACE_V2_DT
-       bool "LaCie Internet Space v2 NAS (Flattened Device Tree)"
+config MACH_LSXL_DT
+       bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
-         Say 'Y' here if you want your kernel to support the LaCie
-         Internet Space v2 NAS, using Flattened Device Tree.
+         Say 'Y' here if you want your kernel to support the
+         Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
+         Flattened Device Tree.
 
 config MACH_MPLCEC4_DT
        bool "MPL CEC4 (Flattened Device Tree)"
@@ -158,12 +239,12 @@ config MACH_MPLCEC4_DT
          Say 'Y' here if you want your kernel to support the
          MPL CEC4 (Flattened Device Tree).
 
-config MACH_NETSPACE_V2_DT
-       bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
+config MACH_NETSPACE_LITE_V2_DT
+       bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the LaCie
-         Network Space v2 NAS, using Flattened Device Tree.
+         Network Space Lite v2 NAS, using Flattened Device Tree.
 
 config MACH_NETSPACE_MAX_V2_DT
        bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)"
@@ -172,128 +253,69 @@ config MACH_NETSPACE_MAX_V2_DT
          Say 'Y' here if you want your kernel to support the LaCie
          Network Space Max v2 NAS, using Flattened Device Tree.
 
-config MACH_NETSPACE_LITE_V2_DT
-       bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
-       select ARCH_KIRKWOOD_DT
-       help
-         Say 'Y' here if you want your kernel to support the LaCie
-         Network Space Lite v2 NAS, using Flattened Device Tree.
-
 config MACH_NETSPACE_MINI_V2_DT
        bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the LaCie
-         Network Space Mini v2 NAS (aka SafeBox), using Flattened
-         Device Tree.
+         Network Space Mini v2 NAS using Flattened Device Tree.
 
-config MACH_OPENBLOCKS_A6_DT
-       bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)"
-       select ARCH_KIRKWOOD_DT
-       help
-         Say 'Y' here if you want your kernel to support the
-         Plat'Home OpenBlocks A6 (Flattened Device Tree).
+         This board is embedded in a product named CloudBox, which
+         provides automatic backup on a 100GB cloud storage. This
+         should not confused with a more recent LaCie NAS also named
+         CloudBox. For this last, the disk capacity is 1TB or above.
 
-config MACH_TOPKICK_DT
-       bool "USI Topkick (Flattened Device Tree)"
+config MACH_NETSPACE_V2_DT
+       bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
        help
-         Say 'Y' here if you want your kernel to support the
-         USI Topkick, using Flattened Device Tree
-
-config MACH_TS219
-       bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
-       help
-         Say 'Y' here if you want your kernel to support the
-         QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
-         TS-219P+ Turbo NAS devices.
-
-config MACH_TS41X
-       bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
-       help
-         Say 'Y' here if you want your kernel to support the
-         QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
-         NAS devices.
-
-config MACH_DOCKSTAR
-       bool "Seagate FreeAgent DockStar"
-       help
-         Say 'Y' here if you want your kernel to support the
-         Seagate FreeAgent DockStar.
-
-config MACH_OPENRD
-        bool
-
-config MACH_OPENRD_BASE
-       bool "Marvell OpenRD Base Board"
-       select MACH_OPENRD
-       help
-         Say 'Y' here if you want your kernel to support the
-         Marvell OpenRD Base Board.
-
-config MACH_OPENRD_CLIENT
-       bool "Marvell OpenRD Client Board"
-       select MACH_OPENRD
-       help
-         Say 'Y' here if you want your kernel to support the
-         Marvell OpenRD Client Board.
-
-config MACH_OPENRD_ULTIMATE
-       bool "Marvell OpenRD Ultimate Board"
-       select MACH_OPENRD
-       help
-         Say 'Y' here if you want your kernel to support the
-         Marvell OpenRD Ultimate Board.
-
-config MACH_NETSPACE_V2
-       bool "LaCie Network Space v2 NAS Board"
-       help
-         Say 'Y' here if you want your kernel to support the
-         LaCie Network Space v2 NAS.
-
-config MACH_INETSPACE_V2
-       bool "LaCie Internet Space v2 NAS Board"
-       help
-         Say 'Y' here if you want your kernel to support the
-         LaCie Internet Space v2 NAS.
-
-config MACH_NETSPACE_MAX_V2
-       bool "LaCie Network Space Max v2 NAS Board"
-       help
-         Say 'Y' here if you want your kernel to support the
-         LaCie Network Space Max v2 NAS.
+         Say 'Y' here if you want your kernel to support the LaCie
+         Network Space v2 NAS, using Flattened Device Tree.
 
-config MACH_D2NET_V2
-       bool "LaCie d2 Network v2 NAS Board"
+config MACH_NSA310_DT
+       bool "ZyXEL NSA-310 (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       select ARM_ATAG_DTB_COMPAT
        help
          Say 'Y' here if you want your kernel to support the
-         LaCie d2 Network v2 NAS.
+         ZyXEL NSA-310 board (Flattened Device Tree).
 
-config MACH_NET2BIG_V2
-       bool "LaCie 2Big Network v2 NAS Board"
+config MACH_OPENBLOCKS_A6_DT
+       bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the
-         LaCie 2Big Network v2 NAS.
+         Plat'Home OpenBlocks A6 (Flattened Device Tree).
 
-config MACH_NET5BIG_V2
-       bool "LaCie 5Big Network v2 NAS Board"
+config MACH_READYNAS_DT
+       bool "NETGEAR ReadyNAS Duo v2 (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       select ARM_APPENDED_DTB
+       select ARM_ATAG_DTB_COMPAT
        help
          Say 'Y' here if you want your kernel to support the
-         LaCie 5Big Network v2 NAS.
+         NETGEAR ReadyNAS Duo v2 using Fattened Device Tree.
 
-config MACH_T5325
-       bool "HP t5325 Thin Client"
+config MACH_TOPKICK_DT
+       bool "USI Topkick (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
        help
          Say 'Y' here if you want your kernel to support the
-         HP t5325 Thin Client.
+         USI Topkick, using Flattened Device Tree
 
-config MACH_NSA310_DT
-       bool "ZyXEL NSA-310 (Flattened Device Tree)"
+config MACH_TS219_DT
+       bool "Device Tree for QNAP TS-11X, TS-21X NAS"
        select ARCH_KIRKWOOD_DT
+       select ARM_APPENDED_DTB
        select ARM_ATAG_DTB_COMPAT
        help
-         Say 'Y' here if you want your kernel to support the
-         ZyXEL NSA-310 board (Flattened Device Tree).
+         Say 'Y' here if you want your kernel to support the QNAP
+         TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
+         TS-219P+ Turbo NAS devices using Fattened Device Tree.
+         There are two different Device Tree descriptions, depending
+         on if the device is based on an if the board uses the MV6281
+         or MV6282. If you have the wrong one, the buttons will not
+         work.
 
 endmenu
 
index 4cc4bee4d0cf67b963d2e9aa8237e294f24c3f56..cdbca328a412b2490a1eafd47f901d8bcf0ca9f2 100644 (file)
@@ -1,42 +1,44 @@
 obj-y                          += common.o addr-map.o irq.o pcie.o mpp.o
 
+obj-$(CONFIG_MACH_D2NET_V2)            += d2net_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_DB88F6281_BP)                += db88f6281-bp-setup.o
-obj-$(CONFIG_MACH_RD88F6192_NAS)       += rd88f6192-nas-setup.o
-obj-$(CONFIG_MACH_RD88F6281)           += rd88f6281-setup.o
-obj-$(CONFIG_MACH_MV88F6281GTW_GE)     += mv88f6281gtw_ge-setup.o
-obj-$(CONFIG_MACH_SHEEVAPLUG)          += sheevaplug-setup.o
+obj-$(CONFIG_MACH_DOCKSTAR)            += dockstar-setup.o
 obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG)    += sheevaplug-setup.o
 obj-$(CONFIG_MACH_GURUPLUG)            += guruplug-setup.o
-obj-$(CONFIG_MACH_DOCKSTAR)            += dockstar-setup.o
-obj-$(CONFIG_MACH_TS219)               += ts219-setup.o tsx1x-common.o
-obj-$(CONFIG_MACH_TS41X)               += ts41x-setup.o tsx1x-common.o
-obj-$(CONFIG_MACH_OPENRD)              += openrd-setup.o
-obj-$(CONFIG_MACH_NETSPACE_V2)         += netspace_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_INETSPACE_V2)                += netspace_v2-setup.o lacie_v2-common.o
-obj-$(CONFIG_MACH_NETSPACE_MAX_V2)     += netspace_v2-setup.o lacie_v2-common.o
-obj-$(CONFIG_MACH_D2NET_V2)            += d2net_v2-setup.o lacie_v2-common.o
+obj-$(CONFIG_MACH_MV88F6281GTW_GE)     += mv88f6281gtw_ge-setup.o
 obj-$(CONFIG_MACH_NET2BIG_V2)          += netxbig_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_NET5BIG_V2)          += netxbig_v2-setup.o lacie_v2-common.o
+obj-$(CONFIG_MACH_NETSPACE_MAX_V2)     += netspace_v2-setup.o lacie_v2-common.o
+obj-$(CONFIG_MACH_NETSPACE_V2)         += netspace_v2-setup.o lacie_v2-common.o
+obj-$(CONFIG_MACH_OPENRD)              += openrd-setup.o
+obj-$(CONFIG_MACH_RD88F6192_NAS)       += rd88f6192-nas-setup.o
+obj-$(CONFIG_MACH_RD88F6281)           += rd88f6281-setup.o
+obj-$(CONFIG_MACH_SHEEVAPLUG)          += sheevaplug-setup.o
 obj-$(CONFIG_MACH_T5325)               += t5325-setup.o
+obj-$(CONFIG_MACH_TS219)               += ts219-setup.o tsx1x-common.o
+obj-$(CONFIG_MACH_TS41X)               += ts41x-setup.o tsx1x-common.o
 
 obj-$(CONFIG_ARCH_KIRKWOOD_DT)         += board-dt.o
-obj-$(CONFIG_MACH_DREAMPLUG_DT)                += board-dreamplug.o
-obj-$(CONFIG_MACH_GURUPLUG_DT)         += board-guruplug.o
-obj-$(CONFIG_MACH_ICONNECT_DT)         += board-iconnect.o
+obj-$(CONFIG_MACH_CLOUDBOX_DT)         += board-ns2.o
 obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT)   += board-dnskw.o
-obj-$(CONFIG_MACH_IB62X0_DT)           += board-ib62x0.o
-obj-$(CONFIG_MACH_TS219_DT)            += board-ts219.o tsx1x-common.o
 obj-$(CONFIG_MACH_DOCKSTAR_DT)         += board-dockstar.o
+obj-$(CONFIG_MACH_DREAMPLUG_DT)                += board-dreamplug.o
 obj-$(CONFIG_MACH_GOFLEXNET_DT)                += board-goflexnet.o
-obj-$(CONFIG_MACH_LSXL_DT)             += board-lsxl.o
+obj-$(CONFIG_MACH_GURUPLUG_DT)         += board-guruplug.o
+obj-$(CONFIG_MACH_IB62X0_DT)           += board-ib62x0.o
+obj-$(CONFIG_MACH_ICONNECT_DT)         += board-iconnect.o
+obj-$(CONFIG_MACH_INETSPACE_V2_DT)     += board-ns2.o
 obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT)   += board-iomega_ix2_200.o
 obj-$(CONFIG_MACH_KM_KIRKWOOD_DT)      += board-km_kirkwood.o
-obj-$(CONFIG_MACH_INETSPACE_V2_DT)     += board-ns2.o
+obj-$(CONFIG_MACH_LSXL_DT)             += board-lsxl.o
 obj-$(CONFIG_MACH_MPLCEC4_DT)          += board-mplcec4.o
-obj-$(CONFIG_MACH_NETSPACE_V2_DT)      += board-ns2.o
-obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT)  += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
+obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT)  += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o
+obj-$(CONFIG_MACH_NETSPACE_V2_DT)      += board-ns2.o
 obj-$(CONFIG_MACH_NSA310_DT)           += board-nsa310.o
 obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT)    += board-openblocks_a6.o
+obj-$(CONFIG_MACH_READYNAS_DT)         += board-readynas.o
 obj-$(CONFIG_MACH_TOPKICK_DT)          += board-usi_topkick.o
+obj-$(CONFIG_MACH_TS219_DT)            += board-ts219.o tsx1x-common.o
index d367aa6b47bbf8a11df36fd856e620e81b65d0c1..7904758e771fb1f30df89036191956831a88e9c7 100644 (file)
@@ -139,16 +139,20 @@ static void __init kirkwood_dt_init(void)
        if (of_machine_is_compatible("keymile,km_kirkwood"))
                km_kirkwood_init();
 
-       if (of_machine_is_compatible("lacie,inetspace_v2") ||
-           of_machine_is_compatible("lacie,netspace_v2") ||
-           of_machine_is_compatible("lacie,netspace_max_v2") ||
+       if (of_machine_is_compatible("lacie,cloudbox") ||
+           of_machine_is_compatible("lacie,inetspace_v2") ||
            of_machine_is_compatible("lacie,netspace_lite_v2") ||
-           of_machine_is_compatible("lacie,netspace_mini_v2"))
+           of_machine_is_compatible("lacie,netspace_max_v2") ||
+           of_machine_is_compatible("lacie,netspace_mini_v2") ||
+           of_machine_is_compatible("lacie,netspace_v2"))
                ns2_init();
 
        if (of_machine_is_compatible("mpl,cec4"))
                mplcec4_init();
 
+       if (of_machine_is_compatible("netgear,readynas-duo-v2"))
+               netgear_readynas_init();
+
        if (of_machine_is_compatible("plathome,openblocks-a6"))
                openblocks_a6_init();
 
@@ -171,12 +175,14 @@ static const char * const kirkwood_dt_board_compat[] = {
        "buffalo,lsxl",
        "iom,ix2-200",
        "keymile,km_kirkwood",
+       "lacie,cloudbox",
        "lacie,inetspace_v2",
-       "lacie,netspace_max_v2",
-       "lacie,netspace_v2",
        "lacie,netspace_lite_v2",
+       "lacie,netspace_max_v2",
        "lacie,netspace_mini_v2",
+       "lacie,netspace_v2",
        "mpl,cec4",
+       "netgear,readynas-duo-v2",
        "plathome,openblocks-a6",
        "usi,topkick",
        "zyxel,nsa310",
index f2ea3b7ad72692d7e5e5cd38f0e7ffe235396c55..f8f660525aceb405f80786a80571957ee216861c 100644 (file)
@@ -27,7 +27,8 @@ void __init ns2_init(void)
        /*
         * Basic setup. Needs to be called early.
         */
-       if (of_machine_is_compatible("lacie,netspace_lite_v2") ||
+       if (of_machine_is_compatible("lacie,cloudbox") ||
+           of_machine_is_compatible("lacie,netspace_lite_v2") ||
            of_machine_is_compatible("lacie,netspace_mini_v2"))
                ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
        kirkwood_ge00_init(&ns2_ge00_data);
diff --git a/arch/arm/mach-kirkwood/board-readynas.c b/arch/arm/mach-kirkwood/board-readynas.c
new file mode 100644 (file)
index 0000000..fb42c20
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * NETGEAR ReadyNAS Duo v2 Board setup for drivers not already
+ * converted to DT.
+ *
+ * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/mv643xx_eth.h>
+#include <mach/kirkwood.h>
+#include "common.h"
+
+static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
+};
+
+void __init netgear_readynas_init(void)
+{
+       kirkwood_ge00_init(&netgear_readynas_ge00_data);
+       kirkwood_pcie_init(KW_PCIE0);
+}
index 5ed70565c8435d2efd9e529bb0bab39bdb519727..3147be2f34da7558818c6a7a667058f50b22b94e 100644 (file)
@@ -141,12 +141,24 @@ void openblocks_a6_init(void);
 static inline void openblocks_a6_init(void) {};
 #endif
 
+#ifdef CONFIG_MACH_READYNAS_DT
+void netgear_readynas_init(void);
+#else
+static inline void netgear_readynas_init(void) {};
+#endif
+
 #ifdef CONFIG_MACH_TOPKICK_DT
 void usi_topkick_init(void);
 #else
 static inline void usi_topkick_init(void) {};
 #endif
 
+#ifdef CONFIG_MACH_CLOUDBOX_DT
+void cloudbox_init(void);
+#else
+static inline void cloudbox_init(void) {};
+#endif
+
 /* early init functions not converted to fdt yet */
 char *kirkwood_id(void);
 void kirkwood_l2_init(void);
index 76901f4ce611aba80c2e102700e69407dcd88772..5b660ec09ef52da82afe5b51176cfec4a4f8d4af 100644 (file)
@@ -9,6 +9,7 @@
  *  publishhed by the Free Software Foundation.
  */
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
@@ -110,6 +111,10 @@ static unsigned long common_pin_config[] __initdata = {
        GPIO121_KP_MKIN4,
 };
 
+static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct smc91x_platdata smc91x_info = {
        .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
 };
@@ -242,6 +247,8 @@ static void __init common_init(void)
        pxa168_add_nand(&aspenite_nand_info);
        pxa168_add_fb(&aspenite_lcd_info);
        pxa168_add_keypad(&aspenite_keypad_info);
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
 
        /* off-chip devices */
index 1f94957b56ae430eecd43b612bd373f39d02f0f5..a451a0f4d512ccca07f813d55e46ceaadd8ee43d 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/gpio-pxa.h>
 #include <linux/platform_device.h>
 
 #include <asm/mach-types.h>
@@ -32,12 +33,18 @@ static unsigned long avengers_lite_pin_config_V16F[] __initdata = {
        GPIO89_UART2_RXD,
 };
 
+static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static void __init avengers_lite_init(void)
 {
        mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F));
 
        /* on-chip devices */
        pxa168_add_uart(2);
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
 }
 
index 2358011c7d8ec7e96f24352d9331673fb455e8a4..ac25544b8cdb15bddeec7472508fb0165d2e26f0 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
+#include <linux/gpio-pxa.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/max8649.h>
 #include <linux/regulator/fixed.h>
@@ -104,6 +105,10 @@ static unsigned long brownstone_pin_config[] __initdata = {
        GPIO89_GPIO,
 };
 
+static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct regulator_consumer_supply max8649_supply[] = {
        REGULATOR_SUPPLY("vcc_core", NULL),
 };
@@ -202,6 +207,8 @@ static void __init brownstone_init(void)
        /* on-chip devices */
        mmp2_add_uart(1);
        mmp2_add_uart(3);
+       platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&mmp2_device_gpio);
        mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(brownstone_twsi1_info));
        mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
index 21d22002cd19ec5f2a497ca31e7d6945df527cfb..53d77cbd6000307d39906c95d05d2fa8c5c6a1c6 100644 (file)
@@ -98,7 +98,7 @@ static struct clk_lookup mmp2_clkregs[] = {
        INIT_CLKREG(&clk_twsi5, "pxa2xx-i2c.4", NULL),
        INIT_CLKREG(&clk_twsi6, "pxa2xx-i2c.5", NULL),
        INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
-       INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_gpio, "mmp2-gpio", NULL),
        INIT_CLKREG(&clk_sdh0, "sdhci-pxav3.0", "PXA-SDHCLK"),
        INIT_CLKREG(&clk_sdh1, "sdhci-pxav3.1", "PXA-SDHCLK"),
        INIT_CLKREG(&clk_sdh2, "sdhci-pxav3.2", "PXA-SDHCLK"),
index 5e6c18ccebd4d2ddd391e4c13323d73cd03b4435..c572f219ae266f51e9a79c8d32c03020045920ba 100644 (file)
@@ -78,7 +78,7 @@ static struct clk_lookup pxa168_clkregs[] = {
        INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL),
        INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
        INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
-       INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
        INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL),
        INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"),
        INIT_CLKREG(&clk_usb, NULL, "PXA168-USBCLK"),
index 933ea71d0b56ca9e894edfa72f22332f4ade243c..379e1df61c7066920b16fb50e26e540b60ce21e9 100644 (file)
@@ -56,7 +56,7 @@ static struct clk_lookup pxa910_clkregs[] = {
        INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL),
        INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL),
        INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
-       INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
        INIT_CLKREG(&clk_u2o, NULL, "U2OCLK"),
        INIT_CLKREG(&clk_rtc, "sa1100-rtc", NULL),
 };
index 754c352dd02b0c184c1b1adf134b79a3760b774d..6291c33d83e26cef825fcd6c1cf96ad024a5ce93 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/smc91x.h>
 #include <linux/io.h>
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 #include <linux/interrupt.h>
 
 #include <asm/mach-types.h>
@@ -77,6 +78,10 @@ static unsigned long flint_pin_config[] __initdata = {
        GPIO160_ND_RDY1,
 };
 
+static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct smc91x_platdata flint_smc91x_info = {
        .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
 };
@@ -111,6 +116,8 @@ static void __init flint_init(void)
        /* on-chip devices */
        mmp2_add_uart(1);
        mmp2_add_uart(2);
+       platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&mmp2_device_gpio);
 
        /* off-chip devices */
index f62b68d926f4237bf70911ba43487d27c98d4e97..d81b2475e67e547cb5009a666b6caf779b300cb1 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach-types.h>
@@ -128,6 +129,10 @@ static unsigned long gplugd_pin_config[] __initdata = {
        GPIO116_I2S_TXD
 };
 
+static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct i2c_board_info gplugd_i2c_board_info[] = {
        {
                .type = "isl1208",
@@ -186,6 +191,8 @@ static void __init gplugd_init(void)
        pxa168_add_uart(3);
        pxa168_add_ssp(1);
        pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(gplugd_i2c_board_info));
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
 
        pxa168_add_eth(&gplugd_eth_platform_data);
diff --git a/arch/arm/mach-mmp/include/mach/debug-macro.S b/arch/arm/mach-mmp/include/mach/debug-macro.S
deleted file mode 100644 (file)
index 5c3cc29..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* arch/arm/mach-mmp/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copied from arch/arm/mach-pxa/include/mach/debug.S
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#if defined(CONFIG_DEBUG_MMP_UART2)
-#define MMP_UART_OFFSET        0x00017000
-#elif defined(CONFIG_DEBUG_MMP_UART3)
-#define MMP_UART_OFFSET        0x00018000
-#else
-#error "Select uart for DEBUG_LL"
-#endif
-
-#include <mach/addr-map.h>
-
-               .macro  addruart, rp, rv, tmp
-               ldr     \rp, =APB_PHYS_BASE             @ physical
-               ldr     \rv, =APB_VIRT_BASE             @ virtual
-               orr     \rp, \rp, #MMP_UART_OFFSET
-               orr     \rv, \rv, #MMP_UART_OFFSET
-               .endm
-
-#define UART_SHIFT     2
-#include <asm/hardware/debug-8250.S>
index 66634fd0ecb092991c8be85e155dd1f066800ad0..0e9e5c05b37c242a532deda65d50bbfe7dbfa5a8 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/gpio-pxa.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/regulator/machine.h>
@@ -99,6 +100,10 @@ static unsigned long jasper_pin_config[] __initdata = {
        GPIO151_MMC3_CLK,
 };
 
+static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct regulator_consumer_supply max8649_supply[] = {
        REGULATOR_SUPPLY("vcc_core", NULL),
 };
@@ -165,6 +170,9 @@ static void __init jasper_init(void)
        mmp2_add_uart(1);
        mmp2_add_uart(3);
        mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info));
+       platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
+       platform_device_register(&mmp2_device_gpio);
        mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
 
        regulator_has_full_constraints();
index d063efa0a4f1477c004d570aef6dbb173c0c24fb..b37915dc44709852f39d716f11df69c66054abe3 100644 (file)
@@ -28,7 +28,7 @@ static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
        OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
-       OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
+       OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
        {}
 };
@@ -39,7 +39,7 @@ static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
        OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
-       OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
+       OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
        {}
 };
index fad431aa6e09940346143fb3768fc7a1e0121568..4ac256720f7db089531bdbb0452b11b9f7d47d3d 100644 (file)
@@ -31,7 +31,7 @@ static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
        OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
-       OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
+       OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
        OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
        {}
 };
index d94d114eef7b3e9c92361f7be7e008d9649dd9b1..c7592f168bbdcc1e51b9de81afe7ff791bd49466 100644 (file)
@@ -164,7 +164,7 @@ struct resource mmp2_resource_gpio[] = {
 };
 
 struct platform_device mmp2_device_gpio = {
-       .name           = "pxa-gpio",
+       .name           = "mmp2-gpio",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(mmp2_resource_gpio),
        .resource       = mmp2_resource_gpio,
index 9bc7b86a86a7e8d1f02ff118540bb25f913d7dbf..a30dcf3b7d9e661260bd92cd96827b2957ab36fd 100644 (file)
@@ -125,7 +125,7 @@ struct resource pxa168_resource_gpio[] = {
 };
 
 struct platform_device pxa168_device_gpio = {
-       .name           = "pxa-gpio",
+       .name           = "mmp-gpio",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(pxa168_resource_gpio),
        .resource       = pxa168_resource_gpio,
index 36cb321a3d7052a2619d16270cd55cf53a63679e..ce6393acad86a4cf90b67cac71611c3e22f8c3aa 100644 (file)
@@ -152,7 +152,7 @@ struct resource pxa910_resource_gpio[] = {
 };
 
 struct platform_device pxa910_device_gpio = {
-       .name           = "pxa-gpio",
+       .name           = "mmp-gpio",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(pxa910_resource_gpio),
        .resource       = pxa910_resource_gpio,
index 4c127d23955da3419ebb9cf7fc57d23944870a0a..cdfc9bfee1a4c1f9526bfdff4a6d566efbcb33a0 100644 (file)
@@ -8,6 +8,7 @@
  *  publishhed by the Free Software Foundation.
  */
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
@@ -60,6 +61,10 @@ static unsigned long tavorevb_pin_config[] __initdata = {
        DF_RDY0_DF_RDY0,
 };
 
+static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct smc91x_platdata tavorevb_smc91x_info = {
        .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
 };
@@ -93,6 +98,8 @@ static void __init tavorevb_init(void)
 
        /* on-chip devices */
        pxa910_add_uart(1);
+       platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa910_device_gpio);
 
        /* off-chip devices */
index 8609967975ed9039e56b643ddd07ee52e0e3b12a..e4d95b4c6bb272a427c5e4d6dae3cb7676b11ae9 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 #include <linux/input.h>
 #include <linux/platform_data/keypad-pxa27x.h>
 #include <linux/i2c.h>
@@ -49,6 +50,10 @@ static unsigned long teton_bga_pin_config[] __initdata = {
        GPIO78_GPIO,
 };
 
+static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static unsigned int teton_bga_matrix_key_map[] = {
        KEY(0, 6, KEY_ESC),
        KEY(0, 7, KEY_ENTER),
@@ -79,6 +84,8 @@ static void __init teton_bga_init(void)
        pxa168_add_uart(1);
        pxa168_add_keypad(&teton_bga_keypad_info);
        pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(teton_bga_i2c_info));
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
 }
 
index 6528a5fa6a26ce924cf3538684c1f828137809d5..8483906d43085e59ea37541869811379ce75ad4b 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/interrupt.h>
 #include <linux/i2c/pca953x.h>
 #include <linux/gpio.h>
+#include <linux/gpio-pxa.h>
 #include <linux/mfd/88pm860x.h>
 #include <linux/platform_data/mv_usb.h>
 #include <linux/spi/spi.h>
@@ -75,6 +76,10 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
        DF_RDY0_DF_RDY0,
 };
 
+static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+};
+
 static struct mtd_partition ttc_dkb_onenand_partitions[] = {
        {
                .name           = "bootloader",
@@ -278,6 +283,8 @@ static void __init ttc_dkb_init(void)
 
        /* off-chip devices */
        pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));
+       platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
 
 #ifdef CONFIG_USB_MV_UDC
index 753cd5ce694992b30c91fcf2fa083513b0b29d1c..45e5ac707cbb799326fbd748ec04a1cb0ffde3ca 100644 (file)
@@ -2,7 +2,7 @@
  * FIXME correct answer depends on hmc_mode,
  * as does (on omap1) any nonzero value for config->otg port number
  */
-#ifdef CONFIG_USB_GADGET_OMAP
+#if IS_ENABLED(CONFIG_USB_OMAP)
 #define        is_usb0_device(config)  1
 #else
 #define        is_usb0_device(config)  0
index 1a1db5971cd9e6e412b7c8151040f6c907c2868f..4118db50d5e863ce3ec6d58c353a1fac20af2032 100644 (file)
@@ -123,7 +123,7 @@ omap_otg_init(struct omap_usb_config *config)
        syscon = omap_readl(OTG_SYSCON_1);
        syscon |= HST_IDLE_EN|DEV_IDLE_EN|OTG_IDLE_EN;
 
-#ifdef CONFIG_USB_GADGET_OMAP
+#if IS_ENABLED(CONFIG_USB_OMAP)
        if (config->otg || config->register_dev) {
                struct platform_device *udc_device = config->udc_device;
                int status;
@@ -169,7 +169,7 @@ omap_otg_init(struct omap_usb_config *config)
 void omap_otg_init(struct omap_usb_config *config) {}
 #endif
 
-#ifdef CONFIG_USB_GADGET_OMAP
+#if IS_ENABLED(CONFIG_USB_OMAP)
 
 static struct resource udc_resources[] = {
        /* order is significant! */
@@ -600,7 +600,7 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config)
        while (!(omap_readw(ULPD_DPLL_CTRL) & DPLL_LOCK))
                cpu_relax();
 
-#ifdef CONFIG_USB_GADGET_OMAP
+#if IS_ENABLED(CONFIG_USB_OMAP)
        if (config->register_dev) {
                int status;
 
index b068b7fe99ef3239c98938de5cc0eab820bc371d..62bb352c2d37fd80b2793aa3d8d744ff9eec1195 100644 (file)
@@ -229,7 +229,6 @@ obj-$(CONFIG_MACH_DEVKIT8000)       += board-devkit8000.o
 obj-$(CONFIG_MACH_OMAP_LDP)            += board-ldp.o
 obj-$(CONFIG_MACH_OMAP3530_LV_SOM)      += board-omap3logic.o
 obj-$(CONFIG_MACH_OMAP3_TORPEDO)        += board-omap3logic.o
-obj-$(CONFIG_MACH_ENCORE)              += board-omap3encore.o
 obj-$(CONFIG_MACH_OVERO)               += board-overo.o
 obj-$(CONFIG_MACH_OMAP3EVM)            += board-omap3evm.o
 obj-$(CONFIG_MACH_OMAP3_PANDORA)       += board-omap3pandora.o
@@ -255,8 +254,6 @@ obj-$(CONFIG_MACH_TOUCHBOOK)                += board-omap3touchbook.o
 obj-$(CONFIG_MACH_OMAP_4430SDP)                += board-4430sdp.o
 obj-$(CONFIG_MACH_OMAP4_PANDA)         += board-omap4panda.o
 
-obj-$(CONFIG_MACH_PCM049)              += board-omap4pcm049.o
-
 obj-$(CONFIG_MACH_OMAP3517EVM)         += board-am3517evm.o
 
 obj-$(CONFIG_MACH_CRANEBOARD)          += board-am3517crane.o
index 35f3ad0cb7c708b0903f125f6b8646fc90e72c7a..00d72902ef4fe0bfddaf71bdb929b5f1245523a7 100644 (file)
@@ -291,6 +291,10 @@ static struct platform_device sdp4430_leds_pwm = {
        },
 };
 
+/* Dummy regulator for pwm-backlight driver */
+static struct regulator_consumer_supply backlight_supply =
+       REGULATOR_SUPPLY("enable", "pwm-backlight");
+
 static struct platform_pwm_backlight_data sdp4430_backlight_data = {
        .max_brightness = 127,
        .dft_brightness = 127,
@@ -718,6 +722,8 @@ static void __init omap_4430sdp_init(void)
 
        omap4_i2c_init();
        omap_sfh7741prox_init();
+       regulator_register_always_on(0, "backlight-enable",
+                                    &backlight_supply, 1, 0);
        platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
        omap_serial_init();
        omap_sdrc_init(NULL, NULL);
index 3a077df6b8dfff24d7ccb09478f4ffce291e9b42..1a884670a6c4fe1c40d2d668129502f0bd636fce 100644 (file)
@@ -547,12 +547,16 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {
        REGULATOR_SUPPLY("DVDD", "2-0019"),
        /* Si4713 IO supply */
        REGULATOR_SUPPLY("vio", "2-0063"),
+       /* lis3lv02d */
+       REGULATOR_SUPPLY("Vdd_IO", "3-001d"),
 };
 
 static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
        REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
        /* Si4713 supply */
        REGULATOR_SUPPLY("vdd", "2-0063"),
+       /* lis3lv02d */
+       REGULATOR_SUPPLY("Vdd", "3-001d"),
 };
 
 static struct regulator_init_data rx51_vaux1 = {
index 8cef477d6b006ac81e890e68c9965abecb2d8a97..9a7174faac510a456492359a818c4438cdcfed3b 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
-#include <linux/i2c/twl.h>
 #include <linux/spi/spi.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <video/omapdss.h>
@@ -49,59 +48,6 @@ static void zoom_panel_disable_lcd(struct omap_dss_device *dssdev)
 {
 }
 
-/* Register offsets in TWL4030_MODULE_INTBR */
-#define TWL_INTBR_PMBR1        0xD
-#define TWL_INTBR_GPBR1        0xC
-
-/* Register offsets in TWL_MODULE_PWM */
-#define TWL_LED_PWMON  0x3
-#define TWL_LED_PWMOFF 0x4
-
-static int zoom_set_bl_intensity(struct omap_dss_device *dssdev, int level)
-{
-#ifdef CONFIG_TWL4030_CORE
-       unsigned char c;
-       u8 mux_pwm, enb_pwm;
-
-       if (level > 100)
-               return -1;
-
-       twl_i2c_read_u8(TWL4030_MODULE_INTBR, &mux_pwm, TWL_INTBR_PMBR1);
-       twl_i2c_read_u8(TWL4030_MODULE_INTBR, &enb_pwm, TWL_INTBR_GPBR1);
-
-       if (level == 0) {
-               /* disable pwm1 output and clock */
-               enb_pwm = enb_pwm & 0xF5;
-               /* change pwm1 pin to gpio pin */
-               mux_pwm = mux_pwm & 0xCF;
-               twl_i2c_write_u8(TWL4030_MODULE_INTBR,
-                                       enb_pwm, TWL_INTBR_GPBR1);
-               twl_i2c_write_u8(TWL4030_MODULE_INTBR,
-                                       mux_pwm, TWL_INTBR_PMBR1);
-               return 0;
-       }
-
-       if (!((enb_pwm & 0xA) && (mux_pwm & 0x30))) {
-               /* change gpio pin to pwm1 pin */
-               mux_pwm = mux_pwm | 0x30;
-               /* enable pwm1 output and clock*/
-               enb_pwm = enb_pwm | 0x0A;
-               twl_i2c_write_u8(TWL4030_MODULE_INTBR,
-                                       mux_pwm, TWL_INTBR_PMBR1);
-               twl_i2c_write_u8(TWL4030_MODULE_INTBR,
-                                       enb_pwm, TWL_INTBR_GPBR1);
-       }
-
-       c = ((50 * (100 - level)) / 100) + 1;
-       twl_i2c_write_u8(TWL_MODULE_PWM, 0x7F, TWL_LED_PWMOFF);
-       twl_i2c_write_u8(TWL_MODULE_PWM, c, TWL_LED_PWMON);
-#else
-       pr_warn("Backlight not enabled\n");
-#endif
-
-       return 0;
-}
-
 static struct omap_dss_device zoom_lcd_device = {
        .name                   = "lcd",
        .driver_name            = "NEC_8048_panel",
@@ -109,8 +55,6 @@ static struct omap_dss_device zoom_lcd_device = {
        .phy.dpi.data_lines     = 24,
        .platform_enable        = zoom_panel_enable_lcd,
        .platform_disable       = zoom_panel_disable_lcd,
-       .max_backlight_level    = 100,
-       .set_backlight          = zoom_set_bl_intensity,
 };
 
 static struct omap_dss_device *zoom_dss_devices[] = {
index cdc0c1021863cbbf79a0083549fee4c51bafd365..a90375d5b2b6ea26af9168fdfd697556334d3e72 100644 (file)
@@ -22,6 +22,9 @@
 #include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/omap-twl4030.h>
 #include <linux/usb/phy.h>
+#include <linux/pwm.h>
+#include <linux/leds_pwm.h>
+#include <linux/pwm_backlight.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -193,6 +196,53 @@ static struct platform_device omap_vwlan_device = {
        },
 };
 
+static struct pwm_lookup zoom_pwm_lookup[] = {
+       PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"),
+       PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"),
+};
+
+static struct led_pwm zoom_pwm_leds[] = {
+       {
+               .name           = "zoom::keypad",
+               .max_brightness = 127,
+               .pwm_period_ns  = 7812500,
+       },
+};
+
+static struct led_pwm_platform_data zoom_pwm_data = {
+       .num_leds       = ARRAY_SIZE(zoom_pwm_leds),
+       .leds           = zoom_pwm_leds,
+};
+
+static struct platform_device zoom_leds_pwm = {
+       .name   = "leds_pwm",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &zoom_pwm_data,
+       },
+};
+
+static struct platform_pwm_backlight_data zoom_backlight_data = {
+       .pwm_id = 1,
+       .max_brightness = 127,
+       .dft_brightness = 127,
+       .pwm_period_ns = 7812500,
+};
+
+static struct platform_device zoom_backlight_pwm = {
+       .name   = "pwm-backlight",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &zoom_backlight_data,
+       },
+};
+
+static struct platform_device *zoom_devices[] __initdata = {
+       &omap_vwlan_device,
+       &zoom_leds_pwm,
+       &zoom_backlight_pwm,
+};
+
 static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
        .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */
 };
@@ -301,7 +351,8 @@ void __init zoom_peripherals_init(void)
 
        omap_hsmmc_init(mmc);
        omap_i2c_init();
-       platform_device_register(&omap_vwlan_device);
+       pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup));
+       platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));
        usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
        usb_musb_init(NULL);
        enable_board_wakeup_source();
index 86eec4159cbc95eb4da78cb7fe8bd2769f19890f..9075461999c11d31d67af317e3de806666ba987f 100644 (file)
@@ -51,11 +51,13 @@ config MACH_LITTLETON
 config MACH_TAVOREVB
        bool "PXA930 Evaluation Board (aka TavorEVB)"
        select CPU_PXA930
+       select CPU_PXA935
        select PXA3xx
 
 config MACH_SAAR
        bool "PXA930 Handheld Platform (aka SAAR)"
        select CPU_PXA930
+       select CPU_PXA935
        select PXA3xx
 
 comment "Third Party Dev Platforms (sorted by vendor name)"
index daa86d39ed9ee1cc6a81f3d7d954f61c0b8b38aa..666094315ab1a4a8a11b2ca00987afd687aa6c10 100644 (file)
@@ -1107,8 +1107,33 @@ struct resource pxa_resource_gpio[] = {
        },
 };
 
-struct platform_device pxa_device_gpio = {
-       .name           = "pxa-gpio",
+struct platform_device pxa25x_device_gpio = {
+#ifdef CONFIG_CPU_PXA26x
+       .name           = "pxa26x-gpio",
+#else
+       .name           = "pxa25x-gpio",
+#endif
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(pxa_resource_gpio),
+       .resource       = pxa_resource_gpio,
+};
+
+struct platform_device pxa27x_device_gpio = {
+       .name           = "pxa27x-gpio",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(pxa_resource_gpio),
+       .resource       = pxa_resource_gpio,
+};
+
+struct platform_device pxa3xx_device_gpio = {
+       .name           = "pxa3xx-gpio",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(pxa_resource_gpio),
+       .resource       = pxa_resource_gpio,
+};
+
+struct platform_device pxa93x_device_gpio = {
+       .name           = "pxa93x-gpio",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(pxa_resource_gpio),
        .resource       = pxa_resource_gpio,
index 1475db1072546ba7d1029b5c0de3c32e526239f5..0f3fd0d65b12a8cad7f29dc63ff43be6de374f22 100644 (file)
@@ -16,7 +16,6 @@ extern struct platform_device pxa_device_ficp;
 extern struct platform_device sa1100_device_rtc;
 extern struct platform_device pxa_device_rtc;
 extern struct platform_device pxa_device_ac97;
-extern struct platform_device pxa_device_gpio;
 
 extern struct platform_device pxa27x_device_i2c_power;
 extern struct platform_device pxa27x_device_ohci;
@@ -46,4 +45,9 @@ extern struct platform_device pxa_device_asoc_ssp2;
 extern struct platform_device pxa_device_asoc_ssp3;
 extern struct platform_device pxa_device_asoc_ssp4;
 
+extern struct platform_device pxa25x_device_gpio;
+extern struct platform_device pxa27x_device_gpio;
+extern struct platform_device pxa3xx_device_gpio;
+extern struct platform_device pxa93x_device_gpio;
+
 void __init pxa_register_device(struct platform_device *dev, void *data);
diff --git a/arch/arm/mach-pxa/include/mach/debug-macro.S b/arch/arm/mach-pxa/include/mach/debug-macro.S
deleted file mode 100644 (file)
index 70b112e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* arch/arm/mach-pxa/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
-*/
-
-#include "hardware.h"
-
-               .macro  addruart, rp, rv, tmp
-               mov     \rp, #0x00100000
-               orr     \rv, \rp, #io_p2v(0x40000000)   @ virtual
-               orr     \rp, \rp, #0x40000000           @ physical
-               .endm
-
-#define UART_SHIFT     2
-#include <asm/hardware/debug-8250.S>
index 3f5171eaf67bcd8e35c441336ed72a4a83084a87..f2c28972084d92e9dbb74aca91804a093534093b 100644 (file)
@@ -208,7 +208,11 @@ static struct clk_lookup pxa25x_clkregs[] = {
        INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
        INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
        INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
-       INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
+#ifdef CONFIG_CPU_PXA26x
+       INIT_CLKREG(&clk_dummy, "pxa26x-gpio", NULL),
+#else
+       INIT_CLKREG(&clk_dummy, "pxa25x-gpio", NULL),
+#endif
        INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
@@ -340,7 +344,8 @@ void __init pxa25x_map_io(void)
 }
 
 static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = {
-       .gpio_set_wake = gpio_set_wake,
+       .irq_base       = PXA_GPIO_TO_IRQ(0),
+       .gpio_set_wake  = gpio_set_wake,
 };
 
 static struct platform_device *pxa25x_devices[] __initdata = {
@@ -375,7 +380,7 @@ static int __init pxa25x_init(void)
                register_syscore_ops(&pxa2xx_mfp_syscore_ops);
                register_syscore_ops(&pxa2xx_clock_syscore_ops);
 
-               pxa_register_device(&pxa_device_gpio, &pxa25x_gpio_info);
+               pxa_register_device(&pxa25x_device_gpio, &pxa25x_gpio_info);
                ret = platform_add_devices(pxa25x_devices,
                                           ARRAY_SIZE(pxa25x_devices));
                if (ret)
index 3203a9f5b4a2e40f87fd43601e9a0f215f95352b..301471a07a109256fecdb054ab18f297620bfe49 100644 (file)
@@ -237,7 +237,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
        INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
        INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
        INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
-       INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_dummy, "pxa27x-gpio", NULL),
        INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
@@ -431,7 +431,8 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
 }
 
 static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = {
-       .gpio_set_wake = gpio_set_wake,
+       .irq_base       = PXA_GPIO_TO_IRQ(0),
+       .gpio_set_wake  = gpio_set_wake,
 };
 
 static struct platform_device *devices[] __initdata = {
@@ -470,7 +471,7 @@ static int __init pxa27x_init(void)
                register_syscore_ops(&pxa2xx_mfp_syscore_ops);
                register_syscore_ops(&pxa2xx_clock_syscore_ops);
 
-               pxa_register_device(&pxa_device_gpio, &pxa27x_gpio_info);
+               pxa_register_device(&pxa27x_device_gpio, &pxa27x_gpio_info);
                ret = platform_add_devices(devices, ARRAY_SIZE(devices));
        }
 
index 656a1bb16d147d2262e92e1df1336de5d10db142..87011f3de69d6daa8e55030200c4dbfe57ffdf92 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/gpio-pxa.h>
 #include <linux/pm.h>
 #include <linux/platform_device.h>
 #include <linux/irq.h>
@@ -92,7 +93,8 @@ static struct clk_lookup pxa3xx_clkregs[] = {
        INIT_CLKREG(&clk_pxa3xx_mmc1, "pxa2xx-mci.0", NULL),
        INIT_CLKREG(&clk_pxa3xx_mmc2, "pxa2xx-mci.1", NULL),
        INIT_CLKREG(&clk_pxa3xx_smemc, "pxa2xx-pcmcia", NULL),
-       INIT_CLKREG(&clk_pxa3xx_gpio, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_pxa3xx_gpio, "pxa3xx-gpio", NULL),
+       INIT_CLKREG(&clk_pxa3xx_gpio, "pxa93x-gpio", NULL),
        INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
@@ -435,8 +437,11 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
        pxa_register_device(&pxa3xx_device_i2c_power, info);
 }
 
+static struct pxa_gpio_platform_data pxa3xx_gpio_pdata = {
+       .irq_base       = PXA_GPIO_TO_IRQ(0),
+};
+
 static struct platform_device *devices[] __initdata = {
-       &pxa_device_gpio,
        &pxa27x_device_udc,
        &pxa_device_pmu,
        &pxa_device_i2s,
@@ -482,8 +487,18 @@ static int __init pxa3xx_init(void)
                register_syscore_ops(&pxa3xx_mfp_syscore_ops);
                register_syscore_ops(&pxa3xx_clock_syscore_ops);
 
-               if (!of_have_populated_dt())
-                       ret = platform_add_devices(devices, ARRAY_SIZE(devices));
+               if (of_have_populated_dt())
+                       return 0;
+
+               ret = platform_add_devices(devices, ARRAY_SIZE(devices));
+               if (ret)
+                       return ret;
+               if (cpu_is_pxa300() || cpu_is_pxa310() || cpu_is_pxa320()) {
+                       platform_device_add_data(&pxa3xx_device_gpio,
+                                                &pxa3xx_gpio_pdata,
+                                                sizeof(pxa3xx_gpio_pdata));
+                       ret = platform_device_register(&pxa3xx_device_gpio);
+               }
        }
 
        return ret;
index 8aeacf908784875da9c1e4e47c64ef44c9e4c728..ab624487cf39d3d8cf346f82c73518b08a6a7839 100644 (file)
 
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/irq.h>
 #include <linux/dma-mapping.h>
+#include <linux/irq.h>
+#include <linux/gpio-pxa.h>
+#include <linux/platform_device.h>
 
 #include <mach/pxa930.h>
 
+#include "devices.h"
+
 static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = {
 
        MFP_ADDR(GPIO0, 0x02e0),
@@ -190,11 +193,21 @@ static struct mfp_addr_map pxa935_mfp_addr_map[] __initdata = {
        MFP_ADDR_END,
 };
 
+static struct pxa_gpio_platform_data pxa93x_gpio_pdata = {
+       .irq_base       = PXA_GPIO_TO_IRQ(0),
+};
+
 static int __init pxa930_init(void)
 {
+       int ret = 0;
+
        if (cpu_is_pxa93x()) {
                mfp_init_base(io_p2v(MFPR_BASE));
                mfp_init_addr(pxa930_mfp_addr_map);
+               platform_device_add_data(&pxa93x_device_gpio,
+                                        &pxa93x_gpio_pdata,
+                                        sizeof(pxa93x_gpio_pdata));
+               ret = platform_device_register(&pxa93x_device_gpio);
        }
 
        if (cpu_is_pxa935())
index 75d413c004b6f35f3f330e3f07c9bf3538d2ead5..eb3a7ff19e7283bcfde520d5d020e4b35bd4480d 100644 (file)
@@ -104,6 +104,19 @@ config MACH_MARZEN
        select ARCH_REQUIRE_GPIOLIB
        select REGULATOR_FIXED_VOLTAGE if REGULATOR
 
+config MACH_MARZEN_REFERENCE
+       bool "MARZEN board - Reference Device Tree Implementation"
+       depends on ARCH_R8A7779
+       select ARCH_REQUIRE_GPIOLIB
+       select REGULATOR_FIXED_VOLTAGE if REGULATOR
+       select USE_OF
+       ---help---
+          Use reference implementation of Marzen board support
+          which makes use of device tree at the expense
+          of not supporting a number of devices.
+
+          This is intended to aid developers
+
 config MACH_KZM9D
        bool "KZM9D board"
        depends on ARCH_EMEV2
@@ -118,6 +131,20 @@ config MACH_KZM9G
        select SND_SOC_AK4642 if SND_SIMPLE_CARD
        select USE_OF
 
+config MACH_KZM9G_REFERENCE
+       bool "KZM-A9-GT board - Reference Device Tree Implementation"
+       depends on ARCH_SH73A0
+       select ARCH_REQUIRE_GPIOLIB
+       select REGULATOR_FIXED_VOLTAGE if REGULATOR
+       select SND_SOC_AK4642 if SND_SIMPLE_CARD
+       select USE_OF
+       ---help---
+          Use reference implementation of KZM-A9-GT board support
+          which makes as greater use of device tree at the expense
+          of not supporting a number of devices.
+
+          This is intended to aid developers
+
 comment "SH-Mobile System Configuration"
 
 config CPU_HAS_INTEVT
index b646ff4d742ab103100f1d7e43ed45fcd476dbac..c621edfa6ead2de9c2e890ac47057d63d210b107 100644 (file)
@@ -38,9 +38,11 @@ obj-$(CONFIG_MACH_MACKEREL)  += board-mackerel.o
 obj-$(CONFIG_MACH_KOTA2)       += board-kota2.o
 obj-$(CONFIG_MACH_BONITO)      += board-bonito.o
 obj-$(CONFIG_MACH_MARZEN)      += board-marzen.o
+obj-$(CONFIG_MACH_MARZEN_REFERENCE)    += board-marzen-reference.o
 obj-$(CONFIG_MACH_ARMADILLO800EVA)     += board-armadillo800eva.o
 obj-$(CONFIG_MACH_KZM9D)       += board-kzm9d.o
 obj-$(CONFIG_MACH_KZM9G)       += board-kzm9g.o
+obj-$(CONFIG_MACH_KZM9G_REFERENCE)     += board-kzm9g-reference.o
 
 # Framework support
 obj-$(CONFIG_SMP)              += $(smp-y)
index 80d5c2f5c09ca3360ccae4a1bfc6d52ddc82bc03..4dfe32262eb7a118f243567ca688ac27ebffcfd9 100644 (file)
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
 #include <linux/gpio_keys.h>
+#include <linux/regulator/driver.h>
 #include <linux/pinctrl/machine.h>
 #include <linux/regulator/fixed.h>
+#include <linux/regulator/gpio-regulator.h>
 #include <linux/regulator/machine.h>
 #include <linux/sh_eth.h>
 #include <linux/videodev2.h>
@@ -560,15 +562,119 @@ static struct platform_device gpio_keys_device = {
        },
 };
 
-/* Fixed 3.3V regulator to be used by SDHI0, SDHI1, MMCIF */
-static struct regulator_consumer_supply fixed3v3_power_consumers[] =
-{
+/* Fixed 3.3V regulator to be used by SDHI1, MMCIF */
+static struct regulator_consumer_supply fixed3v3_power_consumers[] = {
+       REGULATOR_SUPPLY("vmmc", "sh_mmcif"),
+       REGULATOR_SUPPLY("vqmmc", "sh_mmcif"),
+};
+
+/* Fixed 3.3V regulator to be used by SDHI0 */
+static struct regulator_consumer_supply vcc_sdhi0_consumers[] = {
        REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
+};
+
+static struct regulator_init_data vcc_sdhi0_init_data = {
+       .constraints = {
+               .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(vcc_sdhi0_consumers),
+       .consumer_supplies      = vcc_sdhi0_consumers,
+};
+
+static struct fixed_voltage_config vcc_sdhi0_info = {
+       .supply_name = "SDHI0 Vcc",
+       .microvolts = 3300000,
+       .gpio = GPIO_PORT75,
+       .enable_high = 1,
+       .init_data = &vcc_sdhi0_init_data,
+};
+
+static struct platform_device vcc_sdhi0 = {
+       .name = "reg-fixed-voltage",
+       .id   = 1,
+       .dev  = {
+               .platform_data = &vcc_sdhi0_info,
+       },
+};
+
+/* 1.8 / 3.3V SDHI0 VccQ regulator */
+static struct regulator_consumer_supply vccq_sdhi0_consumers[] = {
        REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
+};
+
+static struct regulator_init_data vccq_sdhi0_init_data = {
+       .constraints = {
+               .input_uV       = 3300000,
+               .min_uV         = 1800000,
+               .max_uV         = 3300000,
+               .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+                                 REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(vccq_sdhi0_consumers),
+       .consumer_supplies      = vccq_sdhi0_consumers,
+};
+
+static struct gpio vccq_sdhi0_gpios[] = {
+       {GPIO_PORT17, GPIOF_OUT_INIT_LOW, "vccq-sdhi0" },
+};
+
+static struct gpio_regulator_state vccq_sdhi0_states[] = {
+       { .value = 3300000, .gpios = (0 << 0) },
+       { .value = 1800000, .gpios = (1 << 0) },
+};
+
+static struct gpio_regulator_config vccq_sdhi0_info = {
+       .supply_name = "vqmmc",
+
+       .enable_gpio = GPIO_PORT74,
+       .enable_high = 1,
+       .enabled_at_boot = 0,
+
+       .gpios = vccq_sdhi0_gpios,
+       .nr_gpios = ARRAY_SIZE(vccq_sdhi0_gpios),
+
+       .states = vccq_sdhi0_states,
+       .nr_states = ARRAY_SIZE(vccq_sdhi0_states),
+
+       .type = REGULATOR_VOLTAGE,
+       .init_data = &vccq_sdhi0_init_data,
+};
+
+static struct platform_device vccq_sdhi0 = {
+       .name = "gpio-regulator",
+       .id   = -1,
+       .dev  = {
+               .platform_data = &vccq_sdhi0_info,
+       },
+};
+
+/* Fixed 3.3V regulator to be used by SDHI1 */
+static struct regulator_consumer_supply vcc_sdhi1_consumers[] = {
        REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
-       REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
-       REGULATOR_SUPPLY("vmmc", "sh_mmcif"),
-       REGULATOR_SUPPLY("vqmmc", "sh_mmcif"),
+};
+
+static struct regulator_init_data vcc_sdhi1_init_data = {
+       .constraints = {
+               .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(vcc_sdhi1_consumers),
+       .consumer_supplies      = vcc_sdhi1_consumers,
+};
+
+static struct fixed_voltage_config vcc_sdhi1_info = {
+       .supply_name = "SDHI1 Vcc",
+       .microvolts = 3300000,
+       .gpio = GPIO_PORT16,
+       .enable_high = 1,
+       .init_data = &vcc_sdhi1_init_data,
+};
+
+static struct platform_device vcc_sdhi1 = {
+       .name = "reg-fixed-voltage",
+       .id   = 2,
+       .dev  = {
+               .platform_data = &vcc_sdhi1_info,
+       },
 };
 
 /* SDHI0 */
@@ -584,10 +690,10 @@ static struct regulator_consumer_supply fixed3v3_power_consumers[] =
 static struct sh_mobile_sdhi_info sdhi0_info = {
        .dma_slave_tx   = SHDMA_SLAVE_SDHI0_TX,
        .dma_slave_rx   = SHDMA_SLAVE_SDHI0_RX,
-       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |\
-                         MMC_CAP_NEEDS_POLL,
-       .tmio_ocr_mask  = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
-       .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
+       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+                         MMC_CAP_POWER_OFF_CARD,
+       .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
+       .cd_gpio        = GPIO_PORT167,
 };
 
 static struct resource sdhi0_resources[] = {
@@ -626,9 +732,11 @@ static struct platform_device sdhi0_device = {
 static struct sh_mobile_sdhi_info sdhi1_info = {
        .dma_slave_tx   = SHDMA_SLAVE_SDHI1_TX,
        .dma_slave_rx   = SHDMA_SLAVE_SDHI1_RX,
-       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
-       .tmio_ocr_mask  = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
-       .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
+       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+                         MMC_CAP_POWER_OFF_CARD,
+       .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
+       /* Port72 cannot generate IRQs, will be used in polling mode. */
+       .cd_gpio        = GPIO_PORT72,
 };
 
 static struct resource sdhi1_resources[] = {
@@ -676,7 +784,6 @@ static const struct pinctrl_map eva_sdhi1_pinctrl_map[] = {
 /* MMCIF */
 static struct sh_mmcif_plat_data sh_mmcif_plat = {
        .sup_pclk       = 0,
-       .ocr            = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
        .caps           = MMC_CAP_4_BIT_DATA |
                          MMC_CAP_8_BIT_DATA |
                          MMC_CAP_NONREMOVABLE,
@@ -924,6 +1031,8 @@ static struct platform_device *eva_devices[] __initdata = {
        &lcdc0_device,
        &gpio_keys_device,
        &sh_eth_device,
+       &vcc_sdhi0,
+       &vccq_sdhi0,
        &sdhi0_device,
        &sh_mmcif_device,
        &hdmi_device,
@@ -1067,13 +1176,6 @@ static void __init eva_init(void)
                usb = &usbhsf_device;
        }
 
-       /* SDHI0 */
-       gpio_request_one(17, GPIOF_OUT_INIT_LOW, NULL);  /* SDHI0_18/33_B */
-       gpio_request_one(74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
-       gpio_request_one(75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
-
-       /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
-
        /* CEU0 */
        gpio_request(GPIO_FN_VIO0_D7,           NULL);
        gpio_request(GPIO_FN_VIO0_D6,           NULL);
@@ -1134,9 +1236,7 @@ static void __init eva_init(void)
                pinctrl_register_mappings(eva_sdhi1_pinctrl_map,
                                          ARRAY_SIZE(eva_sdhi1_pinctrl_map));
 
-               /* SDSLOT2_PON */
-               gpio_request_one(16, GPIOF_OUT_INIT_HIGH, NULL);
-
+               platform_device_register(&vcc_sdhi1);
                platform_device_register(&sdhi1_device);
        }
 
diff --git a/arch/arm/mach-shmobile/board-kzm9g-reference.c b/arch/arm/mach-shmobile/board-kzm9g-reference.c
new file mode 100644 (file)
index 0000000..aefa50d
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * KZM-A9-GT board support - Reference Device Tree Implementation
+ *
+ * Copyright (C) 2012  Horms Solutions Ltd.
+ *
+ * Based on board-kzm9g.c
+ * Copyright (C) 2012  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <linux/delay.h>
+#include <linux/gpio.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/irqchip.h>
+#include <linux/input.h>
+#include <linux/of_platform.h>
+#include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinconf-generic.h>
+#include <mach/sh73a0.h>
+#include <mach/common.h>
+#include <asm/hardware/cache-l2x0.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+
+static unsigned long pin_pullup_conf[] = {
+       PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
+};
+
+static const struct pinctrl_map kzm_pinctrl_map[] = {
+       PIN_MAP_MUX_GROUP_DEFAULT("e6826000.i2c", "pfc-sh73a0",
+                                 "i2c3_1", "i2c3"),
+       /* MMCIF */
+       PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
+                                 "mmc0_data8_0", "mmc0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
+                                 "mmc0_ctrl_0", "mmc0"),
+       PIN_MAP_CONFIGS_PIN_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
+                                   "PORT279", pin_pullup_conf),
+       PIN_MAP_CONFIGS_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
+                                     "mmc0_data8_0", pin_pullup_conf),
+       /* SCIFA4 */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
+                                 "scifa4_data", "scifa4"),
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
+                                 "scifa4_ctrl", "scifa4"),
+       /* SDHI0 */
+       PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
+                                 "sdhi0_data4", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
+                                 "sdhi0_ctrl", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
+                                 "sdhi0_cd", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
+                                 "sdhi0_wp", "sdhi0"),
+       /* SDHI2 */
+       PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
+                                 "sdhi2_data4", "sdhi2"),
+       PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
+                                 "sdhi2_ctrl", "sdhi2"),
+};
+
+static void __init kzm_init(void)
+{
+       sh73a0_add_standard_devices_dt();
+       pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
+       sh73a0_pinmux_init();
+
+       /* enable SD */
+       gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
+       gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
+
+       gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
+
+#ifdef CONFIG_CACHE_L2X0
+       /* Early BRESP enable, Shared attribute override enable, 64K*8way */
+       l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
+#endif
+}
+
+static const char *kzm9g_boards_compat_dt[] __initdata = {
+       "renesas,kzm9g-reference",
+       NULL,
+};
+
+DT_MACHINE_START(KZM9G_DT, "kzm9g-reference")
+       .smp            = smp_ops(sh73a0_smp_ops),
+       .map_io         = sh73a0_map_io,
+       .init_early     = sh73a0_init_delay,
+       .nr_irqs        = NR_IRQS_LEGACY,
+       .init_irq       = irqchip_init,
+       .init_machine   = kzm_init,
+       .init_time      = shmobile_timer_init,
+       .dt_compat      = kzm9g_boards_compat_dt,
+MACHINE_END
index 42e51645ee54467054b3e7f1280eca4a04289b13..e6b775a10aad8fc0f51951a551c1cd5da13fad55 100644 (file)
@@ -63,8 +63,8 @@
 
 /* Dummy supplies, where voltage doesn't matter */
 static struct regulator_consumer_supply dummy_supplies[] = {
-       REGULATOR_SUPPLY("vddvario", "smsc911x"),
-       REGULATOR_SUPPLY("vdd33a", "smsc911x"),
+       REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
+       REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
 };
 
 /*
@@ -379,13 +379,64 @@ static struct platform_device mmc_device = {
        .resource       = sh_mmcif_resources,
 };
 
-/* Fixed 2.8V regulators to be used by SDHI0 and SDHI2 */
-static struct regulator_consumer_supply fixed2v8_power_consumers[] =
+/* Fixed 3.3V regulators to be used by SDHI0 */
+static struct regulator_consumer_supply vcc_sdhi0_consumers[] =
 {
        REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
-       REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
+};
+
+static struct regulator_init_data vcc_sdhi0_init_data = {
+       .constraints = {
+               .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(vcc_sdhi0_consumers),
+       .consumer_supplies      = vcc_sdhi0_consumers,
+};
+
+static struct fixed_voltage_config vcc_sdhi0_info = {
+       .supply_name = "SDHI0 Vcc",
+       .microvolts = 3300000,
+       .gpio = 15,
+       .enable_high = 1,
+       .init_data = &vcc_sdhi0_init_data,
+};
+
+static struct platform_device vcc_sdhi0 = {
+       .name = "reg-fixed-voltage",
+       .id   = 0,
+       .dev  = {
+               .platform_data = &vcc_sdhi0_info,
+       },
+};
+
+/* Fixed 3.3V regulators to be used by SDHI2 */
+static struct regulator_consumer_supply vcc_sdhi2_consumers[] =
+{
        REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"),
-       REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.2"),
+};
+
+static struct regulator_init_data vcc_sdhi2_init_data = {
+       .constraints = {
+               .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(vcc_sdhi2_consumers),
+       .consumer_supplies      = vcc_sdhi2_consumers,
+};
+
+static struct fixed_voltage_config vcc_sdhi2_info = {
+       .supply_name = "SDHI2 Vcc",
+       .microvolts = 3300000,
+       .gpio = 14,
+       .enable_high = 1,
+       .init_data = &vcc_sdhi2_init_data,
+};
+
+static struct platform_device vcc_sdhi2 = {
+       .name = "reg-fixed-voltage",
+       .id   = 1,
+       .dev  = {
+               .platform_data = &vcc_sdhi2_info,
+       },
 };
 
 /* SDHI */
@@ -393,8 +444,8 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
        .dma_slave_tx   = SHDMA_SLAVE_SDHI0_TX,
        .dma_slave_rx   = SHDMA_SLAVE_SDHI0_RX,
        .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
-       .tmio_caps      = MMC_CAP_SD_HIGHSPEED,
-       .tmio_ocr_mask  = MMC_VDD_27_28 | MMC_VDD_28_29,
+       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+                         MMC_CAP_POWER_OFF_CARD,
 };
 
 static struct resource sdhi0_resources[] = {
@@ -437,8 +488,7 @@ static struct sh_mobile_sdhi_info sdhi2_info = {
        .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT |
                          TMIO_MMC_USE_GPIO_CD |
                          TMIO_MMC_WRPROTECT_DISABLE,
-       .tmio_caps      = MMC_CAP_SD_HIGHSPEED,
-       .tmio_ocr_mask  = MMC_VDD_27_28 | MMC_VDD_28_29,
+       .tmio_caps      = MMC_CAP_SD_HIGHSPEED | MMC_CAP_POWER_OFF_CARD,
        .cd_gpio        = 13,
 };
 
@@ -598,6 +648,8 @@ static struct platform_device *kzm_devices[] __initdata = {
        &usbhs_device,
        &lcdc_device,
        &mmc_device,
+       &vcc_sdhi0,
+       &vcc_sdhi2,
        &sdhi0_device,
        &sdhi2_device,
        &gpio_keys_device,
@@ -718,11 +770,9 @@ device_initcall(as3711_enable_lcdc_backlight);
 
 static void __init kzm_init(void)
 {
-       regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers,
+       regulator_register_always_on(2, "fixed-1.8V", fixed1v8_power_consumers,
                                     ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
-       regulator_register_always_on(1, "fixed-2.8V", fixed2v8_power_consumers,
-                                    ARRAY_SIZE(fixed2v8_power_consumers), 2800000);
-       regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));
+       regulator_register_fixed(3, dummy_supplies, ARRAY_SIZE(dummy_supplies));
 
        pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
 
@@ -740,10 +790,6 @@ static void __init kzm_init(void)
 
        /* enable SD */
        gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
-       gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
-
-       /* enable Micro SD */
-       gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
 
 #ifdef CONFIG_CACHE_L2X0
        /* Early BRESP enable, Shared attribute override enable, 64K*8way */
index 5bc1a7add2f50283fda066be8715093016443756..2b60f2bf1fbb4d2a9b13150cfe18a3b27aad9428 100644 (file)
@@ -1149,7 +1149,7 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
        .slave_id_rx    = SHDMA_SLAVE_MMCIF_RX,
 };
 
-static struct platform_device sh_mmcif_device = {
+static struct platform_device sh_mmcif_device __maybe_unused = {
        .name           = "sh_mmcif",
        .id             = 0,
        .dev            = {
diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c
new file mode 100644 (file)
index 0000000..480d882
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * marzen board support - Reference DT implementation
+ *
+ * Copyright (C) 2011  Renesas Solutions Corp.
+ * Copyright (C) 2011  Magnus Damm
+ * Copyright (C) 2013  Simon Horman
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <linux/pinctrl/machine.h>
+#include <mach/r8a7779.h>
+#include <mach/common.h>
+#include <mach/irqs.h>
+#include <asm/irq.h>
+#include <asm/mach/arch.h>
+
+static const struct pinctrl_map marzen_pinctrl_map[] = {
+       /* SCIF2 (CN18: DEBUG0) */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-r8a7779",
+                                 "scif2_data_c", "scif2"),
+       /* SCIF4 (CN19: DEBUG1) */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-r8a7779",
+                                 "scif4_data", "scif4"),
+       /* SDHI0 */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
+                                 "sdhi0_data4", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
+                                 "sdhi0_ctrl", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
+                                 "sdhi0_cd", "sdhi0"),
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
+                                 "sdhi0_wp", "sdhi0"),
+       /* SMSC */
+       PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
+                                 "intc_irq1_b", "intc"),
+       PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
+                                 "lbsc_ex_cs0", "lbsc"),
+};
+
+static void __init marzen_init(void)
+{
+       pinctrl_register_mappings(marzen_pinctrl_map,
+                                 ARRAY_SIZE(marzen_pinctrl_map));
+       r8a7779_pinmux_init();
+
+       r8a7779_add_standard_devices_dt();
+}
+
+static const char *marzen_boards_compat_dt[] __initdata = {
+       "renesas,marzen-reference",
+       NULL,
+};
+
+DT_MACHINE_START(MARZEN, "marzen")
+       .smp            = smp_ops(r8a7779_smp_ops),
+       .map_io         = r8a7779_map_io,
+       .init_early     = r8a7779_init_delay,
+       .nr_irqs        = NR_IRQS_LEGACY,
+       .init_irq       = r8a7779_init_irq_dt,
+       .init_machine   = marzen_init,
+       .init_time      = shmobile_timer_init,
+       .dt_compat      = marzen_boards_compat_dt,
+MACHINE_END
index 5852331743e70053efb16c8670081aaf172e2194..2333a2d7c937099549cc14cafd3dcc6b2719d6f0 100644 (file)
@@ -67,7 +67,7 @@ static struct resource smsc911x_resources[] = {
                .flags          = IORESOURCE_MEM,
        },
        [1] = {
-               .start          = gic_spi(28), /* IRQ 1 */
+               .start          = gic_iid(0x3c), /* IRQ 1 */
                .flags          = IORESOURCE_IRQ,
        },
 };
@@ -97,7 +97,7 @@ static struct resource sdhi0_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = gic_spi(104),
+               .start  = gic_iid(0x88),
                .flags  = IORESOURCE_IRQ,
        },
 };
@@ -215,7 +215,7 @@ static struct resource ehci0_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = gic_spi(44),
+               .start  = gic_iid(0x4c),
                .flags  = IORESOURCE_IRQ,
        },
 };
@@ -239,7 +239,7 @@ static struct resource ehci1_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = gic_spi(45),
+               .start  = gic_iid(0x4d),
                .flags  = IORESOURCE_IRQ,
        },
 };
@@ -269,7 +269,7 @@ static struct resource ohci0_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = gic_spi(44),
+               .start  = gic_iid(0x4c),
                .flags  = IORESOURCE_IRQ,
        },
 };
@@ -293,7 +293,7 @@ static struct resource ohci1_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = gic_spi(45),
+               .start  = gic_iid(0x4d),
                .flags  = IORESOURCE_IRQ,
        },
 };
index ade435820c7ea9086f989375b151457c4889f580..d1f1a19d4351e8e9d2fb5fe580d46babf39c0487 100644 (file)
@@ -221,7 +221,7 @@ void __init mmp2_clk_init(void)
 
        clk = mmp_clk_register_apbc("gpio", "vctcxo",
                                apbc_base + APBC_GPIO, 10, 0, &clk_lock);
-       clk_register_clkdev(clk, NULL, "pxa-gpio");
+       clk_register_clkdev(clk, NULL, "mmp2-gpio");
 
        clk = mmp_clk_register_apbc("kpc", "clk32",
                                apbc_base + APBC_KPC, 10, 0, &clk_lock);
index e8d036c12cbf0d17effc19acf2105c84df76e31f..28b3b51c794b1600aa58df38a3533589f06101e9 100644 (file)
@@ -172,7 +172,7 @@ void __init pxa168_clk_init(void)
 
        clk = mmp_clk_register_apbc("gpio", "vctcxo",
                                apbc_base + APBC_GPIO, 10, 0, &clk_lock);
-       clk_register_clkdev(clk, NULL, "pxa-gpio");
+       clk_register_clkdev(clk, NULL, "mmp-gpio");
 
        clk = mmp_clk_register_apbc("kpc", "clk32",
                                apbc_base + APBC_KPC, 10, 0, &clk_lock);
index 7048c31d6e7e9969b8efe4ebc9f74953484f1d8f..6ec05698ed38cf9ff651ad0159f533d2ebad8711 100644 (file)
@@ -177,7 +177,7 @@ void __init pxa910_clk_init(void)
 
        clk = mmp_clk_register_apbc("gpio", "vctcxo",
                                apbc_base + APBC_GPIO, 10, 0, &clk_lock);
-       clk_register_clkdev(clk, NULL, "pxa-gpio");
+       clk_register_clkdev(clk, NULL, "mmp-gpio");
 
        clk = mmp_clk_register_apbc("kpc", "clk32",
                                apbc_base + APBC_KPC, 10, 0, &clk_lock);
index 2d3af981641e0ac9c0056bbbd8d77c034c556cf0..d7a5c9d755252218035017f2290ac19d5cff97ee 100644 (file)
@@ -85,20 +85,61 @@ struct pxa_gpio_chip {
 #endif
 };
 
-enum {
+enum pxa_gpio_type {
        PXA25X_GPIO = 0,
        PXA26X_GPIO,
        PXA27X_GPIO,
        PXA3XX_GPIO,
        PXA93X_GPIO,
        MMP_GPIO = 0x10,
+       MMP2_GPIO,
+};
+
+struct pxa_gpio_id {
+       enum pxa_gpio_type      type;
+       int                     gpio_nums;
 };
 
 static DEFINE_SPINLOCK(gpio_lock);
 static struct pxa_gpio_chip *pxa_gpio_chips;
-static int gpio_type;
+static enum pxa_gpio_type gpio_type;
 static void __iomem *gpio_reg_base;
 
+static struct pxa_gpio_id pxa25x_id = {
+       .type           = PXA25X_GPIO,
+       .gpio_nums      = 85,
+};
+
+static struct pxa_gpio_id pxa26x_id = {
+       .type           = PXA26X_GPIO,
+       .gpio_nums      = 90,
+};
+
+static struct pxa_gpio_id pxa27x_id = {
+       .type           = PXA27X_GPIO,
+       .gpio_nums      = 121,
+};
+
+static struct pxa_gpio_id pxa3xx_id = {
+       .type           = PXA3XX_GPIO,
+       .gpio_nums      = 128,
+};
+
+static struct pxa_gpio_id pxa93x_id = {
+       .type           = PXA93X_GPIO,
+       .gpio_nums      = 192,
+};
+
+static struct pxa_gpio_id mmp_id = {
+       .type           = MMP_GPIO,
+       .gpio_nums      = 128,
+};
+
+static struct pxa_gpio_id mmp2_id = {
+       .type           = MMP2_GPIO,
+       .gpio_nums      = 192,
+};
+
 #define for_each_gpio_chip(i, c)                       \
        for (i = 0, c = &pxa_gpio_chips[0]; i <= pxa_last_gpio; i += 32, c++)
 
@@ -431,47 +472,39 @@ static struct irq_chip pxa_muxed_gpio_chip = {
        .irq_set_wake   = pxa_gpio_set_wake,
 };
 
-static int pxa_gpio_nums(void)
+static int pxa_gpio_nums(struct platform_device *pdev)
 {
+       const struct platform_device_id *id = platform_get_device_id(pdev);
+       struct pxa_gpio_id *pxa_id = (struct pxa_gpio_id *)id->driver_data;
        int count = 0;
 
-#ifdef CONFIG_ARCH_PXA
-       if (cpu_is_pxa25x()) {
-#ifdef CONFIG_CPU_PXA26x
-               count = 89;
-               gpio_type = PXA26X_GPIO;
-#elif defined(CONFIG_PXA25x)
-               count = 84;
-               gpio_type = PXA26X_GPIO;
-#endif /* CONFIG_CPU_PXA26x */
-       } else if (cpu_is_pxa27x()) {
-               count = 120;
-               gpio_type = PXA27X_GPIO;
-       } else if (cpu_is_pxa93x()) {
-               count = 191;
-               gpio_type = PXA93X_GPIO;
-       } else if (cpu_is_pxa3xx()) {
-               count = 127;
-               gpio_type = PXA3XX_GPIO;
-       }
-#endif /* CONFIG_ARCH_PXA */
-
-#ifdef CONFIG_ARCH_MMP
-       if (cpu_is_pxa168() || cpu_is_pxa910()) {
-               count = 127;
-               gpio_type = MMP_GPIO;
-       } else if (cpu_is_mmp2()) {
-               count = 191;
-               gpio_type = MMP_GPIO;
+       switch (pxa_id->type) {
+       case PXA25X_GPIO:
+       case PXA26X_GPIO:
+       case PXA27X_GPIO:
+       case PXA3XX_GPIO:
+       case PXA93X_GPIO:
+       case MMP_GPIO:
+       case MMP2_GPIO:
+               gpio_type = pxa_id->type;
+               count = pxa_id->gpio_nums - 1;
+               break;
+       default:
+               count = -EINVAL;
+               break;
        }
-#endif /* CONFIG_ARCH_MMP */
        return count;
 }
 
 #ifdef CONFIG_OF
 static struct of_device_id pxa_gpio_dt_ids[] = {
-       { .compatible = "mrvl,pxa-gpio" },
-       { .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO },
+       { .compatible = "intel,pxa25x-gpio",    .data = &pxa25x_id, },
+       { .compatible = "intel,pxa26x-gpio",    .data = &pxa26x_id, },
+       { .compatible = "intel,pxa27x-gpio",    .data = &pxa27x_id, },
+       { .compatible = "intel,pxa3xx-gpio",    .data = &pxa3xx_id, },
+       { .compatible = "marvell,pxa93x-gpio",  .data = &pxa93x_id, },
+       { .compatible = "marvell,mmp-gpio",     .data = &mmp_id, },
+       { .compatible = "marvell,mmp2-gpio",    .data = &mmp2_id, },
        {}
 };
 
@@ -491,16 +524,18 @@ const struct irq_domain_ops pxa_irq_domain_ops = {
 
 static int pxa_gpio_probe_dt(struct platform_device *pdev)
 {
-       int ret, nr_banks, nr_gpios;
+       int ret, nr_gpios;
        struct device_node *prev, *next, *np = pdev->dev.of_node;
        const struct of_device_id *of_id =
                                of_match_device(pxa_gpio_dt_ids, &pdev->dev);
+       const struct pxa_gpio_id *gpio_id;
 
-       if (!of_id) {
+       if (!of_id || !of_id->data) {
                dev_err(&pdev->dev, "Failed to find gpio controller\n");
                return -EFAULT;
        }
-       gpio_type = (int)of_id->data;
+       gpio_id = of_id->data;
+       gpio_type = gpio_id->type;
 
        next = of_get_next_child(np, NULL);
        prev = next;
@@ -509,14 +544,8 @@ static int pxa_gpio_probe_dt(struct platform_device *pdev)
                ret = -EINVAL;
                goto err;
        }
-       for (nr_banks = 1; ; nr_banks++) {
-               next = of_get_next_child(np, prev);
-               if (!next)
-                       break;
-               prev = next;
-       }
        of_node_put(prev);
-       nr_gpios = nr_banks << 5;
+       nr_gpios = gpio_id->gpio_nums;
        pxa_last_gpio = nr_gpios - 1;
 
        irq_base = irq_alloc_descs(-1, 0, nr_gpios, 0);
@@ -545,19 +574,18 @@ static int pxa_gpio_probe(struct platform_device *pdev)
        int gpio, irq, ret, use_of = 0;
        int irq0 = 0, irq1 = 0, irq_mux, gpio_offset = 0;
 
-       ret = pxa_gpio_probe_dt(pdev);
-       if (ret < 0) {
-               pxa_last_gpio = pxa_gpio_nums();
-#ifdef CONFIG_ARCH_PXA
-               if (gpio_is_pxa_type(gpio_type))
-                       irq_base = PXA_GPIO_TO_IRQ(0);
-#endif
-#ifdef CONFIG_ARCH_MMP
-               if (gpio_is_mmp_type(gpio_type))
-                       irq_base = MMP_GPIO_TO_IRQ(0);
-#endif
+       info = dev_get_platdata(&pdev->dev);
+       if (info) {
+               irq_base = info->irq_base;
+               if (irq_base <= 0)
+                       return -EINVAL;
+               pxa_last_gpio = pxa_gpio_nums(pdev);
        } else {
+               irq_base = 0;
                use_of = 1;
+               ret = pxa_gpio_probe_dt(pdev);
+               if (ret < 0)
+                       return -EINVAL;
        }
 
        if (!pxa_last_gpio)
@@ -594,7 +622,6 @@ static int pxa_gpio_probe(struct platform_device *pdev)
        }
 
        /* Initialize GPIO chips */
-       info = dev_get_platdata(&pdev->dev);
        pxa_init_gpio_chip(pxa_last_gpio, info ? info->gpio_set_wake : NULL);
 
        /* clear all GPIO edge detects */
@@ -634,12 +661,24 @@ static int pxa_gpio_probe(struct platform_device *pdev)
        return 0;
 }
 
+static const struct platform_device_id gpio_id_table[] = {
+       { "pxa25x-gpio",        (unsigned long)&pxa25x_id },
+       { "pxa26x-gpio",        (unsigned long)&pxa26x_id },
+       { "pxa27x-gpio",        (unsigned long)&pxa27x_id },
+       { "pxa3xx-gpio",        (unsigned long)&pxa3xx_id },
+       { "pxa93x-gpio",        (unsigned long)&pxa93x_id },
+       { "mmp-gpio",           (unsigned long)&mmp_id },
+       { "mmp2-gpio",          (unsigned long)&mmp2_id },
+       { },
+};
+
 static struct platform_driver pxa_gpio_driver = {
        .probe          = pxa_gpio_probe,
        .driver         = {
                .name   = "pxa-gpio",
                .of_match_table = of_match_ptr(pxa_gpio_dt_ids),
        },
+       .id_table       = gpio_id_table,
 };
 
 static int __init pxa_gpio_init(void)
index d755b28ba63541cc1f803993573c66aa3870eed5..d90ebbe02ca4b257ff00a7a628f34aaef25ab3be 100644 (file)
@@ -14,6 +14,7 @@ extern int pxa_last_gpio;
 extern int pxa_irq_to_gpio(int irq);
 
 struct pxa_gpio_platform_data {
+       int irq_base;
        int (*gpio_set_wake)(unsigned int gpio, unsigned int on);
 };