From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0CE63C433EF for ; Sat, 2 Apr 2022 00:48:41 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BA71881D4B; Sat, 2 Apr 2022 02:48:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1648860515; bh=6icgykpCgYNIrHsZKbMyC47zeZwOnnoQgyNmbC8HzeE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=s3akMhWN2y/9Y7+Se0qTaoT7JJtp77Kj6y8YJTFZRaAmQHlyu4qSOA1Co19eYOzdN UCHY5Z5fbMDvBq/MmeH1ht1NsLtImjMOa/68oxU5ENSPo8nqEByO9oU4VO5cRcA6P2 JQ7BRJGz+3nQn5ODRd1COfo6EWZqr3616D9H68cxErPbHN6KmzvAsEc4fsAokh44DO OfkV6BtGgxnWu/5WVMNfDAXsWKKO8hatWnKTxtm8XHvZKW84DmqtvWWHaVXXMHQhgm IrjstrDBS1oshnw0ffhfnhpBxgMiTOFTUD9PcR9LDwmQILi98Rmeao/0tmYcgA2MyA GDqa6ZhAF/PLQ== Received: from [127.0.0.1] (p578adb1c.dip0.t-ipconnect.de [87.138.219.28]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: marex@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id 27F038141C; Sat, 2 Apr 2022 02:48:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1648860510; bh=6icgykpCgYNIrHsZKbMyC47zeZwOnnoQgyNmbC8HzeE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=qaqL/PQcGGPoLavYYvZqBMQ8qnrraUpZkuXQ3BVcRYS38n0OwtYxVjHdruiB0jr9V uBjsVeLJfl2URThqw5g+gjW705BTL0UrbBn0TvWNuLGjtOswM62jzYRNNYWRVNBabK sz0/yLkav97dh50Wa9j75UYLXjkt8BC3E7n1NPBOpJ1e2kdP7UbI5NFrw3pTXEYyFc qLSZO/77SI897VUod3rS7cr60yLamohHv8IZrCSad4/yd6WQdxYjLoISfg2DO+GQAe X1E+PIi3aa02VToyyq9zOqmwizQHRc59B14fGuP8fYQPDY/3Sho+i51riaPjtG92Ba 9aznUUF4qI/8w== Message-ID: Date: Sat, 2 Apr 2022 02:48:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH 2/2] usb: dwc3: Implement .glue_configure for i.MX8MP Content-Language: en-US To: Tim Harvey Cc: u-boot , Angus Ainslie , Bin Meng , Fabio Estevam , Kunihiko Hayashi , Michal Simek , Peng Fan , Stefano Babic References: <20220401143139.221638-1-marex@denx.de> <20220401143139.221638-2-marex@denx.de> From: Marek Vasut In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On 4/1/22 23:28, Tim Harvey wrote: > On Fri, Apr 1, 2022 at 7:32 AM Marek Vasut wrote: >> >> The i.MX8MP glue needs to be configured based on a couple of DT >> properties, implement .glue_configure callback to parse those DT >> properties and configure the glue accordingly. >> >> Signed-off-by: Marek Vasut >> Cc: Angus Ainslie >> Cc: Bin Meng >> Cc: Fabio Estevam >> Cc: Kunihiko Hayashi >> Cc: Michal Simek >> Cc: Peng Fan >> Cc: Stefano Babic >> --- >> drivers/usb/dwc3/dwc3-generic.c | 52 +++++++++++++++++++++++++++++++++ >> 1 file changed, 52 insertions(+) >> >> diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c >> index 7e3814207e4..6cf844cb483 100644 >> --- a/drivers/usb/dwc3/dwc3-generic.c >> +++ b/drivers/usb/dwc3/dwc3-generic.c >> @@ -223,6 +223,57 @@ struct dwc3_glue_ops { >> enum usb_dr_mode mode); >> }; >> >> +void dwc3_imx8mp_glue_configure(struct udevice *dev, int index, >> + enum usb_dr_mode mode) >> +{ >> +/* USB glue registers */ >> +#define USB_CTRL0 0x00 >> +#define USB_CTRL1 0x04 >> + >> +#define USB_CTRL0_PORTPWR_EN BIT(12) /* 1 - PPC enabled (default) */ >> +#define USB_CTRL0_USB3_FIXED BIT(22) /* 1 - USB3 permanent attached */ >> +#define USB_CTRL0_USB2_FIXED BIT(23) /* 1 - USB2 permanent attached */ >> + >> +#define USB_CTRL1_OC_POLARITY BIT(16) /* 0 - HIGH / 1 - LOW */ >> +#define USB_CTRL1_PWR_POLARITY BIT(17) /* 0 - HIGH / 1 - LOW */ >> + fdt_addr_t regs = dev_read_addr_index(dev, 1); >> + void *base = map_physmem(regs, 0x8, MAP_NOCACHE); >> + u32 value; >> + >> + value = readl(base + USB_CTRL0); >> + >> + if (dev_read_bool(dev, "fsl,permanently-attached")) >> + value |= (USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED); >> + else >> + value &= ~(USB_CTRL0_USB2_FIXED | USB_CTRL0_USB3_FIXED); >> + >> + if (dev_read_bool(dev, "fsl,disable-port-power-control")) >> + value &= ~(USB_CTRL0_PORTPWR_EN); >> + else >> + value |= USB_CTRL0_PORTPWR_EN; >> + >> + writel(value, base + USB_CTRL0); >> + >> + value = readl(base + USB_CTRL1); >> + if (dev_read_bool(dev, "fsl,over-current-active-low")) >> + value |= USB_CTRL1_OC_POLARITY; >> + else >> + value &= ~USB_CTRL1_OC_POLARITY; >> + >> + if (dev_read_bool(dev, "fsl,power-active-low")) >> + value |= USB_CTRL1_PWR_POLARITY; >> + else >> + value &= ~USB_CTRL1_PWR_POLARITY; >> + >> + writel(value, base + USB_CTRL1); >> + >> + unmap_physmem(base, MAP_NOCACHE); >> +} >> + >> +struct dwc3_glue_ops imx8mp_ops = { >> + .glue_configure = dwc3_imx8mp_glue_configure, >> +}; >> + >> void dwc3_ti_glue_configure(struct udevice *dev, int index, >> enum usb_dr_mode mode) >> { >> @@ -464,6 +515,7 @@ static const struct udevice_id dwc3_glue_ids[] = { >> { .compatible = "rockchip,rk3328-dwc3" }, >> { .compatible = "rockchip,rk3399-dwc3" }, >> { .compatible = "qcom,dwc3" }, >> + { .compatible = "fsl,imx8mp-dwc3", .data = (ulong)&imx8mp_ops }, >> { .compatible = "fsl,imx8mq-dwc3" }, >> { .compatible = "intel,tangier-dwc3" }, >> { } >> -- >> 2.35.1 >> > > Marek, > > Looks like your working on IMX8MP USB support - thanks for that! > > I'm working on bring-up of an IMX8MP board and can test your > power-domain and USB patches but I'm having trouble getting some of > your patches to apply - do you have a repo I can pull from? https://source.denx.de/u-boot/custodians/u-boot-usb/-/commits/imx-8mp