]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/commitdiff
Merge tag 'mxs-dt-3.8' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt
authorArnd Bergmann <arnd@arndb.de>
Fri, 16 Nov 2012 16:55:01 +0000 (17:55 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 16 Nov 2012 16:55:01 +0000 (17:55 +0100)
From Shawn Guo <shawn.guo@linaro.org>:
It's mxs device tree changes for 3.8.  The majority is device tree
source updates.  One timer improvement and one defconfig update are
also included there.

* tag 'mxs-dt-3.8' of git://git.linaro.org/people/shawnguo/linux-2.6:
  ARM: mxs_defconfig: Improve USB related support
  ARM: mxs: apf28dev: Add I2C and SPI support
  ARM: mxs: Setup scheduler clock
  ARM: dts: mxs: Add hog pins to Crystalfontz boards
  ARM: dts: cfa10036: Use pinctrl for power led
  ARM: mxs: apf28dev: Add LCD and backlight support
  ARM: mxs: apf28dev: Add pinctrl and gpios
  ARM: dts: mxs: Add 16 bits LCD screen muxing options for I.MX28
  ARM: dts: cfa10049: Add the DH2228FV DAC to the DTS
  ARM: mxs: Add support for the Armadeus Systems APF28Dev docking board
  ARM: mx28: Skip OCOTP FEC MAC setup if in DT
  ARM: dts: mxs: Add PWM3 muxing options for i.MX28
  ARM: mxs: Add support for the Armadeus Systems APF28 module
  ARM: dts: cfa10049: Add FEC to the CFA-10049 expansion board
  ARM: dts: imx23-olinuxino: Use pinctrl for gpio-led
  ARM: dts: imx23-olinuxino: Remove unneeded "default-on"
  ARM: dts: imx28-evk: Use pinctrl for gpio-led

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx23-olinuxino.dts
arch/arm/boot/dts/imx28-apf28.dts [new file with mode: 0644]
arch/arm/boot/dts/imx28-apf28dev.dts [new file with mode: 0644]
arch/arm/boot/dts/imx28-cfa10036.dts
arch/arm/boot/dts/imx28-cfa10049.dts
arch/arm/boot/dts/imx28-evk.dts
arch/arm/boot/dts/imx28.dtsi
arch/arm/configs/mxs_defconfig
arch/arm/mach-mxs/mach-mxs.c
arch/arm/mach-mxs/timer.c

index 23b178389eb797185d79300def7e435d9f904e51..1f23acfe5cbc8e141d9a80cedee2c7e14f07f350 100644 (file)
@@ -56,6 +56,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \
 dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx23-olinuxino.dtb \
        imx23-stmp378x_devb.dtb \
+       imx28-apf28.dtb \
+       imx28-apf28dev.dtb \
        imx28-apx4devkit.dtb \
        imx28-cfa10036.dtb \
        imx28-cfa10049.dtb \
index 384d8b66f337e1ceec0388a9e49e6eeae5ffadce..8bd56fc7e194d0059578816efcc201807888cca7 100644 (file)
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                                                0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               led_pin_gpio0_17: led_gpio0_17@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
                                                0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */
                                        >;
                                        fsl,drive-strength = <0>;
 
        leds {
                compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_gpio0_17>;
 
                user {
                        label = "green";
-                       gpios = <&gpio2 1 0>;
-                       linux,default-trigger = "default-on";
+                       gpios = <&gpio2 1 1>;
                };
        };
 };
