Add Google Tensor SoC USB controller support
Subsystems (5)
v9 cover Add Google Tensor SoC USB controller support
This series introduces USB controller support for the Google Tensor G5 SoC (codename: Laguna), a new generation of Google silicon first launched with Pixel 10 devices.
The Tensor G5 represents a significant architectural overhaul compared to previous Tensor generations (e.g., gs101), which were based on Samsung Exynos IP. Although the G5 still utilizes Synopsys IP for the USB components, the custom top-level integration introduces a completely new design for clock, reset scheme, register interfaces and programming sequence, necessitating new drivers and device tree bindings.
The USB subsystem on Tensor G5 integrates a Synopsys DWC3 USB 3.1 DRD-Single Port controller with hibernation support, and a custom PHY block comprising Synopsys eUSB2 and USB 3.2/DP combo PHYs. The PHY support is sent as a separate patch series.
---
Changes in v9:
- Update the Kconfig dependency to depends on ARCH_GOOGLE || COMPILE_TEST Note that ARCH_GOOGLE does not exist yet but will eventually
be there when the following patch lands
https://lore.kernel.org/r/20251111112158.3.I35b9e835ac49ab408e5ca3e0983930a1f1395814@changeid/
- Mention SoC codename Laguna in Kconfig description.
- Sort the header alphabetically.
- Add driver and binding files to the Tensor SoC MAINTAINER entry.
Link to v8: https://lore.kernel.org/r/[email protected]
Changes in v8:
- Add COMPILE_TEST to dependencies for build coverage.
- Drop redundant default n in Kconfig.
- Update Kconfig help text to explicitly state the module name.
- Use container_of_const() in the to_dwc3_google() macro for type safety. Link to v7: https://lore.kernel.org/linux-usb/[email protected]
Changes in v7:
- Follow driver naming convention and rename the driver as "dwc3-google". Link to v6: https://lore.kernel.org/linux-usb/[email protected]
Changes in v6:
- Use "lga" as SoC name instead of "gs5" to align with Tensor G5 device tree https://lore.kernel.org/lkml/[email protected]
Link to v5: https://lore.kernel.org/linux-usb/[email protected]
Changes in v5:
- Use syscon to access host_cfg and usbint_cfg MMIO space per
discussion in https://lore.kernel.org/linux-phy/[email protected]
- Make warn logs in dwc3_google_resume_irq() dev_dbg.
Link to v4: https://lore.kernel.org/linux-usb/[email protected]
Changes in v4:
- Separate controller and phy changes into two distinct patch series.
- Rename dwc3 core interrupt as "core".
- Remove u2phy_apb clk/reset (moved to PHY)
- Configure usb2only mode when usb3 phy is not present.
- Adopt pm_ptr PM macros to fix build warnings.
Link to v3: https://lore.kernel.org/linux-usb/[email protected]
Changes in v3:
- Align binding file name with the compatible string
- Simplify the compatible property in binding to a single const value.
- Add descriptive comments and use item list in binding.
- Rename binding entries for clarity and brevity.
Link to v2: https://lore.kernel.org/linux-usb/[email protected]
Changes in v2:
- Reorder patches to present bindings first.
- Update dt binding compatible strings to be SoC-specific (google,gs5-*).
- Better describe the hardware in dt binding commit messages and descriptions.
- Adjust PHY driver commit subjects to use correct prefixes ("phy:").
- Move PHY driver from a subdirectory to drivers/phy/.
Link to v1: https://lore.kernel.org/linux-usb/[email protected]/
---
Roy Luo (2):
dt-bindings: usb: dwc3: Add Google Tensor G5 DWC3
usb: dwc3: Add Google Tensor SoC DWC3 glue driver
.../devicetree/bindings/usb/google,lga-dwc3.yaml | 140 +++++ MAINTAINERS | 2 + drivers/usb/dwc3/Kconfig | 12 + drivers/usb/dwc3/Makefile | 1 + drivers/usb/dwc3/dwc3-google.c | 628 +++++++++++++++++++++ 5 files changed, 783 insertions(+)
---
base-commit: 43dfc13ca972988e620a6edb72956981b75ab6b0
change-id: 20251122-controller-129b0dd57a74
Best regards,
Signature · 1 line
Roy Luo <[email protected]>
PATCH v9 1/2 dt-bindings: usb: dwc3: Add Google Tensor G5 DWC3
Document the device tree bindings for the DWC3 USB controller found in Google Tensor SoCs, starting with the G5 generation (codename: laguna).
The Tensor G5 silicon represents a complete architectural departure from previous generations (like gs101), including entirely new clock/reset schemes, top-level wrapper and register interface. Consequently, existing Samsung/Exynos DWC3 USB bindings are incompatible, necessitating this new device tree binding.
The USB controller on Tensor G5 is based on Synopsys DWC3 IP and features Dual-Role Device single port with hibernation support.
--- .../devicetree/bindings/usb/google,lga-dwc3.yaml | 140 +++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 141 insertions(+)
Documentation/devicetree/bindings/usb/google,lga-dwc3.yaml new file +140 -0
@@ -0,0 +1,140 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# Copyright (c) 2025, Google LLC +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/google,lga-dwc3.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Google Tensor Series G5 (Laguna) DWC3 USB SoC Controller + +maintainers: + - Roy Luo <[email protected]> + +description: + Describes the DWC3 USB controller block implemented on Google Tensor SoCs, + starting with the G5 generation (laguna). Based on Synopsys DWC3 IP, the + controller features Dual-Role Device single port with hibernation add-on. + +properties: + compatible: + const: google,lga-dwc3 + + reg: + items: + - description: Core DWC3 IP registers. + + interrupts: + items: + - description: Core DWC3 interrupt. + - description: High speed power management event for remote wakeup. + - description: Super speed power management event for remote wakeup. + + interrupt-names: + items: + - const: core + - const: hs_pme + - const: ss_pme + + clocks: + items: + - description: Non-sticky module clock. + - description: Sticky module clock. + + clock-names: + items: + - const: non_sticky + - const: sticky + + resets: + items: + - description: Non-sticky module reset. + - description: Sticky module reset. + - description: DRD bus reset. + - description: Top-level reset. + + reset-names: + items: + - const: non_sticky + - const: sticky + - const: drd_bus + - const: top + + power-domains: + items: + - description: Power switchable domain, the child of top domain. + Turning it on puts the controller into full power state, + turning it off puts the controller into power gated state. + - description: Top domain, the parent of power switchable domain. + Turning it on puts the controller into power gated state, + turning it off completely shuts off the controller. + + power-domain-names: + items: + - const: psw + - const: top + + iommus: + maxItems: 1 + + google,usb-cfg-csr: + description: + A phandle to a syscon node used to access the USB configuration + registers. These registers are the top-level wrapper of the USB + subsystem and provide control and status for the integrated USB + controller and USB PHY. + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: phandle to the syscon node. + - description: USB host controller configuration register offset. + - description: USB custom interrrupts control register offset. + +required: + - compatible + - reg + - interrupts + - interrupt-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - power-domain-names + - google,usb-cfg-csr + +allOf: + - $ref: snps,dwc3-common.yaml# + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interrupt-controller/irq.h> + soc { + #address-cells = <2>; + #size-cells = <2>; + + usb@c400000 { + compatible = "google,lga-dwc3"; + reg = <0 0x0c400000 0 0xd060>; + interrupts = <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH 0>, + <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH 0>, + <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH 0>; + interrupt-names = "core", "hs_pme", "ss_pme"; + clocks = <&hsion_usbc_non_sticky_clk>, <&hsion_usbc_sticky_clk>; + clock-names = "non_sticky", "sticky"; + resets = <&hsion_resets_usbc_non_sticky>, <&hsion_resets_usbc_sticky>, + <&hsion_resets_usb_drd_bus>, <&hsion_resets_usb_top>; + reset-names = "non_sticky", "sticky", "drd_bus", "top"; + power-domains = <&hsio_n_usb_psw>, <&hsio_n_usb>; + power-domain-names = "psw", "top"; + phys = <&usb_phy 0>; + phy-names = "usb2-phy"; + snps,quirk-frame-length-adjustment = <0x20>; + snps,gfladj-refclk-lpm-sel-quirk; + snps,incr-burst-type-adjustment = <4>; + google,usb-cfg-csr = <&usb_cfg_csr 0x0 0x20>; + }; + }; +...
MAINTAINERS +1 -0
@@ -10662,6 +10662,7 @@ P: Documentation/process/maintainer-soc-clean-dts.rst C: irc://irc.oftc.net/pixel6-kernel-dev F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-gen.yaml +F: Documentation/devicetree/bindings/usb/google,lga-dwc3.yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c F: drivers/phy/samsung/phy-gs101-ufs.c
Signature · 1 line
2.52.0.223.gf5cc29aaa4-goog
Krzysztof Kozlowski
maintainerRe: [PATCH v9 1/2] dt-bindings: usb: dwc3: Add Google Tensor G5 DWC3
Quoted 9 lines · Roy Luo
Document the device tree bindings for the DWC3 USB controller found in Google Tensor SoCs, starting with the G5 generation (codename: laguna).
The Tensor G5 silicon represents a complete architectural departure from previous generations (like gs101), including entirely new clock/reset schemes, top-level wrapper and register interface. Consequently, existing Samsung/Exynos DWC3 USB bindings are incompatible, necessitating this new device tree binding.
Quoted 9 lines
The USB controller on Tensor G5 is based on Synopsys DWC3 IP and features Dual-Role Device single port with hibernation support.
Signed-off-by Roy Luo <[email protected]>--- .../devicetree/bindings/usb/google,lga-dwc3.yaml | 140 +++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 141 insertions(+)
Nothing explains reason to ignore review. I am not doing same work twice, please respect maintainers' time.
<form letter>
This is a friendly reminder during the review process.
It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.
Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
If a tag was not added on purpose, please state why and what changed. </form letter>
Best regards,
Krzysztof
Re: [PATCH v9 1/2] dt-bindings: usb: dwc3: Add Google Tensor G5 DWC3
In reply to Roy LuoQuoted 9 lines · Roy Luo
Document the device tree bindings for the DWC3 USB controller found in Google Tensor SoCs, starting with the G5 generation (codename: laguna).
The Tensor G5 silicon represents a complete architectural departure from previous generations (like gs101), including entirely new clock/reset schemes, top-level wrapper and register interface. Consequently, existing Samsung/Exynos DWC3 USB bindings are incompatible, necessitating this new device tree binding.
Quoted 8 lines
The USB controller on Tensor G5 is based on Synopsys DWC3 IP and features Dual-Role Device single port with hibernation support.
Signed-off-by Roy Luo <[email protected]>--- .../devicetree/bindings/usb/google,lga-dwc3.yaml | 140 +++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 141 insertions(+)
Best regards,
Krzysztof
PATCH v9 2/2 usb: dwc3: Add Google Tensor SoC DWC3 glue driver
In reply to Roy LuoAdd support for the DWC3 USB controller found on Google Tensor G5 (codename: laguna). The controller features dual-role functionality and hibernation.
The primary focus is implementing hibernation support in host mode, enabling the controller to enter a low-power state (D3). This is particularly relevant during system power state transition and runtime power management for power efficiency. Highlights:
- Align suspend callback with dwc3_suspend_common() for deciding between a full teardown and hibernation in host mode.
- Integration with psw (power switchable) and top power domains, managing their states and device links to support hibernation.
- A notifier callback dwc3_google_usb_psw_pd_notifier() for psw power domain events to manage controller state transitions to/from D3.
- Coordination of the non_sticky reset during power state transitions, asserting it on D3 entry and deasserting on D0 entry in hibernation scenario.
- Handling of high-speed and super-speed PME interrupts that are generated by remote wakeup during hibernation.
--- MAINTAINERS | 1 + drivers/usb/dwc3/Kconfig | 12 + drivers/usb/dwc3/Makefile | 1 + drivers/usb/dwc3/dwc3-google.c | 628 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 642 insertions(+)
MAINTAINERS +1 -0
@@ -10666,6 +10666,7 @@ F: Documentation/devicetree/bindings/usb/google,lga-dwc3.yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c F: drivers/phy/samsung/phy-gs101-ufs.c +F: drivers/usb/dwc3/dwc3-google.c F: include/dt-bindings/clock/google,gs101.h K: [gG]oogle.?[tT]ensor
drivers/usb/dwc3/Kconfig +12 -0
@@ -200,4 +200,16 @@ config USB_DWC3_GENERIC_PLAT the dwc3 child node in the device tree. Say 'Y' or 'M' here if your platform integrates DWC3 in a similar way. +config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TEST + help + Support the DesignWare Core USB3 IP found on Google Tensor SoCs, + starting with the G5 generation (Laguna). This driver includes + support for hibernation in host mode. + Say 'Y' or 'M' if you have one such device. + + To compile this driver as a module, choose M here: the + module will be called dwc3-google.ko. + endif
drivers/usb/dwc3/Makefile +1 -0
@@ -58,3 +58,4 @@ obj-$(CONFIG_USB_DWC3_XILINX) += dwc3-xilinx.o obj-$(CONFIG_USB_DWC3_OCTEON) += dwc3-octeon.o obj-$(CONFIG_USB_DWC3_RTK) += dwc3-rtk.o obj-$(CONFIG_USB_DWC3_GENERIC_PLAT) += dwc3-generic-plat.o +obj-$(CONFIG_USB_DWC3_GOOGLE) += dwc3-google.o
drivers/usb/dwc3/dwc3-google.c new file +628 -0
628 lines not on this page · raw message
Signature · 1 line
2.52.0.223.gf5cc29aaa4-goog
Greg Kroah-Hartman
maintainerRe: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TEST
There is no ARCH_GOOGLE in the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?
thanks,
greg k-h
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TEST
Quoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]
According to Kconfig documentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."
In a different Kconfig documentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in the Kconfig tree itself.
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- Remove ARCH_GOOGLE and leave COMPILE_TEST as
the only dependency. Then add ARCH_GOOGLE back later once it's in the tree.
- Defer the whole patch series until ARCH_GOOGLE is present (I hope not).
[1] https://docs.kernel.org/kbuild/kconfig-language.html#menu-dependencies
[2] https://www.kernel.org/doc/Documentation/kbuild/kconfig.rst
Regards,
Roy Luo
Thinh Nguyen
maintainerRe: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 48 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.
- Defer the whole patch series untilARCH_GOOGLEis present (I hope not).
Quoted 3 lines
[1] https://urldefense.com/v3/__https://docs.kernel.org/kbuild/kconfig-language.html*menu-dependencies__;Iw!!A4F2R9G_pg!e-y2_BsSNhXF1v5K6tBJX-OabgKJM9WVdvwyKoB6tg9ooCLVg8WiQ4UrStOF2YZQ_Zs6tC6HVh7wCpqkEfU$
[2] https://urldefense.com/v3/__https://www.kernel.org/doc/Documentation/kbuild/kconfig.rst__;!!A4F2R9G_pg!e-y2_BsSNhXF1v5K6tBJX-OabgKJM9WVdvwyKoB6tg9ooCLVg8WiQ4UrStOF2YZQ_Zs6tC6HVh7wHpoUlhY$
Hi Greg, Roy,
Just checking, are we aligned here?
BR,
Thinh
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 54 lines · Thinh Nguyen
Quoted 48 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.
- Defer the whole patch series untilARCH_GOOGLEis present (I hope not).Quoted 3 lines
[1] https://urldefense.com/v3/__https://docs.kernel.org/kbuild/kconfig-language.html*menu-dependencies__;Iw!!A4F2R9G_pg!e-y2_BsSNhXF1v5K6tBJX-OabgKJM9WVdvwyKoB6tg9ooCLVg8WiQ4UrStOF2YZQ_Zs6tC6HVh7wCpqkEfU$
[2] https://urldefense.com/v3/__https://www.kernel.org/doc/Documentation/kbuild/kconfig.rst__;!!A4F2R9G_pg!e-y2_BsSNhXF1v5K6tBJX-OabgKJM9WVdvwyKoB6tg9ooCLVg8WiQ4UrStOF2YZQ_Zs6tC6HVh7wHpoUlhY$
Quoted 6 lines
Hi Greg, Roy,
Just checking, are we aligned here?
BR,
Thinh
Thinh,
Thanks for checking in. I'm still waiting on Greg's reply regarding the Kconfig question.
BTW, I silently dropped your Ack-by tag in v8 due to the changes in Kconfig and MAINTAINERS files, which I should've noted in the changelog but I didn't. Sorry for the inconvenience. Could you please review the current version again and provide your tag if it looks good?
Regards,
Roy
Greg Kroah-Hartman
maintainerRe: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
In reply to Roy LuoQuoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.
Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.
Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
greg k-h
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 48 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.
Quoted 8 lines
Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
greg k-h
Greg,
Yes, we can remove ARCH_GOOGLE for now.
To clarify, we're not removing all of the dependencies, we still want to keep COMPILE_TEST for build tests, right?
Please let me know if you think otherwise.
Thanks,
Roy
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Hi,
Quoted 58 lines · Roy Luo
Quoted 55 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
Quoted 8 lines
Quoted 1 line
greg k-h
Greg,
Yes, we can remove
ARCH_GOOGLEfor now.
To clarify, we're not removing all of the dependencies, we still want to keepCOMPILE_TESTfor build tests, right?
Please let me know if you think otherwise.
I think you'd just remove all of them. Normally COMPILE_TEST just allows folks to compile stuff even when they don't want the ARCH. We can can add ARCH_GOOGLE back in later once the config exists.
-Doug
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 71 lines · Doug Anderson
Hi,
Quoted 58 lines · Roy Luo
Quoted 55 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
drivers/usb/dwc3/Kconfig config USB_DWC3_GENERIC_PLAT · line 205
Quoted 3 lines · Roy Luo
drivers/usb/dwc3/Kconfig +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
Quoted 8 lines
Quoted 1 line
greg k-h
Greg,
Yes, we can remove
ARCH_GOOGLEfor now.
To clarify, we're not removing all of the dependencies, we still want to keepCOMPILE_TESTfor build tests, right?
Please let me know if you think otherwise.
Quoted 5 lines
I think you'd just remove all of them. Normally
COMPILE_TESTjust allows folks to compile stuff even when they don't want the ARCH. We can can addARCH_GOOGLEback in later once the config exists.-Doug
Doug,
Thanks for chiming in. I'm hesitant to remove COMPILE_TEST because Greg specifically requested its inclusion in v7 [1]. Also it seems beneficial to get some build coverage before ARCH_GOOGLE is officially added to the tree.
Greg, could you clarify?
[1] https://lore.kernel.org/linux-usb/2025112144-claw-recolor-49c3@gregkh/
Thanks,
Roy
Greg Kroah-Hartman
maintainerRe: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 78 lines · Roy Luo
Quoted 71 lines · Doug Anderson
Hi,
Quoted 58 lines · Roy Luo
Quoted 55 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
Review
Quoted 3 lines · Roy Luo
(quoted diff) +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
Quoted 8 lines
Quoted 1 line
greg k-h
Greg,
Yes, we can remove
ARCH_GOOGLEfor now.
To clarify, we're not removing all of the dependencies, we still want to keepCOMPILE_TESTfor build tests, right?
Please let me know if you think otherwise.Quoted 5 lines
I think you'd just remove all of them. Normally
COMPILE_TESTjust allows folks to compile stuff even when they don't want the ARCH. We can can addARCH_GOOGLEback in later once the config exists.-Doug
Quoted 7 lines
Doug,
Thanks for chiming in. I'm hesitant to remove
COMPILE_TESTbecause Greg specifically requested its inclusion in v7 [1]. Also it seems beneficial to get some build coverage beforeARCH_GOOGLEis officially added to the tree.
Greg, could you clarify?
I wanted it in because it would not build without it on a non "google" system. But now, as that option isn't there, just don't have any dependency, as it's obviously not needed.
thanks,
greg k-h
Krzysztof Kozlowski
maintainerRe: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
In reply to Roy LuoQuoted 76 lines · Roy Luo
Quoted 75 lines · Doug Anderson
Hi,
Quoted 58 lines · Roy Luo
Quoted 55 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
Review
Quoted 3 lines · Roy Luo
(quoted diff) +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
Quoted 8 lines
Quoted 1 line
greg k-h
Greg,
Yes, we can remove
ARCH_GOOGLEfor now.
To clarify, we're not removing all of the dependencies, we still want to keepCOMPILE_TESTfor build tests, right?
Please let me know if you think otherwise.I think you'd just remove all of them. Normally
COMPILE_TESTjust allows folks to compile stuff even when they don't want the ARCH. We can can addARCH_GOOGLEback in later once the config exists.
Quoted 6 lines
Quoted 1 line
-Doug
Doug,
Thanks for chiming in. I'm hesitant to remove
COMPILE_TESTbecause Greg specifically requested its inclusion in v7 [1].
What? No, that's not what Greg requested. Your COMPILE_TEST in current form helps nothing in build testing. It makes absolutely no sense at all.
Quoted 2 lines
Also it seems beneficial to get some build coverage before
ARCH_GOOGLEis officially added to the tree.
And COMPILE_TEST like you wrote it does not give you that. Please first read how this function works.
Quoted 1 line
Greg, could you clarify?
Can you first look at Linux kernel sources to see how this is properly written?
Quoted 5 lines
[1] https://lore.kernel.org/linux-usb/2025112144-claw-recolor-49c3@gregkh/
Thanks,
Roy
Best regards,
Krzysztof
Re: [PATCH v9 2/2] usb: dwc3: Add Google Tensor SoC DWC3 glue driver
Quoted 101 lines · Krzysztof Kozlowski
Quoted 76 lines · Roy Luo
Quoted 75 lines · Doug Anderson
Hi,
Quoted 58 lines · Roy Luo
Quoted 55 lines · Greg Kroah-Hartman
Quoted 39 lines · Roy Luo
Quoted 6 lines · Greg Kroah-Hartman
Review
Quoted 3 lines · Roy Luo
(quoted diff) +3
-0+config USB_DWC3_GOOGLE + tristate "Google Platform" + depends on ARCH_GOOGLE || COMPILE_TESTQuoted 7 lines
There is no
ARCH_GOOGLEin the tree now, so how is this supposed to work? Shouldn't tools that check for "invalid config options" trigger on this?thanks,
greg k-h
Hi Greg,
The menuconfig looks like the following and it doesn't complain:
| Symbol: ARCH_GOOGLE [=ARCH_GOOGLE] | Type : unknown | | Symbol: PHY_GOOGLE_USB [=y] | Type : tristate | Defined at drivers/phy/Kconfig:104 | Prompt: Google Tensor SoC USB PHY driver | Depends on: ARCH_GOOGLE || COMPILE_TEST [=y]According to
Kconfigdocumentation [1], the unknown symbol would simply be evaluated as an "n", which is what we want. "Convert the symbol into an expression. Boolean and tristate symbols are simply converted into the respective expression values. All other symbol types result in ‘n’."In a different
Kconfigdocumentation, an environment variable "KCONFIG_WARN_UNKNOWN_SYMBOLS" is there to detect undefined symbols in the "config input", but I can't find one that catches undefined symbols in theKconfigtree itself.Quoted 6 lines
That is, the tool seems to allow this.
However, if this turns out to be a major problem. I think we can either:
- RemoveARCH_GOOGLEand leaveCOMPILE_TESTas
the only dependency. Then addARCH_GOOGLEback later once it's in the tree.Please do this. I do not want to take patches that purposfully add dependencies on config options that might, or might not, appear in the future. Please just remove all of the dependancies for now, as they are not needed, right?
thanks,
Quoted 8 lines
Quoted 1 line
greg k-h
Greg,
Yes, we can remove
ARCH_GOOGLEfor now.
To clarify, we're not removing all of the dependencies, we still want to keepCOMPILE_TESTfor build tests, right?
Please let me know if you think otherwise.I think you'd just remove all of them. Normally
COMPILE_TESTjust allows folks to compile stuff even when they don't want the ARCH. We can can addARCH_GOOGLEback in later once the config exists.Quoted 6 lines
Quoted 1 line
-Doug
Doug,
Thanks for chiming in. I'm hesitant to remove
COMPILE_TESTbecause Greg specifically requested its inclusion in v7 [1].What? No, that's not what Greg requested. Your
COMPILE_TESTin current form helps nothing in build testing. It makes absolutely no sense at all.Quoted 2 lines
Also it seems beneficial to get some build coverage before
ARCH_GOOGLEis officially added to the tree.And
COMPILE_TESTlike you wrote it does not give you that. Please first read how this function works.Quoted 1 line
Greg, could you clarify?
Can you first look at Linux kernel sources to see how this is properly written?
Quoted 1 line
Quoted 8 lines
Quoted 4 lines
[1] https://lore.kernel.org/linux-usb/2025112144-claw-recolor-49c3@gregkh/
Thanks,
RoyBest regards,
Krzysztof
Greg and Krzysztof,
Thanks for the clarification.
Regards,
Roy