From: Samuel Ortiz <sameo@linux.intel.com>
To: Linus Walleij <linus.walleij@stericsson.com>
Cc: linux-kernel@vger.kernel.org,
STEricsson_nomadik_linux@list.st.com,
Mattias Wallin <mattias.wallin@stericsson.com>
Subject: Re: [PATCH 1/3] MFD: renamed ab3100.h to abx500.h
Date: Fri, 16 Apr 2010 17:20:42 +0200 [thread overview]
Message-ID: <20100416152041.GA28863@sortiz.org> (raw)
In-Reply-To: <1271113496-6744-1-git-send-email-linus.walleij@stericsson.com>
Hi Linus,
On Tue, Apr 13, 2010 at 01:04:56AM +0200, Linus Walleij wrote:
> The goal here is to make way for a more general interface for the
> analog baseband chips ab3100 ab3550 ab550 and future chips.
I have an initial question for you:
Do you plan to have one single driver supporting the 3100, 3550 and the 550
chips ?
Cheers,
Samuel.
> This patch have been divided into two parts since both changing name
> and content of a file is not recommended in git.
>
> Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com>
> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
> ---
> arch/arm/mach-u300/i2c.c | 2 +-
> drivers/mfd/ab3100-core.c | 2 +-
> drivers/mfd/ab3100-otp.c | 2 +-
> drivers/regulator/ab3100.c | 2 +-
> drivers/rtc/rtc-ab3100.c | 2 +-
> include/linux/mfd/ab3100.h | 129 --------------------------------------------
> include/linux/mfd/abx500.h | 129 ++++++++++++++++++++++++++++++++++++++++++++
> 7 files changed, 134 insertions(+), 134 deletions(-)
> delete mode 100644 include/linux/mfd/ab3100.h
> create mode 100644 include/linux/mfd/abx500.h
>
> diff --git a/arch/arm/mach-u300/i2c.c b/arch/arm/mach-u300/i2c.c
> index c73ed06..d893ee0 100644
> --- a/arch/arm/mach-u300/i2c.c
> +++ b/arch/arm/mach-u300/i2c.c
> @@ -9,7 +9,7 @@
> */
> #include <linux/kernel.h>
> #include <linux/i2c.h>
> -#include <linux/mfd/ab3100.h>
> +#include <linux/mfd/abx500.h>
> #include <linux/regulator/machine.h>
> #include <linux/amba/bus.h>
> #include <mach/irqs.h>
> diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c
> index 1689821..f8c4a33 100644
> --- a/drivers/mfd/ab3100-core.c
> +++ b/drivers/mfd/ab3100-core.c
> @@ -19,7 +19,7 @@
> #include <linux/debugfs.h>
> #include <linux/seq_file.h>
> #include <linux/uaccess.h>
> -#include <linux/mfd/ab3100.h>
> +#include <linux/mfd/abx500.h>
>
> /* These are the only registers inside AB3100 used in this main file */
>
> diff --git a/drivers/mfd/ab3100-otp.c b/drivers/mfd/ab3100-otp.c
> index 2d14655..7093f1a 100644
> --- a/drivers/mfd/ab3100-otp.c
> +++ b/drivers/mfd/ab3100-otp.c
> @@ -12,7 +12,7 @@
> #include <linux/slab.h>
> #include <linux/init.h>
> #include <linux/platform_device.h>
> -#include <linux/mfd/ab3100.h>
> +#include <linux/mfd/abx500.h>
> #include <linux/debugfs.h>
> #include <linux/seq_file.h>
>
> diff --git a/drivers/regulator/ab3100.c b/drivers/regulator/ab3100.c
> index 7de9509..1b8b0ab 100644
> --- a/drivers/regulator/ab3100.c
> +++ b/drivers/regulator/ab3100.c
> @@ -16,7 +16,7 @@
> #include <linux/delay.h>
> #include <linux/platform_device.h>
> #include <linux/regulator/driver.h>
> -#include <linux/mfd/ab3100.h>
> +#include <linux/mfd/abx500.h>
>
> /* LDO registers and some handy masking definitions for AB3100 */
> #define AB3100_LDO_A 0x40
> diff --git a/drivers/rtc/rtc-ab3100.c b/drivers/rtc/rtc-ab3100.c
> index 4704aac..b46b85d 100644
> --- a/drivers/rtc/rtc-ab3100.c
> +++ b/drivers/rtc/rtc-ab3100.c
> @@ -9,7 +9,7 @@
> #include <linux/init.h>
> #include <linux/platform_device.h>
> #include <linux/rtc.h>
> -#include <linux/mfd/ab3100.h>
> +#include <linux/mfd/abx500.h>
>
> /* Clock rate in Hz */
> #define AB3100_RTC_CLOCK_RATE 32768
> diff --git a/include/linux/mfd/ab3100.h b/include/linux/mfd/ab3100.h
> deleted file mode 100644
> index 9a881c3..0000000
> --- a/include/linux/mfd/ab3100.h
> +++ /dev/null
> @@ -1,129 +0,0 @@
> -/*
> - * Copyright (C) 2007-2009 ST-Ericsson AB
> - * License terms: GNU General Public License (GPL) version 2
> - * AB3100 core access functions
> - * Author: Linus Walleij <linus.walleij@stericsson.com>
> - */
> -
> -#include <linux/device.h>
> -#include <linux/regulator/machine.h>
> -
> -#ifndef MFD_AB3100_H
> -#define MFD_AB3100_H
> -
> -#define ABUNKNOWN 0
> -#define AB3000 1
> -#define AB3100 2
> -
> -/*
> - * AB3100, EVENTA1, A2 and A3 event register flags
> - * these are catenated into a single 32-bit flag in the code
> - * for event notification broadcasts.
> - */
> -#define AB3100_EVENTA1_ONSWA (0x01<<16)
> -#define AB3100_EVENTA1_ONSWB (0x02<<16)
> -#define AB3100_EVENTA1_ONSWC (0x04<<16)
> -#define AB3100_EVENTA1_DCIO (0x08<<16)
> -#define AB3100_EVENTA1_OVER_TEMP (0x10<<16)
> -#define AB3100_EVENTA1_SIM_OFF (0x20<<16)
> -#define AB3100_EVENTA1_VBUS (0x40<<16)
> -#define AB3100_EVENTA1_VSET_USB (0x80<<16)
> -
> -#define AB3100_EVENTA2_READY_TX (0x01<<8)
> -#define AB3100_EVENTA2_READY_RX (0x02<<8)
> -#define AB3100_EVENTA2_OVERRUN_ERROR (0x04<<8)
> -#define AB3100_EVENTA2_FRAMING_ERROR (0x08<<8)
> -#define AB3100_EVENTA2_CHARG_OVERCURRENT (0x10<<8)
> -#define AB3100_EVENTA2_MIDR (0x20<<8)
> -#define AB3100_EVENTA2_BATTERY_REM (0x40<<8)
> -#define AB3100_EVENTA2_ALARM (0x80<<8)
> -
> -#define AB3100_EVENTA3_ADC_TRIG5 (0x01)
> -#define AB3100_EVENTA3_ADC_TRIG4 (0x02)
> -#define AB3100_EVENTA3_ADC_TRIG3 (0x04)
> -#define AB3100_EVENTA3_ADC_TRIG2 (0x08)
> -#define AB3100_EVENTA3_ADC_TRIGVBAT (0x10)
> -#define AB3100_EVENTA3_ADC_TRIGVTX (0x20)
> -#define AB3100_EVENTA3_ADC_TRIG1 (0x40)
> -#define AB3100_EVENTA3_ADC_TRIG0 (0x80)
> -
> -/* AB3100, STR register flags */
> -#define AB3100_STR_ONSWA (0x01)
> -#define AB3100_STR_ONSWB (0x02)
> -#define AB3100_STR_ONSWC (0x04)
> -#define AB3100_STR_DCIO (0x08)
> -#define AB3100_STR_BOOT_MODE (0x10)
> -#define AB3100_STR_SIM_OFF (0x20)
> -#define AB3100_STR_BATT_REMOVAL (0x40)
> -#define AB3100_STR_VBUS (0x80)
> -
> -/*
> - * AB3100 contains 8 regulators, one external regulator controller
> - * and a buck converter, further the LDO E and buck converter can
> - * have separate settings if they are in sleep mode, this is
> - * modeled as a separate regulator.
> - */
> -#define AB3100_NUM_REGULATORS 10
> -
> -/**
> - * struct ab3100
> - * @access_mutex: lock out concurrent accesses to the AB3100 registers
> - * @dev: pointer to the containing device
> - * @i2c_client: I2C client for this chip
> - * @testreg_client: secondary client for test registers
> - * @chip_name: name of this chip variant
> - * @chip_id: 8 bit chip ID for this chip variant
> - * @event_subscribers: event subscribers are listed here
> - * @startup_events: a copy of the first reading of the event registers
> - * @startup_events_read: whether the first events have been read
> - *
> - * This struct is PRIVATE and devices using it should NOT
> - * access ANY fields. It is used as a token for calling the
> - * AB3100 functions.
> - */
> -struct ab3100 {
> - struct mutex access_mutex;
> - struct device *dev;
> - struct i2c_client *i2c_client;
> - struct i2c_client *testreg_client;
> - char chip_name[32];
> - u8 chip_id;
> - struct blocking_notifier_head event_subscribers;
> - u32 startup_events;
> - bool startup_events_read;
> -};
> -
> -/**
> - * struct ab3100_platform_data
> - * Data supplied to initialize board connections to the AB3100
> - * @reg_constraints: regulator constraints for target board
> - * the order of these constraints are: LDO A, C, D, E,
> - * F, G, H, K, EXT and BUCK.
> - * @reg_initvals: initial values for the regulator registers
> - * plus two sleep settings for LDO E and the BUCK converter.
> - * exactly AB3100_NUM_REGULATORS+2 values must be sent in.
> - * Order: LDO A, C, E, E sleep, F, G, H, K, EXT, BUCK,
> - * BUCK sleep, LDO D. (LDO D need to be initialized last.)
> - * @external_voltage: voltage level of the external regulator.
> - */
> -struct ab3100_platform_data {
> - struct regulator_init_data reg_constraints[AB3100_NUM_REGULATORS];
> - u8 reg_initvals[AB3100_NUM_REGULATORS+2];
> - int external_voltage;
> -};
> -
> -int ab3100_set_register_interruptible(struct ab3100 *ab3100, u8 reg, u8 regval);
> -int ab3100_get_register_interruptible(struct ab3100 *ab3100, u8 reg, u8 *regval);
> -int ab3100_get_register_page_interruptible(struct ab3100 *ab3100,
> - u8 first_reg, u8 *regvals, u8 numregs);
> -int ab3100_mask_and_set_register_interruptible(struct ab3100 *ab3100,
> - u8 reg, u8 andmask, u8 ormask);
> -u8 ab3100_get_chip_type(struct ab3100 *ab3100);
> -int ab3100_event_register(struct ab3100 *ab3100,
> - struct notifier_block *nb);
> -int ab3100_event_unregister(struct ab3100 *ab3100,
> - struct notifier_block *nb);
> -int ab3100_event_registers_startup_state_get(struct ab3100 *ab3100,
> - u32 *fatevent);
> -
> -#endif
> diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h
> new file mode 100644
> index 0000000..9a881c3
> --- /dev/null
> +++ b/include/linux/mfd/abx500.h
> @@ -0,0 +1,129 @@
> +/*
> + * Copyright (C) 2007-2009 ST-Ericsson AB
> + * License terms: GNU General Public License (GPL) version 2
> + * AB3100 core access functions
> + * Author: Linus Walleij <linus.walleij@stericsson.com>
> + */
> +
> +#include <linux/device.h>
> +#include <linux/regulator/machine.h>
> +
> +#ifndef MFD_AB3100_H
> +#define MFD_AB3100_H
> +
> +#define ABUNKNOWN 0
> +#define AB3000 1
> +#define AB3100 2
> +
> +/*
> + * AB3100, EVENTA1, A2 and A3 event register flags
> + * these are catenated into a single 32-bit flag in the code
> + * for event notification broadcasts.
> + */
> +#define AB3100_EVENTA1_ONSWA (0x01<<16)
> +#define AB3100_EVENTA1_ONSWB (0x02<<16)
> +#define AB3100_EVENTA1_ONSWC (0x04<<16)
> +#define AB3100_EVENTA1_DCIO (0x08<<16)
> +#define AB3100_EVENTA1_OVER_TEMP (0x10<<16)
> +#define AB3100_EVENTA1_SIM_OFF (0x20<<16)
> +#define AB3100_EVENTA1_VBUS (0x40<<16)
> +#define AB3100_EVENTA1_VSET_USB (0x80<<16)
> +
> +#define AB3100_EVENTA2_READY_TX (0x01<<8)
> +#define AB3100_EVENTA2_READY_RX (0x02<<8)
> +#define AB3100_EVENTA2_OVERRUN_ERROR (0x04<<8)
> +#define AB3100_EVENTA2_FRAMING_ERROR (0x08<<8)
> +#define AB3100_EVENTA2_CHARG_OVERCURRENT (0x10<<8)
> +#define AB3100_EVENTA2_MIDR (0x20<<8)
> +#define AB3100_EVENTA2_BATTERY_REM (0x40<<8)
> +#define AB3100_EVENTA2_ALARM (0x80<<8)
> +
> +#define AB3100_EVENTA3_ADC_TRIG5 (0x01)
> +#define AB3100_EVENTA3_ADC_TRIG4 (0x02)
> +#define AB3100_EVENTA3_ADC_TRIG3 (0x04)
> +#define AB3100_EVENTA3_ADC_TRIG2 (0x08)
> +#define AB3100_EVENTA3_ADC_TRIGVBAT (0x10)
> +#define AB3100_EVENTA3_ADC_TRIGVTX (0x20)
> +#define AB3100_EVENTA3_ADC_TRIG1 (0x40)
> +#define AB3100_EVENTA3_ADC_TRIG0 (0x80)
> +
> +/* AB3100, STR register flags */
> +#define AB3100_STR_ONSWA (0x01)
> +#define AB3100_STR_ONSWB (0x02)
> +#define AB3100_STR_ONSWC (0x04)
> +#define AB3100_STR_DCIO (0x08)
> +#define AB3100_STR_BOOT_MODE (0x10)
> +#define AB3100_STR_SIM_OFF (0x20)
> +#define AB3100_STR_BATT_REMOVAL (0x40)
> +#define AB3100_STR_VBUS (0x80)
> +
> +/*
> + * AB3100 contains 8 regulators, one external regulator controller
> + * and a buck converter, further the LDO E and buck converter can
> + * have separate settings if they are in sleep mode, this is
> + * modeled as a separate regulator.
> + */
> +#define AB3100_NUM_REGULATORS 10
> +
> +/**
> + * struct ab3100
> + * @access_mutex: lock out concurrent accesses to the AB3100 registers
> + * @dev: pointer to the containing device
> + * @i2c_client: I2C client for this chip
> + * @testreg_client: secondary client for test registers
> + * @chip_name: name of this chip variant
> + * @chip_id: 8 bit chip ID for this chip variant
> + * @event_subscribers: event subscribers are listed here
> + * @startup_events: a copy of the first reading of the event registers
> + * @startup_events_read: whether the first events have been read
> + *
> + * This struct is PRIVATE and devices using it should NOT
> + * access ANY fields. It is used as a token for calling the
> + * AB3100 functions.
> + */
> +struct ab3100 {
> + struct mutex access_mutex;
> + struct device *dev;
> + struct i2c_client *i2c_client;
> + struct i2c_client *testreg_client;
> + char chip_name[32];
> + u8 chip_id;
> + struct blocking_notifier_head event_subscribers;
> + u32 startup_events;
> + bool startup_events_read;
> +};
> +
> +/**
> + * struct ab3100_platform_data
> + * Data supplied to initialize board connections to the AB3100
> + * @reg_constraints: regulator constraints for target board
> + * the order of these constraints are: LDO A, C, D, E,
> + * F, G, H, K, EXT and BUCK.
> + * @reg_initvals: initial values for the regulator registers
> + * plus two sleep settings for LDO E and the BUCK converter.
> + * exactly AB3100_NUM_REGULATORS+2 values must be sent in.
> + * Order: LDO A, C, E, E sleep, F, G, H, K, EXT, BUCK,
> + * BUCK sleep, LDO D. (LDO D need to be initialized last.)
> + * @external_voltage: voltage level of the external regulator.
> + */
> +struct ab3100_platform_data {
> + struct regulator_init_data reg_constraints[AB3100_NUM_REGULATORS];
> + u8 reg_initvals[AB3100_NUM_REGULATORS+2];
> + int external_voltage;
> +};
> +
> +int ab3100_set_register_interruptible(struct ab3100 *ab3100, u8 reg, u8 regval);
> +int ab3100_get_register_interruptible(struct ab3100 *ab3100, u8 reg, u8 *regval);
> +int ab3100_get_register_page_interruptible(struct ab3100 *ab3100,
> + u8 first_reg, u8 *regvals, u8 numregs);
> +int ab3100_mask_and_set_register_interruptible(struct ab3100 *ab3100,
> + u8 reg, u8 andmask, u8 ormask);
> +u8 ab3100_get_chip_type(struct ab3100 *ab3100);
> +int ab3100_event_register(struct ab3100 *ab3100,
> + struct notifier_block *nb);
> +int ab3100_event_unregister(struct ab3100 *ab3100,
> + struct notifier_block *nb);
> +int ab3100_event_registers_startup_state_get(struct ab3100 *ab3100,
> + u32 *fatevent);
> +
> +#endif
> --
> 1.7.0.1
>
--
Intel Open Source Technology Centre
http://oss.intel.com/
next prev parent reply other threads:[~2010-04-16 15:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-12 23:04 [PATCH 1/3] MFD: renamed ab3100.h to abx500.h Linus Walleij
2010-04-13 5:30 ` srinidhi
2010-04-13 15:14 ` Linus Walleij
2010-04-16 15:20 ` Samuel Ortiz [this message]
2010-04-17 5:37 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100416152041.GA28863@sortiz.org \
--to=sameo@linux.intel.com \
--cc=STEricsson_nomadik_linux@list.st.com \
--cc=linus.walleij@stericsson.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mattias.wallin@stericsson.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.