[PATCH v2 2/2] net: flexcan: add transceiver switch gpios support
From: mkl@pengutronix.de (Marc Kleine-Budde)
Date: 2012-06-29 09:27:04
Also in:
linux-can
On 06/28/2012 02:18 PM, Dong Aisheng wrote:
On Thu, Jun 28, 2012 at 08:05:14PM +0800, Marc Kleine-Budde wrote:quoted
On 06/28/2012 01:46 PM, Shawn Guo wrote:quoted
On Thu, Jun 28, 2012 at 07:33:28PM +0800, Dong Aisheng wrote:quoted
quoted
+ phy_stby_gpio = of_get_named_gpio_flags(pdev->dev.of_node, + "phy-standby-gpios", + 0, &flags); + if (gpio_is_valid(phy_stby_gpio)) { + if (flags == OF_GPIO_ACTIVE_LOW) + phy_stby_high = false; + err = devm_gpio_request_one(&pdev->dev, phy_stby_gpio, + GPIOF_DIR_OUT, + "phy-standby"); + if (err) { + dev_err(&pdev->dev, + "failed to request gpio %d: %d\n", + phy_stby_gpio, err); + goto failed_gpio;I checked mx28 evk, it seems the phy only has a STB gpio and shared by both CAN0&CAN1. I wonder the CAN1 probe may fail here.It can be managed by dts. Here is what I have in imx28-evk.dts, where only can0 has phy-enable-gpios property. can0: can at 80032000 { pinctrl-names = "default"; pinctrl-0 = <&can0_pins_a>; phy-enable-gpios = <&gpio2 13 0>; status = "okay"; }; can1: can at 80034000 { pinctrl-names = "default"; pinctrl-0 = <&can1_pins_a>; status = "okay"; };Will this work if can0 is down and can1 is up? Can we abstract the transceiver power as a regulator? Or a clock? :PHmm, it may not be a power. For mx28evk, it's a STBY pin. So it may hard to abstract it as a regulator or clock.
I just talked to Sascha, He pointed out, that there already is regulator that toggles a gpio (only one, not several). I haven't looked at the details, but a regulator should solve the "two CAN ports share the same transceiver/phy" problem. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de | -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 262 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120629/6732d95d/attachment.sig>