All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kyle Evans <kvans32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Kyle Evans <kvans32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Port SDIO GPIO to DTS
Date: Mon, 29 Jan 2018 21:52:29 -0500	[thread overview]
Message-ID: <20180130025229.GA1183@localhost.localdomain> (raw)
In-Reply-To: <91eab00b-9cfa-f150-369e-2426f9b9dc42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

* Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Hello Kyle,
> 
> On 18.01.2018 01:13, Kyle Evans wrote:
> > I have an ASUS TF101(ventana) that I am trying to get running on 
> > mainline. It is mostly there, but there are a few issues that I believe 
> > to be dts related. I am focusing on one at a time. Currently, when I 
> > warm boot/reboot, the wireless SDIO device fails to initialize. It 
> > works great on cold boot. I'm fairly certain the problem is in the 
> > dts, but I'd like some feedback on the correct way.
> >

> > I'm not sure of the difference between WLAN_WOW & SDIO_WOW. I'm 
> > assuming one for chip, one for radio, but I don't know their place in 
> > the dts.
> > 
> > From tegra20-ventana.dts I've got:
> > 
> > 	sdhci@c8000000 {
> >                 status = "okay";
> >                 power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
> >                 bus-width = <4>;
> >                 keep-power-in-suspend;
> >         };
> > 
> > I'm guessing I need to add the other pins to power-gpois and 
> > set up mmc-pwrseq?
> 
> The 'power-gpois' that you've defined looks fine and probably sufficient to get
> WiFi up and running.
> 
> Take a look at the changes that were needed to get WiFi working on Acer A500,
> maybe some of it also applicable to TF101:

Thanks for this. I have made some progress by adding regulator nodes 
for pins D,1 & K,6, but am now getting the following error on second 
boot.

[    2.425281] mmc2: Invalid maximum block size, assuming 512 bytes
[    2.480692] mmc2: SDHCI controller on c8000000.sdhci [c8000000.sdhci] using ADMA
[    2.494647] mmc2: error -110 whilst initialising SDIO card

> 
> https://github.com/digetx/picasso_upstream_support/commit/beab29d4f172836c5faad91d3232a7c77c5fc6fb
  HACK: mmc: sdio: Add workaround for wrongly reported CCCR

Would you recommend this over setting cap-sd-highspeed in the DT?
Without either communication has been trouble free thus far. 

> https://github.com/digetx/picasso_upstream_support/commit/165e488e82c97fa1da6ccfe832a43569136000bc
  mmc: Add "ignore mmc pm notify" functionality

This does not apply cleanly, what are the symptoms?

> https://github.com/digetx/picasso_upstream_support/commit/7e584ca4108707c6469a04bf92d9b659ce76c5cc
  ARM: tegra: Add Picasso board file

I am trying to implement this, but as-is boot hangs before u-boot clears.

static struct gpiod_lookup_table bluetooth_gpio_lookup = {
       .dev_id = "rfkill_gpio.1",
       .table = {
               GPIO_LOOKUP("tegra-gpio", 160, "reset", 0),
               { },
       },
}

Where does 160 come from?

static int __init tegra_picasso_wifi_pwr_and_reset(void)
{
       if (!of_machine_is_compatible("acer,picasso"))
               return 0;

       writel(0x00004000, IO_TO_VIRT(0x6000D928));
       writel(0x00004040, IO_TO_VIRT(0x6000D918));
       writel(0x00004040, IO_TO_VIRT(0x6000D908));

       writel(0x00000200, IO_TO_VIRT(0x6000D82C));
       writel(0x00000202, IO_TO_VIRT(0x6000D81C));
       writel(0x00000202, IO_TO_VIRT(0x6000D80C));

       writel(0x00004040, IO_TO_VIRT(0x6000D928));
       mdelay(100);

       writel(0x00000202, IO_TO_VIRT(0x6000D82C));
       mdelay(200);

       return 0;
}

What is this magic, or where to find it in a stock kernel? 

> https://github.com/digetx/picasso_upstream_support/commit/4f0d7ac43592826e03f766005a3720ecc5ad1476#diff-4ce775d33b1aadd3981ea13ea140eca6R702
  ARM: dt: tegra: Add Picasso board dts

> 
> Also note that (at least on A500) BCM chip also provides Bluetooth and the
> 'power/rst' GPIO affects both Wifi and Bluetooth.

  parent reply	other threads:[~2018-01-30  2:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 22:13 Port SDIO GPIO to DTS Kyle Evans
     [not found] ` <20180117221318.GA1594-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-01-18  0:38   ` Dmitry Osipenko
     [not found]     ` <91eab00b-9cfa-f150-369e-2426f9b9dc42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-30  2:52       ` Kyle Evans [this message]
     [not found]         ` <20180130025229.GA1183-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-01-31 14:18           ` Dmitry Osipenko
     [not found]             ` <c899990a-822b-ebd0-4ccb-2d4d117de8f6-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-02-02 16:06               ` Kyle Evans
     [not found]                 ` <20180202160635.GA1275-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2018-02-03 14:09                   ` Dmitry Osipenko

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=20180130025229.GA1183@localhost.localdomain \
    --to=kvans32-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.