summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-05-06 09:30:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-05-06 09:30:50 +0200
commitc19efab88606a974c050aa6caa9ec1803f88bdc9 (patch)
tree552a1520368f3d1500f7ad7d519e8e0d7758f367 /arch
parentda1ada40d27c734ec51f1da924b2ecbbd28115c1 (diff)
parent2f24a5c33c9b9034e412b52ec88c1019307c14f0 (diff)
downloadbarebox-c19efab88606a974c050aa6caa9ec1803f88bdc9.tar.gz
barebox-c19efab88606a974c050aa6caa9ec1803f88bdc9.tar.xz
Merge branch 'for-next/param'
Conflicts: drivers/mci/mci-core.c
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boards/at91sam9m10ihd/hw_version.c6
-rw-r--r--arch/arm/boards/at91sam9x5ek/hw_version.c6
-rw-r--r--arch/arm/boards/sama5d3xek/hw_version.c6
-rw-r--r--arch/arm/mach-imx/iim.c65
-rw-r--r--arch/arm/mach-mxs/ocotp.c34
5 files changed, 24 insertions, 93 deletions
diff --git a/arch/arm/boards/at91sam9m10ihd/hw_version.c b/arch/arm/boards/at91sam9m10ihd/hw_version.c
index be910dfbc0..8e729013c7 100644
--- a/arch/arm/boards/at91sam9m10ihd/hw_version.c
+++ b/arch/arm/boards/at91sam9m10ihd/hw_version.c
@@ -194,10 +194,8 @@ static void at91sam9m10ihd_devices_detect_one(const char *name)
dev_add_param_fixed(dev, "board", info.board_name);
sprintf(str, "%.2s", info.vendor_country);
dev_add_param_fixed(dev, "country", str);
- sprintf(str, "%d", info.year);
- dev_add_param_fixed(dev, "year", str);
- sprintf(str, "%d", info.week);
- dev_add_param_fixed(dev, "week", str);
+ dev_add_param_int_ro(dev, "year", info.year, "%d");
+ dev_add_param_int_ro(dev, "week", info.week, "%d");
sprintf(str, "%c", info.revision_code);
dev_add_param_fixed(dev, "revision_code", str);
sprintf(str, "%c", info.revision_id);
diff --git a/arch/arm/boards/at91sam9x5ek/hw_version.c b/arch/arm/boards/at91sam9x5ek/hw_version.c
index 76d4e1b8fa..91af331194 100644
--- a/arch/arm/boards/at91sam9x5ek/hw_version.c
+++ b/arch/arm/boards/at91sam9x5ek/hw_version.c
@@ -219,10 +219,8 @@ static void at91sam9x5ek_devices_detect_one(const char *name)
dev_add_param_fixed(dev, "board", info.board_name);
sprintf(str, "%.2s", info.vendor_country);
dev_add_param_fixed(dev, "country", str);
- sprintf(str, "%d", info.year);
- dev_add_param_fixed(dev, "year", str);
- sprintf(str, "%d", info.week);
- dev_add_param_fixed(dev, "week", str);
+ dev_add_param_int_ro(dev, "year", info.year, "%d");
+ dev_add_param_int_ro(dev, "week", info.week, "%d");
sprintf(str, "%c", info.revision_code);
dev_add_param_fixed(dev, "revision_code", str);
sprintf(str, "%c", info.revision_id);
diff --git a/arch/arm/boards/sama5d3xek/hw_version.c b/arch/arm/boards/sama5d3xek/hw_version.c
index 79fd63a349..450eb9f8a1 100644
--- a/arch/arm/boards/sama5d3xek/hw_version.c
+++ b/arch/arm/boards/sama5d3xek/hw_version.c
@@ -226,10 +226,8 @@ static void at91sama5d3xek_devices_detect_one(const char *name)
dev_add_param_fixed(dev, "board", bname);
sprintf(str, "%.2s", info.vendor_country);
dev_add_param_fixed(dev, "country", str);
- sprintf(str, "%d", info.year);
- dev_add_param_fixed(dev, "year", str);
- sprintf(str, "%d", info.week);
- dev_add_param_fixed(dev, "week", str);
+ dev_add_param_int_ro(dev, "year", info.year, "%d");
+ dev_add_param_int_ro(dev, "week", info.week, "%d");
sprintf(str, "%c", info.revision_board);
dev_add_param_fixed(dev, "revision_board", str);
sprintf(str, "%c", info.revision_schema);
diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c
index 69ddc4d6a8..ce2bbafc90 100644
--- a/arch/arm/mach-imx/iim.c
+++ b/arch/arm/mach-imx/iim.c
@@ -33,6 +33,9 @@
static unsigned long mac_addr_base;
+static int iim_write_enable;
+static int iim_sense_enable;
+
struct iim_priv {
struct cdev cdev;
void __iomem *base;
@@ -88,14 +91,9 @@ static ssize_t imx_iim_cdev_read(struct cdev *cdev, void *buf, size_t count,
{
ulong size, i;
struct iim_priv *priv = cdev->priv;
- const char *sense_param;
- unsigned long explicit_sense = 0;
-
- if ((sense_param = dev_get_param(cdev->dev, "explicit_sense_enable")))
- explicit_sense = simple_strtoul(sense_param, NULL, 0);
size = min((loff_t)count, priv->banksize - offset);
- if (explicit_sense) {
+ if (iim_sense_enable) {
for (i = 0; i < size; i++) {
int row_val;
@@ -113,7 +111,6 @@ static ssize_t imx_iim_cdev_read(struct cdev *cdev, void *buf, size_t count,
return size;
}
-#ifdef CONFIG_IMX_IIM_FUSE_BLOW
static int do_fuse_blow(void __iomem *reg_base, unsigned int bank,
unsigned int row, u8 value)
{
@@ -173,22 +170,16 @@ out:
writeb(0, reg_base + IIM_PREG_P);
return ret;
}
-#endif /* CONFIG_IMX_IIM_FUSE_BLOW */
static ssize_t imx_iim_cdev_write(struct cdev *cdev, const void *buf, size_t count,
loff_t offset, ulong flags)
{
ulong size, i;
struct iim_priv *priv = cdev->priv;
- const char *write_param;
- unsigned int blow_enable = 0;
-
- if ((write_param = dev_get_param(cdev->dev, "permanent_write_enable")))
- blow_enable = simple_strtoul(write_param, NULL, 0);
size = min((loff_t)count, priv->banksize - offset);
-#ifdef CONFIG_IMX_IIM_FUSE_BLOW
- if (blow_enable) {
+
+ if (IS_ENABLED(CONFIG_IMX_IIM_FUSE_BLOW) && iim_write_enable) {
for (i = 0; i < size; i++) {
int ret;
@@ -197,9 +188,7 @@ static ssize_t imx_iim_cdev_write(struct cdev *cdev, const void *buf, size_t cou
if (ret < 0)
return ret;
}
- } else
-#endif /* CONFIG_IMX_IIM_FUSE_BLOW */
- {
+ } else {
for (i = 0; i < size; i++)
((u8 *)priv->bankbase)[(offset+i)*4] = ((u8 *)buf)[i];
}
@@ -213,21 +202,6 @@ static struct file_operations imx_iim_ops = {
.lseek = dev_lseek_default,
};
-static int imx_iim_blow_enable_set(struct device_d *dev, struct param_d *param,
- const char *val)
-{
- unsigned long blow_enable;
-
- if (val == NULL)
- return -EINVAL;
-
- blow_enable = simple_strtoul(val, NULL, 0);
- if (blow_enable > 1)
- return -EINVAL;
-
- return dev_param_set_generic(dev, param, blow_enable ? "1" : "0");
-}
-
static int imx_iim_add_bank(struct device_d *dev, void __iomem *base, int num)
{
struct iim_priv *priv;
@@ -254,7 +228,6 @@ static int imx_iim_add_bank(struct device_d *dev, void __iomem *base, int num)
static int imx_iim_probe(struct device_d *dev)
{
struct imx_iim_platform_data *pdata = dev->platform_data;
- int err;
int i;
void __iomem *base;
@@ -267,23 +240,13 @@ static int imx_iim_probe(struct device_d *dev)
imx_iim_add_bank(dev, base, i);
}
-#ifdef CONFIG_IMX_IIM_FUSE_BLOW
- err = dev_add_param(dev, "permanent_write_enable",
- imx_iim_blow_enable_set, NULL, 0);
- if (err < 0)
- return err;
- err = dev_set_param(dev, "permanent_write_enable", "0");
- if (err < 0)
- return err;
-#endif /* CONFIG_IMX_IIM_FUSE_BLOW */
-
- err = dev_add_param(dev, "explicit_sense_enable",
- imx_iim_blow_enable_set, NULL, 0);
- if (err < 0)
- return err;
- err = dev_set_param(dev, "explicit_sense_enable", "1");
- if (err < 0)
- return err;
+
+ if (IS_ENABLED(CONFIG_IMX_IIM_FUSE_BLOW))
+ dev_add_param_bool(dev, "permanent_write_enable",
+ NULL, NULL, &iim_write_enable, NULL);
+
+ dev_add_param_bool(dev, "explicit_sense_enable",
+ NULL, NULL, &iim_sense_enable, NULL);
return 0;
}
diff --git a/arch/arm/mach-mxs/ocotp.c b/arch/arm/mach-mxs/ocotp.c
index 84f38b580f..dd984467ef 100644
--- a/arch/arm/mach-mxs/ocotp.c
+++ b/arch/arm/mach-mxs/ocotp.c
@@ -44,6 +44,7 @@
struct ocotp_priv {
struct cdev cdev;
void __iomem *base;
+ unsigned int write_enable;
};
static int mxs_ocotp_wait_busy(struct ocotp_priv *priv)
@@ -103,18 +104,12 @@ static ssize_t mxs_ocotp_cdev_write(struct cdev *cdev, const void *buf, size_t c
{
struct ocotp_priv *priv = cdev->priv;
void __iomem *base = priv->base;
- const char *write_param;
- unsigned int write_enabled = 0;
unsigned long old_hclk, aligned_offset;
int old_vddio, num_words, num_bytes, i, ret = 0;
u8 *work_buf;
u32 reg;
- write_param = dev_get_param(cdev->dev, "permanent_write_enable");
- if (write_param)
- write_enabled = simple_strtoul(write_param, NULL, 0);
-
- if (!write_param || !write_enabled)
+ if (!priv->write_enable)
return -EPERM;
/* we can only work on u32, so calc some helpers */
@@ -179,21 +174,6 @@ static struct file_operations mxs_ocotp_ops = {
.lseek = dev_lseek_default,
};
-static int mxs_ocotp_write_enable_set(struct device_d *dev, struct param_d *param,
- const char *val)
-{
- unsigned long write_enable;
-
- if (!val)
- return -EINVAL;
-
- write_enable = simple_strtoul(val, NULL, 0);
- if (write_enable > 1)
- return -EINVAL;
-
- return dev_param_set_generic(dev, param, write_enable ? "1" : "0");
-}
-
static int mxs_ocotp_probe(struct device_d *dev)
{
int err;
@@ -212,14 +192,8 @@ static int mxs_ocotp_probe(struct device_d *dev)
if (IS_ENABLED(CONFIG_MXS_OCOTP_WRITABLE)) {
mxs_ocotp_ops.write = mxs_ocotp_cdev_write;
-
- err = dev_add_param(dev, "permanent_write_enable",
- mxs_ocotp_write_enable_set, NULL, 0);
- if (err < 0)
- return err;
- err = dev_set_param(dev, "permanent_write_enable", "0");
- if (err < 0)
- return err;
+ dev_add_param_bool(dev, "permanent_write_enable",
+ NULL, NULL, &priv->write_enable, NULL);
}
return 0;