linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: b29396@freescale.com (Dong Aisheng)
To: linux-arm-kernel@lists.infradead.org
Subject: eMMC 4.51
Date: Fri, 18 Oct 2013 14:59:31 +0800	[thread overview]
Message-ID: <20131018065930.GA22289@shlinux2.ap.freescale.net> (raw)
In-Reply-To: <CA+6rjLzaLZ=R_iEjgu4wB57j1pFraHpAjrg24Er2=SVefVGt7g@mail.gmail.com>

Hi Jackey,

The imx6sl SD controller supports SDIO 3.0.
I've verified it with a Broadcom SDIO 3.0 WiFi card and it can be
identified as SDR104 mode.

Regards
Dong Aisheng

On Fri, Oct 18, 2013 at 02:04:01PM +0800, Jackey Shen wrote:
> Hi John,
> 
> Does your SD host controller support 3.0 card? As I know, Marvel
> SDIO8797 can work at UHS-I SDR104. Did you test it?
> 
> Thanks,
> Jackey
> 
> On Thu, Oct 10, 2013 at 2:00 AM, John Tobias <john.tobias.ph@gmail.com> wrote:
> > Hi Jackey,
> >
> > The Marvel SD8797 work fine but there are some cases that the firmware
> > failed to load during the system boot up. Although, we managed it by
> > power cycling the power source of the Marvel chip so that the kernel
> > will able to detect and reinitialize again.
> >
> > The module was running in high speed, 4bit bus width.
> >
> > Here are some info:
> >
> > # iperf -c 192.168.x.x -t 60 -i 10
> > ------------------------------------------------------------
> > Client connecting to 192.168.x.x, TCP port 5001
> > TCP window size: 20.7 KByte (default)
> > ------------------------------------------------------------
> > [  3] local 192.168.x.x port 52071 connected with 192.168.x.x port 5001
> > [ ID] Interval       Transfer     Bandwidth
> > [  3]  0.0-10.0 sec  48.0 MBytes  40.3 Mbits/sec
> > [  3] 10.0-20.0 sec  53.4 MBytes  44.8 Mbits/sec
> > [  3] 20.0-30.0 sec  53.8 MBytes  45.1 Mbits/sec
> > [  3] 30.0-40.0 sec  56.4 MBytes  47.3 Mbits/sec
> > [  3] 40.0-50.0 sec  54.2 MBytes  45.5 Mbits/sec
> > [  3] 50.0-60.0 sec  53.5 MBytes  44.9 Mbits/sec
> > [  3]  0.0-60.0 sec   319 MBytes  44.6 Mbits/sec
> >
> > # iwconfig mlan0
> > mlan0     IEEE 802.11abgn  ESSID:"Pxx-xxx"
> >           Mode:Managed  Frequency:2.437 GHz  Access Point:
> > BC:Dx:xx:xx:xx:xx
> >           Bit Rate=135 Mb/s
> >           Retry  long limit:7   RTS thr:off   Fragment thr:off
> >           Encryption key:off
> >           Power Management:on
> >           Link Quality=70/70  Signal level=-28 dBm
> >           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
> >           Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> >
> > Regards,
> >
> > john
> >
> >
> >
> > On Wed, Oct 9, 2013 at 12:23 AM, Jackey Shen <jackey.shen.bo@gmail.com>
> > wrote:
> >> Hi John,
> >>
> >> Does wifi module (Marvel SD8797) work fine on your board? What speed does
> >> it
> >> run at? SDR104?
> >>
> >> Thanks,
> >> Jackey
> >>
> >> On Wed, Oct 9, 2013 at 10:00 AM, John Tobias <john.tobias.ph@gmail.com>
> >> wrote:
> >>>
> >>> Hello,
> >>>
> >>> I am using git://gitorious.org/thierryreding/linux-next.git to boot my
> >>> custom board based on iMX6 sololite. My board has SanDisk iNAND 4.51
> >>> I/F and wifi module (Marvel SD8797). The latest update of
> >>> sdhci-esdhc-imx.c supports DDR50/SDR50/SDR104 and I would like to use
> >>> it for my device.
> >>>
> >>> In my .dts file, I have the following settings:
> >>>
> >>> /* WIFI module */
> >>> &usdhc2 {
> >>> pinctrl-names = "default", "state_100mhz", "state_200mhz";
> >>> pinctrl-0 = <&pinctrl_usdhc2_2_default>;
> >>> pinctrl-1 = <&pinctrl_usdhc2_3_100mhz>;
> >>> pinctrl-2 = <&pinctrl_usdhc2_4_200mhz>;
> >>> bus-width = <4>;
> >>> status = "okay";
> >>> };
> >>>
> >>> /* eMMC module  */
> >>> &usdhc4 {
> >>> pinctrl-names = "default", "state_100mhz", "state_200mhz";
> >>> pinctrl-0 = <&pinctrl_usdhc4_2_default>;
> >>> pinctrl-1 = <&pinctrl_usdhc4_3_100mhz>;
> >>> pinctrl-2 = <&pinctrl_usdhc4_4_200mhz>;
> >>> bus-width = <8>;
> >>> status = "okay";
> >>> compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
> >>> reg = <0x0219c000 0x4000>;
> >>> };
> >>>
> >>> Then, in my .dtsi file:
> >>>
> >>> usdhc2 {
> >>> /*WIFI pinmux */
> >>> pinctrl_usdhc2_2_default: default {
> >>> fsl,pins = <
> >>> EVT1_PAD_SD2_CMD__SD2_CMD     0x17039
> >>> EVT1_PAD_SD2_CLK__SD2_CLK     0x17039
> >>> EVT1_PAD_SD2_DATA0__SD2_DATA0 0x17039
> >>> EVT1_PAD_SD2_DATA1__SD2_DATA1 0x17039
> >>> EVT1_PAD_SD2_DATA2__SD2_DATA2 0x17039
> >>> EVT1_PAD_SD2_DATA3__SD2_DATA3 0x17039
> >>> >;
> >>> };
> >>>
> >>> pinctrl_usdhc2_3_100mhz: state_100mhz { /* 100Mhz */
> >>> fsl,pins = <
> >>> EVT1_PAD_SD2_CMD__SD2_CMD 0x170B9
> >>> EVT1_PAD_SD2_CLK__SD2_CLK 0x100B9
> >>> EVT1_PAD_SD2_DATA0__SD2_DATA0 0x170B9
> >>> EVT1_PAD_SD2_DATA1__SD2_DATA1 0x170B9
> >>> EVT1_PAD_SD2_DATA2__SD2_DATA2 0x170B9
> >>> EVT1_PAD_SD2_DATA3__SD2_DATA3 0x170B9
> >>> >;
> >>> };
> >>>
> >>> pinctrl_usdhc2_4_200mhz: state_200mhz { /* 200Mhz */
> >>> fsl,pins = <
> >>> EVT1_PAD_SD2_CMD__SD2_CMD 0x170F9
> >>> EVT1_PAD_SD2_CLK__SD2_CLK 0x100F9
> >>> EVT1_PAD_SD2_DATA0__SD2_DATA0 0x170F9
> >>> EVT1_PAD_SD2_DATA1__SD2_DATA1 0x170F9
> >>> EVT1_PAD_SD2_DATA2__SD2_DATA2 0x170F9
> >>> EVT1_PAD_SD2_DATA3__SD2_DATA3 0x170F9
> >>> >;
> >>> };
> >>> };
> >>>
> >>> usdhc4 {
> >>> /* eMMC pinmux */
> >>> pinctrl_usdhc4_2_default: default {
> >>> fsl,pins = <
> >>> EVT1_PAD_EPDC_BDR1__SD4_CMD       0x17039
> >>> EVT1_PAD_EPDC_BDR0__SD4_CLK       0x10039
> >>> EVT1_PAD_EPDC_PWR_COM__SD4_DATA0  0x17039
> >>> EVT1_PAD_EPDC_PWR_IRQ__SD4_DATA1  0x17039
> >>> EVT1_PAD_EPDC_PWR_STAT__SD4_DATA2 0x17039
> >>> EVT1_PAD_EPDC_PWR_WAKE__SD4_DATA3 0x17039
> >>> EVT1_PAD_FEC_MDC__SD4_DATA4 0x17039
> >>> EVT1_PAD_FEC_RX_DATA0__SD4_DATA5  0x17039
> >>> EVT1_PAD_FEC_TX_EN__SD4_DATA6     0x17039
> >>> EVT1_PAD_FEC_TX_DATA1__SD4_DATA7  0x17039
> >>> >;
> >>> };
> >>>
> >>> pinctrl_usdhc4_3_100mhz: state_100mhz { /* 100Mhz */
> >>> fsl,pins = <
> >>> EVT1_PAD_EPDC_BDR1__SD4_CMD 0x170B9
> >>> EVT1_PAD_EPDC_BDR0__SD4_CLK   0x100B9
> >>> EVT1_PAD_EPDC_PWR_COM__SD4_DATA0 0x170B9
> >>> EVT1_PAD_EPDC_PWR_IRQ__SD4_DATA1 0x170B9
> >>> EVT1_PAD_EPDC_PWR_STAT__SD4_DATA2 0x170B9
> >>> EVT1_PAD_EPDC_PWR_WAKE__SD4_DATA3 0x170B9
> >>> EVT1_PAD_FEC_MDC__SD4_DATA4 0x170B9
> >>> EVT1_PAD_FEC_RX_DATA0__SD4_DATA5  0x170B9
> >>> EVT1_PAD_FEC_TX_EN__SD4_DATA6     0x170B9
> >>> EVT1_PAD_FEC_TX_DATA1__SD4_DATA7  0x170B9
> >>> >;
> >>> };
> >>>
> >>> pinctrl_usdhc4_4_200mhz: state_200mhz { /* 200Mhz */
> >>> fsl,pins = <
> >>> EVT1_PAD_EPDC_BDR1__SD4_CMD 0x170F9
> >>> EVT1_PAD_EPDC_BDR0__SD4_CLK   0x100F9
> >>> EVT1_PAD_EPDC_PWR_COM__SD4_DATA0 0x170F9
> >>> EVT1_PAD_EPDC_PWR_IRQ__SD4_DATA1 0x170F9
> >>> EVT1_PAD_EPDC_PWR_STAT__SD4_DATA2 0x170F9
> >>> EVT1_PAD_EPDC_PWR_WAKE__SD4_DATA3 0x170F9
> >>> EVT1_PAD_FEC_MDC__SD4_DATA4 0x170F9
> >>> EVT1_PAD_FEC_RX_DATA0__SD4_DATA5  0x170F9
> >>> EVT1_PAD_FEC_TX_EN__SD4_DATA6     0x170F9
> >>> EVT1_PAD_FEC_TX_DATA1__SD4_DATA7  0x170F9
> >>> >;
> >>> };
> >>> };
> >>>
> >>>
> >>> 1. After using the said pinmux settings, the sdhci-esdh-imx controller
> >>> wasn't able to configure it correctly due the the group name for the
> >>> two port were the same (default, state_100mhz, state_200mhz).
> >>>
> >>> 2. Then, I temporarily disabled usdhc4 to test if the driver able to
> >>> enable the SDR50 for my wifi. Then, I was getting the following
> >>> errors:
> >>>
> >>> [    1.655024] mmc0: error -110 whilst initialising SDIO card
> >>> [    3.746340] mmc0: error -110 whilst initialising SDIO card
> >>> [    3.818624] mmc0: host doesn't support card's voltages
> >>> [    3.823783] mmc0: error -22 whilst initialising SDIO card
> >>> [    3.901670] mmc0: host doesn't support card's voltages
> >>> [    3.906862] mmc0: error -22 whilst initialising SDIO card
> >>> [   34.307777] mmc0: host doesn't support card's voltages
> >>> [   34.312980] mmc0: error -22 whilst initialising SDIO card
> >>>
> >>> 3. Then, I tried the eMMC to see if the driver able to enable the
> >>> DDR50. After booting it, the kernel detect the eMMC only in hight
> >>> speed mode.
> >>>
> >>>
> >>> I would like to know if anyone here can help me to figure out how to
> >>> enable the DDR50 for my eMMC and SDR50 for my wifi as well.
> >>>
> >>> Regards,
> >>>
> >>> john
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> >>> the body of a message to majordomo at vger.kernel.org
> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >>
> >>
> 

  reply	other threads:[~2013-10-18  6:59 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-09  2:00 eMMC 4.51 John Tobias
2013-10-09  3:49 ` Shawn Guo
2013-10-09  4:33   ` John Tobias
     [not found] ` <CA+6rjLzLhA-zzTqWuzFCMXa1v9CgS-O+Rrnqsfpw9=UY_1vuMA@mail.gmail.com>
2013-10-09 18:00   ` John Tobias
2013-10-18  6:04     ` Jackey Shen
2013-10-18  6:59       ` Dong Aisheng [this message]
2013-10-28  2:34         ` Jackey Shen
2013-10-28  2:38           ` Dong Aisheng
2013-10-21 22:58       ` John Tobias
2013-10-28  2:22         ` Jackey Shen

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=20131018065930.GA22289@shlinux2.ap.freescale.net \
    --to=b29396@freescale.com \
    --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).