From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] Question regarding early pinctrl and driver model in u-boot
Date: Thu, 6 Dec 2018 09:50:00 +0100 [thread overview]
Message-ID: <20181206094912.2ddb6611@jawa> (raw)
In-Reply-To: <CAPnjgZ2hSf6bjGevXHz1we=WYPx=NVy+ecbBrUm+ifBo57gRcQ@mail.gmail.com>
Hi Simon,
> Hi Lukasz,
>
> On Mon, 3 Dec 2018 at 15:13, Lukasz Majewski <lukma@denx.de> wrote:
> >
> > Dear All,
> >
> > I've stumbled upon a following issue:
> >
> > - I do have a vybrid SoC which is not using SPL. It only uses U-boot
> > proper (u-boot.vyb).
> >
> > - In the board_early_init_f() (when we are still in SRAM) I do
> > perform pinctrl (pinmux) setup for UART1 (this is the console
> > device).
> >
> > - I also do use ucalss-serial.c for this device and have proper
> > pinmux definition for it in the *.dts file - but this is done
> > latter.
> >
> > The problem is that, when I try to remove pinmux setup code
> > (imx_iomux_v3_setup_multiple_pads()) from board_early_init_f(),
> > then I do see uart output late (no U-boot early output - U-Boot
> > 2018.11-00052-g6552299a40-dirty (Nov 23 2018 - 16:13:51 +0100)).
> >
> > The reason for this is the lack of pinctrl UART pins setup.
> >
> >
> > Do you see any idea how to move to full dts support for uart? The
> > uart driver and pinmux have defined DM_FLAG_PRE_RELOC.
>
> Is this due to pinconfig_post_bind() only operating after relocation?
Please correct me if I'm wrong, but post_bind() callback is called with
device_bind_* family of functions?
Those functions - e.g. device_bind() are used in an interesting way
- e.g.: drivers/gpio/s5p_gpio.c -> gpio_exynos_bind().
The problem seems to be with the time pinctrl device itself is probed
(way after board_early_init_f()).
IMHO it would be enough to "probe" pinctrl itself very early (before
relocation - DDR setup) to just configure pins from iomux's pictrl_hog
group (and put there DDR and uart pins) - not waiting for other devices
to be "discovered" (like uart).
>
> >
> >
> > The same kind of problem I do have with DDR memory controller pin
> > setup. It would be nice to have it all in DTS, not in a board file.
> >
> >
> >
> >
> > [ My idea would be to manually extract relevant data from fdt blob
> > and configure pins in board_early_init_f(), but this looks like a
> > hack - maybe there is another, better solution? ]
>
> Hopefully :-)
>
> Regards,
> Simon
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181206/3bf9e520/attachment.sig>
next prev parent reply other threads:[~2018-12-06 8:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-03 22:13 [U-Boot] Question regarding early pinctrl and driver model in u-boot Lukasz Majewski
2018-12-06 1:31 ` Simon Glass
2018-12-06 8:50 ` Lukasz Majewski [this message]
2018-12-11 1:04 ` Simon Glass
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=20181206094912.2ddb6611@jawa \
--to=lukma@denx.de \
--cc=u-boot@lists.denx.de \
/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