Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 313299
b: refs/heads/master
c: 8fa62e1
h: refs/heads/master
i:
  313297: 2aa913c
  313295: c2d7bba
v: v3
  • Loading branch information
Marek Vasut authored and Shawn Guo committed Jul 11, 2012
1 parent a93a70c commit 6aedb80
Show file tree
Hide file tree
Showing 4 changed files with 259 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3dba2596730709fdec65491455a66a7df1ca67db
refs/heads/master: 8fa62e11283faa203b360c4ebdbd186b2c8dd844
11 changes: 11 additions & 0 deletions trunk/arch/arm/boot/dts/imx28.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,17 @@
fsl,pull-up = <0>;
};

auart0_2pins_a: auart0-2pins@0 {
reg = <0>;
fsl,pinmux-ids = <
0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */
0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */
>;
fsl,drive-strength = <0>;
fsl,voltage = <1>;
fsl,pull-up = <0>;
};

auart3_pins_a: auart3@0 {
reg = <0>;
fsl,pinmux-ids = <
Expand Down
210 changes: 210 additions & 0 deletions trunk/arch/arm/boot/dts/m28evk.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
/*
* Copyright (C) 2012 Marek Vasut <marex@denx.de>
*
* 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 = "DENX M28EVK";
compatible = "denx,m28evk", "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 = "bootloader";
reg = <0x00000000 0x00300000>;
read-only;
};

partition@1 {
label = "environment";
reg = <0x00300000 0x00080000>;
};

partition@2 {
label = "redundant-environment";
reg = <0x00380000 0x00080000>;
};

partition@3 {
label = "kernel";
reg = <0x00400000 0x00400000>;
};

partition@4 {
label = "filesystem";
reg = <0x00800000 0x0f800000>;
};
};

ssp0: ssp@80010000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc0_8bit_pins_a
&mmc0_cd_cfg
&mmc0_sck_cfg>;
bus-width = <8>;
wp-gpios = <&gpio3 10 1>;
status = "okay";
};

pinctrl@80018000 {
pinctrl-names = "default";
pinctrl-0 = <&hog_pins_a>;

hog_pins_a: hog-gpios@0 {
reg = <0>;
fsl,pinmux-ids = <
0x30a3 /* MX28_PAD_AUART2_CTS__GPIO_3_10 */
0x30b3 /* MX28_PAD_AUART2_RTS__GPIO_3_11 */
>;
fsl,drive-strength = <0>;
fsl,voltage = <1>;
fsl,pull-up = <0>;
};

lcdif_pins_m28: lcdif-m28@0 {
reg = <0>;
fsl,pinmux-ids = <
0x11e0 /* MX28_PAD_LCD_DOTCLK__LCD_DOTCLK */
0x11f0 /* MX28_PAD_LCD_ENABLE__LCD_ENABLE */
>;
fsl,drive-strength = <0>;
fsl,voltage = <1>;
fsl,pull-up = <0>;
};
};

lcdif@80030000 {
pinctrl-names = "default";
pinctrl-0 = <&lcdif_24bit_pins_a
&lcdif_pins_m28>;
status = "okay";
};

can0: can@80032000 {
pinctrl-names = "default";
pinctrl-0 = <&can0_pins_a>;
status = "okay";
};

can1: can@80034000 {
pinctrl-names = "default";
pinctrl-0 = <&can1_pins_a>;
status = "okay";
};
};

apbx@80040000 {
saif0: saif@80042000 {
pinctrl-names = "default";
pinctrl-0 = <&saif0_pins_a>;
status = "okay";
};

saif1: saif@80046000 {
pinctrl-names = "default";
pinctrl-0 = <&saif1_pins_a>;
fsl,saif-master = <&saif0>;
status = "okay";
};

i2c0: i2c@80058000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";

sgtl5000: codec@0a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>;

};

eeprom: eeprom@51 {
compatible = "atmel,24c128";
reg = <0x51>;
pagesize = <32>;
};

rtc: rtc@68 {
compatible = "stm,mt41t62";
reg = <0x68>;
};
};

duart: serial@80074000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_a>;
status = "okay";
};

auart0: serial@8006a000 {
pinctrl-names = "default";
pinctrl-0 = <&auart0_2pins_a>;
status = "okay";
};

auart3: serial@80070000 {
pinctrl-names = "default";
pinctrl-0 = <&auart3_pins_a>;
status = "okay";
};
};
};

ahb@80080000 {
mac0: ethernet@800f0000 {
phy-mode = "rmii";
pinctrl-names = "default";
pinctrl-0 = <&mac0_pins_a>;
phy-reset-gpios = <&gpio3 11 0>;
status = "okay";
};

mac1: ethernet@800f4000 {
phy-mode = "rmii";
pinctrl-names = "default";
pinctrl-0 = <&mac1_pins_a>;
status = "okay";
};
};

regulators {
compatible = "simple-bus";

reg_3p3v: 3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};

sound {
compatible = "denx,m28evk-sgtl5000",
"fsl,mxs-audio-sgtl5000";
model = "m28evk-sgtl5000";
saif-controllers = <&saif0 &saif1>;
audio-codec = <&sgtl5000>;
};
};
41 changes: 37 additions & 4 deletions trunk/arch/arm/mach-mxs/mach-mxs.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,23 @@ static struct fb_videomode mx28evk_video_modes[] = {
},
};

static struct fb_videomode m28evk_video_modes[] = {
{
.name = "Ampire AM-800480R2TMQW-T01H",
.refresh = 60,
.xres = 800,
.yres = 480,
.pixclock = 30066, /* picosecond (33.26 MHz) */
.left_margin = 0,
.right_margin = 256,
.upper_margin = 0,
.lower_margin = 45,
.hsync_len = 1,
.vsync_len = 1,
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT,
},
};

static struct mxsfb_platform_data mxsfb_pdata __initdata;

static struct of_dev_auxdata mxs_auxdata_lookup[] __initdata = {
Expand Down Expand Up @@ -186,15 +203,17 @@ static void __init imx23_evk_init(void)
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
}

static void __init imx28_evk_init(void)
static inline void enable_clk_enet_out(void)
{
struct clk *clk;
struct clk *clk = clk_get_sys("enet_out", NULL);

/* Enable fec phy clock */
clk = clk_get_sys("enet_out", NULL);
if (!IS_ERR(clk))
clk_prepare_enable(clk);
}

static void __init imx28_evk_init(void)
{
enable_clk_enet_out();
update_fec_mac_prop(OUI_FSL);

mxsfb_pdata.mode_list = mx28evk_video_modes;
Expand All @@ -203,12 +222,25 @@ static void __init imx28_evk_init(void)
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
}

static void __init m28evk_init(void)
{
enable_clk_enet_out();
update_fec_mac_prop(OUI_DENX);

mxsfb_pdata.mode_list = m28evk_video_modes;
mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes);
mxsfb_pdata.default_bpp = 16;
mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
}

static void __init mxs_machine_init(void)
{
if (of_machine_is_compatible("fsl,imx28-evk"))
imx28_evk_init();
else if (of_machine_is_compatible("fsl,imx23-evk"))
imx23_evk_init();
else if (of_machine_is_compatible("denx,m28evk"))
m28evk_init();

of_platform_populate(NULL, of_default_bus_match_table,
mxs_auxdata_lookup, NULL);
Expand All @@ -223,6 +255,7 @@ static const char *imx23_dt_compat[] __initdata = {

static const char *imx28_dt_compat[] __initdata = {
"crystalfontz,cfa10036",
"denx,m28evk",
"fsl,imx28-evk",
"fsl,imx28",
NULL,
Expand Down

0 comments on commit 6aedb80

Please sign in to comment.