diff --git a/arch/arm/boot/dts/imx28-apf28.dts b/arch/arm/boot/dts/imx28-apf28.dts
new file mode 100644 (file)
index 0000000..7eb0758
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2012 Armadeus Systems - <support@armadeus.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx28.dtsi"
+
+/ {
+       model = "Armadeus Systems APF28 module";
+       compatible = "armadeus,imx28-apf28", "fsl,imx28";
+
+       memory {
+               reg = <0x40000000 0x08000000>;
+       };
+
+       apb@80000000 {
+               apbh@80000000 {
+                       gpmi-nand@8000c000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+                               status = "okay";
+
+                               partition@0 {
+                                       label = "u-boot";
+                                       reg = <0x0 0x300000>;
+                               };
+
+                               partition@300000 {
+                                       label = "env";
+                                       reg = <0x300000 0x80000>;
+                               };
+
+                               partition@380000 {
+                                       label = "env2";
+                                       reg = <0x380000 0x80000>;
+                               };
+
+                               partition@400000 {
+                                       label = "dtb";
+                                       reg = <0x400000 0x80000>;
+                               };
+
+                               partition@480000 {
+                                       label = "splash";
+                                       reg = <0x480000 0x80000>;
+                               };
+
+                               partition@500000 {
+                                       label = "kernel";
+                                       reg = <0x500000 0x800000>;
+                               };
+
+                               partition@d00000 {
+                                       label = "rootfs";
+                                       reg = <0xd00000 0xf300000>;
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       duart: serial@80074000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&duart_pins_a>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               mac0: ethernet@800f0000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac0_pins_a>;
+                       phy-reset-gpios = <&gpio4 13 0>;
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts
new file mode 100644 (file)
index 0000000..6d8865b
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2012 Armadeus Systems - <support@armadeus.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/* APF28Dev is a docking board for the APF28 SOM */
+/include/ "imx28-apf28.dts"
+
+/ {
+       model = "Armadeus Systems APF28Dev docking/development board";
+       compatible = "armadeus,imx28-apf28dev", "armadeus,imx28-apf28", "fsl,imx28";
+
+       apb@80000000 {
+               apbh@80000000 {
+                       ssp0: ssp@80010000 {
+                               compatible = "fsl,imx28-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc0_4bit_pins_a
+                                       &mmc0_cd_cfg &mmc0_sck_cfg>;
+                               bus-width = <4>;
+                               status = "okay";
+                       };
+
+                       ssp2: ssp@80014000 {
+                               compatible = "fsl,imx28-spi";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&spi2_pins_a>;
+                               status = "okay";
+                       };
+
+                       pinctrl@80018000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hog_pins_apf28dev>;
+
+                               hog_pins_apf28dev: hog@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1103 /* MX28_PAD_LCD_D16__GPIO_1_16 */
+                                               0x1113 /* MX28_PAD_LCD_D17__GPIO_1_17 */
+                                               0x1123 /* MX28_PAD_LCD_D18__GPIO_1_18 */
+                                               0x1133 /* MX28_PAD_LCD_D19__GPIO_1_19 */
+                                               0x1143 /* MX28_PAD_LCD_D20__GPIO_1_20 */
+                                               0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */
+                                               0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               lcdif_pins_apf28dev: lcdif-apf28dev@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
+                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
+                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
+                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+                       };
+
+                       lcdif@80030000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lcdif_16bit_pins_a
+                                               &lcdif_pins_apf28dev>;
+                               status = "okay";
+                       };
+               };
+
+               apbx@80040000 {
+                       lradc@80050000 {
+                               status = "okay";
+                       };
+
+                       i2c0: i2c@80058000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&i2c0_pins_a>;
+                               status = "okay";
+                       };
+
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm3_pins_a &pwm4_pins_a>;
+                               status = "okay";
+                       };
+
+                       usbphy0: usbphy@8007c000 {
+                               status = "okay";
+                       };
+
+                       usbphy1: usbphy@8007e000 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb0: usb@80080000 {
+                       vbus-supply = <&reg_usb0_vbus>;
+                       status = "okay";
+               };
+
+               usb1: usb@80090000 {
+                       status = "okay";
+               };
+
+               mac1: ethernet@800f4000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac1_pins_a>;
+                       phy-reset-gpios = <&gpio0 23 0>;
+                       status = "okay";
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_usb0_vbus: usb0_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb0_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio1 23 1>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               user {
+                       label = "Heartbeat";
+                       gpios = <&gpio0 21 0>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+
+               pwms = <&pwm 3 191000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+};
index c03a577beca3845af06b4613abcdafa785555d5a..794fc9f8ec3ccdff2c9ccebf8504c2c6330bcbcf 100644 (file)
 
        apb@80000000 {
                apbh@80000000 {
+                       pinctrl@80018000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hog_pins_cfa10036>;
+
+                               hog_pins_cfa10036: hog-10036@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x2073 /* MX28_PAD_SSP0_D7__GPIO_2_7 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               led_pins_cfa10036: leds-10036@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+                       };
+
                        ssp0: ssp@80010000 {
                                compatible = "fsl,imx28-mmc";
                                pinctrl-names = "default";
@@ -43,6 +68,8 @@
 
        leds {
                compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_cfa10036>;
 
                power {
                        gpios = <&gpio3 4 1>;
index 05c892e931e31521b462f2b0075bc20b00d4511e..b222614ac9e0d3ac2dac19b330f23bed7db02380 100644 (file)
        apb@80000000 {
                apbh@80000000 {
                        pinctrl@80018000 {
+                               pinctrl-names = "default", "default";
+                               pinctrl-1 = <&hog_pins_cfa10049>;
+
+                               hog_pins_cfa10049: hog-10049@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
+                                               0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */
+                                               0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                spi3_pins_cfa10049: spi3-cfa10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
@@ -29,6 +45,7 @@
                                                0x01c1 /* MX28_PAD_GPMI_RESETN__SSP3_CMD */
                                                0x0111 /* MX28_PAD_GPMI_CE1N__SSP3_D3 */
                                                0x01a2 /* MX28_PAD_GPMI_ALE__SSP3_D4 */
+                                               0x01b2 /* MX28_PAD_GPMI_CLE__SSP3_D5 */
                                        >;
                                        fsl,drive-strength = <1>;
                                        fsl,voltage = <1>;
                                        spi-max-frequency = <100000>;
                                };
 
+                               dac0: dh2228@2 {
+                                       compatible = "rohm,dh2228fv";
+                                       reg = <2>;
+                                       spi-max-frequency = <100000>;
+                               };
                        };
                };
 
                        gpio = <&gpio0 7 1>;
                };
        };
