Skip to content

Conversation

@CodeChenL
Copy link
Member

No description provided.

On some hardware designs, the 5V VBUS output cannot be controlled or
disabled by the TCPM (e.g., fixed 5V supply or lack of a load switch).
Consequently, the VBUS voltage is unable to drop to the VSafe0V level
required by the standard state machine.

Currently, the TCPM blocks the transition from SRC_STARTUP to
SRC_ATTACHED until VSafe0V is detected. On hardware that cannot switch
off VBUS, this causes the port to hang or fail negotiation.

This patch adds a new device property "tcpm,skip-vsafe0v-check". When
set, the TCPM ignores the VSafe0V requirement and allows the state
machine to proceed, enabling support for hardware with uncontrollable
VBUS.

Signed-off-by: Jiali Chen <chenjiali@radxa.com>
On some hardware designs where the 5V VBUS is fixed (always on) or cannot
be controlled by the FUSB302, the TCPM state machine may hang during the
transition to SRC_ATTACHED.

Normally, when TCPM instructs the driver to enable VBUS, it waits for a
VBUS_PRESENT signal from the port driver. However, if VBUS is already
physically present (because it's hardwired), the FUSB302 does not generate
a new interrupt or status change, causing the TCPM to time out waiting for
VBUS.

This patch introduces a new device property "fcs,force-vbus-toggle".
When set, the driver manually toggles the internal VBUS presence state
and notifies the TCPM during the VBUS enabling phase. This simulates a
VBUS rising edge, satisfying the state machine's requirement to proceed.

Signed-off-by: Jiali Chen <chenjiali@radxa.com>
Enable the FUSB302 USB Type-C controller on the Radxa Zero board.
The FUSB302 is connected via I2C3 and handles the CC communication.

Since the VBUS on this board is derived from the system 5V and cannot
be independently switched off or regulated to 0V, we configure the
node with specific properties to handle this hardware limitation:
- 'tcpm,skip-vsafe0v-check': To bypass the VSafe0V requirement.
- 'fcs,force-vbus-toggle': To simulate VBUS toggle for the TCPM state machine.

This patch also:
- Adds the fixed 5V VBUS regulator.
- Adds a GPIO-based SBU mux for orientation switching.
- Links the DWC3 USB controller to the Type-C connector via OF graph.
- Configures the port as a Source (Power) and Host (Data) by default.

Signed-off-by: Jiali Chen <chenjiali@radxa.com>
Add the device tree node for the green status LED found on the Radxa Zero.
The LED is connected to GPIOAO_10 and is configured to use the 'heartbeat'
trigger by default to indicate system activity.

Signed-off-by: Jiali Chen <chenjiali@radxa.com>
@CodeChenL CodeChenL changed the title Fix amlogic Fix radxa zero Dec 30, 2025
led-green {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

有两个版本的LED引脚,之前是都配成LED,用户要用额外的GPIO再去用overlay关无效的那个

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

那就先不主动设置led了?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

噢噢,两个都配置

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个pr先关了,我合并到6.18分支去

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants