diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx23-olinuxino.dts | 14 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28-apf28.dts | 85 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28-apf28dev.dts | 154 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28-cfa10036.dts | 27 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28-cfa10049.dts | 33 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28-evk.dts | 13 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx28.dtsi | 35 | ||||
-rw-r--r-- | arch/arm/configs/mxs_defconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-mxs.c | 49 | ||||
-rw-r--r-- | arch/arm/mach-mxs/timer.c | 10 |
11 files changed, 424 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 23b178389eb7..1f23acfe5cbc 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -56,6 +56,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \ | |||
56 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | 56 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ |
57 | imx23-olinuxino.dtb \ | 57 | imx23-olinuxino.dtb \ |
58 | imx23-stmp378x_devb.dtb \ | 58 | imx23-stmp378x_devb.dtb \ |
59 | imx28-apf28.dtb \ | ||
60 | imx28-apf28dev.dtb \ | ||
59 | imx28-apx4devkit.dtb \ | 61 | imx28-apx4devkit.dtb \ |
60 | imx28-cfa10036.dtb \ | 62 | imx28-cfa10036.dtb \ |
61 | imx28-cfa10049.dtb \ | 63 | imx28-cfa10049.dtb \ |
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts index 384d8b66f337..8bd56fc7e194 100644 --- a/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/arch/arm/boot/dts/imx23-olinuxino.dts | |||
@@ -40,6 +40,15 @@ | |||
40 | reg = <0>; | 40 | reg = <0>; |
41 | fsl,pinmux-ids = < | 41 | fsl,pinmux-ids = < |
42 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ | 42 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ |
43 | >; | ||
44 | fsl,drive-strength = <0>; | ||
45 | fsl,voltage = <1>; | ||
46 | fsl,pull-up = <0>; | ||
47 | }; | ||
48 | |||
49 | led_pin_gpio0_17: led_gpio0_17@0 { | ||
50 | reg = <0>; | ||
51 | fsl,pinmux-ids = < | ||
43 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ | 52 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ |
44 | >; | 53 | >; |
45 | fsl,drive-strength = <0>; | 54 | fsl,drive-strength = <0>; |
@@ -91,11 +100,12 @@ | |||
91 | 100 | ||
92 | leds { | 101 | leds { |
93 | compatible = "gpio-leds"; | 102 | compatible = "gpio-leds"; |
103 | pinctrl-names = "default"; | ||
104 | pinctrl-0 = <&led_pin_gpio0_17>; | ||
94 | 105 | ||
95 | user { | 106 | user { |
96 | label = "green"; | 107 | label = "green"; |
97 | gpios = <&gpio2 1 0>; | 108 | gpios = <&gpio2 1 1>; |
98 | linux,default-trigger = "default-on"; | ||
99 | }; | 109 | }; |
100 | }; | 110 | }; |
101 | }; | 111 | }; |
diff --git a/arch/arm/boot/dts/imx28-apf28.dts b/arch/arm/boot/dts/imx28-apf28.dts new file mode 100644 index 000000000000..7eb075876c4c --- /dev/null +++ b/arch/arm/boot/dts/imx28-apf28.dts | |||
@@ -0,0 +1,85 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Armadeus Systems - <support@armadeus.com> | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | /include/ "imx28.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Armadeus Systems APF28 module"; | ||
17 | compatible = "armadeus,imx28-apf28", "fsl,imx28"; | ||
18 | |||
19 | memory { | ||
20 | reg = <0x40000000 0x08000000>; | ||
21 | }; | ||
22 | |||
23 | apb@80000000 { | ||
24 | apbh@80000000 { | ||
25 | gpmi-nand@8000c000 { | ||
26 | pinctrl-names = "default"; | ||
27 | pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; | ||
28 | status = "okay"; | ||
29 | |||
30 | partition@0 { | ||
31 | label = "u-boot"; | ||
32 | reg = <0x0 0x300000>; | ||
33 | }; | ||
34 | |||
35 | partition@300000 { | ||
36 | label = "env"; | ||
37 | reg = <0x300000 0x80000>; | ||
38 | }; | ||
39 | |||
40 | partition@380000 { | ||
41 | label = "env2"; | ||
42 | reg = <0x380000 0x80000>; | ||
43 | }; | ||
44 | |||
45 | partition@400000 { | ||
46 | label = "dtb"; | ||
47 | reg = <0x400000 0x80000>; | ||
48 | }; | ||
49 | |||
50 | partition@480000 { | ||
51 | label = "splash"; | ||
52 | reg = <0x480000 0x80000>; | ||
53 | }; | ||
54 | |||
55 | partition@500000 { | ||
56 | label = "kernel"; | ||
57 | reg = <0x500000 0x800000>; | ||
58 | }; | ||
59 | |||
60 | partition@d00000 { | ||
61 | label = "rootfs"; | ||
62 | reg = <0xd00000 0xf300000>; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | |||
67 | apbx@80040000 { | ||
68 | duart: serial@80074000 { | ||
69 | pinctrl-names = "default"; | ||
70 | pinctrl-0 = <&duart_pins_a>; | ||
71 | status = "okay"; | ||
72 | }; | ||
73 | }; | ||
74 | }; | ||
75 | |||
76 | ahb@80080000 { | ||
77 | mac0: ethernet@800f0000 { | ||
78 | phy-mode = "rmii"; | ||
79 | pinctrl-names = "default"; | ||
80 | pinctrl-0 = <&mac0_pins_a>; | ||
81 | phy-reset-gpios = <&gpio4 13 0>; | ||
82 | status = "okay"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts new file mode 100644 index 000000000000..6d8865bfb4b7 --- /dev/null +++ b/arch/arm/boot/dts/imx28-apf28dev.dts | |||
@@ -0,0 +1,154 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Armadeus Systems - <support@armadeus.com> | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /* APF28Dev is a docking board for the APF28 SOM */ | ||
13 | /include/ "imx28-apf28.dts" | ||
14 | |||
15 | / { | ||
16 | model = "Armadeus Systems APF28Dev docking/development board"; | ||
17 | compatible = "armadeus,imx28-apf28dev", "armadeus,imx28-apf28", "fsl,imx28"; | ||
18 | |||
19 | apb@80000000 { | ||
20 | apbh@80000000 { | ||
21 | ssp0: ssp@80010000 { | ||
22 | compatible = "fsl,imx28-mmc"; | ||
23 | pinctrl-names = "default"; | ||
24 | pinctrl-0 = <&mmc0_4bit_pins_a | ||
25 | &mmc0_cd_cfg &mmc0_sck_cfg>; | ||
26 | bus-width = <4>; | ||
27 | status = "okay"; | ||
28 | }; | ||
29 | |||
30 | ssp2: ssp@80014000 { | ||
31 | compatible = "fsl,imx28-spi"; | ||
32 | pinctrl-names = "default"; | ||
33 | pinctrl-0 = <&spi2_pins_a>; | ||
34 | status = "okay"; | ||
35 | }; | ||
36 | |||
37 | pinctrl@80018000 { | ||
38 | pinctrl-names = "default"; | ||
39 | pinctrl-0 = <&hog_pins_apf28dev>; | ||
40 | |||
41 | hog_pins_apf28dev: hog@0 { | ||
42 | reg = <0>; | ||
43 | fsl,pinmux-ids = < | ||
44 | 0x1103 /* MX28_PAD_LCD_D16__GPIO_1_16 */ | ||
45 | 0x1113 /* MX28_PAD_LCD_D17__GPIO_1_17 */ | ||
46 | 0x1123 /* MX28_PAD_LCD_D18__GPIO_1_18 */ | ||
47 | 0x1133 /* MX28_PAD_LCD_D19__GPIO_1_19 */ | ||
48 | 0x1143 /* MX28_PAD_LCD_D20__GPIO_1_20 */ | ||
49 | 0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */ | ||
50 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ | ||
51 | >; | ||
52 | fsl,drive-strength = <0>; | ||
53 | fsl,voltage = <1>; | ||
54 | fsl,pull-up = <0>; | ||
55 | }; | ||
56 | |||
57 | lcdif_pins_apf28dev: lcdif-apf28dev@0 { | ||
58 | reg = <0>; | ||
59 | fsl,pinmux-ids = < | ||
60 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | ||
61 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | ||
62 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | ||
63 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | ||
64 | >; | ||
65 | fsl,drive-strength = <0>; | ||
66 | fsl,voltage = <1>; | ||
67 | fsl,pull-up = <0>; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | lcdif@80030000 { | ||
72 | pinctrl-names = "default"; | ||
73 | pinctrl-0 = <&lcdif_16bit_pins_a | ||
74 | &lcdif_pins_apf28dev>; | ||
75 | status = "okay"; | ||
76 | }; | ||
77 | }; | ||
78 | |||
79 | apbx@80040000 { | ||
80 | lradc@80050000 { | ||
81 | status = "okay"; | ||
82 | }; | ||
83 | |||
84 | i2c0: i2c@80058000 { | ||
85 | pinctrl-names = "default"; | ||
86 | pinctrl-0 = <&i2c0_pins_a>; | ||
87 | status = "okay"; | ||
88 | }; | ||
89 | |||
90 | pwm: pwm@80064000 { | ||
91 | pinctrl-names = "default"; | ||
92 | pinctrl-0 = <&pwm3_pins_a &pwm4_pins_a>; | ||
93 | status = "okay"; | ||
94 | }; | ||
95 | |||
96 | usbphy0: usbphy@8007c000 { | ||
97 | status = "okay"; | ||
98 | }; | ||
99 | |||
100 | usbphy1: usbphy@8007e000 { | ||
101 | status = "okay"; | ||
102 | }; | ||
103 | }; | ||
104 | }; | ||
105 | |||
106 | ahb@80080000 { | ||
107 | usb0: usb@80080000 { | ||
108 | vbus-supply = <®_usb0_vbus>; | ||
109 | status = "okay"; | ||
110 | }; | ||
111 | |||
112 | usb1: usb@80090000 { | ||
113 | status = "okay"; | ||
114 | }; | ||
115 | |||
116 | mac1: ethernet@800f4000 { | ||
117 | phy-mode = "rmii"; | ||
118 | pinctrl-names = "default"; | ||
119 | pinctrl-0 = <&mac1_pins_a>; | ||
120 | phy-reset-gpios = <&gpio0 23 0>; | ||
121 | status = "okay"; | ||
122 | }; | ||
123 | }; | ||
124 | |||
125 | regulators { | ||
126 | compatible = "simple-bus"; | ||
127 | |||
128 | reg_usb0_vbus: usb0_vbus { | ||
129 | compatible = "regulator-fixed"; | ||
130 | regulator-name = "usb0_vbus"; | ||
131 | regulator-min-microvolt = <5000000>; | ||
132 | regulator-max-microvolt = <5000000>; | ||
133 | gpio = <&gpio1 23 1>; | ||
134 | }; | ||
135 | }; | ||
136 | |||
137 | leds { | ||
138 | compatible = "gpio-leds"; | ||
139 | |||
140 | user { | ||
141 | label = "Heartbeat"; | ||
142 | gpios = <&gpio0 21 0>; | ||
143 | linux,default-trigger = "heartbeat"; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | backlight { | ||
148 | compatible = "pwm-backlight"; | ||
149 | |||
150 | pwms = <&pwm 3 191000>; | ||
151 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
152 | default-brightness-level = <6>; | ||
153 | }; | ||
154 | }; | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10036.dts b/arch/arm/boot/dts/imx28-cfa10036.dts index c03a577beca3..794fc9f8ec3c 100644 --- a/arch/arm/boot/dts/imx28-cfa10036.dts +++ b/arch/arm/boot/dts/imx28-cfa10036.dts | |||
@@ -22,6 +22,31 @@ | |||
22 | 22 | ||
23 | apb@80000000 { | 23 | apb@80000000 { |
24 | apbh@80000000 { | 24 | apbh@80000000 { |
25 | pinctrl@80018000 { | ||
26 | pinctrl-names = "default"; | ||
27 | pinctrl-0 = <&hog_pins_cfa10036>; | ||
28 | |||
29 | hog_pins_cfa10036: hog-10036@0 { | ||
30 | reg = <0>; | ||
31 | fsl,pinmux-ids = < | ||
32 | 0x2073 /* MX28_PAD_SSP0_D7__GPIO_2_7 */ | ||
33 | >; | ||
34 | fsl,drive-strength = <0>; | ||
35 | fsl,voltage = <1>; | ||
36 | fsl,pull-up = <0>; | ||
37 | }; | ||
38 | |||
39 | led_pins_cfa10036: leds-10036@0 { | ||
40 | reg = <0>; | ||
41 | fsl,pinmux-ids = < | ||
42 | 0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */ | ||
43 | >; | ||
44 | fsl,drive-strength = <0>; | ||
45 | fsl,voltage = <1>; | ||
46 | fsl,pull-up = <0>; | ||
47 | }; | ||
48 | }; | ||
49 | |||
25 | ssp0: ssp@80010000 { | 50 | ssp0: ssp@80010000 { |
26 | compatible = "fsl,imx28-mmc"; | 51 | compatible = "fsl,imx28-mmc"; |
27 | pinctrl-names = "default"; | 52 | pinctrl-names = "default"; |
@@ -43,6 +68,8 @@ | |||
43 | 68 | ||
44 | leds { | 69 | leds { |
45 | compatible = "gpio-leds"; | 70 | compatible = "gpio-leds"; |
71 | pinctrl-names = "default"; | ||
72 | pinctrl-0 = <&led_pins_cfa10036>; | ||
46 | 73 | ||
47 | power { | 74 | power { |
48 | gpios = <&gpio3 4 1>; | 75 | gpios = <&gpio3 4 1>; |
diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts b/arch/arm/boot/dts/imx28-cfa10049.dts index 05c892e931e3..b222614ac9e0 100644 --- a/arch/arm/boot/dts/imx28-cfa10049.dts +++ b/arch/arm/boot/dts/imx28-cfa10049.dts | |||
@@ -22,6 +22,22 @@ | |||
22 | apb@80000000 { | 22 | apb@80000000 { |
23 | apbh@80000000 { | 23 | apbh@80000000 { |
24 | pinctrl@80018000 { | 24 | pinctrl@80018000 { |
25 | pinctrl-names = "default", "default"; | ||
26 | pinctrl-1 = <&hog_pins_cfa10049>; | ||
27 | |||
28 | hog_pins_cfa10049: hog-10049@0 { | ||
29 | reg = <0>; | ||
30 | fsl,pinmux-ids = < | ||
31 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | ||
32 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ | ||
33 | 0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */ | ||
34 | 0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */ | ||
35 | >; | ||
36 | fsl,drive-strength = <0>; | ||
37 | fsl,voltage = <1>; | ||
38 | fsl,pull-up = <0>; | ||
39 | }; | ||
40 | |||
25 | spi3_pins_cfa10049: spi3-cfa10049@0 { | 41 | spi3_pins_cfa10049: spi3-cfa10049@0 { |
26 | reg = <0>; | 42 | reg = <0>; |
27 | fsl,pinmux-ids = < | 43 | fsl,pinmux-ids = < |
@@ -29,6 +45,7 @@ | |||
29 | 0x01c1 /* MX28_PAD_GPMI_RESETN__SSP3_CMD */ | 45 | 0x01c1 /* MX28_PAD_GPMI_RESETN__SSP3_CMD */ |
30 | 0x0111 /* MX28_PAD_GPMI_CE1N__SSP3_D3 */ | 46 | 0x0111 /* MX28_PAD_GPMI_CE1N__SSP3_D3 */ |
31 | 0x01a2 /* MX28_PAD_GPMI_ALE__SSP3_D4 */ | 47 | 0x01a2 /* MX28_PAD_GPMI_ALE__SSP3_D4 */ |
48 | 0x01b2 /* MX28_PAD_GPMI_CLE__SSP3_D5 */ | ||
32 | >; | 49 | >; |
33 | fsl,drive-strength = <1>; | 50 | fsl,drive-strength = <1>; |
34 | fsl,voltage = <1>; | 51 | fsl,voltage = <1>; |
@@ -60,6 +77,11 @@ | |||
60 | spi-max-frequency = <100000>; | 77 | spi-max-frequency = <100000>; |
61 | }; | 78 | }; |
62 | 79 | ||
80 | dac0: dh2228@2 { | ||
81 | compatible = "rohm,dh2228fv"; | ||
82 | reg = <2>; | ||
83 | spi-max-frequency = <100000>; | ||
84 | }; | ||
63 | }; | 85 | }; |
64 | }; | 86 | }; |
65 | 87 | ||
@@ -96,4 +118,15 @@ | |||
96 | gpio = <&gpio0 7 1>; | 118 | gpio = <&gpio0 7 1>; |
97 | }; | 119 | }; |
98 | }; | 120 | }; |
121 | |||
122 | ahb@80080000 { | ||
123 | mac0: ethernet@800f0000 { | ||
124 | phy-mode = "rmii"; | ||
125 | pinctrl-names = "default"; | ||
126 | pinctrl-0 = <&mac0_pins_a>; | ||
127 | phy-reset-gpios = <&gpio2 21 0>; | ||
128 | phy-reset-duration = <100>; | ||
129 | status = "okay"; | ||
130 | }; | ||
131 | }; | ||
99 | }; | 132 | }; |
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts index a0ad71ca3a44..2da316e04409 100644 --- a/arch/arm/boot/dts/imx28-evk.dts +++ b/arch/arm/boot/dts/imx28-evk.dts | |||
@@ -76,7 +76,6 @@ | |||
76 | 0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */ | 76 | 0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */ |
77 | 0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ | 77 | 0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ |
78 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 78 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ |
79 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | ||
80 | 0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */ | 79 | 0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */ |
81 | 0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */ | 80 | 0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */ |
82 | >; | 81 | >; |
@@ -85,6 +84,16 @@ | |||
85 | fsl,pull-up = <0>; | 84 | fsl,pull-up = <0>; |
86 | }; | 85 | }; |
87 | 86 | ||
87 | led_pin_gpio3_5: led_gpio3_5@0 { | ||
88 | reg = <0>; | ||
89 | fsl,pinmux-ids = < | ||
90 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | ||
91 | >; | ||
92 | fsl,drive-strength = <0>; | ||
93 | fsl,voltage = <1>; | ||
94 | fsl,pull-up = <0>; | ||
95 | }; | ||
96 | |||
88 | gpmi_pins_evk: gpmi-nand-evk@0 { | 97 | gpmi_pins_evk: gpmi-nand-evk@0 { |
89 | reg = <0>; | 98 | reg = <0>; |
90 | fsl,pinmux-ids = < | 99 | fsl,pinmux-ids = < |
@@ -288,6 +297,8 @@ | |||
288 | 297 | ||
289 | leds { | 298 | leds { |
290 | compatible = "gpio-leds"; | 299 | compatible = "gpio-leds"; |
300 | pinctrl-names = "default"; | ||
301 | pinctrl-0 = <&led_pin_gpio3_5>; | ||
291 | 302 | ||
292 | user { | 303 | user { |
293 | label = "Heartbeat"; | 304 | label = "Heartbeat"; |
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 55c57ea6169e..d7013f73f2e9 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi | |||
@@ -492,6 +492,16 @@ | |||
492 | fsl,pull-up = <0>; | 492 | fsl,pull-up = <0>; |
493 | }; | 493 | }; |
494 | 494 | ||
495 | pwm3_pins_a: pwm3@0 { | ||
496 | reg = <0>; | ||
497 | fsl,pinmux-ids = < | ||
498 | 0x31c0 /* MX28_PAD_PWM3__PWM_3 */ | ||
499 | >; | ||
500 | fsl,drive-strength = <0>; | ||
501 | fsl,voltage = <1>; | ||
502 | fsl,pull-up = <0>; | ||
503 | }; | ||
504 | |||
495 | pwm4_pins_a: pwm4@0 { | 505 | pwm4_pins_a: pwm4@0 { |
496 | reg = <0>; | 506 | reg = <0>; |
497 | fsl,pinmux-ids = < | 507 | fsl,pinmux-ids = < |
@@ -535,6 +545,31 @@ | |||
535 | fsl,pull-up = <0>; | 545 | fsl,pull-up = <0>; |
536 | }; | 546 | }; |
537 | 547 | ||
548 | lcdif_16bit_pins_a: lcdif-16bit@0 { | ||
549 | reg = <0>; | ||
550 | fsl,pinmux-ids = < | ||
551 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | ||
552 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | ||
553 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | ||
554 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | ||
555 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | ||
556 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | ||
557 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | ||
558 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | ||
559 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | ||
560 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | ||
561 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | ||
562 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | ||
563 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | ||
564 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | ||
565 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | ||
566 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | ||
567 | >; | ||
568 | fsl,drive-strength = <0>; | ||
569 | fsl,voltage = <1>; | ||
570 | fsl,pull-up = <0>; | ||
571 | }; | ||
572 | |||
538 | can0_pins_a: can0@0 { | 573 | can0_pins_a: can0@0 { |
539 | reg = <0>; | 574 | reg = <0>; |
540 | fsl,pinmux-ids = < | 575 | fsl,pinmux-ids = < |
diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig index 048aaca60814..7bf535104e26 100644 --- a/arch/arm/configs/mxs_defconfig +++ b/arch/arm/configs/mxs_defconfig | |||
@@ -61,6 +61,8 @@ CONFIG_MTD_NAND_GPMI_NAND=y | |||
61 | CONFIG_NETDEVICES=y | 61 | CONFIG_NETDEVICES=y |
62 | CONFIG_NET_ETHERNET=y | 62 | CONFIG_NET_ETHERNET=y |
63 | CONFIG_ENC28J60=y | 63 | CONFIG_ENC28J60=y |
64 | CONFIG_USB_USBNET=y | ||
65 | CONFIG_USB_NET_SMSC95XX=y | ||
64 | # CONFIG_NETDEV_1000 is not set | 66 | # CONFIG_NETDEV_1000 is not set |
65 | # CONFIG_NETDEV_10000 is not set | 67 | # CONFIG_NETDEV_10000 is not set |
66 | # CONFIG_WLAN is not set | 68 | # CONFIG_WLAN is not set |
@@ -158,6 +160,10 @@ CONFIG_NFS_V3=y | |||
158 | CONFIG_NFS_V3_ACL=y | 160 | CONFIG_NFS_V3_ACL=y |
159 | CONFIG_NFS_V4=y | 161 | CONFIG_NFS_V4=y |
160 | CONFIG_ROOT_NFS=y | 162 | CONFIG_ROOT_NFS=y |
163 | CONFIG_NLS_CODEPAGE_437=y | ||
164 | CONFIG_NLS_CODEPAGE_850=y | ||
165 | CONFIG_NLS_ISO8859_1=y | ||
166 | CONFIG_NLS_ISO8859_15=y | ||
161 | CONFIG_PRINTK_TIME=y | 167 | CONFIG_PRINTK_TIME=y |
162 | CONFIG_FRAME_WARN=2048 | 168 | CONFIG_FRAME_WARN=2048 |
163 | CONFIG_MAGIC_SYSRQ=y | 169 | CONFIG_MAGIC_SYSRQ=y |
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index 4748ec551a68..67ef35506093 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c | |||
@@ -100,6 +100,25 @@ static struct fb_videomode apx4devkit_video_modes[] = { | |||
100 | }, | 100 | }, |
101 | }; | 101 | }; |
102 | 102 | ||
103 | static struct fb_videomode apf28dev_video_modes[] = { | ||
104 | { | ||
105 | .name = "LW700", | ||
106 | .refresh = 60, | ||
107 | .xres = 800, | ||
108 | .yres = 480, | ||
109 | .pixclock = 30303, /* picosecond */ | ||
110 | .left_margin = 96, | ||
111 | .right_margin = 96, /* at least 3 & 1 */ | ||
112 | .upper_margin = 0x14, | ||
113 | .lower_margin = 0x15, | ||
114 | .hsync_len = 64, | ||
115 | .vsync_len = 4, | ||
116 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | | ||
117 | FB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
118 | FB_SYNC_DOTCLK_FAILING_ACT, | ||
119 | }, | ||
120 | }; | ||
121 | |||
103 | static struct mxsfb_platform_data mxsfb_pdata __initdata; | 122 | static struct mxsfb_platform_data mxsfb_pdata __initdata; |
104 | 123 | ||
105 | /* | 124 | /* |
@@ -160,6 +179,7 @@ static struct sys_timer imx28_timer = { | |||
160 | enum mac_oui { | 179 | enum mac_oui { |
161 | OUI_FSL, | 180 | OUI_FSL, |
162 | OUI_DENX, | 181 | OUI_DENX, |
182 | OUI_CRYSTALFONTZ, | ||
163 | }; | 183 | }; |
164 | 184 | ||
165 | static void __init update_fec_mac_prop(enum mac_oui oui) | 185 | 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) | |||
175 | np = of_find_compatible_node(from, NULL, "fsl,imx28-fec"); | 195 | np = of_find_compatible_node(from, NULL, "fsl,imx28-fec"); |
176 | if (!np) | 196 | if (!np) |
177 | return; | 197 | return; |
198 | |||
178 | from = np; | 199 | from = np; |
179 | 200 | ||
201 | if (of_get_property(np, "local-mac-address", NULL)) | ||
202 | continue; | ||
203 | |||
180 | newmac = kzalloc(sizeof(*newmac) + 6, GFP_KERNEL); | 204 | newmac = kzalloc(sizeof(*newmac) + 6, GFP_KERNEL); |
181 | if (!newmac) | 205 | if (!newmac) |
182 | return; | 206 | return; |
@@ -205,6 +229,11 @@ static void __init update_fec_mac_prop(enum mac_oui oui) | |||
205 | macaddr[1] = 0xe5; | 229 | macaddr[1] = 0xe5; |
206 | macaddr[2] = 0x4e; | 230 | macaddr[2] = 0x4e; |
207 | break; | 231 | break; |
232 | case OUI_CRYSTALFONTZ: | ||
233 | macaddr[0] = 0x58; | ||
234 | macaddr[1] = 0xb9; | ||
235 | macaddr[2] = 0xe1; | ||
236 | break; | ||
208 | } | 237 | } |
209 | val = ocotp[i]; | 238 | val = ocotp[i]; |
210 | macaddr[3] = (val >> 16) & 0xff; | 239 | macaddr[3] = (val >> 16) & 0xff; |
@@ -355,6 +384,22 @@ static void __init tx28_post_init(void) | |||
355 | pinctrl_put(pctl); | 384 | pinctrl_put(pctl); |
356 | } | 385 | } |
357 | 386 | ||
387 | static void __init cfa10049_init(void) | ||
388 | { | ||
389 | enable_clk_enet_out(); | ||
390 | update_fec_mac_prop(OUI_CRYSTALFONTZ); | ||
391 | } | ||
392 | |||
393 | static void __init apf28_init(void) | ||
394 | { | ||
395 | enable_clk_enet_out(); | ||
396 | |||
397 | mxsfb_pdata.mode_list = apf28dev_video_modes; | ||
398 | mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); | ||
399 | mxsfb_pdata.default_bpp = 16; | ||
400 | mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; | ||
401 | } | ||
402 | |||
358 | static void __init mxs_machine_init(void) | 403 | static void __init mxs_machine_init(void) |
359 | { | 404 | { |
360 | if (of_machine_is_compatible("fsl,imx28-evk")) | 405 | if (of_machine_is_compatible("fsl,imx28-evk")) |
@@ -365,6 +410,10 @@ static void __init mxs_machine_init(void) | |||
365 | m28evk_init(); | 410 | m28evk_init(); |
366 | else if (of_machine_is_compatible("bluegiga,apx4devkit")) | 411 | else if (of_machine_is_compatible("bluegiga,apx4devkit")) |
367 | apx4devkit_init(); | 412 | apx4devkit_init(); |
413 | else if (of_machine_is_compatible("crystalfontz,cfa10049")) | ||
414 | cfa10049_init(); | ||
415 | else if (of_machine_is_compatible("armadeus,imx28-apf28")) | ||
416 | apf28_init(); | ||
368 | 417 | ||
369 | of_platform_populate(NULL, of_default_bus_match_table, | 418 | of_platform_populate(NULL, of_default_bus_match_table, |
370 | mxs_auxdata_lookup, NULL); | 419 | mxs_auxdata_lookup, NULL); |
diff --git a/arch/arm/mach-mxs/timer.c b/arch/arm/mach-mxs/timer.c index 7c3792613392..856f4c796061 100644 --- a/arch/arm/mach-mxs/timer.c +++ b/arch/arm/mach-mxs/timer.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/of_irq.h> | 29 | #include <linux/of_irq.h> |
30 | 30 | ||
31 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
32 | #include <asm/sched_clock.h> | ||
32 | #include <mach/mxs.h> | 33 | #include <mach/mxs.h> |
33 | #include <mach/common.h> | 34 | #include <mach/common.h> |
34 | 35 | ||
@@ -233,15 +234,22 @@ static struct clocksource clocksource_mxs = { | |||
233 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 234 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
234 | }; | 235 | }; |
235 | 236 | ||
237 | static u32 notrace mxs_read_sched_clock_v2(void) | ||
238 | { | ||
239 | return ~readl_relaxed(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1)); | ||
240 | } | ||
241 | |||
236 | static int __init mxs_clocksource_init(struct clk *timer_clk) | 242 | static int __init mxs_clocksource_init(struct clk *timer_clk) |
237 | { | 243 | { |
238 | unsigned int c = clk_get_rate(timer_clk); | 244 | unsigned int c = clk_get_rate(timer_clk); |
239 | 245 | ||
240 | if (timrot_is_v1()) | 246 | if (timrot_is_v1()) |
241 | clocksource_register_hz(&clocksource_mxs, c); | 247 | clocksource_register_hz(&clocksource_mxs, c); |
242 | else | 248 | else { |
243 | clocksource_mmio_init(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1), | 249 | clocksource_mmio_init(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1), |
244 | "mxs_timer", c, 200, 32, clocksource_mmio_readl_down); | 250 | "mxs_timer", c, 200, 32, clocksource_mmio_readl_down); |
251 | setup_sched_clock(mxs_read_sched_clock_v2, 32, c); | ||
252 | } | ||
245 | 253 | ||
246 | return 0; | 254 | return 0; |
247 | } | 255 | } |