Slow down the I2C clock speed on M28 and SPS1 as it turns out the I2C block in i.MX28 can not operate stable enough with the bus running at 400kHz. Note that the driver used by Freescale runs the bus at 250kHz when 400kHz speed is selected, but the mainline Linux kernel runs the bus at actual 400kHz and that's where it is occasionally unstable. Play safe and run the bus at 100kHz. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
		
			
				
	
	
		
			277 lines
		
	
	
	
		
			5.7 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			277 lines
		
	
	
	
		
			5.7 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
/*
 | 
						|
 * 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 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <1>;
 | 
						|
				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 0>;
 | 
						|
				vmmc-supply = <®_vddio_sd0>;
 | 
						|
				status = "okay";
 | 
						|
			};
 | 
						|
 | 
						|
			ssp2: ssp@80014000 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				compatible = "fsl,imx28-spi";
 | 
						|
				pinctrl-names = "default";
 | 
						|
				pinctrl-0 = <&spi2_pins_a>;
 | 
						|
				status = "okay";
 | 
						|
 | 
						|
				flash: m25p80@0 {
 | 
						|
					#address-cells = <1>;
 | 
						|
					#size-cells = <1>;
 | 
						|
					compatible = "m25p80";
 | 
						|
					spi-max-frequency = <40000000>;
 | 
						|
					reg = <0>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
 | 
						|
			pinctrl@80018000 {
 | 
						|
				pinctrl-names = "default";
 | 
						|
				pinctrl-0 = <&hog_pins_a>;
 | 
						|
 | 
						|
				hog_pins_a: hog@0 {
 | 
						|
					reg = <0>;
 | 
						|
					fsl,pinmux-ids = <
 | 
						|
						0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
 | 
						|
						0x30a3 /* MX28_PAD_AUART2_CTS__GPIO_3_10 */
 | 
						|
						0x30b3 /* MX28_PAD_AUART2_RTS__GPIO_3_11 */
 | 
						|
						0x30c3 /* MX28_PAD_AUART3_RX__GPIO_3_12 */
 | 
						|
						0x30d3 /* MX28_PAD_AUART3_TX__GPIO_3_13 */
 | 
						|
					>;
 | 
						|
					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 = <®_3p3v>;
 | 
						|
					VDDIO-supply = <®_3p3v>;
 | 
						|
 | 
						|
				};
 | 
						|
 | 
						|
				eeprom: eeprom@51 {
 | 
						|
					compatible = "atmel,24c128";
 | 
						|
					reg = <0x51>;
 | 
						|
					pagesize = <32>;
 | 
						|
				};
 | 
						|
 | 
						|
				rtc: rtc@68 {
 | 
						|
					compatible = "stm,mt41t62";
 | 
						|
					reg = <0x68>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
 | 
						|
			lradc@80050000 {
 | 
						|
				status = "okay";
 | 
						|
				fsl,lradc-touchscreen-wires = <4>;
 | 
						|
			};
 | 
						|
 | 
						|
			duart: serial@80074000 {
 | 
						|
				pinctrl-names = "default";
 | 
						|
				pinctrl-0 = <&duart_pins_a>;
 | 
						|
				status = "okay";
 | 
						|
			};
 | 
						|
 | 
						|
			usbphy0: usbphy@8007c000 {
 | 
						|
				status = "okay";
 | 
						|
			};
 | 
						|
 | 
						|
			usbphy1: usbphy@8007e000 {
 | 
						|
				status = "okay";
 | 
						|
			};
 | 
						|
 | 
						|
			auart0: serial@8006a000 {
 | 
						|
				pinctrl-names = "default";
 | 
						|
				pinctrl-0 = <&auart0_2pins_a>;
 | 
						|
				status = "okay";
 | 
						|
			};
 | 
						|
		};
 | 
						|
	};
 | 
						|
 | 
						|
	ahb@80080000 {
 | 
						|
		usb0: usb@80080000 {
 | 
						|
			vbus-supply = <®_usb0_vbus>;
 | 
						|
			pinctrl-names = "default";
 | 
						|
			pinctrl-0 = <&usbphy0_pins_a>;
 | 
						|
			status = "okay";
 | 
						|
		};
 | 
						|
 | 
						|
		usb1: usb@80090000 {
 | 
						|
			vbus-supply = <®_usb1_vbus>;
 | 
						|
			pinctrl-names = "default";
 | 
						|
			pinctrl-0 = <&usbphy1_pins_a>;
 | 
						|
			status = "okay";
 | 
						|
		};
 | 
						|
 | 
						|
		mac0: ethernet@800f0000 {
 | 
						|
			phy-mode = "rmii";
 | 
						|
			pinctrl-names = "default";
 | 
						|
			pinctrl-0 = <&mac0_pins_a>;
 | 
						|
			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;
 | 
						|
		};
 | 
						|
 | 
						|
		reg_vddio_sd0: vddio-sd0 {
 | 
						|
			compatible = "regulator-fixed";
 | 
						|
			regulator-name = "vddio-sd0";
 | 
						|
			regulator-min-microvolt = <3300000>;
 | 
						|
			regulator-max-microvolt = <3300000>;
 | 
						|
			gpio = <&gpio3 28 0>;
 | 
						|
		};
 | 
						|
 | 
						|
		reg_usb0_vbus: usb0_vbus {
 | 
						|
			compatible = "regulator-fixed";
 | 
						|
			regulator-name = "usb0_vbus";
 | 
						|
			regulator-min-microvolt = <5000000>;
 | 
						|
			regulator-max-microvolt = <5000000>;
 | 
						|
			gpio = <&gpio3 12 0>;
 | 
						|
		};
 | 
						|
 | 
						|
		reg_usb1_vbus: usb1_vbus {
 | 
						|
			compatible = "regulator-fixed";
 | 
						|
			regulator-name = "usb1_vbus";
 | 
						|
			regulator-min-microvolt = <5000000>;
 | 
						|
			regulator-max-microvolt = <5000000>;
 | 
						|
			gpio = <&gpio3 13 0>;
 | 
						|
		};
 | 
						|
	};
 | 
						|
 | 
						|
	sound {
 | 
						|
		compatible = "denx,m28evk-sgtl5000",
 | 
						|
			     "fsl,mxs-audio-sgtl5000";
 | 
						|
		model = "m28evk-sgtl5000";
 | 
						|
		saif-controllers = <&saif0 &saif1>;
 | 
						|
		audio-codec = <&sgtl5000>;
 | 
						|
	};
 | 
						|
};
 |