From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/4] usb: gadget: bcm_udc_otg files
Date: Tue, 07 Jul 2015 15:33:13 +0200 [thread overview]
Message-ID: <20150707153313.582c57d5@amdc2363> (raw)
In-Reply-To: <1436212181-22040-4-git-send-email-srae@broadcom.com>
Hi Steve,
> From: "JD (Jiandong) Zheng" <jdzheng@broadcom.com>
>
> Add the required files for the Broadcom UDC OTG interface.
>
> Signed-off-by: Steve Rae <srae@broadcom.com>
> ---
>
> Changes in v2: None
>
> arch/arm/include/asm/arch-bcm281xx/sysmap.h | 7 ++++
> drivers/usb/gadget/bcm_udc_otg.h | 17 ++++++++++
> drivers/usb/gadget/bcm_udc_otg_phy.c | 50
> +++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+)
> create mode 100644 drivers/usb/gadget/bcm_udc_otg.h
> create mode 100644 drivers/usb/gadget/bcm_udc_otg_phy.c
>
> diff --git a/arch/arm/include/asm/arch-bcm281xx/sysmap.h
> b/arch/arm/include/asm/arch-bcm281xx/sysmap.h index 93ebf34..dbcc88c
> 100644 --- a/arch/arm/include/asm/arch-bcm281xx/sysmap.h
> +++ b/arch/arm/include/asm/arch-bcm281xx/sysmap.h
> @@ -27,4 +27,11 @@
> #define SECWD2_BASE_ADDR 0x35002f40
> #define TIMER_BASE_ADDR 0x3e00d000
>
> +#define HSOTG_DCTL_OFFSET
> 0x00000804 +#define
> HSOTG_DCTL_SFTDISCON_MASK 0x00000002 +
> +#define HSOTG_CTRL_PHY_P1CTL_OFFSET
> 0x00000008 +#define
> HSOTG_CTRL_PHY_P1CTL_SOFT_RESET_MASK
> 0x00000002 +#define
> HSOTG_CTRL_PHY_P1CTL_NON_DRIVING_MASK 0x00000001 +
> #endif diff --git a/drivers/usb/gadget/bcm_udc_otg.h
> b/drivers/usb/gadget/bcm_udc_otg.h new file mode 100644
> index 0000000..81a1fc0
> --- /dev/null
> +++ b/drivers/usb/gadget/bcm_udc_otg.h
> @@ -0,0 +1,17 @@
> +/*
> + * Copyright 2015 Broadcom Corporation.
--> Please also add the name of the code author.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#ifndef __BCM_UDC_OTG_H
> +#define __BCM_UDC_OTG_H
> +
> +#include <linux/types.h>
> +
> +#define wfld_set(addr, fld_val, fld_mask) \
> + (writel(((readl(addr) & ~(fld_mask)) | (fld_val)),
> (addr))) +#define wfld_clear(addr, fld_mask) \
> + (writel((readl(addr) & ~(fld_mask)), (addr)))
Maybe we could replace those preprocessor macros with static inline
functions?
> +
> +#endif
> diff --git a/drivers/usb/gadget/bcm_udc_otg_phy.c
> b/drivers/usb/gadget/bcm_udc_otg_phy.c new file mode 100644
> index 0000000..1aa9f91
> --- /dev/null
> +++ b/drivers/usb/gadget/bcm_udc_otg_phy.c
> @@ -0,0 +1,50 @@
> +/*
> + * Copyright 2015 Broadcom Corporation.
---> The same as above.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <config.h>
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/sysmap.h>
> +
> +#include <usb/s3c_udc.h>
> +#include "bcm_udc_otg.h"
> +
> +void otg_phy_init(struct s3c_udc *dev)
> +{
> + /* set Phy to driving mode */
> + wfld_clear(HSOTG_CTRL_BASE_ADDR +
> HSOTG_CTRL_PHY_P1CTL_OFFSET,
> + HSOTG_CTRL_PHY_P1CTL_NON_DRIVING_MASK);
> +
> + udelay(100);
> +
> + /* clear Soft Disconnect */
> + wfld_clear(HSOTG_BASE_ADDR + HSOTG_DCTL_OFFSET,
> + HSOTG_DCTL_SFTDISCON_MASK);
> +
> + /* invoke Reset (active low) */
> + wfld_clear(HSOTG_CTRL_BASE_ADDR +
> HSOTG_CTRL_PHY_P1CTL_OFFSET,
> + HSOTG_CTRL_PHY_P1CTL_SOFT_RESET_MASK);
> +
> + udelay(10000);
^^^^^^^^^^^^^^ -- would it be possible to add some comment
regarding for what we are waiting here?
> +
> + /* release Reset */
> + wfld_set(HSOTG_CTRL_BASE_ADDR + HSOTG_CTRL_PHY_P1CTL_OFFSET,
> + HSOTG_CTRL_PHY_P1CTL_SOFT_RESET_MASK,
> + HSOTG_CTRL_PHY_P1CTL_SOFT_RESET_MASK);
> +}
> +
> +void otg_phy_off(struct s3c_udc *dev)
> +{
> + /* Soft Disconnect */
> + wfld_set(HSOTG_BASE_ADDR + HSOTG_DCTL_OFFSET,
> + HSOTG_DCTL_SFTDISCON_MASK,
> + HSOTG_DCTL_SFTDISCON_MASK);
> +
> + /* set Phy to non-driving (reset) mode */
> + wfld_set(HSOTG_CTRL_BASE_ADDR + HSOTG_CTRL_PHY_P1CTL_OFFSET,
> + HSOTG_CTRL_PHY_P1CTL_NON_DRIVING_MASK,
> + HSOTG_CTRL_PHY_P1CTL_NON_DRIVING_MASK);
> +}
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
next prev parent reply other threads:[~2015-07-07 13:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-06 19:49 [U-Boot] [PATCH v2 0/4] This series implements fastboot on the "bcm28155_ap" boards Steve Rae
2015-07-06 19:49 ` [U-Boot] [PATCH v2 1/4] g_dnl: add missing declaration Steve Rae
2015-07-07 13:19 ` Lukasz Majewski
2015-07-06 19:49 ` [U-Boot] [PATCH v2 2/4] usb: s3c-otg: support 8-bit interface Steve Rae
2015-07-07 13:27 ` Lukasz Majewski
2015-07-07 19:43 ` Steve Rae
2015-07-08 14:14 ` Lukasz Majewski
2015-07-06 19:49 ` [U-Boot] [PATCH v2 3/4] usb: gadget: bcm_udc_otg files Steve Rae
2015-07-07 13:33 ` Lukasz Majewski [this message]
2015-07-07 20:26 ` Steve Rae
2015-07-08 14:22 ` Lukasz Majewski
2015-07-08 14:35 ` Marek Vasut
2015-07-06 19:49 ` [U-Boot] [PATCH v2 4/4] implement Fastboot via USB OTG on bcm28155_ap boards Steve Rae
2015-07-07 13:39 ` Lukasz Majewski
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=20150707153313.582c57d5@amdc2363 \
--to=l.majewski@samsung.com \
--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