Commit c5fa44d1 authored by Samuel Ortiz's avatar Samuel Ortiz
Browse files
parents 734f935a aaaab422
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1155,7 +1155,7 @@ static int pm860x_probe(struct i2c_client *client,
		return -ENOMEM;

	chip->id = verify_addr(client);
	chip->regmap = regmap_init_i2c(client, &pm860x_regmap_config);
	chip->regmap = devm_regmap_init_i2c(client, &pm860x_regmap_config);
	if (IS_ERR(chip->regmap)) {
		ret = PTR_ERR(chip->regmap);
		dev_err(&client->dev, "Failed to allocate register map: %d\n",
@@ -1203,7 +1203,6 @@ static int pm860x_remove(struct i2c_client *client)
		regmap_exit(chip->regmap_companion);
		i2c_unregister_device(chip->companion);
	}
	regmap_exit(chip->regmap);
	kfree(chip);
	return 0;
}
+3 −2
Original line number Diff line number Diff line
@@ -312,8 +312,9 @@ static ssize_t aat2870_reg_write_file(struct file *file,
	while (*start == ' ')
		start++;

	if (strict_strtoul(start, 16, &val))
		return -EINVAL;
	ret = kstrtoul(start, 16, &val);
	if (ret)
		return ret;

	ret = aat2870->write(aat2870, (u8)addr, (u8)val);
	if (ret)
+10 −18
Original line number Diff line number Diff line
@@ -491,7 +491,7 @@ static ssize_t ab3100_get_set_reg(struct file *file,
	char buf[32];
	ssize_t buf_size;
	int regp;
	unsigned long user_reg;
	u8 user_reg;
	int err;
	int i = 0;

@@ -514,34 +514,29 @@ static ssize_t ab3100_get_set_reg(struct file *file,
	/*
	 * Advance pointer to end of string then terminate
	 * the register string. This is needed to satisfy
	 * the strict_strtoul() function.
	 * the kstrtou8() function.
	 */
	while ((i < buf_size) && (buf[i] != ' '))
		i++;
	buf[i] = '\0';

	err = strict_strtoul(&buf[regp], 16, &user_reg);
	err = kstrtou8(&buf[regp], 16, &user_reg);
	if (err)
		return err;
	if (user_reg > 0xff)
		return -EINVAL;

	/* Either we read or we write a register here */
	if (!priv->mode) {
		/* Reading */
		u8 reg = (u8) user_reg;
		u8 regvalue;

		ab3100_get_register_interruptible(ab3100, reg, &regvalue);
		ab3100_get_register_interruptible(ab3100, user_reg, &regvalue);

		dev_info(ab3100->dev,
			 "debug read AB3100 reg[0x%02x]: 0x%02x\n",
			 reg, regvalue);
			 user_reg, regvalue);
	} else {
		int valp;
		unsigned long user_value;
		u8 reg = (u8) user_reg;
		u8 value;
		u8 user_value;
		u8 regvalue;

		/*
@@ -557,20 +552,17 @@ static ssize_t ab3100_get_set_reg(struct file *file,
			i++;
		buf[i] = '\0';

		err = strict_strtoul(&buf[valp], 16, &user_value);
		err = kstrtou8(&buf[valp], 16, &user_value);
		if (err)
			return err;
		if (user_reg > 0xff)
			return -EINVAL;

		value = (u8) user_value;
		ab3100_set_register_interruptible(ab3100, reg, value);
		ab3100_get_register_interruptible(ab3100, reg, &regvalue);
		ab3100_set_register_interruptible(ab3100, user_reg, user_value);
		ab3100_get_register_interruptible(ab3100, user_reg, &regvalue);

		dev_info(ab3100->dev,
			 "debug write reg[0x%02x] with 0x%02x, "
			 "after readback: 0x%02x\n",
			 reg, value, regvalue);
			 user_reg, user_value, regvalue);
	}
	return buf_size;
}
+58 −21
Original line number Diff line number Diff line
@@ -650,6 +650,21 @@ static struct resource ab8500_rtc_resources[] = {
	},
};

static struct resource ab8540_rtc_resources[] = {
	{
		.name	= "1S",
		.start	= AB8540_INT_RTC_1S,
		.end	= AB8540_INT_RTC_1S,
		.flags	= IORESOURCE_IRQ,
	},
	{
		.name	= "ALARM",
		.start	= AB8500_INT_RTC_ALARM,
		.end	= AB8500_INT_RTC_ALARM,
		.flags	= IORESOURCE_IRQ,
	},
};

static struct resource ab8500_poweronkey_db_resources[] = {
	{
		.name	= "ONKEY_DBF",
@@ -1050,6 +1065,10 @@ static struct mfd_cell ab8500_devs[] = {
		.name = "ab8500-sysctrl",
		.of_compatible = "stericsson,ab8500-sysctrl",
	},
	{
		.name = "ab8500-ext-regulator",
		.of_compatible = "stericsson,ab8500-ext-regulator",
	},
	{
		.name = "ab8500-regulator",
		.of_compatible = "stericsson,ab8500-regulator",
@@ -1098,10 +1117,6 @@ static struct mfd_cell ab8500_devs[] = {
		.of_compatible = "stericsson,ab8500-pwm",
		.id = 3,
	},
	{
		.name = "ab8500-leds",
		.of_compatible = "stericsson,ab8500-leds",
	},
	{
		.name = "ab8500-denc",
		.of_compatible = "stericsson,ab8500-denc",
@@ -1124,6 +1139,7 @@ static struct mfd_cell ab8500_devs[] = {
	},
	{
		.name = "ab8500-codec",
		.of_compatible = "stericsson,ab8500-codec",
	},
};

@@ -1138,6 +1154,9 @@ static struct mfd_cell ab9540_devs[] = {
	{
		.name = "ab8500-sysctrl",
	},
	{
		.name = "ab8500-ext-regulator",
	},
	{
		.name = "ab8500-regulator",
	},
@@ -1170,9 +1189,6 @@ static struct mfd_cell ab9540_devs[] = {
		.name = "ab8500-pwm",
		.id = 1,
	},
	{
		.name = "ab8500-leds",
	},
	{
		.name = "abx500-temp",
		.num_resources = ARRAY_SIZE(ab8500_temp_resources),
@@ -1241,9 +1257,6 @@ static struct mfd_cell ab8505_devs[] = {
		.name = "ab8500-pwm",
		.id = 1,
	},
	{
		.name = "ab8500-leds",
	},
	{
		.name = "pinctrl-ab8505",
	},
@@ -1273,6 +1286,9 @@ static struct mfd_cell ab8540_devs[] = {
	{
		.name = "ab8500-sysctrl",
	},
	{
		.name = "ab8500-ext-regulator",
	},
	{
		.name = "ab8500-regulator",
	},
@@ -1286,11 +1302,6 @@ static struct mfd_cell ab8540_devs[] = {
		.num_resources = ARRAY_SIZE(ab8505_gpadc_resources),
		.resources = ab8505_gpadc_resources,
	},
	{
		.name = "ab8500-rtc",
		.num_resources = ARRAY_SIZE(ab8500_rtc_resources),
		.resources = ab8500_rtc_resources,
	},
	{
		.name = "ab8500-acc-det",
		.num_resources = ARRAY_SIZE(ab8500_av_acc_detect_resources),
@@ -1305,9 +1316,6 @@ static struct mfd_cell ab8540_devs[] = {
		.name = "ab8500-pwm",
		.id = 1,
	},
	{
		.name = "ab8500-leds",
	},
	{
		.name = "abx500-temp",
		.num_resources = ARRAY_SIZE(ab8500_temp_resources),
@@ -1331,6 +1339,24 @@ static struct mfd_cell ab8540_devs[] = {
	},
};

static struct mfd_cell ab8540_cut1_devs[] = {
	{
		.name = "ab8500-rtc",
		.of_compatible = "stericsson,ab8500-rtc",
		.num_resources = ARRAY_SIZE(ab8500_rtc_resources),
		.resources = ab8500_rtc_resources,
	},
};

static struct mfd_cell ab8540_cut2_devs[] = {
	{
		.name = "ab8540-rtc",
		.of_compatible = "stericsson,ab8540-rtc",
		.num_resources = ARRAY_SIZE(ab8540_rtc_resources),
		.resources = ab8540_rtc_resources,
	},
};

static ssize_t show_chip_id(struct device *dev,
				struct device_attribute *attr, char *buf)
{
@@ -1734,11 +1760,22 @@ static int ab8500_probe(struct platform_device *pdev)
		ret = mfd_add_devices(ab8500->dev, 0, ab9540_devs,
				ARRAY_SIZE(ab9540_devs), NULL,
				ab8500->irq_base, ab8500->domain);
	else if (is_ab8540(ab8500))
	else if (is_ab8540(ab8500)) {
		ret = mfd_add_devices(ab8500->dev, 0, ab8540_devs,
			      ARRAY_SIZE(ab8540_devs), NULL,
			      ab8500->irq_base, ab8500->domain);
	else if (is_ab8505(ab8500))
			      ab8500->irq_base, NULL);
		if (ret)
			return ret;

		if (is_ab8540_1p2_or_earlier(ab8500))
			ret = mfd_add_devices(ab8500->dev, 0, ab8540_cut1_devs,
			      ARRAY_SIZE(ab8540_cut1_devs), NULL,
			      ab8500->irq_base, NULL);
		else /* ab8540 >= cut2 */
			ret = mfd_add_devices(ab8500->dev, 0, ab8540_cut2_devs,
			      ARRAY_SIZE(ab8540_cut2_devs), NULL,
			      ab8500->irq_base, NULL);
	} else if (is_ab8505(ab8500))
		ret = mfd_add_devices(ab8500->dev, 0, ab8505_devs,
			      ARRAY_SIZE(ab8505_devs), NULL,
			      ab8500->irq_base, ab8500->domain);
+1 −1
Original line number Diff line number Diff line
@@ -2757,7 +2757,7 @@ static ssize_t show_irq(struct device *dev,
	unsigned int irq_index;
	int err;

	err = strict_strtoul(attr->attr.name, 0, &name);
	err = kstrtoul(attr->attr.name, 0, &name);
	if (err)
		return err;

Loading