Message ID | 20200407122852.19422-7-cristian.birsan@microchip.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: gadget: udc: atmel: add usb device support for SAM9x60 SoC | expand |
On 07/04/2020 15:28:51+0300, cristian.birsan@microchip.com wrote: > From: Cristian Birsan <cristian.birsan@microchip.com> > > Rename errata structure into capabilities (caps). It will be used to add > capabilities for new SoCs. Get the pointer to PMC only for the SoCs that > need it to perform toggle_bias or pulse_bias. > > Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com> > --- > drivers/usb/gadget/udc/atmel_usba_udc.c | 21 ++++++++++----------- > drivers/usb/gadget/udc/atmel_usba_udc.h | 4 ++-- > 2 files changed, 12 insertions(+), 13 deletions(-) > > diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c > index 1e2194fe06cb..dfe30913c76b 100644 > --- a/drivers/usb/gadget/udc/atmel_usba_udc.c > +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c > @@ -389,8 +389,8 @@ static int vbus_is_present(struct usba_udc *udc) > > static void toggle_bias(struct usba_udc *udc, int is_on) > { > - if (udc->errata && udc->errata->toggle_bias) > - udc->errata->toggle_bias(udc, is_on); > + if (udc->caps && udc->caps->toggle_bias) > + udc->caps->toggle_bias(udc, is_on); > } > > static void generate_bias_pulse(struct usba_udc *udc) > @@ -398,8 +398,8 @@ static void generate_bias_pulse(struct usba_udc *udc) > if (!udc->bias_pulse_needed) > return; > > - if (udc->errata && udc->errata->pulse_bias) > - udc->errata->pulse_bias(udc); > + if (udc->caps && udc->caps->pulse_bias) > + udc->caps->pulse_bias(udc); > > udc->bias_pulse_needed = false; > } > @@ -2032,17 +2032,17 @@ static void at91sam9g45_pulse_bias(struct usba_udc *udc) > AT91_PMC_BIASEN); > } > > -static const struct usba_udc_errata at91sam9rl_errata = { > +static const struct usba_udc_caps at91sam9rl_caps = { > .toggle_bias = at91sam9rl_toggle_bias, > }; > > -static const struct usba_udc_errata at91sam9g45_errata = { > +static const struct usba_udc_caps at91sam9g45_caps = { > .pulse_bias = at91sam9g45_pulse_bias, > }; > > static const struct of_device_id atmel_udc_dt_ids[] = { > - { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_errata }, > - { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_errata }, > + { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_caps }, > + { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_caps }, > { .compatible = "atmel,sama5d3-udc" }, > { /* sentinel */ } > }; > @@ -2053,7 +2053,6 @@ static const struct of_device_id atmel_pmc_dt_ids[] = { > { .compatible = "atmel,at91sam9g45-pmc" }, > { .compatible = "atmel,at91sam9rl-pmc" }, > { .compatible = "atmel,at91sam9x5-pmc" }, > - { .compatible = "microchip,sam9x60-pmc" }, This was added in 2/7 and is removed now. I believe the series needs a bit of rework.
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c index 1e2194fe06cb..dfe30913c76b 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.c +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c @@ -389,8 +389,8 @@ static int vbus_is_present(struct usba_udc *udc) static void toggle_bias(struct usba_udc *udc, int is_on) { - if (udc->errata && udc->errata->toggle_bias) - udc->errata->toggle_bias(udc, is_on); + if (udc->caps && udc->caps->toggle_bias) + udc->caps->toggle_bias(udc, is_on); } static void generate_bias_pulse(struct usba_udc *udc) @@ -398,8 +398,8 @@ static void generate_bias_pulse(struct usba_udc *udc) if (!udc->bias_pulse_needed) return; - if (udc->errata && udc->errata->pulse_bias) - udc->errata->pulse_bias(udc); + if (udc->caps && udc->caps->pulse_bias) + udc->caps->pulse_bias(udc); udc->bias_pulse_needed = false; } @@ -2032,17 +2032,17 @@ static void at91sam9g45_pulse_bias(struct usba_udc *udc) AT91_PMC_BIASEN); } -static const struct usba_udc_errata at91sam9rl_errata = { +static const struct usba_udc_caps at91sam9rl_caps = { .toggle_bias = at91sam9rl_toggle_bias, }; -static const struct usba_udc_errata at91sam9g45_errata = { +static const struct usba_udc_caps at91sam9g45_caps = { .pulse_bias = at91sam9g45_pulse_bias, }; static const struct of_device_id atmel_udc_dt_ids[] = { - { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_errata }, - { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_errata }, + { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_caps }, + { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_caps }, { .compatible = "atmel,sama5d3-udc" }, { /* sentinel */ } }; @@ -2053,7 +2053,6 @@ static const struct of_device_id atmel_pmc_dt_ids[] = { { .compatible = "atmel,at91sam9g45-pmc" }, { .compatible = "atmel,at91sam9rl-pmc" }, { .compatible = "atmel,at91sam9x5-pmc" }, - { .compatible = "microchip,sam9x60-pmc" }, { /* sentinel */ } }; @@ -2071,8 +2070,8 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev, if (!match) return ERR_PTR(-EINVAL); - udc->errata = match->data; - if (udc->errata) { + udc->caps = match->data; + if (udc->caps && (udc->caps->pulse_bias || udc->caps->toggle_bias)) { pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids, NULL); if (!pp) diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h index 8de79356d31d..1a0f77bf8d4f 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.h +++ b/drivers/usb/gadget/udc/atmel_usba_udc.h @@ -302,7 +302,7 @@ struct usba_request { unsigned int mapped:1; }; -struct usba_udc_errata { +struct usba_udc_caps { void (*toggle_bias)(struct usba_udc *udc, int is_on); void (*pulse_bias)(struct usba_udc *udc); }; @@ -320,7 +320,7 @@ struct usba_udc { struct usb_gadget gadget; struct usb_gadget_driver *driver; struct platform_device *pdev; - const struct usba_udc_errata *errata; + const struct usba_udc_caps *caps; int irq; struct gpio_desc *vbus_pin; int num_ep;