Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
e1c1c69c
Commit
e1c1c69c
authored
Mar 14, 2012
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branches 'regmap/topic/core' and 'regmap/topic/devm' into regmap-next
parents
f5d6eba7
c0eb4676
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
81 additions
and
0 deletions
+81
-0
drivers/base/regmap/regmap-i2c.c
drivers/base/regmap/regmap-i2c.c
+17
-0
drivers/base/regmap/regmap-spi.c
drivers/base/regmap/regmap-spi.c
+17
-0
drivers/base/regmap/regmap.c
drivers/base/regmap/regmap.c
+39
-0
include/linux/regmap.h
include/linux/regmap.h
+8
-0
No files found.
drivers/base/regmap/regmap-i2c.c
View file @
e1c1c69c
...
...
@@ -111,4 +111,21 @@ struct regmap *regmap_init_i2c(struct i2c_client *i2c,
}
EXPORT_SYMBOL_GPL
(
regmap_init_i2c
);
/**
* devm_regmap_init_i2c(): Initialise managed register map
*
* @i2c: Device that will be interacted with
* @config: Configuration for register map
*
* The return value will be an ERR_PTR() on error or a valid pointer
* to a struct regmap. The regmap will be automatically freed by the
* device management code.
*/
struct
regmap
*
devm_regmap_init_i2c
(
struct
i2c_client
*
i2c
,
const
struct
regmap_config
*
config
)
{
return
devm_regmap_init
(
&
i2c
->
dev
,
&
regmap_i2c
,
config
);
}
EXPORT_SYMBOL_GPL
(
devm_regmap_init_i2c
);
MODULE_LICENSE
(
"GPL"
);
drivers/base/regmap/regmap-spi.c
View file @
e1c1c69c
...
...
@@ -70,4 +70,21 @@ struct regmap *regmap_init_spi(struct spi_device *spi,
}
EXPORT_SYMBOL_GPL
(
regmap_init_spi
);
/**
* devm_regmap_init_spi(): Initialise register map
*
* @spi: Device that will be interacted with
* @config: Configuration for register map
*
* The return value will be an ERR_PTR() on error or a valid pointer
* to a struct regmap. The map will be automatically freed by the
* device management code.
*/
struct
regmap
*
devm_regmap_init_spi
(
struct
spi_device
*
spi
,
const
struct
regmap_config
*
config
)
{
return
devm_regmap_init
(
&
spi
->
dev
,
&
regmap_spi
,
config
);
}
EXPORT_SYMBOL_GPL
(
devm_regmap_init_spi
);
MODULE_LICENSE
(
"GPL"
);
drivers/base/regmap/regmap.c
View file @
e1c1c69c
...
...
@@ -306,6 +306,45 @@ struct regmap *regmap_init(struct device *dev,
}
EXPORT_SYMBOL_GPL
(
regmap_init
);
static
void
devm_regmap_release
(
struct
device
*
dev
,
void
*
res
)
{
regmap_exit
(
*
(
struct
regmap
**
)
res
);
}
/**
* devm_regmap_init(): Initialise managed register map
*
* @dev: Device that will be interacted with
* @bus: Bus-specific callbacks to use with device
* @config: Configuration for register map
*
* The return value will be an ERR_PTR() on error or a valid pointer
* to a struct regmap. This function should generally not be called
* directly, it should be called by bus-specific init functions. The
* map will be automatically freed by the device management code.
*/
struct
regmap
*
devm_regmap_init
(
struct
device
*
dev
,
const
struct
regmap_bus
*
bus
,
const
struct
regmap_config
*
config
)
{
struct
regmap
**
ptr
,
*
regmap
;
ptr
=
devres_alloc
(
devm_regmap_release
,
sizeof
(
*
ptr
),
GFP_KERNEL
);
if
(
!
ptr
)
return
ERR_PTR
(
-
ENOMEM
);
regmap
=
regmap_init
(
dev
,
bus
,
config
);
if
(
!
IS_ERR
(
regmap
))
{
*
ptr
=
regmap
;
devres_add
(
dev
,
ptr
);
}
else
{
devres_free
(
ptr
);
}
return
regmap
;
}
EXPORT_SYMBOL_GPL
(
devm_regmap_init
);
/**
* regmap_reinit_cache(): Reinitialise the current register cache
*
...
...
include/linux/regmap.h
View file @
e1c1c69c
...
...
@@ -132,6 +132,14 @@ struct regmap *regmap_init_i2c(struct i2c_client *i2c,
struct
regmap
*
regmap_init_spi
(
struct
spi_device
*
dev
,
const
struct
regmap_config
*
config
);
struct
regmap
*
devm_regmap_init
(
struct
device
*
dev
,
const
struct
regmap_bus
*
bus
,
const
struct
regmap_config
*
config
);
struct
regmap
*
devm_regmap_init_i2c
(
struct
i2c_client
*
i2c
,
const
struct
regmap_config
*
config
);
struct
regmap
*
devm_regmap_init_spi
(
struct
spi_device
*
dev
,
const
struct
regmap_config
*
config
);
void
regmap_exit
(
struct
regmap
*
map
);
int
regmap_reinit_cache
(
struct
regmap
*
map
,
const
struct
regmap_config
*
config
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment