[PATCH v6 0/9] phy: phy-can-transceiver: Support TJA1048/TJA1051

Peng Fan
2025-09-09T05:40:35Z

TJA1048 is a Dual channel can transceiver with Sleep mode supported.
TJA105{1,7} is a Single Channel can transceiver with Sleep mode supported.

Frank, I dropped your R-b in patch 1, since this patch changes a bit compared
with V4. Thanks for helping reviewing.

To support them:
patch 1: add binding doc
patch 2/3: To support dual channel,
- Introduce new flag CAN_TRANSCEIVER_DUAL_CH to indicate the phy
has two channels.
- Introduce can_transceiver_priv as a higher level encapsulation for
phy, mux_state, num_ch.
- Alloc a phy for each channel
patch 4,5: Simplify code and check return value of GPIOD API
patch 6: Add TJA1051,7 support
Others: Update dts to use phys.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Changes in v6:
- Update dt-bindings per Krzysztof's comments
"define if:then:, without any else:, for each variant"
- Add R-b from Frank
- Link to v5: https://lore.kernel.org/r/20250904-can-v5-0-23d8129b5e5d@nxp.com

Changes in v5:
- Update patch 1 dt-bindings for TJA1051 and TJA1057 and allOf entries
for them, per Conor's comments. Thanks Conor for detailed review on
the dt-binding patch.
- Add two new patches patch {3,4} to simplify code and check return value of
gpiod API.
- Add patch 6 because TJA1051 and TJA1057 use their own compatible strings
- Link to v4: https://lore.kernel.org/r/20250901-can-v4-0-e42b5fe2cf9e@nxp.com

Changes in v4:
- Add R-b from Frank for patch 1, 2, 3, 6
- Address the minor comments from Frank regarding min/maxItems, commit
log
- Link to v3: https://lore.kernel.org/r/20250829-can-v3-0-3b2f34094f59@nxp.com

Changes in v3:
- Patch 1: Add TJA1057, update #phy-cells
- Patch 2,3: Separate patch 2 into two patches per Frank, 1st introduce
can_transceiver_priv, 2nd support dual chan by adding num_ch
- Patch 6: Change to 5Mbps rate
- Patch 4,5: Add R-b from Frank
- Link to v2: https://lore.kernel.org/r/20250825-can-v2-0-c461e9fcbc14@nxp.com

Changes in v2:
- Update standby-gpios constraints per Conor's comments
- Drop patch 2 which is not needed.
- Link to v1: https://lore.kernel.org/r/20250822-can-v1-0-c075f702adea@nxp.com

---
Peng Fan (9):
dt-bindings: phy: ti,tcan104x-can: Document NXP TJA105X/1048
phy: phy-can-transceiver: Introduce can_transceiver_priv
phy: phy-can-transceiver: Add dual channel support for TJA1048
phy: phy-can-transceiver: Drop the gpio desc check
phy: phy-can-transceiver: Propagate return value of gpiod_set_value_cansleep
phy: phy-can-transceiver: Add support for TJA105{1,7}
arm64: dts: imx95-15x15-evk: Use phys to replace xceiver-supply
arm64: dts: imx8mp-evk: Use phys to replace xceiver-supply
arm64: dts: imx93-11x11-evk: Use phys to replace xceiver-supply

.../devicetree/bindings/phy/ti,tcan104x-can.yaml | 69 +++++++-
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 43 ++---
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 17 +-
arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts | 13 +-
drivers/phy/phy-can-transceiver.c | 180 ++++++++++++++++-----
5 files changed, 229 insertions(+), 93 deletions(-)
---
base-commit: da57e528a86120a1187edf3e2c9affb4083d342d
change-id: 20250821-can-c832cb4f0323

Best regards,
--
Peng Fan <peng.fan@nxp.com>