linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/7] ARM: mxs: convert m28evk board to device tree
Date: Mon, 9 Jul 2012 10:18:25 +0200	[thread overview]
Message-ID: <201207091018.25979.marex@denx.de> (raw)
In-Reply-To: <1341821163-17885-1-git-send-email-shawn.guo@linaro.org>

Dear Shawn Guo,

> From: Marek Vasut <marex@denx.de>
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> ---
>  arch/arm/boot/dts/imx28.dtsi |   21 ++++
>  arch/arm/boot/dts/m28evk.dts |  241
> ++++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-mxs/mach-mxs.c | 
>  30 +++++
>  3 files changed, 292 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/boot/dts/m28evk.dts
> 
> diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
> index 02e778b..3390607 100644
> --- a/arch/arm/boot/dts/imx28.dtsi
> +++ b/arch/arm/boot/dts/imx28.dtsi
> @@ -232,6 +232,17 @@
>  					fsl,pull-up = <0>;
>  				};
> 
> +				auart0_2pins_a: auart0-2pins at 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 at 0 {
>  					reg = <0>;
>  					fsl,pinmux-ids = <
> @@ -373,6 +384,16 @@
>  					fsl,pull-up = <0>;
>  				};
> 
> +				pwm3_pins_a: pwm3 at 0 {
> +					reg = <0>;
> +					fsl,pinmux-ids = <
> +						0x31c0 /* MX28_PAD_PWM3__PWM_3 
*/
> +					>;
> +					fsl,drive-strength = <0>;
> +					fsl,voltage = <1>;
> +					fsl,pull-up = <0>;
> +				};

Drop the pwm3 stuff, it's not used.

