lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100416152041.GA28863@sortiz.org>
Date:	Fri, 16 Apr 2010 17:20:42 +0200
From:	Samuel Ortiz <sameo@...ux.intel.com>
To:	Linus Walleij <linus.walleij@...ricsson.com>
Cc:	linux-kernel@...r.kernel.org, STEricsson_nomadik_linux@...t.st.com,
	Mattias Wallin <mattias.wallin@...ricsson.com>
Subject: Re: [PATCH 1/3] MFD: renamed ab3100.h to abx500.h

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@...ricsson.com>
> Signed-off-by: Linus Walleij <linus.walleij@...ricsson.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@...ricsson.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@...ricsson.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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