[PATCH v7 0/8] phy: phy-can-transceiver: Support TJA1048/TJA1051

Peng Fan posted 8 patches 4 months, 1 week ago
.../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                  | 158 +++++++++++++++------
5 files changed, 210 insertions(+), 90 deletions(-)
[PATCH v7 0/8] phy: phy-can-transceiver: Support TJA1048/TJA1051
Posted by Peng Fan 4 months, 1 week ago
TJA1048 is a Dual channel can transceiver with Sleep mode supported.
TJA105{1,7} is a Single Channel can transceiver with Sleep mode supported.

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: Simplify code
patch 5: Add TJA1051,7 support
Others: Update dts to use phys.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Changes in v7:
  Since got v6 comments from Marc and Vincent, I was busy on other
  stuff, so delay about one week to move to v7.
- Patch 1: Add R-b from Rob for dt-bindings
- For Patch 2,3: Switch to use flexible array for "struct can_transceiver_phy"
  per Marc. Use a local variable to avoid multiple pointer based access per
  Vincent. For mux_state I still keep it as phy chip level, so it is still
  in "struct can_transceiver_priv" as previous patch, so no array needed.
- Drop patch 5 which was to check gpio API return value. Since no issue
  reported, and error return value check here will make code looks ugly,
  I not find an elegant way to do this, so drop the patch for now.
  We may add it back in future
- Link to v6: https://lore.kernel.org/r/20250909-can-v6-0-1cc30715224c@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 (8):
      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: 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                  | 158 +++++++++++++++------
 5 files changed, 210 insertions(+), 90 deletions(-)
---
base-commit: 92d0924341d014dd4cc07720916ba4ee317aabb1
change-id: 20250821-can-c832cb4f0323

Best regards,
-- 
Peng Fan <peng.fan@nxp.com>
Re: [PATCH v7 0/8] phy: phy-can-transceiver: Support TJA1048/TJA1051
Posted by Marc Kleine-Budde 2 months, 3 weeks ago
On 01.10.2025 21:22:31, Peng Fan wrote:
> TJA1048 is a Dual channel can transceiver with Sleep mode supported.
> TJA105{1,7} is a Single Channel can transceiver with Sleep mode supported.
>
> 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: Simplify code
> patch 5: Add TJA1051,7 support
> Others: Update dts to use phys.
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |
Re: [PATCH v7 0/8] phy: phy-can-transceiver: Support TJA1048/TJA1051
Posted by Peng Fan 3 months ago
Hi Marc, Vincent, Vinod,

On Wed, Oct 01, 2025 at 09:22:31PM +0800, Peng Fan wrote:
>
>---
>Peng Fan (8):
>      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: 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

Would you please give a look on the driver changes?

Thanks,
Peng
Re: (subset) [PATCH v7 0/8] phy: phy-can-transceiver: Support TJA1048/TJA1051
Posted by Vinod Koul 2 months, 3 weeks ago
On Wed, 01 Oct 2025 21:22:31 +0800, Peng Fan wrote:
> TJA1048 is a Dual channel can transceiver with Sleep mode supported.
> TJA105{1,7} is a Single Channel can transceiver with Sleep mode supported.
> 
> 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: Simplify code
> patch 5: Add TJA1051,7 support
> Others: Update dts to use phys.
> 
> [...]

Applied, thanks!

[1/8] dt-bindings: phy: ti,tcan104x-can: Document NXP TJA105X/1048
      commit: 05ace63d0bcfe131e741923394c7ce03322a141e
[2/8] phy: phy-can-transceiver: Introduce can_transceiver_priv
      commit: c77464bd9b4155891a135e51f8e916e1ab94fc14
[3/8] phy: phy-can-transceiver: Add dual channel support for TJA1048
      commit: 6e9fe9409e10ed25b43928062832037752630979
[4/8] phy: phy-can-transceiver: Drop the gpio desc check
      commit: d02a7eb12924b7473a62d5a6c9e670fe5bf6e4b7
[5/8] phy: phy-can-transceiver: Add support for TJA105{1,7}
      commit: b817f505926b8ffbdea8aa87b66a622acb9b96e9

Best regards,
-- 
~Vinod