[PATCH 21/21] imx93_evk: Enable M.2 VPCIe_3V3 and deassert SD3_nRST

Peng Fan peng.fan at nxp.com
Wed Sep 18 02:21:18 CEST 2024


Hi Fabio,

> Subject: Re: [PATCH 21/21] imx93_evk: Enable M.2 VPCIe_3V3 and
> deassert SD3_nRST
> 
> Hi Peng,
> 
> On Mon, Sep 16, 2024 at 11:31 PM Peng Fan (OSS)
> <peng.fan at oss.nxp.com> wrote:
> 
> > +       /* Enable EXT1_PWREN for PCIE_3.3V */
> > +       ret = dm_gpio_lookup_name("gpio at 22_13", &desc);
> > +       if (ret)
> > +               return;
> > +
> > +       ret = dm_gpio_request(&desc, "EXT1_PWREN");
> > +       if (ret)
> > +               return;
> > +
> > +       dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> > +       dm_gpio_set_value(&desc, 1);
> > +
> > +       /* Deassert SD3_nRST */
> > +       ret = dm_gpio_lookup_name("gpio at 22_12", &desc);
> > +       if (ret)
> > +               return;
> > +
> > +       ret = dm_gpio_request(&desc, "SD3_nRST");
> > +       if (ret)
> > +               return;
> > +
> > +       dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> > +       dm_gpio_set_value(&desc, 1);
> 
> Why do we need all this board code? This should be properly described
> in the devicetree.

I just cherry-picked the patches from imx v2024.04,
I agree your point that the board code should be dropped.

> 
> How does Linux deal with it?

The linux changes still in downstream as below:
        /*                                                                                          
         * For this spi-nor on M.2 card, need first enable the VPCIe_3.3v.                          
         * Note, VPCIe_3.3v need about 1.74ms to change from 0v to 3.3v.                            
         * U-boot already enable VPCIe_3.3v, so in linux, can ignore this                           
         * 1.7ms, if u-boot do not eanble VPCIe_3.3v first, then need to                            
         * take care of the 1.74ms delay, better to build the flexspi driver                        
         * as module in driver to avoid spi-nor probe fail.                                         
         */                                                                                         
        pinctrl-assert-gpios = <&pcal6524 13 GPIO_ACTIVE_HIGH>,  /* enable VPCIe_3v3 */             
                               <&pcal6524 20 GPIO_ACTIVE_HIGH>,  /* enable SPI-NOR VCC 1.8v */      
                               <&pcal6524 12 GPIO_ACTIVE_HIGH>;  /* put SPI-NOR RST pin to 1.8v */

To use device tree, need use reset-gpios property I think.

Regards,
Peng.


More information about the U-Boot mailing list