From: Steve Rae <srae@broadcom.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/4] usb: gadget: bcm_udc_otg files
Date: Tue, 7 Jul 2015 13:26:30 -0700 [thread overview]
Message-ID: <559C35F6.4010106@broadcom.com> (raw)
In-Reply-To: <20150707153313.582c57d5@amdc2363>
Hi, Lukasz
On 15-07-07 06:33 AM, Lukasz Majewski wrote:
> 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.
this is not standard practice at Broadcom....
and it seems that at least five (5) people have contributed to the code
in this commit....
What would you suggest? The most recent author, or ???
>
>> + *
>> + * 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?
Hmmm - since writel() and readl() are also macros, it makes it difficult
to make these into functions....
I guess we could use "uintprt_t" and "uint32_t"
Would you agree?
>
>> +
>> +#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?
OK
>> +
>> + /* 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);
>> +}
>
>
>
Thanks, Steve
next prev parent reply other threads:[~2015-07-07 20:26 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
2015-07-07 20:26 ` Steve Rae [this message]
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=559C35F6.4010106@broadcom.com \
--to=srae@broadcom.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