* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-08 12:00 ` Alexander Shiyan
0 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-08 12:00 UTC (permalink / raw)
To: linux-can
Cc: netdev, Marc Kleine-Budde, Wolfgang Grandegger, linux-arm-kernel,
Eric Miao, Russell King, Haojian Zhuang, Alexander Shiyan
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
arch/arm/mach-pxa/icontrol.c | 3 --
arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
drivers/net/can/mcp251x.c | 81 +++++++++++++++++++-----------------
include/linux/can/platform/mcp251x.h | 13 +-----
4 files changed, 69 insertions(+), 74 deletions(-)
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c
index fe31bfc..c98511c 100644
--- a/arch/arm/mach-pxa/icontrol.c
+++ b/arch/arm/mach-pxa/icontrol.c
@@ -73,9 +73,6 @@ static struct pxa2xx_spi_chip mcp251x_chip_info4 = {
static struct mcp251x_platform_data mcp251x_info = {
.oscillator_frequency = 16E6,
- .board_specific_setup = NULL,
- .power_enable = NULL,
- .transceiver_enable = NULL
};
static struct spi_board_info mcp251x_board_info[] = {
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
index f5d4364..a49c886 100644
--- a/arch/arm/mach-pxa/zeus.c
+++ b/arch/arm/mach-pxa/zeus.c
@@ -29,6 +29,8 @@
#include <linux/i2c/pca953x.h>
#include <linux/apm-emulation.h>
#include <linux/can/platform/mcp251x.h>
+#include <linux/regulator/fixed.h>
+#include <linux/regulator/machine.h>
#include <asm/mach-types.h>
#include <asm/suspend.h>
@@ -391,33 +393,34 @@ static struct pxa2xx_spi_master pxa2xx_spi_ssp3_master_info = {
};
/* CAN bus on SPI */
-static int zeus_mcp2515_setup(struct spi_device *sdev)
-{
- int err;
-
- err = gpio_request(ZEUS_CAN_SHDN_GPIO, "CAN shutdown");
- if (err)
- return err;
+static struct regulator_consumer_supply can_regulator_consumer =
+ REGULATOR_SUPPLY("vdd", "mcp251x.0");
- err = gpio_direction_output(ZEUS_CAN_SHDN_GPIO, 1);
- if (err) {
- gpio_free(ZEUS_CAN_SHDN_GPIO);
- return err;
- }
+static struct regulator_init_data can_regulator_init_data = {
+ .constraints = {
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ },
+ .consumer_supplies = &can_regulator_consumer,
+ .num_consumer_supplies = 1,
+};
- return 0;
-}
+static struct fixed_voltage_config can_regulator_pdata = {
+ .supply_name = "CAN_SHDN",
+ .microvolts = 3300000,
+ .gpio = ZEUS_CAN_SHDN_GPIO,
+ .init_data = &can_regulator_init_data,
+};
-static int zeus_mcp2515_transceiver_enable(int enable)
-{
- gpio_set_value(ZEUS_CAN_SHDN_GPIO, !enable);
- return 0;
-}
+static struct platform_device can_regulator_device = {
+ .name = "reg-fixed-volage",
+ .id = -1,
+ .dev = {
+ .platform_data = &can_regulator_pdata,
+ },
+};
static struct mcp251x_platform_data zeus_mcp2515_pdata = {
.oscillator_frequency = 16*1000*1000,
- .board_specific_setup = zeus_mcp2515_setup,
- .power_enable = zeus_mcp2515_transceiver_enable,
};
static struct spi_board_info zeus_spi_board_info[] = {
@@ -516,6 +519,7 @@ static struct platform_device *zeus_devices[] __initdata = {
&zeus_leds_device,
&zeus_pcmcia_device,
&zeus_max6369_device,
+ &can_regulator_device,
};
/* AC'97 */
diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c
index 8cda23b..c220cdf 100644
--- a/drivers/net/can/mcp251x.c
+++ b/drivers/net/can/mcp251x.c
@@ -37,9 +37,6 @@
*
* static struct mcp251x_platform_data mcp251x_info = {
* .oscillator_frequency = 8000000,
- * .board_specific_setup = &mcp251x_setup,
- * .power_enable = mcp251x_power_enable,
- * .transceiver_enable = NULL,
* };
*
* static struct spi_board_info spi_board_info[] = {
@@ -76,6 +73,7 @@
#include <linux/slab.h>
#include <linux/spi/spi.h>
#include <linux/uaccess.h>
+#include <linux/regulator/consumer.h>
/* SPI interface instruction set */
#define INSTRUCTION_WRITE 0x02
@@ -264,6 +262,8 @@ struct mcp251x_priv {
#define AFTER_SUSPEND_POWER 4
#define AFTER_SUSPEND_RESTART 8
int restart_tx;
+ struct regulator *power;
+ struct regulator *transceiver;
};
#define MCP251X_IS(_model) \
@@ -671,12 +671,11 @@ static void mcp251x_open_clean(struct net_device *net)
{
struct mcp251x_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
free_irq(spi->irq, priv);
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
close_candev(net);
}
@@ -684,7 +683,6 @@ static int mcp251x_stop(struct net_device *net)
{
struct mcp251x_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
close_candev(net);
@@ -704,8 +702,8 @@ static int mcp251x_stop(struct net_device *net)
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
priv->can.state = CAN_STATE_STOPPED;
@@ -939,8 +937,8 @@ static int mcp251x_open(struct net_device *net)
}
mutex_lock(&priv->mcp_lock);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(1);
+ if (!IS_ERR(priv->transceiver))
+ regulator_enable(priv->transceiver);
priv->force_quit = 0;
priv->tx_skb = NULL;
@@ -956,8 +954,8 @@ static int mcp251x_open(struct net_device *net)
flags, DEVICE_NAME, priv);
if (ret) {
dev_err(&spi->dev, "failed to acquire irq %d\n", spi->irq);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
close_candev(net);
goto open_unlock;
}
@@ -1026,6 +1024,21 @@ static int mcp251x_can_probe(struct spi_device *spi)
CAN_CTRLMODE_LOOPBACK | CAN_CTRLMODE_LISTENONLY;
priv->model = spi_get_device_id(spi)->driver_data;
priv->net = net;
+
+ priv->power = devm_regulator_get(&spi->dev, "vdd");
+ priv->transceiver = devm_regulator_get(&spi->dev, "transceiver");
+ if ((PTR_ERR(priv->power) == -EPROBE_DEFER) ||
+ (PTR_ERR(priv->transceiver) == -EPROBE_DEFER)) {
+ ret = -EPROBE_DEFER;
+ goto error_power;
+ }
+
+ if (!IS_ERR(priv->power)) {
+ ret = regulator_enable(priv->power);
+ if (ret)
+ goto error_power;
+ }
+
spi_set_drvdata(spi, priv);
priv->spi = spi;
@@ -1068,13 +1081,6 @@ static int mcp251x_can_probe(struct spi_device *spi)
}
}
- if (pdata->power_enable)
- pdata->power_enable(1);
-
- /* Call out to platform specific setup */
- if (pdata->board_specific_setup)
- pdata->board_specific_setup(spi);
-
SET_NETDEV_DEV(net, &spi->dev);
/* Configure the SPI bus */
@@ -1084,14 +1090,11 @@ static int mcp251x_can_probe(struct spi_device *spi)
/* Here is OK to not lock the MCP, no one knows about it yet */
if (!mcp251x_hw_probe(spi)) {
- dev_info(&spi->dev, "Probe failed\n");
+ ret = -ENODEV;
goto error_probe;
}
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
-
ret = register_candev(net);
if (ret)
goto error_probe;
@@ -1109,13 +1112,14 @@ error_rx_buf:
if (!mcp251x_enable_dma)
kfree(priv->spi_tx_buf);
error_tx_buf:
- free_candev(net);
if (mcp251x_enable_dma)
dma_free_coherent(&spi->dev, PAGE_SIZE,
priv->spi_tx_buf, priv->spi_tx_dma);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
+error_power:
+ free_candev(net);
error_alloc:
- if (pdata->power_enable)
- pdata->power_enable(0);
dev_err(&spi->dev, "probe failed\n");
error_out:
return ret;
@@ -1123,12 +1127,10 @@ error_out:
static int mcp251x_can_remove(struct spi_device *spi)
{
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
struct mcp251x_priv *priv = spi_get_drvdata(spi);
struct net_device *net = priv->net;
unregister_candev(net);
- free_candev(net);
if (mcp251x_enable_dma) {
dma_free_coherent(&spi->dev, PAGE_SIZE,
@@ -1138,8 +1140,10 @@ static int mcp251x_can_remove(struct spi_device *spi)
kfree(priv->spi_rx_buf);
}
- if (pdata->power_enable)
- pdata->power_enable(0);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
+
+ free_candev(net);
return 0;
}
@@ -1163,15 +1167,15 @@ static int mcp251x_can_suspend(struct device *dev)
netif_device_detach(net);
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
priv->after_suspend = AFTER_SUSPEND_UP;
} else {
priv->after_suspend = AFTER_SUSPEND_DOWN;
}
- if (pdata->power_enable) {
- pdata->power_enable(0);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
priv->after_suspend |= AFTER_SUSPEND_POWER;
}
@@ -1185,12 +1189,13 @@ static int mcp251x_can_resume(struct device *dev)
struct mcp251x_priv *priv = spi_get_drvdata(spi);
if (priv->after_suspend & AFTER_SUSPEND_POWER) {
- pdata->power_enable(1);
+ if (!IS_ERR(priv->power))
+ regulator_enable(priv->power);
queue_work(priv->wq, &priv->restart_work);
} else {
if (priv->after_suspend & AFTER_SUSPEND_UP) {
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(1);
+ if (!IS_ERR(priv->transceiver))
+ regulator_enable(priv->transceiver);
queue_work(priv->wq, &priv->restart_work);
} else {
priv->after_suspend = 0;
diff --git a/include/linux/can/platform/mcp251x.h b/include/linux/can/platform/mcp251x.h
index 089fe43..8a27256 100644
--- a/include/linux/can/platform/mcp251x.h
+++ b/include/linux/can/platform/mcp251x.h
@@ -9,26 +9,15 @@
#include <linux/spi/spi.h>
-/**
+/*
* struct mcp251x_platform_data - MCP251X SPI CAN controller platform data
* @oscillator_frequency: - oscillator frequency in Hz
* @irq_flags: - IRQF configuration flags
- * @board_specific_setup: - called before probing the chip (power,reset)
- * @transceiver_enable: - called to power on/off the transceiver
- * @power_enable: - called to power on/off the mcp *and* the
- * transceiver
- *
- * Please note that you should define power_enable or transceiver_enable or
- * none of them. Defining both of them is no use.
- *
*/
struct mcp251x_platform_data {
unsigned long oscillator_frequency;
unsigned long irq_flags;
- int (*board_specific_setup)(struct spi_device *spi);
- int (*transceiver_enable)(int enable);
- int (*power_enable) (int enable);
};
#endif /* __CAN_PLATFORM_MCP251X_H__ */
--
1.8.1.5
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-08 12:00 ` Alexander Shiyan
0 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-08 12:00 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
arch/arm/mach-pxa/icontrol.c | 3 --
arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
drivers/net/can/mcp251x.c | 81 +++++++++++++++++++-----------------
include/linux/can/platform/mcp251x.h | 13 +-----
4 files changed, 69 insertions(+), 74 deletions(-)
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c
index fe31bfc..c98511c 100644
--- a/arch/arm/mach-pxa/icontrol.c
+++ b/arch/arm/mach-pxa/icontrol.c
@@ -73,9 +73,6 @@ static struct pxa2xx_spi_chip mcp251x_chip_info4 = {
static struct mcp251x_platform_data mcp251x_info = {
.oscillator_frequency = 16E6,
- .board_specific_setup = NULL,
- .power_enable = NULL,
- .transceiver_enable = NULL
};
static struct spi_board_info mcp251x_board_info[] = {
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
index f5d4364..a49c886 100644
--- a/arch/arm/mach-pxa/zeus.c
+++ b/arch/arm/mach-pxa/zeus.c
@@ -29,6 +29,8 @@
#include <linux/i2c/pca953x.h>
#include <linux/apm-emulation.h>
#include <linux/can/platform/mcp251x.h>
+#include <linux/regulator/fixed.h>
+#include <linux/regulator/machine.h>
#include <asm/mach-types.h>
#include <asm/suspend.h>
@@ -391,33 +393,34 @@ static struct pxa2xx_spi_master pxa2xx_spi_ssp3_master_info = {
};
/* CAN bus on SPI */
-static int zeus_mcp2515_setup(struct spi_device *sdev)
-{
- int err;
-
- err = gpio_request(ZEUS_CAN_SHDN_GPIO, "CAN shutdown");
- if (err)
- return err;
+static struct regulator_consumer_supply can_regulator_consumer =
+ REGULATOR_SUPPLY("vdd", "mcp251x.0");
- err = gpio_direction_output(ZEUS_CAN_SHDN_GPIO, 1);
- if (err) {
- gpio_free(ZEUS_CAN_SHDN_GPIO);
- return err;
- }
+static struct regulator_init_data can_regulator_init_data = {
+ .constraints = {
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ },
+ .consumer_supplies = &can_regulator_consumer,
+ .num_consumer_supplies = 1,
+};
- return 0;
-}
+static struct fixed_voltage_config can_regulator_pdata = {
+ .supply_name = "CAN_SHDN",
+ .microvolts = 3300000,
+ .gpio = ZEUS_CAN_SHDN_GPIO,
+ .init_data = &can_regulator_init_data,
+};
-static int zeus_mcp2515_transceiver_enable(int enable)
-{
- gpio_set_value(ZEUS_CAN_SHDN_GPIO, !enable);
- return 0;
-}
+static struct platform_device can_regulator_device = {
+ .name = "reg-fixed-volage",
+ .id = -1,
+ .dev = {
+ .platform_data = &can_regulator_pdata,
+ },
+};
static struct mcp251x_platform_data zeus_mcp2515_pdata = {
.oscillator_frequency = 16*1000*1000,
- .board_specific_setup = zeus_mcp2515_setup,
- .power_enable = zeus_mcp2515_transceiver_enable,
};
static struct spi_board_info zeus_spi_board_info[] = {
@@ -516,6 +519,7 @@ static struct platform_device *zeus_devices[] __initdata = {
&zeus_leds_device,
&zeus_pcmcia_device,
&zeus_max6369_device,
+ &can_regulator_device,
};
/* AC'97 */
diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c
index 8cda23b..c220cdf 100644
--- a/drivers/net/can/mcp251x.c
+++ b/drivers/net/can/mcp251x.c
@@ -37,9 +37,6 @@
*
* static struct mcp251x_platform_data mcp251x_info = {
* .oscillator_frequency = 8000000,
- * .board_specific_setup = &mcp251x_setup,
- * .power_enable = mcp251x_power_enable,
- * .transceiver_enable = NULL,
* };
*
* static struct spi_board_info spi_board_info[] = {
@@ -76,6 +73,7 @@
#include <linux/slab.h>
#include <linux/spi/spi.h>
#include <linux/uaccess.h>
+#include <linux/regulator/consumer.h>
/* SPI interface instruction set */
#define INSTRUCTION_WRITE 0x02
@@ -264,6 +262,8 @@ struct mcp251x_priv {
#define AFTER_SUSPEND_POWER 4
#define AFTER_SUSPEND_RESTART 8
int restart_tx;
+ struct regulator *power;
+ struct regulator *transceiver;
};
#define MCP251X_IS(_model) \
@@ -671,12 +671,11 @@ static void mcp251x_open_clean(struct net_device *net)
{
struct mcp251x_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
free_irq(spi->irq, priv);
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
close_candev(net);
}
@@ -684,7 +683,6 @@ static int mcp251x_stop(struct net_device *net)
{
struct mcp251x_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
close_candev(net);
@@ -704,8 +702,8 @@ static int mcp251x_stop(struct net_device *net)
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
priv->can.state = CAN_STATE_STOPPED;
@@ -939,8 +937,8 @@ static int mcp251x_open(struct net_device *net)
}
mutex_lock(&priv->mcp_lock);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(1);
+ if (!IS_ERR(priv->transceiver))
+ regulator_enable(priv->transceiver);
priv->force_quit = 0;
priv->tx_skb = NULL;
@@ -956,8 +954,8 @@ static int mcp251x_open(struct net_device *net)
flags, DEVICE_NAME, priv);
if (ret) {
dev_err(&spi->dev, "failed to acquire irq %d\n", spi->irq);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
close_candev(net);
goto open_unlock;
}
@@ -1026,6 +1024,21 @@ static int mcp251x_can_probe(struct spi_device *spi)
CAN_CTRLMODE_LOOPBACK | CAN_CTRLMODE_LISTENONLY;
priv->model = spi_get_device_id(spi)->driver_data;
priv->net = net;
+
+ priv->power = devm_regulator_get(&spi->dev, "vdd");
+ priv->transceiver = devm_regulator_get(&spi->dev, "transceiver");
+ if ((PTR_ERR(priv->power) == -EPROBE_DEFER) ||
+ (PTR_ERR(priv->transceiver) == -EPROBE_DEFER)) {
+ ret = -EPROBE_DEFER;
+ goto error_power;
+ }
+
+ if (!IS_ERR(priv->power)) {
+ ret = regulator_enable(priv->power);
+ if (ret)
+ goto error_power;
+ }
+
spi_set_drvdata(spi, priv);
priv->spi = spi;
@@ -1068,13 +1081,6 @@ static int mcp251x_can_probe(struct spi_device *spi)
}
}
- if (pdata->power_enable)
- pdata->power_enable(1);
-
- /* Call out to platform specific setup */
- if (pdata->board_specific_setup)
- pdata->board_specific_setup(spi);
-
SET_NETDEV_DEV(net, &spi->dev);
/* Configure the SPI bus */
@@ -1084,14 +1090,11 @@ static int mcp251x_can_probe(struct spi_device *spi)
/* Here is OK to not lock the MCP, no one knows about it yet */
if (!mcp251x_hw_probe(spi)) {
- dev_info(&spi->dev, "Probe failed\n");
+ ret = -ENODEV;
goto error_probe;
}
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
-
ret = register_candev(net);
if (ret)
goto error_probe;
@@ -1109,13 +1112,14 @@ error_rx_buf:
if (!mcp251x_enable_dma)
kfree(priv->spi_tx_buf);
error_tx_buf:
- free_candev(net);
if (mcp251x_enable_dma)
dma_free_coherent(&spi->dev, PAGE_SIZE,
priv->spi_tx_buf, priv->spi_tx_dma);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
+error_power:
+ free_candev(net);
error_alloc:
- if (pdata->power_enable)
- pdata->power_enable(0);
dev_err(&spi->dev, "probe failed\n");
error_out:
return ret;
@@ -1123,12 +1127,10 @@ error_out:
static int mcp251x_can_remove(struct spi_device *spi)
{
- struct mcp251x_platform_data *pdata = spi->dev.platform_data;
struct mcp251x_priv *priv = spi_get_drvdata(spi);
struct net_device *net = priv->net;
unregister_candev(net);
- free_candev(net);
if (mcp251x_enable_dma) {
dma_free_coherent(&spi->dev, PAGE_SIZE,
@@ -1138,8 +1140,10 @@ static int mcp251x_can_remove(struct spi_device *spi)
kfree(priv->spi_rx_buf);
}
- if (pdata->power_enable)
- pdata->power_enable(0);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
+
+ free_candev(net);
return 0;
}
@@ -1163,15 +1167,15 @@ static int mcp251x_can_suspend(struct device *dev)
netif_device_detach(net);
mcp251x_hw_sleep(spi);
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(0);
+ if (!IS_ERR(priv->transceiver))
+ regulator_disable(priv->transceiver);
priv->after_suspend = AFTER_SUSPEND_UP;
} else {
priv->after_suspend = AFTER_SUSPEND_DOWN;
}
- if (pdata->power_enable) {
- pdata->power_enable(0);
+ if (!IS_ERR(priv->power))
+ regulator_disable(priv->power);
priv->after_suspend |= AFTER_SUSPEND_POWER;
}
@@ -1185,12 +1189,13 @@ static int mcp251x_can_resume(struct device *dev)
struct mcp251x_priv *priv = spi_get_drvdata(spi);
if (priv->after_suspend & AFTER_SUSPEND_POWER) {
- pdata->power_enable(1);
+ if (!IS_ERR(priv->power))
+ regulator_enable(priv->power);
queue_work(priv->wq, &priv->restart_work);
} else {
if (priv->after_suspend & AFTER_SUSPEND_UP) {
- if (pdata->transceiver_enable)
- pdata->transceiver_enable(1);
+ if (!IS_ERR(priv->transceiver))
+ regulator_enable(priv->transceiver);
queue_work(priv->wq, &priv->restart_work);
} else {
priv->after_suspend = 0;
diff --git a/include/linux/can/platform/mcp251x.h b/include/linux/can/platform/mcp251x.h
index 089fe43..8a27256 100644
--- a/include/linux/can/platform/mcp251x.h
+++ b/include/linux/can/platform/mcp251x.h
@@ -9,26 +9,15 @@
#include <linux/spi/spi.h>
-/**
+/*
* struct mcp251x_platform_data - MCP251X SPI CAN controller platform data
* @oscillator_frequency: - oscillator frequency in Hz
* @irq_flags: - IRQF configuration flags
- * @board_specific_setup: - called before probing the chip (power,reset)
- * @transceiver_enable: - called to power on/off the transceiver
- * @power_enable: - called to power on/off the mcp *and* the
- * transceiver
- *
- * Please note that you should define power_enable or transceiver_enable or
- * none of them. Defining both of them is no use.
- *
*/
struct mcp251x_platform_data {
unsigned long oscillator_frequency;
unsigned long irq_flags;
- int (*board_specific_setup)(struct spi_device *spi);
- int (*transceiver_enable)(int enable);
- int (*power_enable) (int enable);
};
#endif /* __CAN_PLATFORM_MCP251X_H__ */
--
1.8.1.5
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-08 12:00 ` Alexander Shiyan
@ 2013-08-09 7:37 ` Marc Kleine-Budde
-1 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-09 7:37 UTC (permalink / raw)
To: Alexander Shiyan
Cc: linux-can, netdev, Wolfgang Grandegger, linux-arm-kernel,
Eric Miao, Russell King, Haojian Zhuang
[-- Attachment #1: Type: text/plain, Size: 599 bytes --]
On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
> arch/arm/mach-pxa/icontrol.c | 3 --
> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
What's pxa's status of DT conversion? Do you (still) accept patches to
board files?
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 |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-09 7:37 ` Marc Kleine-Budde
0 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-09 7:37 UTC (permalink / raw)
To: linux-arm-kernel
On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
> arch/arm/mach-pxa/icontrol.c | 3 --
> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
What's pxa's status of DT conversion? Do you (still) accept patches to
board files?
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: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130809/1e24b0f3/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-09 7:37 ` Marc Kleine-Budde
@ 2013-08-17 2:03 ` Haojian Zhuang
-1 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 2:03 UTC (permalink / raw)
To: Marc Kleine-Budde
Cc: Alexander Shiyan, linux-can, netdev, Wolfgang Grandegger,
linux-arm-kernel, Eric Miao, Russell King
On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> ---
>> arch/arm/mach-pxa/icontrol.c | 3 --
>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>
> What's pxa's status of DT conversion? Do you (still) accept patches to
> board files?
>
> Marc
>
Since DT conversion isn't finished, I still accept the board files.
But this patch should be split into two parts. One is for pxa, and the
other one is for net.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 2:03 ` Haojian Zhuang
0 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 2:03 UTC (permalink / raw)
To: linux-arm-kernel
On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> ---
>> arch/arm/mach-pxa/icontrol.c | 3 --
>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>
> What's pxa's status of DT conversion? Do you (still) accept patches to
> board files?
>
> Marc
>
Since DT conversion isn't finished, I still accept the board files.
But this patch should be split into two parts. One is for pxa, and the
other one is for net.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-09 7:37 ` Marc Kleine-Budde
@ 2013-08-17 2:19 ` Haojian Zhuang
-1 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 2:19 UTC (permalink / raw)
To: Marc Kleine-Budde
Cc: Alexander Shiyan, linux-can, netdev, Wolfgang Grandegger,
linux-arm-kernel, Eric Miao, Russell King
On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> ---
>> arch/arm/mach-pxa/icontrol.c | 3 --
>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>
> What's pxa's status of DT conversion? Do you (still) accept patches to
> board files?
>
> Marc
>
Since DT conversion isn't finished, I still accept the board files.
But this patch should be split into two parts. One is for pxa, and the
other one is for net.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 2:19 ` Haojian Zhuang
0 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 2:19 UTC (permalink / raw)
To: linux-arm-kernel
On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> ---
>> arch/arm/mach-pxa/icontrol.c | 3 --
>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>
> What's pxa's status of DT conversion? Do you (still) accept patches to
> board files?
>
> Marc
>
Since DT conversion isn't finished, I still accept the board files.
But this patch should be split into two parts. One is for pxa, and the
other one is for net.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 2:19 ` Haojian Zhuang
@ 2013-08-17 4:30 ` Alexander Shiyan
-1 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-17 4:30 UTC (permalink / raw)
To: Haojian Zhuang
Cc: Russell King, netdev, linux-can, Marc Kleine-Budde,
linux-arm-kernel, Eric Miao, Wolfgang Grandegger
On Sat, 17 Aug 2013 10:19:20 +0800
Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> > On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
> >> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> >> ---
> >> arch/arm/mach-pxa/icontrol.c | 3 --
> >> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
> >
> > What's pxa's status of DT conversion? Do you (still) accept patches to
> > board files?
> >
> > Marc
> >
>
> Since DT conversion isn't finished, I still accept the board files.
> But this patch should be split into two parts. One is for pxa, and the
> other one is for net.
Patch cannot be splitted because this can create hole which break git-bisect.
In any case, I want to create a v2 with a more detailed description, and I
have a supplementary question for the CAN subsystem maintainers.
"Transciever power" is not used by any of the boards, can we remove it
completely? This will greatly simplify driver.
Thanks.
--
Alexander Shiyan <shc_work@mail.ru>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 4:30 ` Alexander Shiyan
0 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-17 4:30 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, 17 Aug 2013 10:19:20 +0800
Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
> > On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
> >> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> >> ---
> >> arch/arm/mach-pxa/icontrol.c | 3 --
> >> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
> >
> > What's pxa's status of DT conversion? Do you (still) accept patches to
> > board files?
> >
> > Marc
> >
>
> Since DT conversion isn't finished, I still accept the board files.
> But this patch should be split into two parts. One is for pxa, and the
> other one is for net.
Patch cannot be splitted because this can create hole which break git-bisect.
In any case, I want to create a v2 with a more detailed description, and I
have a supplementary question for the CAN subsystem maintainers.
"Transciever power" is not used by any of the boards, can we remove it
completely? This will greatly simplify driver.
Thanks.
--
Alexander Shiyan <shc_work@mail.ru>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 4:30 ` Alexander Shiyan
@ 2013-08-17 4:37 ` Haojian Zhuang
-1 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 4:37 UTC (permalink / raw)
To: Alexander Shiyan
Cc: Marc Kleine-Budde, Eric Miao, netdev, linux-can,
Wolfgang Grandegger, Russell King, linux-arm-kernel
On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
> On Sat, 17 Aug 2013 10:19:20 +0800
> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>
>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>> > On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> >> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> >> ---
>> >> arch/arm/mach-pxa/icontrol.c | 3 --
>> >> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>> >
>> > What's pxa's status of DT conversion? Do you (still) accept patches to
>> > board files?
>> >
>> > Marc
>> >
>>
>> Since DT conversion isn't finished, I still accept the board files.
>> But this patch should be split into two parts. One is for pxa, and the
>> other one is for net.
>
> Patch cannot be splitted because this can create hole which break git-bisect.
>
> In any case, I want to create a v2 with a more detailed description, and I
> have a supplementary question for the CAN subsystem maintainers.
> "Transciever power" is not used by any of the boards, can we remove it
> completely? This will greatly simplify driver.
> Thanks.
>
> --
> Alexander Shiyan <shc_work@mail.ru>
If you want to make the patch go through pxa tree, you need to get the Ack
from CAN maintainer.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 4:37 ` Haojian Zhuang
0 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-17 4:37 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
> On Sat, 17 Aug 2013 10:19:20 +0800
> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>
>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>> > On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>> >> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>> >> ---
>> >> arch/arm/mach-pxa/icontrol.c | 3 --
>> >> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>> >
>> > What's pxa's status of DT conversion? Do you (still) accept patches to
>> > board files?
>> >
>> > Marc
>> >
>>
>> Since DT conversion isn't finished, I still accept the board files.
>> But this patch should be split into two parts. One is for pxa, and the
>> other one is for net.
>
> Patch cannot be splitted because this can create hole which break git-bisect.
>
> In any case, I want to create a v2 with a more detailed description, and I
> have a supplementary question for the CAN subsystem maintainers.
> "Transciever power" is not used by any of the boards, can we remove it
> completely? This will greatly simplify driver.
> Thanks.
>
> --
> Alexander Shiyan <shc_work@mail.ru>
If you want to make the patch go through pxa tree, you need to get the Ack
from CAN maintainer.
Regards
Haojian
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 4:30 ` Alexander Shiyan
@ 2013-08-17 19:59 ` Marc Kleine-Budde
-1 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-17 19:59 UTC (permalink / raw)
To: Alexander Shiyan
Cc: Haojian Zhuang, Eric Miao, netdev, linux-can,
Wolfgang Grandegger, Russell King, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 1749 bytes --]
On 08/17/2013 06:30 AM, Alexander Shiyan wrote:
[...]
>> Since DT conversion isn't finished, I still accept the board files.
>> But this patch should be split into two parts. One is for pxa, and the
>> other one is for net.
>
> Patch cannot be splitted because this can create hole which break git-bisect.
>
> In any case, I want to create a v2 with a more detailed description, and I
> have a supplementary question for the CAN subsystem maintainers.
> "Transciever power" is not used by any of the boards, can we remove it
> completely? This will greatly simplify driver.
Do you mean the former transceiver_enable() callback?
> struct mcp251x_platform_data {
> unsigned long oscillator_frequency;
> unsigned long irq_flags;
> - int (*board_specific_setup)(struct spi_device *spi);
> - int (*transceiver_enable)(int enable);
> - int (*power_enable) (int enable);
> };
Having a switchable transceiver is a quite common thing. So I'd like
that you keep it. The flexcan driver was just converted from a callback
to a regulator too. It already has device tree bindings and I'd like to
use these bindings as a standard for new drivers. From flexcan's dt
bindings:
> - xceiver-supply: Regulator that powers the CAN transceiver
which translates into:
> priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
Can you please use "xceiver" instead of "transceiver", so that future DT
binding will fit the scheme.
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 |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 19:59 ` Marc Kleine-Budde
0 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-17 19:59 UTC (permalink / raw)
To: linux-arm-kernel
On 08/17/2013 06:30 AM, Alexander Shiyan wrote:
[...]
>> Since DT conversion isn't finished, I still accept the board files.
>> But this patch should be split into two parts. One is for pxa, and the
>> other one is for net.
>
> Patch cannot be splitted because this can create hole which break git-bisect.
>
> In any case, I want to create a v2 with a more detailed description, and I
> have a supplementary question for the CAN subsystem maintainers.
> "Transciever power" is not used by any of the boards, can we remove it
> completely? This will greatly simplify driver.
Do you mean the former transceiver_enable() callback?
> struct mcp251x_platform_data {
> unsigned long oscillator_frequency;
> unsigned long irq_flags;
> - int (*board_specific_setup)(struct spi_device *spi);
> - int (*transceiver_enable)(int enable);
> - int (*power_enable) (int enable);
> };
Having a switchable transceiver is a quite common thing. So I'd like
that you keep it. The flexcan driver was just converted from a callback
to a regulator too. It already has device tree bindings and I'd like to
use these bindings as a standard for new drivers. From flexcan's dt
bindings:
> - xceiver-supply: Regulator that powers the CAN transceiver
which translates into:
> priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
Can you please use "xceiver" instead of "transceiver", so that future DT
binding will fit the scheme.
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: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130817/bb6c21aa/attachment-0001.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 19:59 ` Marc Kleine-Budde
@ 2013-08-17 21:10 ` Alexander Shiyan
-1 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-17 21:10 UTC (permalink / raw)
To: Marc Kleine-Budde
Cc: Russell King, netdev, Haojian Zhuang, linux-can,
linux-arm-kernel, Eric Miao, Wolfgang Grandegger
> On 08/17/2013 06:30 AM, Alexander Shiyan wrote:
> [...]
> >> Since DT conversion isn't finished, I still accept the board files.
> >> But this patch should be split into two parts. One is for pxa, and the
> >> other one is for net.
> >
> > Patch cannot be splitted because this can create hole which break git-bisect.
> >
> > In any case, I want to create a v2 with a more detailed description, and I
> > have a supplementary question for the CAN subsystem maintainers.
> > "Transciever power" is not used by any of the boards, can we remove it
> > completely? This will greatly simplify driver.
>
> Do you mean the former transceiver_enable() callback?
Yes.
> > struct mcp251x_platform_data {
> > unsigned long oscillator_frequency;
> > unsigned long irq_flags;
> > - int (*board_specific_setup)(struct spi_device *spi);
> > - int (*transceiver_enable)(int enable);
> > - int (*power_enable) (int enable);
> > };
>
> Having a switchable transceiver is a quite common thing. So I'd like
> that you keep it. The flexcan driver was just converted from a callback
> to a regulator too. It already has device tree bindings and I'd like to
> use these bindings as a standard for new drivers. From flexcan's dt
> bindings:
>
> > - xceiver-supply: Regulator that powers the CAN transceiver
>
> which translates into:
>
> > priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
>
> Can you please use "xceiver" instead of "transceiver", so that future DT
> binding will fit the scheme.
OK. I am not ready to add DT support yet, but it can be added later,
so v2 will contain 3 parts:
1 - Replace power callbacks with regulator API
2 - Eliminate mcp251x_platform_data->irq_flags
3 - Replace oscillator_frequency with CLK API (and remove mcp251x.h header)
Are you OK with such changes?
---
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-17 21:10 ` Alexander Shiyan
0 siblings, 0 replies; 22+ messages in thread
From: Alexander Shiyan @ 2013-08-17 21:10 UTC (permalink / raw)
To: linux-arm-kernel
> On 08/17/2013 06:30 AM, Alexander Shiyan wrote:
> [...]
> >> Since DT conversion isn't finished, I still accept the board files.
> >> But this patch should be split into two parts. One is for pxa, and the
> >> other one is for net.
> >
> > Patch cannot be splitted because this can create hole which break git-bisect.
> >
> > In any case, I want to create a v2 with a more detailed description, and I
> > have a supplementary question for the CAN subsystem maintainers.
> > "Transciever power" is not used by any of the boards, can we remove it
> > completely? This will greatly simplify driver.
>
> Do you mean the former transceiver_enable() callback?
Yes.
> > struct mcp251x_platform_data {
> > unsigned long oscillator_frequency;
> > unsigned long irq_flags;
> > - int (*board_specific_setup)(struct spi_device *spi);
> > - int (*transceiver_enable)(int enable);
> > - int (*power_enable) (int enable);
> > };
>
> Having a switchable transceiver is a quite common thing. So I'd like
> that you keep it. The flexcan driver was just converted from a callback
> to a regulator too. It already has device tree bindings and I'd like to
> use these bindings as a standard for new drivers. From flexcan's dt
> bindings:
>
> > - xceiver-supply: Regulator that powers the CAN transceiver
>
> which translates into:
>
> > priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
>
> Can you please use "xceiver" instead of "transceiver", so that future DT
> binding will fit the scheme.
OK. I am not ready to add DT support yet, but it can be added later,
so v2 will contain 3 parts:
1 - Replace power callbacks with regulator API
2 - Eliminate mcp251x_platform_data->irq_flags
3 - Replace oscillator_frequency with CLK API (and remove mcp251x.h header)
Are you OK with such changes?
---
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 21:10 ` Alexander Shiyan
@ 2013-08-18 8:00 ` Marc Kleine-Budde
-1 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-18 8:00 UTC (permalink / raw)
To: Alexander Shiyan
Cc: Russell King, netdev, Haojian Zhuang, linux-can,
linux-arm-kernel, Eric Miao, Wolfgang Grandegger
[-- Attachment #1: Type: text/plain, Size: 1191 bytes --]
On 08/17/2013 11:10 PM, Alexander Shiyan wrote:
[...]
>>> - xceiver-supply: Regulator that powers the CAN transceiver
>>
>> which translates into:
>>
>>> priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
>>
>> Can you please use "xceiver" instead of "transceiver", so that future DT
>> binding will fit the scheme.
>
> OK. I am not ready to add DT support yet, but it can be added later,
DT support can be added later, I just want to make sure that you use
"xceiver" for the regulator, so that you don't need to change any code
if DT is added.
> so v2 will contain 3 parts:
If you mean series v3 consists of three patches....
> 1 - Replace power callbacks with regulator API
> 2 - Eliminate mcp251x_platform_data->irq_flags
> 3 - Replace oscillator_frequency with CLK API (and remove mcp251x.h header)
>
> Are you OK with such changes?
...them I'm okay :)
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 |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-18 8:00 ` Marc Kleine-Budde
0 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-18 8:00 UTC (permalink / raw)
To: linux-arm-kernel
On 08/17/2013 11:10 PM, Alexander Shiyan wrote:
[...]
>>> - xceiver-supply: Regulator that powers the CAN transceiver
>>
>> which translates into:
>>
>>> priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
>>
>> Can you please use "xceiver" instead of "transceiver", so that future DT
>> binding will fit the scheme.
>
> OK. I am not ready to add DT support yet, but it can be added later,
DT support can be added later, I just want to make sure that you use
"xceiver" for the regulator, so that you don't need to change any code
if DT is added.
> so v2 will contain 3 parts:
If you mean series v3 consists of three patches....
> 1 - Replace power callbacks with regulator API
> 2 - Eliminate mcp251x_platform_data->irq_flags
> 3 - Replace oscillator_frequency with CLK API (and remove mcp251x.h header)
>
> Are you OK with such changes?
...them I'm okay :)
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: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130818/53d32f03/attachment-0001.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-17 4:37 ` Haojian Zhuang
@ 2013-08-20 8:46 ` Marc Kleine-Budde
-1 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-20 8:46 UTC (permalink / raw)
To: Haojian Zhuang
Cc: Alexander Shiyan, Eric Miao, netdev, linux-can,
Wolfgang Grandegger, Russell King, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 1907 bytes --]
On 08/17/2013 06:37 AM, Haojian Zhuang wrote:
> On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
>> On Sat, 17 Aug 2013 10:19:20 +0800
>> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>>
>>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>>>> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>>>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>>>> ---
>>>>> arch/arm/mach-pxa/icontrol.c | 3 --
>>>>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>>>>
>>>> What's pxa's status of DT conversion? Do you (still) accept patches to
>>>> board files?
>>>>
>>>> Marc
>>>>
>>>
>>> Since DT conversion isn't finished, I still accept the board files.
>>> But this patch should be split into two parts. One is for pxa, and the
>>> other one is for net.
>>
>> Patch cannot be splitted because this can create hole which break git-bisect.
>>
>> In any case, I want to create a v2 with a more detailed description, and I
>> have a supplementary question for the CAN subsystem maintainers.
>> "Transciever power" is not used by any of the boards, can we remove it
>> completely? This will greatly simplify driver.
>> Thanks.
>>
>> --
>> Alexander Shiyan <shc_work@mail.ru>
>
> If you want to make the patch go through pxa tree, you need to get the Ack
> from CAN maintainer.
The current series consists of 3 patches, only the first one touches
"arch/arm/mach-pxa", so I'd like the patches to go via linux-can. Can I
have your Acked-by for the first patch "[PATCH v2 1/3] can: mcp251x:
Replace power callbacks with regulator AP"
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 |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-20 8:46 ` Marc Kleine-Budde
0 siblings, 0 replies; 22+ messages in thread
From: Marc Kleine-Budde @ 2013-08-20 8:46 UTC (permalink / raw)
To: linux-arm-kernel
On 08/17/2013 06:37 AM, Haojian Zhuang wrote:
> On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
>> On Sat, 17 Aug 2013 10:19:20 +0800
>> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>>
>>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>>>> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>>>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>>>> ---
>>>>> arch/arm/mach-pxa/icontrol.c | 3 --
>>>>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>>>>
>>>> What's pxa's status of DT conversion? Do you (still) accept patches to
>>>> board files?
>>>>
>>>> Marc
>>>>
>>>
>>> Since DT conversion isn't finished, I still accept the board files.
>>> But this patch should be split into two parts. One is for pxa, and the
>>> other one is for net.
>>
>> Patch cannot be splitted because this can create hole which break git-bisect.
>>
>> In any case, I want to create a v2 with a more detailed description, and I
>> have a supplementary question for the CAN subsystem maintainers.
>> "Transciever power" is not used by any of the boards, can we remove it
>> completely? This will greatly simplify driver.
>> Thanks.
>>
>> --
>> Alexander Shiyan <shc_work@mail.ru>
>
> If you want to make the patch go through pxa tree, you need to get the Ack
> from CAN maintainer.
The current series consists of 3 patches, only the first one touches
"arch/arm/mach-pxa", so I'd like the patches to go via linux-can. Can I
have your Acked-by for the first patch "[PATCH v2 1/3] can: mcp251x:
Replace power callbacks with regulator AP"
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: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130820/58a9d4f3/attachment-0001.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
2013-08-20 8:46 ` Marc Kleine-Budde
@ 2013-08-21 0:46 ` Haojian Zhuang
-1 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-21 0:46 UTC (permalink / raw)
To: Marc Kleine-Budde
Cc: Alexander Shiyan, Eric Miao, netdev, linux-can,
Wolfgang Grandegger, Russell King, linux-arm-kernel
On Tue, Aug 20, 2013 at 4:46 PM, Marc Kleine-Budde <mkl@pengutronix.de> wrote:
> On 08/17/2013 06:37 AM, Haojian Zhuang wrote:
>> On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
>>> On Sat, 17 Aug 2013 10:19:20 +0800
>>> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>>>
>>>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>>>>> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>>>>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>>>>> ---
>>>>>> arch/arm/mach-pxa/icontrol.c | 3 --
>>>>>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>>>>>
>>>>> What's pxa's status of DT conversion? Do you (still) accept patches to
>>>>> board files?
>>>>>
>>>>> Marc
>>>>>
>>>>
>>>> Since DT conversion isn't finished, I still accept the board files.
>>>> But this patch should be split into two parts. One is for pxa, and the
>>>> other one is for net.
>>>
>>> Patch cannot be splitted because this can create hole which break git-bisect.
>>>
>>> In any case, I want to create a v2 with a more detailed description, and I
>>> have a supplementary question for the CAN subsystem maintainers.
>>> "Transciever power" is not used by any of the boards, can we remove it
>>> completely? This will greatly simplify driver.
>>> Thanks.
>>>
>>> --
>>> Alexander Shiyan <shc_work@mail.ru>
>>
>> If you want to make the patch go through pxa tree, you need to get the Ack
>> from CAN maintainer.
>
> The current series consists of 3 patches, only the first one touches
> "arch/arm/mach-pxa", so I'd like the patches to go via linux-can. Can I
> have your Acked-by for the first patch "[PATCH v2 1/3] can: mcp251x:
> Replace power callbacks with regulator AP"
>
> 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 |
>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API
@ 2013-08-21 0:46 ` Haojian Zhuang
0 siblings, 0 replies; 22+ messages in thread
From: Haojian Zhuang @ 2013-08-21 0:46 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Aug 20, 2013 at 4:46 PM, Marc Kleine-Budde <mkl@pengutronix.de> wrote:
> On 08/17/2013 06:37 AM, Haojian Zhuang wrote:
>> On Sat, Aug 17, 2013 at 12:30 PM, Alexander Shiyan <shc_work@mail.ru> wrote:
>>> On Sat, 17 Aug 2013 10:19:20 +0800
>>> Haojian Zhuang <haojian.zhuang@gmail.com> wrote:
>>>
>>>> On 08/09/2013 03:37 PM, Marc Kleine-Budde wrote:
>>>>> On 08/08/2013 02:00 PM, Alexander Shiyan wrote:
>>>>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>>>>> ---
>>>>>> arch/arm/mach-pxa/icontrol.c | 3 --
>>>>>> arch/arm/mach-pxa/zeus.c | 46 ++++++++++----------
>>>>>
>>>>> What's pxa's status of DT conversion? Do you (still) accept patches to
>>>>> board files?
>>>>>
>>>>> Marc
>>>>>
>>>>
>>>> Since DT conversion isn't finished, I still accept the board files.
>>>> But this patch should be split into two parts. One is for pxa, and the
>>>> other one is for net.
>>>
>>> Patch cannot be splitted because this can create hole which break git-bisect.
>>>
>>> In any case, I want to create a v2 with a more detailed description, and I
>>> have a supplementary question for the CAN subsystem maintainers.
>>> "Transciever power" is not used by any of the boards, can we remove it
>>> completely? This will greatly simplify driver.
>>> Thanks.
>>>
>>> --
>>> Alexander Shiyan <shc_work@mail.ru>
>>
>> If you want to make the patch go through pxa tree, you need to get the Ack
>> from CAN maintainer.
>
> The current series consists of 3 patches, only the first one touches
> "arch/arm/mach-pxa", so I'd like the patches to go via linux-can. Can I
> have your Acked-by for the first patch "[PATCH v2 1/3] can: mcp251x:
> Replace power callbacks with regulator AP"
>
> 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 |
>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2013-08-21 0:46 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-08 12:00 [PATCH RESEND] can: mcp251x: Replace power callbacks with regulator API Alexander Shiyan
2013-08-08 12:00 ` Alexander Shiyan
2013-08-09 7:37 ` Marc Kleine-Budde
2013-08-09 7:37 ` Marc Kleine-Budde
2013-08-17 2:03 ` Haojian Zhuang
2013-08-17 2:03 ` Haojian Zhuang
2013-08-17 2:19 ` Haojian Zhuang
2013-08-17 2:19 ` Haojian Zhuang
2013-08-17 4:30 ` Alexander Shiyan
2013-08-17 4:30 ` Alexander Shiyan
2013-08-17 4:37 ` Haojian Zhuang
2013-08-17 4:37 ` Haojian Zhuang
2013-08-20 8:46 ` Marc Kleine-Budde
2013-08-20 8:46 ` Marc Kleine-Budde
2013-08-21 0:46 ` Haojian Zhuang
2013-08-21 0:46 ` Haojian Zhuang
2013-08-17 19:59 ` Marc Kleine-Budde
2013-08-17 19:59 ` Marc Kleine-Budde
2013-08-17 21:10 ` Alexander Shiyan
2013-08-17 21:10 ` Alexander Shiyan
2013-08-18 8:00 ` Marc Kleine-Budde
2013-08-18 8:00 ` Marc Kleine-Budde
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.