Re: [PATCH] efikamx: reintroduce Genesi Efika MX Smarttop via devicetree

From: Shawn Guo
Date: Wed Aug 08 2012 - 11:15:27 EST


On Tue, Aug 07, 2012 at 04:46:18PM -0500, Matt Sealey wrote:
> This device tree only supports the final retail board ("TO3").
>
> It is currently feature equivalent to the MX51 Babbage device tree. The
> following features have been tested and work as well as can be expected:
>
> * Serial port
> * SD card support
> * I2C bus
> * SGTL5000 audio support via the internal speaker
> * SDMA support (via audio)
> * SPI bus
> * NOR flash (at 25MHz bus speed)
> * MC13892 PMIC Regulator and Realtime clock functions
>
> Since the board requires some extra work on the PMIC to power off, the system
> will instead just halt, however reboot works. Other missing features are due
> to a lack of drivers or device tree bindings currently.
>
> Signed-off-by: Matt Sealey <matt@xxxxxxxxxxxxxx>
> Signed-off-by: Steev Klimaszewski <steev@xxxxxxxxxxxxxx>
> ---
> arch/arm/boot/dts/imx51-efikamx.dts | 247 +++++++++++++++++++++++++++++++++++
> arch/arm/mach-imx/Makefile.boot | 2 +-
> 2 files changed, 248 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boot/dts/imx51-efikamx.dts
>
> diff --git a/arch/arm/boot/dts/imx51-efikamx.dts b/arch/arm/boot/dts/imx51-efikamx.dts
> new file mode 100644
> index 0000000..dd14f77
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx51-efikamx.dts
> @@ -0,0 +1,247 @@
> +/*
> + * Copyright 2011 Freescale Semiconductor, Inc.
> + * Copyright 2011 Linaro Ltd.
> + * Copyright 2012 Genesi USA, Inc.
> + *
> + * 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/ "imx51.dtsi"
> +
> +/ {
> + model = "Genesi Efika MX (Smarttop)";
> + compatible = "genesi,imx51-efikamx", "fsl,imx51";
> +
> + memory {
> + reg = <0x90000000 0x20000000>;
> + };
> +
> + soc {
> + aips@70000000 {
> + spba@70000000 {
> + esdhc@70004000 {

The pinctrl_provide_dummies() in imx51_dt_init() is something to be
removed. Then any driver calling pinctrl API will require pinctrl
set up for the device here. So please have the pinctrl setup for
those devices.

> + cd-gpios = <&gpio1 0 0>;
> + wp-gpios = <&gpio1 1 0>;
> + status = "okay";
> + };
> +
> + ssi2: ssi@70014000 {
> + fsl,mode = "i2s-slave";
> + status = "okay";
> + };
> +
> + ecspi@70010000 {
> + fsl,spi-num-chipselects = <2>;
> + cs-gpios = <&gpio4 24 0>, <&gpio4 25 0>;
> + status = "okay";
> +
> + pmic: mc13892@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "fsl,mc13892";
> + spi-max-frequency = <6000000>;
> + reg = <0>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <6 0x4>;
> + fsl,mc13xxx-uses-rtc;
> +
> + regulators {
> + sw1_reg: sw1 {
> + regulator-min-microvolt = <600000>;
> + regulator-max-microvolt = <1375000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw2_reg: sw2 {
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1850000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw3_reg: sw3 {
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1850000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw4_reg: sw4 {
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1850000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vpll_reg: vpll {
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vdig_reg: vdig {
> + regulator-min-microvolt = <1650000>;
> + regulator-max-microvolt = <1650000>;
> + regulator-boot-on;
> + };
> +
> + vsd_reg: vsd {
> + regulator-min-microvolt = <3150000>;
> + regulator-max-microvolt = <3150000>;
> + };
> +
> + vusb2_reg: vusb2 {
> + regulator-min-microvolt = <2400000>;
> + regulator-max-microvolt = <2775000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vvideo_reg: vvideo {
> + regulator-min-microvolt = <2775000>;
> + regulator-max-microvolt = <2775000>;
> + regulator-boot-on;
> + };
> +
> + vaudio_reg: vaudio {
> + regulator-min-microvolt = <2300000>;
> + regulator-max-microvolt = <3000000>;
> + };
> +
> + vcam_reg: vcam {
> + regulator-min-microvolt = <2500000>;
> + regulator-max-microvolt = <3000000>;
> + };
> +
> + vgen1_reg: vgen1 {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <3150000>;
> + };
> +
> + vgen2_reg: vgen2 {
> + regulator-min-microvolt = <3150000>;
> + regulator-max-microvolt = <3150000>;
> + regulator-always-on;
> + };
> +
> + vgen3_reg: vgen3 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2900000>;
> + regulator-always-on;
> + };
> + };
> + };
> +
> + flash: sst25vf032b@1 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "sst,sst25vf032b";
> + spi-max-frequency = <25000000>;
> + reg = <1>;
> +
> + partition@0 {
> + label = "firmware";
> + reg = <0x0 0x200000>;
> + };
> +
> + partition@200000 {
> + label = "user";
> + reg = <0x200000 0x200000>;
> + };
> + };
> + };
> + };
> +
> + wdog@73f98000 {
> + status = "okay";
> + };

Remove it. I have queued a patch to enable wdog in <soc>.dtsi
by default.

> +
> + iomuxc@73fa8000 {
> + compatible = "fsl,imx51-iomuxc";
> + reg = <0x73fa8000 0x4000>;
> + };
> +
> + uart1: serial@73fbc000 {
> + fsl,uart-has-rtscts;
> + status = "okay";
> + };
> +
> + };
> +
> + aips@80000000 {
> + sdma@83fb0000 {
> + fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin";
> + };

Remove it. I have seen a patch to move this name into <soc>.dtsi
as default.

> +
> + i2c@83fc4000 {
> + status = "okay";
> +
> + codec: sgtl5000@0a {
> + compatible = "fsl,sgtl5000";
> + reg = <0x0a>;
> + clock-frequency = <12288000>;
> + VDDA-supply = <&vdig_reg>;
> + VDDIO-supply = <&vvideo_reg>;
> + };
> + };
> +
> + audmux@83fd0000 {
> + status = "okay";
> + };
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + power {
> + label = "Power Button";
> + gpios = <&gpio2 31 0>;
> + linux,code = <116>; /* KEY_POWER */
> + gpio-key,wakeup;
> + };
> + };
> +
> + gpio-leds {
> + compatible = "gpio-leds";
> +
> + red {
> + label = "red";
> + gpios = <&gpio3 13>;
> + linux,default-trigger = "ide-disk";
> + };
> +
> + green {
> + label = "green";
> + gpios = <&gpio3 14>;
> + linux,default-trigger = "default-on";
> + };
> +
> + blue {
> + label = "blue";
> + gpios = <&gpio3 15>;
> + linux,default-trigger = "mmc0";
> + };
> + };
> +
> + sound {
> + compatible = "fsl,imx-audio-sgtl5000";
> + model = "efikamx-sgtl5000";
> + ssi-controller = <&ssi2>;
> + audio-routing =
> + "MIC_IN", "Mic Jack",
> + "Mic Jack", "Mic Bias",
> + "Ext Spk", "LINE_OUT";
> + audio-codec = <&codec>;
> + mux-int-port = <2>;
> + mux-ext-port = <3>;
> + };
> +};
> diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
> index 05541cf..3ed7c9d 100644
> --- a/arch/arm/mach-imx/Makefile.boot
> +++ b/arch/arm/mach-imx/Makefile.boot
> @@ -38,7 +38,7 @@ zreladdr-$(CONFIG_SOC_IMX6Q) += 0x10008000
> params_phys-$(CONFIG_SOC_IMX6Q) := 0x10000100
> initrd_phys-$(CONFIG_SOC_IMX6Q) := 0x10800000
>
> -dtb-$(CONFIG_MACH_IMX51_DT) += imx51-babbage.dtb
> +dtb-$(CONFIG_MACH_IMX51_DT) += imx51-babbage.dtb imx51-efikamx.dtb

Please have the new entry on the new line like dtb-$(CONFIG_SOC_IMX6Q).
Yes, we will change dtb-$(CONFIG_MACH_IMX53_DT).

> dtb-$(CONFIG_MACH_IMX53_DT) += imx53-ard.dtb imx53-evk.dtb \
> imx53-qsb.dtb imx53-smd.dtb
> dtb-$(CONFIG_SOC_IMX6Q) += imx6q-arm2.dtb \
> --
> 1.7.9.5
>

--
Regards,
Shawn

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/