From: George Cherian <george.cherian@ti.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: <linux-usb@vger.kernel.org>, <balbi@ti.com>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 5/5] usb: musb: dsps: use proper child nodes
Date: Thu, 1 Aug 2013 10:54:26 +0530 [thread overview]
Message-ID: <51F9F10A.4000908@ti.com> (raw)
In-Reply-To: <1375215401-19729-6-git-send-email-bigeasy@linutronix.de>
On 7/31/2013 1:46 AM, Sebastian Andrzej Siewior wrote:
> This moves the two instances from the big node into two child nodes. The
> glue layer ontop does almost nothing.
> There is one devices containing the control module for USB (2) phy,
> (2) usb and later the dma engine. The usb device is the "glue device"
> which contains the musb device as a child. This is what we do ever since.
> The new file musb_am335x is just here to prob the new bus and populate
> child devices.
> There are a lot of changes to the dsps file as a result of the changes:
> - musb_core_offset
> This is gone. The device tree provides memory ressources information
> for the device there is no need to "fix" things
> - instances
> This is gone as well. If we have two instances then we have have two
> child enabled nodes in the device tree. For instance the SoC in beagle
> bone has two USB instances but only one has been wired up so there is
> no need to load and init the second instance since it won't be used.
> - dsps_glue is now per glue device
> In the past there was one of this structs but with an array of two and
> each instance accessed its variable depending on the platform device
> id.
> - no unneeded copy of structs
> I do not know why struct dsps_musb_wrapper is copied but it is not
> necessary. The same goes for musb_hdrc_platform_data which allocated
> on demand and then again by platform_device_add_data(). One copy is
> enough.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
<snip >
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index 38b446b..0f756ca 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -26,6 +26,10 @@
> serial5 = &uart5;
> d_can0 = &dcan0;
> d_can1 = &dcan1;
> + usb0 = &usb0;
> + usb1 = &usb1;
> + phy0 = &usb0_phy;
> + phy1 = &usb1_phy;
> };
>
> cpus {
> @@ -333,21 +337,85 @@
> status = "disabled";
> };
>
> - usb@47400000 {
> - compatible = "ti,musb-am33xx";
> - reg = <0x47400000 0x1000 /* usbss */
> - 0x47401000 0x800 /* musb instance 0 */
> - 0x47401800 0x800>; /* musb instance 1 */
> - interrupts = <17 /* usbss */
> - 18 /* musb instance 0 */
> - 19>; /* musb instance 1 */
> - multipoint = <1>;
> - num-eps = <16>;
> - ram-bits = <12>;
> - port0-mode = <3>;
> - port1-mode = <3>;
> - power = <250>;
> + usb: usb@47400000 {
> + compatible = "ti,am33xx-usb";
> + reg = <0x47400000 0x1000>;
> + ranges;
> + #address-cells = <1>;
> + #size-cells = <1>;
> ti,hwmods = "usb_otg_hs";
> + status = "disabled";
> +
> + ctrl_mod: control@44e10000 {
> + compatible = "ti,am335x-ctrl-module";
> + reg = <0x44e10000 0x650>;
Do you really need to map Control Module base to 0x650? If some other driver does this mapping
we will always end returning -EPROBE_DEFER.
How about this
reg = <0x44e10620 0x4> ,
<0x44e10648 0x1>;
reg-names = "phycontrol_dev" , "phywkup_dev";
and map for power on/off and phywkup separately in the control driver.
> + reg-names = "control_dev";
> + status = "disabled";
> + };
> +
<snip>
> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
> index 797e3fd..b7257ae 100644
> --- a/drivers/usb/musb/Kconfig
> +++ b/drivers/usb/musb/Kconfig
> @@ -83,6 +83,7 @@ config USB_MUSB_AM35X
>
> config USB_MUSB_DSPS
> tristate "TI DSPS platforms"
> + select USB_MUSB_AM335X_CHILD
How about adding select AM335X_PHY_USB here?
>
> config USB_MUSB_BLACKFIN
> tristate "Blackfin"
> @@ -93,6 +94,9 @@ config USB_MUSB_UX500
>
> endchoice
>
> +config USB_MUSB_AM335X_CHILD
> + tristate
> +
> choice
> prompt 'MUSB DMA mode'
> default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM
>
--
-George
next prev parent reply other threads:[~2013-08-01 5:24 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-30 20:16 am335x, multi instance and phy support, v3 Sebastian Andrzej Siewior
2013-07-30 20:16 ` [PATCH 1/5] usb: phy: rename nop_usb_xceiv => usb_phy_gen_xceiv Sebastian Andrzej Siewior
2013-07-30 20:16 ` [PATCH 2/5] usb: phy: phy-generic: export init functions Sebastian Andrzej Siewior
2013-07-30 20:16 ` [PATCH 3/5] usb: phy: Add AM335x PHY driver Sebastian Andrzej Siewior
2013-08-01 5:36 ` George Cherian
2013-08-01 10:55 ` Sebastian Andrzej Siewior
2013-07-30 20:16 ` [PATCH 4/5] usb: musb: dsps: remove the hardcoded phy pieces Sebastian Andrzej Siewior
2013-07-30 20:16 ` [PATCH 5/5] usb: musb: dsps: use proper child nodes Sebastian Andrzej Siewior
2013-08-01 5:24 ` George Cherian [this message]
2013-08-01 10:52 ` Sebastian Andrzej Siewior
2013-08-01 11:30 ` Sebastian Andrzej Siewior
[not found] ` <51FA46C3.9000101-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2013-08-02 10:29 ` Sebastian Andrzej Siewior
2013-08-02 10:29 ` Sebastian Andrzej Siewior
2013-08-02 14:49 ` George Cherian
2013-08-02 14:49 ` George Cherian
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=51F9F10A.4000908@ti.com \
--to=george.cherian@ti.com \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.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.