+
+       ahb@80080000 {
+               mac0: ethernet@800f0000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac0_pins_a>;
+                       phy-reset-gpios = <&gpio2 21 0>;
+                       phy-reset-duration = <100>;
+                       status = "okay";
+               };
+       };
 };
index a0ad71ca3a4402a40c39d5a2d2050208cf9d6089..2da316e04409f103c44fcf4ff35fe5dc48a93924 100644 (file)
@@ -76,7 +76,6 @@
                                                0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */
                                                0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
                                                0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
-                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
                                                0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */
                                                0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */
                                        >;
                                        fsl,pull-up = <0>;
                                };
 
+                               led_pin_gpio3_5: led_gpio3_5@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                gpmi_pins_evk: gpmi-nand-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
 
        leds {
                compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_gpio3_5>;
 
                user {
                        label = "Heartbeat";
index 55c57ea6169e02ec9dc81bb8e38407c608678bbd..d7013f73f2e96d1adf8d123c41bc34cdf72937db 100644 (file)
                                        fsl,pull-up = <0>;
                                };
 
+                               pwm3_pins_a: pwm3@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x31c0 /* MX28_PAD_PWM3__PWM_3 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                pwm4_pins_a: pwm4@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                                        fsl,pull-up = <0>;
                                };
 
+                               lcdif_16bit_pins_a: lcdif-16bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
+                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
+                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
+                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
+                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
+                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
+                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
+                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
+                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
+                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
+                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
+                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
+                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
+                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
+                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
+                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                can0_pins_a: can0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
index 048aaca60814c99d2143edee134d128ba9264a08..7bf535104e268dafb0bfb7671e2b428266103e29 100644 (file)
@@ -61,6 +61,8 @@ CONFIG_MTD_NAND_GPMI_NAND=y
 CONFIG_NETDEVICES=y
 CONFIG_NET_ETHERNET=y
 CONFIG_ENC28J60=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_SMSC95XX=y
 # CONFIG_NETDEV_1000 is not set
 # CONFIG_NETDEV_10000 is not set
 # CONFIG_WLAN is not set
@@ -158,6 +160,10 @@ CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=y
 CONFIG_PRINTK_TIME=y
 CONFIG_FRAME_WARN=2048
 CONFIG_MAGIC_SYSRQ=y
index 4748ec551a6818f6f2eb55f520729c3ba17cc48e..67ef35506093cae4e8486b4f596cb1da8ec0a062 100644 (file)
@@ -100,6 +100,25 @@ static struct fb_videomode apx4devkit_video_modes[] = {
        },
 };
 
+static struct fb_videomode apf28dev_video_modes[] = {
+       {
+               .name = "LW700",
+               .refresh = 60,
+               .xres = 800,
+               .yres = 480,
+               .pixclock = 30303, /* picosecond */
+               .left_margin = 96,
+               .right_margin = 96, /* at least 3 & 1 */
+               .upper_margin = 0x14,
+               .lower_margin = 0x15,
+               .hsync_len = 64,
+               .vsync_len = 4,
+               .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT |
+                               FB_SYNC_DATA_ENABLE_HIGH_ACT |
+                               FB_SYNC_DOTCLK_FAILING_ACT,
+       },
+};
+
 static struct mxsfb_platform_data mxsfb_pdata __initdata;
 
 /*
@@ -160,6 +179,7 @@ static struct sys_timer imx28_timer = {
 enum mac_oui {
        OUI_FSL,
        OUI_DENX,
+       OUI_CRYSTALFONTZ,
 };
 
 static void __init update_fec_mac_prop(enum mac_oui oui)
@@ -175,8 +195,12 @@ static void __init update_fec_mac_prop(enum mac_oui oui)
                np = of_find_compatible_node(from, NULL, "fsl,imx28-fec");
                if (!np)
                        return;
+
                from = np;
 
+               if (of_get_property(np, "local-mac-address", NULL))
+                       continue;
+
                newmac = kzalloc(sizeof(*newmac) + 6, GFP_KERNEL);
                if (!newmac)
                        return;
@@ -205,6 +229,11 @@ static void __init update_fec_mac_prop(enum mac_oui oui)
                        macaddr[1] = 0xe5;
                        macaddr[2] = 0x4e;
                        break;
+               case OUI_CRYSTALFONTZ:
+                       macaddr[0] = 0x58;
+                       macaddr[1] = 0xb9;
+                       macaddr[2] = 0xe1;
+                       break;
                }
                val = ocotp[i];
                macaddr[3] = (val >> 16) & 0xff;
@@ -355,6 +384,22 @@ static void __init tx28_post_init(void)
        pinctrl_put(pctl);
 }
 
+static void __init cfa10049_init(void)
+{
+       enable_clk_enet_out();
+       update_fec_mac_prop(OUI_CRYSTALFONTZ);
+}
+
+static void __init apf28_init(void)
+{
+       enable_clk_enet_out();
+
+       mxsfb_pdata.mode_list = apf28dev_video_modes;
+       mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes);
+       mxsfb_pdata.default_bpp = 16;
+       mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT;
+}
+
 static void __init mxs_machine_init(void)
 {
        if (of_machine_is_compatible("fsl,imx28-evk"))
@@ -365,6 +410,10 @@ static void __init mxs_machine_init(void)
                m28evk_init();
        else if (of_machine_is_compatible("bluegiga,apx4devkit"))
                apx4devkit_init();
+       else if (of_machine_is_compatible("crystalfontz,cfa10049"))
+               cfa10049_init();
+       else if (of_machine_is_compatible("armadeus,imx28-apf28"))
+               apf28_init();
 
        of_platform_populate(NULL, of_default_bus_match_table,
                             mxs_auxdata_lookup, NULL);
index 7c3792613392ddc7a4936a5f44388c5a23c4dd58..856f4c7960618dad52fac637bf17ad21792b6acd 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/of_irq.h>
 
 #include <asm/mach/time.h>
+#include <asm/sched_clock.h>
 #include <mach/mxs.h>
 #include <mach/common.h>
 
@@ -233,15 +234,22 @@ static struct clocksource clocksource_mxs = {
        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
+static u32 notrace mxs_read_sched_clock_v2(void)
+{
+       return ~readl_relaxed(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1));
+}
+
 static int __init mxs_clocksource_init(struct clk *timer_clk)
 {
        unsigned int c = clk_get_rate(timer_clk);
 
        if (timrot_is_v1())
                clocksource_register_hz(&clocksource_mxs, c);
-       else
+       else {
                clocksource_mmio_init(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1),
                        "mxs_timer", c, 200, 32, clocksource_mmio_readl_down);
+               setup_sched_clock(mxs_read_sched_clock_v2, 32, c);
+       }
 
        return 0;
 }