* [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 @ 2025-12-09 16:21 Prabhakar 2025-12-10 7:52 ` Marc Kleine-Budde 2025-12-23 17:44 ` Vinod Koul 0 siblings, 2 replies; 8+ messages in thread From: Prabhakar @ 2025-12-09 16:21 UTC (permalink / raw) To: Marc Kleine-Budde, Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li Cc: linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Prabhakar, Biju Das, Fabrizio Castro, Lad Prabhakar From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a dual high-speed CAN transceiver with sleep-mode support and no EN pin, mirroring the behaviour of the NXP TJA1048, which also provides dual channels and STB1/2 sleep-control lines. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> --- TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf v1->v2: - Used "nxp,tja1048" as a fallback compatible string. --- Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml index c686d06f5f56..9f5c37ca6496 100644 --- a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml @@ -20,6 +20,9 @@ properties: - microchip,ata6561 - ti,tcan1051 - const: ti,tcan1042 + - items: + - const: ti,tcan1046 + - const: nxp,tja1048 - enum: - ti,tcan1042 - ti,tcan1043 -- 2.52.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-09 16:21 [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 Prabhakar @ 2025-12-10 7:52 ` Marc Kleine-Budde 2025-12-10 18:21 ` Conor Dooley 2025-12-23 17:44 ` Vinod Koul 1 sibling, 1 reply; 8+ messages in thread From: Marc Kleine-Budde @ 2025-12-10 7:52 UTC (permalink / raw) To: Prabhakar Cc: Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar [-- Attachment #1: Type: text/plain, Size: 1182 bytes --] On 09.12.2025 16:21:19, Prabhakar wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > mirroring the behaviour of the NXP TJA1048, which also provides dual > channels and STB1/2 sleep-control lines. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > --- > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf The polarity of the standby line of the chips is different. You must set the correct active high/low property for the GPIO, as the driver uses logical levels. Reviewed-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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-10 7:52 ` Marc Kleine-Budde @ 2025-12-10 18:21 ` Conor Dooley 2025-12-12 10:58 ` Lad, Prabhakar 2025-12-12 11:21 ` Marc Kleine-Budde 0 siblings, 2 replies; 8+ messages in thread From: Conor Dooley @ 2025-12-10 18:21 UTC (permalink / raw) To: Marc Kleine-Budde Cc: Prabhakar, Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar [-- Attachment #1: Type: text/plain, Size: 1138 bytes --] On Wed, Dec 10, 2025 at 08:52:58AM +0100, Marc Kleine-Budde wrote: > On 09.12.2025 16:21:19, Prabhakar wrote: > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > > mirroring the behaviour of the NXP TJA1048, which also provides dual > > channels and STB1/2 sleep-control lines. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > --- > > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf > > The polarity of the standby line of the chips is different. > > You must set the correct active high/low property for the GPIO, as the > driver uses logical levels. > > Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> What you're saying seems to contradict the tag you've given, is a fallback really suitable if the standby polarity is not the same? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-10 18:21 ` Conor Dooley @ 2025-12-12 10:58 ` Lad, Prabhakar 2025-12-12 11:21 ` Marc Kleine-Budde 1 sibling, 0 replies; 8+ messages in thread From: Lad, Prabhakar @ 2025-12-12 10:58 UTC (permalink / raw) To: Conor Dooley, Marc Kleine-Budde Cc: Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar Hi Conor, On Wed, Dec 10, 2025 at 6:21 PM Conor Dooley <conor@kernel.org> wrote: > > On Wed, Dec 10, 2025 at 08:52:58AM +0100, Marc Kleine-Budde wrote: > > On 09.12.2025 16:21:19, Prabhakar wrote: > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > > > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > > > mirroring the behaviour of the NXP TJA1048, which also provides dual > > > channels and STB1/2 sleep-control lines. > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > --- > > > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > > > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf > > > > The polarity of the standby line of the chips is different. > > > > You must set the correct active high/low property for the GPIO, as the > > driver uses logical levels. > > > > Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> > > What you're saying seems to contradict the tag you've given, is a > fallback really suitable if the standby polarity is not the same? > On the RZ/V2H I have, can_phy: can-phy { compatible = "ti,tcan1046", "nxp,tja1048"; max-bitrate = <8000000>; #phy-cells = <1>; status = "okay"; standby-gpios = <&pinctrl RZV2H_GPIO(7, 0) GPIO_ACTIVE_HIGH>, <&pinctrl RZV2H_GPIO(7, 2) GPIO_ACTIVE_HIGH>; }; When the CAN interface is brought up 0 is written to GPIO which brings the CAN transceiver to Normal mode and when the CAN chip is brought down `1` is written to GPIO and it puts the CAN transceiver to Standby mode. Which matches to the behaviour of TCAN1046 CAN transceiver. Am I missing something? Cheers, Prabhakar ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-10 18:21 ` Conor Dooley 2025-12-12 10:58 ` Lad, Prabhakar @ 2025-12-12 11:21 ` Marc Kleine-Budde 2025-12-12 18:00 ` Conor Dooley 2025-12-17 8:15 ` Geert Uytterhoeven 1 sibling, 2 replies; 8+ messages in thread From: Marc Kleine-Budde @ 2025-12-12 11:21 UTC (permalink / raw) To: Conor Dooley Cc: Prabhakar, Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar [-- Attachment #1: Type: text/plain, Size: 2215 bytes --] On 10.12.2025 18:21:34, Conor Dooley wrote: > On Wed, Dec 10, 2025 at 08:52:58AM +0100, Marc Kleine-Budde wrote: > > On 09.12.2025 16:21:19, Prabhakar wrote: > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > > > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > > > mirroring the behaviour of the NXP TJA1048, which also provides dual > > > channels and STB1/2 sleep-control lines. > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > --- > > > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > > > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf > > > > The polarity of the standby line of the chips is different. > > > > You must set the correct active high/low property for the GPIO, as the > > driver uses logical levels. > > > > Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> > > What you're saying seems to contradict the tag you've given, is a > fallback really suitable if the standby polarity is not the same? The driver uses _logical_ levels to switch the GPIOs. For example to power on the PHY, it disables the standby GPIO by setting the value to "0". | static int can_transceiver_phy_power_on(struct phy *phy) | { [...] | gpiod_set_value_cansleep(can_transceiver_phy->standby_gpio, 0); [...] | } You have to use GPIO_ACTIVE_HIGH/GPIO_ACTIVE_LOW in the DT to configure the actual level of the GPIO. If you connect the PHY's standby input directly to the SoC's GPIO.... | TJA1048: HIGH = Normal mode, LOW = Standby mode | TCAN1046: High = Standby mode, Low = Normal Mode ...for the TJA1048 you would use GPIO_ACTIVE_LOW, while for the TCAN1046 you would use GPIO_ACTIVE_HIGH. 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-12 11:21 ` Marc Kleine-Budde @ 2025-12-12 18:00 ` Conor Dooley 2025-12-17 8:15 ` Geert Uytterhoeven 1 sibling, 0 replies; 8+ messages in thread From: Conor Dooley @ 2025-12-12 18:00 UTC (permalink / raw) To: Marc Kleine-Budde Cc: Prabhakar, Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar [-- Attachment #1: Type: text/plain, Size: 2523 bytes --] On Fri, Dec 12, 2025 at 12:21:03PM +0100, Marc Kleine-Budde wrote: > On 10.12.2025 18:21:34, Conor Dooley wrote: > > On Wed, Dec 10, 2025 at 08:52:58AM +0100, Marc Kleine-Budde wrote: > > > On 09.12.2025 16:21:19, Prabhakar wrote: > > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > > > > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > > > > mirroring the behaviour of the NXP TJA1048, which also provides dual > > > > channels and STB1/2 sleep-control lines. > > > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > --- > > > > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > > > > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf > > > > > > The polarity of the standby line of the chips is different. > > > > > > You must set the correct active high/low property for the GPIO, as the > > > driver uses logical levels. > > > > > > Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> > > > > What you're saying seems to contradict the tag you've given, is a > > fallback really suitable if the standby polarity is not the same? > > The driver uses _logical_ levels to switch the GPIOs. For example to > power on the PHY, it disables the standby GPIO by setting the value to > "0". > > | static int can_transceiver_phy_power_on(struct phy *phy) > | { > [...] > | gpiod_set_value_cansleep(can_transceiver_phy->standby_gpio, 0); > [...] > | } > > You have to use GPIO_ACTIVE_HIGH/GPIO_ACTIVE_LOW in the DT to configure > the actual level of the GPIO. Ah okay, I prob should have looked a bit further into the binding. Acked-by: Conor Dooley <conor.dooley@microchip.com> > > If you connect the PHY's standby input directly to the SoC's GPIO.... > > | TJA1048: HIGH = Normal mode, LOW = Standby mode > | TCAN1046: High = Standby mode, Low = Normal Mode > > ...for the TJA1048 you would use GPIO_ACTIVE_LOW, while for the > TCAN1046 you would use GPIO_ACTIVE_HIGH. > > 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-12 11:21 ` Marc Kleine-Budde 2025-12-12 18:00 ` Conor Dooley @ 2025-12-17 8:15 ` Geert Uytterhoeven 1 sibling, 0 replies; 8+ messages in thread From: Geert Uytterhoeven @ 2025-12-17 8:15 UTC (permalink / raw) To: Marc Kleine-Budde Cc: Conor Dooley, Prabhakar, Vincent Mailhol, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar On Fri, 12 Dec 2025 at 12:22, Marc Kleine-Budde <mkl@pengutronix.de> wrote: > On 10.12.2025 18:21:34, Conor Dooley wrote: > > On Wed, Dec 10, 2025 at 08:52:58AM +0100, Marc Kleine-Budde wrote: > > > On 09.12.2025 16:21:19, Prabhakar wrote: > > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > > > > > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > > > > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > > > > mirroring the behaviour of the NXP TJA1048, which also provides dual > > > > channels and STB1/2 sleep-control lines. > > > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > --- > > > > TCAN 1046, https://www.ti.com/lit/ds/symlink/tcan1046v-q1.pdf?ts=1765297159307&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN1046V-Q1 > > > > NXP TJA1048, https://www.nxp.com/docs/en/data-sheet/TJA1048.pdf > > > > > > The polarity of the standby line of the chips is different. > > > > > > You must set the correct active high/low property for the GPIO, as the > > > driver uses logical levels. > > > > > > Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> > > > > What you're saying seems to contradict the tag you've given, is a > > fallback really suitable if the standby polarity is not the same? > > The driver uses _logical_ levels to switch the GPIOs. For example to > power on the PHY, it disables the standby GPIO by setting the value to > "0". > > | static int can_transceiver_phy_power_on(struct phy *phy) > | { > [...] > | gpiod_set_value_cansleep(can_transceiver_phy->standby_gpio, 0); > [...] > | } > > You have to use GPIO_ACTIVE_HIGH/GPIO_ACTIVE_LOW in the DT to configure > the actual level of the GPIO. > > If you connect the PHY's standby input directly to the SoC's GPIO.... > > | TJA1048: HIGH = Normal mode, LOW = Standby mode > | TCAN1046: High = Standby mode, Low = Normal Mode > > ...for the TJA1048 you would use GPIO_ACTIVE_LOW, while for the > TCAN1046 you would use GPIO_ACTIVE_HIGH. Exactly. For most of these CAN transceivers, there are typically two almost identical parts (usually differing in the last digit of the part number), one with active-high standby, another with active-low standby. These differences can be handled perfectly fine using the GPIO_ACTIVE_* lags. Note that there can be other differences: the RZ/V2H board Prabhakar works on actually has TCAN1046V. The "V" variant differs from TCAN1046 (and TJA1048) in configuration of the two power supply pins: - TCAN1046 has independent supplies for the two channels, - TCAN1046V has separate logic and I/O supplies for the combined channels. Since this difference can be handled through *-supply properties (when the need arises, and the driver gains regulator support), I don't think separate compatible values are needed for "V" variants. BTW, how do I know? Because I had started working on adding support for TCAN1046V myself, but Prabhakar beat me to sending out patches ;-) Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 2025-12-09 16:21 [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 Prabhakar 2025-12-10 7:52 ` Marc Kleine-Budde @ 2025-12-23 17:44 ` Vinod Koul 1 sibling, 0 replies; 8+ messages in thread From: Vinod Koul @ 2025-12-23 17:44 UTC (permalink / raw) To: Marc Kleine-Budde, Vincent Mailhol, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Aswath Govindraju, Frank Li, Prabhakar Cc: linux-can, linux-phy, devicetree, linux-kernel, linux-renesas-soc, Biju Das, Fabrizio Castro, Lad Prabhakar On Tue, 09 Dec 2025 16:21:19 +0000, Prabhakar wrote: > Document the TI TCAN1046 automotive CAN transceiver. The TCAN1046 is a > dual high-speed CAN transceiver with sleep-mode support and no EN pin, > mirroring the behaviour of the NXP TJA1048, which also provides dual > channels and STB1/2 sleep-control lines. > > Applied, thanks! [1/1] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 commit: 5442f9fd8814932e42602670bd013fcbc10a6906 Best regards, -- ~Vinod ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-12-23 17:45 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-12-09 16:21 [PATCH v2] dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046 Prabhakar 2025-12-10 7:52 ` Marc Kleine-Budde 2025-12-10 18:21 ` Conor Dooley 2025-12-12 10:58 ` Lad, Prabhakar 2025-12-12 11:21 ` Marc Kleine-Budde 2025-12-12 18:00 ` Conor Dooley 2025-12-17 8:15 ` Geert Uytterhoeven 2025-12-23 17:44 ` Vinod Koul
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox