usb: ChipIdea: add Nuvoton NPCM UDC support
Subsystems (4)
Tomer Maimon
maintainerv3 cover usb: ChipIdea: add Nuvoton NPCM UDC support
This patch set add USB device controller for the NPCM Baseboard Management Controllers (BMC).
NPCM UDC driver is a part of the USB ChipIdea driver.
Adding CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag to modify the vbus_active parameter to active in case the ChipIdea USB IP role is device-only and there is no otgsc register.
BMC NPCM7XX and BMC NPCM8XX has ten identical NPCM UDC modules,
The NPCM UDC were tested on NPCM845 evaluation board.
Addressed comments from:
- Krzysztof Kozlowski : https://www.spinics.net/lists/kernel/msg4951321.html
Changes since version 2:
- Use dev_err_probe.
- Remove MODULE_ALIAS.
Changes since version 1:
- Add SoC specific compatible.
- Remove USB phy mux property from dt-binding, will be handled differently.
- Add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS commit to this patch set.
Tomer Maimon (3):
usb: chipidea: add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag
dt-bindings: usb: ci-hdrc-usb2: add npcm750 and npcm845 compatible
usb: chipidea: Add support for NPCM
.../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 4 + drivers/usb/chipidea/Kconfig | 4 + drivers/usb/chipidea/Makefile | 1 + drivers/usb/chipidea/ci_hdrc_npcm.c | 114 ++++++++++++++++++ drivers/usb/chipidea/otg.c | 5 +- include/linux/usb/chipidea.h | 1 + 6 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 drivers/usb/chipidea/ci_hdrc_npcm.c
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH RESEND v3 1/3 usb: chipidea: add CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag
Adding CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS flag to modify the vbus_active parameter to active in case the ChipIdea USB IP role is device-only and there is no otgsc register.
--- drivers/usb/chipidea/otg.c | 5 ++++- include/linux/usb/chipidea.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
drivers/usb/chipidea/otg.c +4 -1
@@ -130,8 +130,11 @@ enum ci_role ci_otg_role(struct ci_hdrc *ci)void ci_handle_vbus_change (struct ci_hdrc *ci) { -if (!ci->is_otg) +if (!ci->is_otg) { +if (ci->platdata->flags &CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS ) +usb_gadget_vbus_connect (&ci->gadget);return ; + }if (hw_read_otgsc (ci,OTGSC_BSV ) && !ci->vbus_active)usb_gadget_vbus_connect (&ci->gadget);
include/linux/usb/chipidea.h +1 -0
@@ -64,6 +64,7 @@ struct ci_hdrc_platform_data {#define CI_HDRC_PMQOS BIT(15)#define CI_HDRC_PHY_VBUS_CONTROL BIT(16)#define CI_HDRC_HAS_PORTSC_PEC_MISSED BIT(17) +#define CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS BIT(18)enum usb_dr_mode dr_mode;#define CI_HDRC_CONTROLLER_RESET_EVENT 0#define CI_HDRC_CONTROLLER_STOPPED_EVENT 1
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH RESEND v3 2/3 dt-bindings: usb: ci-hdrc-usb2: add npcm750 and npcm845 compatible
In reply to Tomer MaimonAdd a compatible string for Nuvoton BMC NPCM750 and Nuvoton BMC NPCM845.
--- Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml | 4 ++++ 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +4 -0
@@ -16,6 +16,8 @@ properties: - enum: - chipidea,usb2 - lsi,zevio-usb + - nuvoton,npcm750-udc + - nuvoton,npcm845-udc - nvidia,tegra20-ehci - nvidia,tegra20-udc - nvidia,tegra30-ehci
@@ -388,6 +390,8 @@ allOf: enum: - chipidea,usb2 - lsi,zevio-usb + - nuvoton,npcm750-udc + - nuvoton,npcm845-udc - nvidia,tegra20-udc - nvidia,tegra30-udc - nvidia,tegra114-udc
Signature · 1 line
2.33.0
Tomer Maimon
maintainerPATCH RESEND v3 3/3 usb: chipidea: Add support for NPCM
In reply to Tomer MaimonAdd Nuvoton NPCM BMC SoCs support to USB ChipIdea driver. NPCM SoC include ChipIdea IP block that used for USB device controller mode.
--- drivers/usb/chipidea/Kconfig | 4 + drivers/usb/chipidea/Makefile | 1 + drivers/usb/chipidea/ci_hdrc_npcm.c | 114 ++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 drivers/usb/chipidea/ci_hdrc_npcm.c
drivers/usb/chipidea/Kconfig +4 -0
@@ -43,6 +43,10 @@ config USB_CHIPIDEA_MSM tristate "Enable MSM hsusb glue driver" if EXPERT default USB_CHIPIDEA +config USB_CHIPIDEA_NPCM + tristate "Enable NPCM hsusb glue driver" if EXPERT + default USB_CHIPIDEA + config USB_CHIPIDEA_IMX tristate "Enable i.MX USB glue driver" if EXPERT depends on OF
drivers/usb/chipidea/Makefile +1 -0
@@ -13,6 +13,7 @@ ci_hdrc-$(CONFIG_USB_OTG_FSM) += otg_fsm.o obj-$(CONFIG_USB_CHIPIDEA_GENERIC) += ci_hdrc_usb2.o obj-$(CONFIG_USB_CHIPIDEA_MSM) += ci_hdrc_msm.o +obj-$(CONFIG_USB_CHIPIDEA_NPCM) += ci_hdrc_npcm.o obj-$(CONFIG_USB_CHIPIDEA_PCI) += ci_hdrc_pci.o obj-$(CONFIG_USB_CHIPIDEA_IMX) += usbmisc_imx.o ci_hdrc_imx.o obj-$(CONFIG_USB_CHIPIDEA_TEGRA) += ci_hdrc_tegra.o
drivers/usb/chipidea/ci_hdrc_npcm.c new file +114 -0
114 lines not on this page · raw message
Signature · 1 line
2.33.0
Greg KH
maintainerQuoted 9 lines · Tomer Maimon
This patch set add USB device controller for the NPCM Baseboard Management Controllers (BMC).
NPCM UDC driver is a part of the USB ChipIdea driver.
Adding
CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYSflag to modify thevbus_activeparameter to active in case the ChipIdea USB IP role is device-only and there is no otgsc register.
Quoted 6 lines
BMC NPCM7XX and BMC NPCM8XX has ten identical NPCM UDC modules,
The NPCM UDC were tested on NPCM845 evaluation board.
Addressed comments from:
- Krzysztof Kozlowski : https://www.spinics.net/lists/kernel/msg4951321.html
Why is this a RESEND?
Tomer Maimon
maintainerHi Greg,
Forgot to add in Acked-by: Peter Chen <[email protected]> in V3, Resend the patch set with the Ack.
Should I do it differently?
Quoted 11 lines · Greg KH
Quoted 9 lines · Tomer Maimon
This patch set add USB device controller for the NPCM Baseboard Management Controllers (BMC).
NPCM UDC driver is a part of the USB ChipIdea driver.
Adding
CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYSflag to modify thevbus_activeparameter to active in case the ChipIdea USB IP role is device-only and there is no otgsc register.
Quoted 9 lines
Quoted 6 lines
BMC NPCM7XX and BMC NPCM8XX has ten identical NPCM UDC modules,
The NPCM UDC were tested on NPCM845 evaluation board.
Addressed comments from:
- Krzysztof Kozlowski : https://www.spinics.net/lists/kernel/msg4951321.htmlWhy is this a RESEND?
Thanks,
Tomer
Greg KH
maintainerQuoted 6 lines · Tomer Maimon
Hi Greg,
Forgot to add in Acked-by: Peter Chen <[email protected]> in V3, Resend the patch set with the Ack.
Should I do it differently?
You need to tell me what the difference is, otherwise I would have no clue what to do, what would you do if you had to review all of these and try to figure out which ones to accept?
Please send this as a v4.
thanks,
greg k-h
Tomer Maimon
maintainerO.K.
Thanks a lot
Tomer
Quoted 18 lines · Greg KH
Quoted 6 lines · Tomer Maimon
Hi Greg,
Forgot to add in Acked-by: Peter Chen <[email protected]> in V3, Resend the patch set with the Ack.
Should I do it differently?
You need to tell me what the difference is, otherwise I would have no clue what to do, what would you do if you had to review all of these and try to figure out which ones to accept?
Please send this as a v4.
thanks,
greg k-h
Quoted 6 lines · Tomer Maimon
Hi Greg,
Forgot to add in Acked-by: Peter Chen <[email protected]> in V3, Resend the patch set with the Ack.
Should I do it differently?
If it is RESEND after some time (min. 2 weeks), then it is fine. If you added tags or changed something, make a new version. If you resend for any other reason (assuming resend is valid), please mention shortly why do you resend (e.g. "My company email servers maybe blocked it, so resending without changes").
Best regards,
Krzysztof
Tomer Maimon
maintainerHi Krzysztof,
Appreciate your clarifications
Thanks,
Tomer
Quoted 18 lines · Krzysztof Kozlowski
Quoted 6 lines · Tomer Maimon
Hi Greg,
Forgot to add in Acked-by: Peter Chen <[email protected]> in V3, Resend the patch set with the Ack.
Should I do it differently?
If it is RESEND after some time (min. 2 weeks), then it is fine. If you added tags or changed something, make a new version. If you resend for any other reason (assuming resend is valid), please mention shortly why do you resend (e.g. "My company email servers maybe blocked it, so resending without changes").
Best regards,
Krzysztof