> +
>  				lcdif_24bit_pins_a: lcdif-24bit at 0 {
>  					reg = <0>;
>  					fsl,pinmux-ids = <
> diff --git a/arch/arm/boot/dts/m28evk.dts b/arch/arm/boot/dts/m28evk.dts
> new file mode 100644
> index 0000000..0c22792
> --- /dev/null
> +++ b/arch/arm/boot/dts/m28evk.dts
> @@ -0,0 +1,241 @@
> +/*
> + * 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 at 80000000 {
> +		apbh at 80000000 {
> +			gpmi-nand at 8000c000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
> +				status = "okay";
> +
> +				partition at 0 {
> +					label = "bootloader";
> +					reg = <0x00000000 0x00300000>;
> +					read-only;
> +				};
> +
> +				partition at 1 {
> +					label = "environment";
> +					reg = <0x00300000 0x00080000>;
> +				};
> +
> +				partition at 2 {
> +					label = "redundant-environment";
> +					reg = <0x00380000 0x00080000>;
> +				};
> +
> +				partition at 3 {
> +					label = "kernel";
> +					reg = <0x00400000 0x00400000>;
> +				};
> +
> +				partition at 4 {
> +					label = "filesystem";
> +					reg = <0x00800000 0x0f800000>;
> +				};
> +			};
> +
> +			ssp0: ssp at 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 at 80018000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&hog_pins_a>;
> +
> +				hog_pins_a: hog-gpios at 0 {
> +					reg = <0>;
> +					fsl,pinmux-ids = <
> +						0x30a3 /* 
MX28_PAD_AUART2_CTS__GPIO_3_10 */
> +						0x30b3 /* 
MX28_PAD_AUART2_RTS__GPIO_3_11 */
> +						0x3103 /* 
MX28_PAD_PWM0__GPIO_3_16 */
> +						0x3113 /* 
MX28_PAD_PWM1__GPIO_3_17 */

What's this part for ?

> +					>;
> +					fsl,drive-strength = <0>;
> +					fsl,voltage = <1>;
> +					fsl,pull-up = <0>;
> +				};
> +
> +				lcdif_pins_m28: lcdif-m28 at 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 at 80030000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&lcdif_24bit_pins_a
> +					     &lcdif_pins_m28>;
> +				status = "okay";
> +			};
> +
> +			can0: can at 80032000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&can0_pins_a>;
> +				status = "okay";
> +			};
> +
> +			can1: can at 80034000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&can1_pins_a>;
> +				status = "okay";
> +			};
> +		};
> +
> +		apbx at 80040000 {
> +			saif0: saif at 80042000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&saif0_pins_a>;
> +				status = "okay";
> +			};
> +
> +			saif1: saif at 80046000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&saif1_pins_a>;
> +				fsl,saif-master = <&saif0>;
> +				status = "okay";
> +			};
> +
> +			i2c0: i2c at 80058000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&i2c0_pins_a>;
> +				status = "okay";
> +
> +				sgtl5000: codec at 0a {
> +					compatible = "fsl,sgtl5000";
> +					reg = <0x0a>;
> +					VDDA-supply = <&reg_3p3v>;
> +					VDDIO-supply = <&reg_3p3v>;
> +
> +				};
> +
> +				eeprom: eeprom at 51 {
> +					compatible = "atmel,24c128";
> +					reg = <0x51>;
> +					pagesize = <32>;
> +				};
> +
> +				rtc: rtc at 68 {
> +					compatible = "stm,mt41t62";
> +					reg = <0x68>;
> +				};
> +			};
> +
> +			pwm: pwm at 80064000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&pwm3_pins_a>;
> +				status = "okay";
> +			};
> +
> +			duart: serial at 80074000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&duart_pins_a>;
> +				status = "okay";
> +			};
> +
> +			auart0: serial at 8006a000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&auart0_2pins_a>;
> +				status = "okay";
> +			};
> +
> +			auart3: serial at 80070000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&auart3_pins_a>;
> +				status = "okay";
> +			};
> +		};
> +	};
> +
> +	ahb at 80080000 {
> +		mac0: ethernet at 800f0000 {
> +			phy-mode = "rmii";
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&mac0_pins_a>;
> +			phy-reset-gpios = <&gpio3 11 0>;
> +			status = "okay";
> +		};
> +
> +		mac1: ethernet at 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 = "fsl,imx28-evk-sgtl5000",
> +			     "fsl,mxs-audio-sgtl5000";
> +		model = "imx28-evk-sgtl5000";
> +		saif-controllers = <&saif0 &saif1>;
> +		audio-codec = <&sgtl5000>;
> +	};
> +
> +	leds {

Drop the led section, it's some ancient nonsense from who-knows-where :-(

> +		compatible = "gpio-leds";
> +
> +		user1 {
> +			label = "Heartbeat1";
> +			gpios = <&gpio3 16 0>;
> +			linux,default-trigger = "heartbeat";
> +		};
> +
> +		user2 {
> +			label = "Heartbeat2";
> +			gpios = <&gpio3 17 0>;
> +			linux,default-trigger = "heartbeat";
> +		};
> +	};
> +
> +	backlight {

Drop this backlight too please.

> +		compatible = "pwm-backlight";
> +		pwms = <&pwm 3 5000000>;
> +		brightness-levels = <0 4 8 16 32 64 128 255>;
> +		default-brightness-level = <6>;
> +	};
> +};
> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
> index 7bbb961..6bb6db8 100644
> --- a/arch/arm/mach-mxs/mach-mxs.c
> +++ b/arch/arm/mach-mxs/mach-mxs.c
> @@ -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 = {
> @@ -203,12 +220,24 @@ static void __init imx28_evk_init(void)
>  	mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
>  }
> 
> +static void __init m28evk_init(void)
> +{
> +	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();

I think you need to call imx28_evk_init() here ?

> 
>  	of_platform_populate(NULL, of_default_bus_match_table,
>  			     mxs_auxdata_lookup, NULL);
> @@ -223,6 +252,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,

  reply	other threads:[~2012-07-09  8:18 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-09  6:14 [PATCH 0/7] Convert mxs board files to device tree Shawn Guo
2012-07-09  6:14 ` [PATCH 1/7] ARM: dts: imx28: move extra gpmi-nand pins into board dts Shawn Guo
2012-07-09  6:14 ` [PATCH 2/7] ARM: dts: imx28: move lcdif control " Shawn Guo
2012-07-09  6:14 ` [PATCH 3/7] ARM: mxs: convert m28evk board to device tree Shawn Guo
2012-07-09  7:10   ` Marek Vasut
2012-07-09  7:27     ` Shawn Guo
2012-07-09  7:32       ` Marek Vasut
2012-07-09  7:42         ` Shawn Guo
2012-07-09  6:14 ` [PATCH 4/7] ARM: mxs: convert apx4devkit " Shawn Guo
2012-07-09 15:15   ` Lauri Hintsala
2012-07-10  4:01     ` Shawn Guo
2012-07-10  7:10       ` Lauri Hintsala
2012-07-09  6:14 ` [PATCH 5/7] ARM: mxs: convert tx28 " Shawn Guo
2012-07-09 13:04   ` Lothar Waßmann
2012-07-09 14:18     ` Shawn Guo
2012-07-13  7:14     ` Shawn Guo
2012-07-13  9:21       ` Lothar Waßmann
2012-07-15 14:49         ` Shawn Guo
2012-07-15 15:00           ` Shawn Guo
2012-07-16  7:03             ` Lothar Waßmann
2012-07-18 13:36               ` Shawn Guo
2012-07-19  5:58                 ` Lothar Waßmann
2012-07-19  6:05                   ` Shawn Guo
2012-07-16  7:00           ` Lothar Waßmann
2012-07-18 13:39             ` Shawn Guo
2012-07-19  6:13               ` Lothar Waßmann
2012-07-19  6:22                 ` Shawn Guo
2012-07-09  6:14 ` [PATCH 6/7] ARM: mxs: convert stmp378x_devb " Shawn Guo
2012-07-09  6:14 ` [PATCH 7/7] ARM: mxs: add dtb-y target into Makefile.boot Shawn Guo
2012-07-09  7:04 ` [PATCH 0/7] Convert mxs board files to device tree Marek Vasut
2012-07-09  7:13   ` Shawn Guo
2012-07-09  7:33     ` Marek Vasut
2012-07-09  7:33       ` Marek Vasut
2012-07-09  8:06 ` [PATCH 3/7] ARM: mxs: convert m28evk board " Shawn Guo
2012-07-09  8:18   ` Marek Vasut [this message]
2012-07-09  8:40     ` Shawn Guo
2012-07-09  8:46       ` Marek Vasut
2012-07-09  9:02         ` Shawn Guo
2012-07-09  9:50           ` Marek Vasut
2012-07-09 14:23             ` Shawn Guo
2012-07-09  8:50       ` Marek Vasut
2012-07-09  9:00         ` Shawn Guo
2012-07-09  8:07 ` [PATCH 6/7] ARM: mxs: convert stmp378x_devb " Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201207091018.25979.marex@denx.de \
    --to=marex@denx.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).