[PATCH v1 4/7] usb: cdns: starfive: Add cdns USB driver
Marek Vasut
marex at denx.de
Wed May 8 03:35:40 CEST 2024
On 5/4/24 5:03 PM, Minda Chen wrote:
[...]
> +static void cdns_mode_init(struct cdns_starfive *data, enum usb_dr_mode mode)
> +{
> + regmap_update_bits(data->stg_syscon, data->stg_usb_mode,
> + USB_MISC_CFG_MASK,
> + USB_SUSPENDM_BYPS | USB_PLL_EN | USB_REFCLK_MODE);
> +
> + switch (mode) {
> + case USB_DR_MODE_HOST:
> + regmap_update_bits(data->stg_syscon,
> + data->stg_usb_mode,
> + USB_STRAP_MASK,
> + USB_STRAP_HOST);
> + regmap_update_bits(data->stg_syscon,
> + data->stg_usb_mode,
> + USB_SUSPENDM_MASK,
> + USB_SUSPENDM_HOST);
Can you deduplicate thse regmap_update_bits at the end of this function
? Set a variable to USB_STRAP_HOST and another to USB_SUSPENDM_HOST
here, set the same variables to USB_STRAP_DEVICE/0 below, and then call
regmap_update_bits() with these variables at the end of this function once.
> + break;
> +
> + case USB_DR_MODE_PERIPHERAL:
> + regmap_update_bits(data->stg_syscon, data->stg_usb_mode,
> + USB_STRAP_MASK, USB_STRAP_DEVICE);
> + regmap_update_bits(data->stg_syscon, data->stg_usb_mode,
> + USB_SUSPENDM_MASK, 0);
> + break;
> + default:
> + break;
> + }
> +}
[...]
More information about the U-Boot
mailing list