Hi Marc, On Monday 05 November 2018 05:17 PM, Marc Kleine-Budde wrote: > On 11/05/2018 12:14 PM, Faiz Abbas wrote: >> Hi, >> >> On Monday 05 November 2018 03:07 PM, Marc Kleine-Budde wrote: >>> On 11/05/2018 07:27 AM, Faiz Abbas wrote: >>>> I remove the transceiver child node binding documentation in patch 5/6. >>>> >>>> The existing implementation is pretty limiting as it just has a child >>>> node with no associated device. What if a transceiver requires its own >>>> configurations before it can start sending/receiving messages (for >>>> example, my usecase requires it to pull the standby line low)? >>>> >>>> I think that can be solved by implementing the transceiver as a phy and >>>> exposing a generic get_max_bitrate API. That way, the transceiver device >>>> can do all its startup configuration in the phy probe function. >>>> >>>> In any case, do suggest if you have a better idea on how to implement >>>> pull gpio low requirement. >>> >>> As long as we don't have any proper transceiver/phy driver, that does >>> more than swtich on/off a GPIO, please add a "xceiver" regulator to your >>> driver. Look for: >>> >>>> devm_regulator_get(&pdev->dev, "xceiver"); >>> >> >> The transceiver is not specific to m_can. The pull down would be >> required even if it were connected to some other controller. > > Ok, this is a quite common pattern. For the fsl/nxp boards we add the > regulator to the board dts. See "imx28-evk.dts" for example: > >> can0: can@80032000 { >> pinctrl-names = "default"; >> pinctrl-0 = <&can0_pins_a>; >> xceiver-supply = <®_can_3v3>; >> status = "okay"; >> }; >> >> can1: can@80034000 { >> pinctrl-names = "default"; >> pinctrl-0 = <&can1_pins_a>; >> xceiver-supply = <®_can_3v3>; >> status = "okay"; >> }; > Ok. Will implement that in v2. Thanks, Faiz