AnsweredAssumed Answered

iMX283 GPMI Nand Flash false voltage levels

Question asked by Diego Caacanova on Feb 12, 2015
Latest reply on Feb 18, 2015 by CarlosCasillas

Hello Everybody,

 

We're developing an ethernet gateway device with the iMX283 processor.

 

Our problem is, that our NAND Flash has 1.8V levels, but the iMX is working with 3.3V levels over the GPMI Port.

We have set up the HW_PINCTRL_DRIVEx Register correctly for operations with 1.8V. The levels are now for about 250ns at 1.8 and then rise to 3.3V...

 

Our thought is, that something in the .dts file isn't set up correctly. Our .dts file looks currently like this:

 

/dts-v1/;

#include "imx28.dtsi"

#include <dt-bindings/gpio/gpio.h>

 

/ {

    model = "IMX28 Modul";

    compatible = "tem,imx28", "fsl,imx28";

 

    memory {

        reg = <0x40000000 0x08000000>;

    };

};

 

&pinctrl {

    pinctrl-names = "default";

    pinctrl-0 = <&hog_pins_a>;

 

    hog_pins_a: hog@0 {

        reg = <0>;

        fsl,pinmux-ids = <

            /* RS485 Setup */

            /* MX28_PAD_SAIF0_LRCLK__GPIO_3_21 */

            MX28_PAD_SAIF0_LRCLK__AUART4_RTS

            MX28_PAD_SAIF0_BITCLK__GPIO_3_22

            MX28_PAD_SAIF0_BITCLK__AUART4_RX

            /* MX28_PAD_SSP2_SS0__GPIO_2_19 */

            MX28_PAD_SSP2_SS1__GPIO_2_20

            MX28_PAD_SSP2_SS2__GPIO_2_21

        >;

        fsl,drive-strength = <MXS_DRIVE_4mA>;

        fsl,voltage = <MXS_VOLTAGE_HIGH>;

        fsl,pull-up = <MXS_PULL_DISABLE>;

    };

 

    gpmi_pins_b: gpmi-nand@0 {

        reg = <0>;

        fsl,pinmux-ids = <

            MX28_PAD_GPMI_D00__GPMI_D0

            MX28_PAD_GPMI_D01__GPMI_D1

            MX28_PAD_GPMI_D02__GPMI_D2

            MX28_PAD_GPMI_D03__GPMI_D3

            MX28_PAD_GPMI_D04__GPMI_D4

            MX28_PAD_GPMI_D05__GPMI_D5

            MX28_PAD_GPMI_D06__GPMI_D6

            MX28_PAD_GPMI_D07__GPMI_D7

            MX28_PAD_GPMI_CE0N__GPMI_CE0N

            MX28_PAD_GPMI_RDY0__GPMI_READY0

            MX28_PAD_GPMI_RDN__GPMI_RDN

            MX28_PAD_GPMI_WRN__GPMI_WRN

            MX28_PAD_GPMI_ALE__GPMI_ALE

            MX28_PAD_GPMI_CLE__GPMI_CLE

            MX28_PAD_GPMI_RESETN__GPMI_RESETN

        >;

        fsl,drive-strength = <MXS_DRIVE_4mA>;

        fsl,voltage = <MXS_VOLTAGE_LOW>;

        fsl,pull-up = <MXS_PULL_DISABLE>;

    };

};

 

&gpmi {

    pinctrl-0 = <&gpmi_pins_b &gpmi_status_cfg>;

    nand-on-flash-bbt;

    status = "okay";

 

    partition@0 {

        label = "boot";

        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>;

    };

};

 

&digctl {

    status = "okay";

};

 

/* 1st TX-Std UART - (D)UART */

&duart {

    pinctrl-names = "default";

    pinctrl-0 = <&duart_4pins_a>;

    status = "okay";

};

 

 

&mac0 {

    phy-mode = "rmii";

    pinctrl-names = "default";

    pinctrl-0 = <&mac0_pins_a>;

    status = "okay";

};

 

&mxs_rtc {

    status = "okay";

};

 

&ocotp {

    status = "okay";

};

 

&ssp0 {

    compatible = "fsl,imx28-mmc";

    pinctrl-names = "default";

    pinctrl-0 = <&mmc0_4bit_pins_a>;

    bus-width = <4>;

    status = "okay";

};

 

&ssp2 {

    compatible = "fsl,imx28-spi";

    pinctrl-names = "default";

    pinctrl-0 = <&spi2_pins_a>;

    clock-frequency = <57600000>;

    status = "okay";

    cs-gpios = <&gpio2 19 0 &gpio2 20 0>;

    num-chipselects = <2>;

 

    spidev0: spi@0 {

        compatible = "spidev";

        reg = <0>;

        spi-max-frequency = <57600000>;

    };

 

    spidev1: spi@1 {

        compatible = "spidev";

        reg = <1>;

        spi-max-frequency = <57600000>;

    };

 

};

 


Thanks for your help


Kind Regards,

Diego Caacanova

Outcomes