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
Kirill Smelkov
linux
Commits
706664c2
Commit
706664c2
authored
Oct 24, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/fixed' into regulator-next
parents
b735e47f
609d5f6d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
33 deletions
+12
-33
drivers/regulator/core.c
drivers/regulator/core.c
+4
-1
drivers/regulator/fixed.c
drivers/regulator/fixed.c
+6
-32
include/linux/regulator/driver.h
include/linux/regulator/driver.h
+2
-0
No files found.
drivers/regulator/core.c
View file @
706664c2
...
@@ -2582,6 +2582,8 @@ static int _regulator_get_voltage(struct regulator_dev *rdev)
...
@@ -2582,6 +2582,8 @@ static int _regulator_get_voltage(struct regulator_dev *rdev)
ret
=
rdev
->
desc
->
ops
->
get_voltage
(
rdev
);
ret
=
rdev
->
desc
->
ops
->
get_voltage
(
rdev
);
}
else
if
(
rdev
->
desc
->
ops
->
list_voltage
)
{
}
else
if
(
rdev
->
desc
->
ops
->
list_voltage
)
{
ret
=
rdev
->
desc
->
ops
->
list_voltage
(
rdev
,
0
);
ret
=
rdev
->
desc
->
ops
->
list_voltage
(
rdev
,
0
);
}
else
if
(
rdev
->
desc
->
fixed_uV
&&
(
rdev
->
desc
->
n_voltages
==
1
))
{
ret
=
rdev
->
desc
->
fixed_uV
;
}
else
{
}
else
{
return
-
EINVAL
;
return
-
EINVAL
;
}
}
...
@@ -3217,7 +3219,8 @@ static int add_regulator_attributes(struct regulator_dev *rdev)
...
@@ -3217,7 +3219,8 @@ static int add_regulator_attributes(struct regulator_dev *rdev)
/* some attributes need specific methods to be displayed */
/* some attributes need specific methods to be displayed */
if
((
ops
->
get_voltage
&&
ops
->
get_voltage
(
rdev
)
>=
0
)
||
if
((
ops
->
get_voltage
&&
ops
->
get_voltage
(
rdev
)
>=
0
)
||
(
ops
->
get_voltage_sel
&&
ops
->
get_voltage_sel
(
rdev
)
>=
0
)
||
(
ops
->
get_voltage_sel
&&
ops
->
get_voltage_sel
(
rdev
)
>=
0
)
||
(
ops
->
list_voltage
&&
ops
->
list_voltage
(
rdev
,
0
)
>=
0
))
{
(
ops
->
list_voltage
&&
ops
->
list_voltage
(
rdev
,
0
)
>=
0
)
||
(
rdev
->
desc
->
fixed_uV
&&
(
rdev
->
desc
->
n_voltages
==
1
)))
{
status
=
device_create_file
(
dev
,
&
dev_attr_microvolts
);
status
=
device_create_file
(
dev
,
&
dev_attr_microvolts
);
if
(
status
<
0
)
if
(
status
<
0
)
return
status
;
return
status
;
...
...
drivers/regulator/fixed.c
View file @
706664c2
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
struct
fixed_voltage_data
{
struct
fixed_voltage_data
{
struct
regulator_desc
desc
;
struct
regulator_desc
desc
;
struct
regulator_dev
*
dev
;
struct
regulator_dev
*
dev
;
int
microvolts
;
};
};
...
@@ -108,30 +107,7 @@ of_get_fixed_voltage_config(struct device *dev)
...
@@ -108,30 +107,7 @@ of_get_fixed_voltage_config(struct device *dev)
return
config
;
return
config
;
}
}
static
int
fixed_voltage_get_voltage
(
struct
regulator_dev
*
dev
)
{
struct
fixed_voltage_data
*
data
=
rdev_get_drvdata
(
dev
);
if
(
data
->
microvolts
)
return
data
->
microvolts
;
else
return
-
EINVAL
;
}
static
int
fixed_voltage_list_voltage
(
struct
regulator_dev
*
dev
,
unsigned
selector
)
{
struct
fixed_voltage_data
*
data
=
rdev_get_drvdata
(
dev
);
if
(
selector
!=
0
)
return
-
EINVAL
;
return
data
->
microvolts
;
}
static
struct
regulator_ops
fixed_voltage_ops
=
{
static
struct
regulator_ops
fixed_voltage_ops
=
{
.
get_voltage
=
fixed_voltage_get_voltage
,
.
list_voltage
=
fixed_voltage_list_voltage
,
};
};
static
int
reg_fixed_voltage_probe
(
struct
platform_device
*
pdev
)
static
int
reg_fixed_voltage_probe
(
struct
platform_device
*
pdev
)
...
@@ -186,24 +162,22 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
...
@@ -186,24 +162,22 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
if
(
config
->
microvolts
)
if
(
config
->
microvolts
)
drvdata
->
desc
.
n_voltages
=
1
;
drvdata
->
desc
.
n_voltages
=
1
;
drvdata
->
microvolts
=
config
->
microvolts
;
drvdata
->
desc
.
fixed_uV
=
config
->
microvolts
;
if
(
config
->
gpio
>=
0
)
if
(
config
->
gpio
>=
0
)
cfg
.
ena_gpio
=
config
->
gpio
;
cfg
.
ena_gpio
=
config
->
gpio
;
cfg
.
ena_gpio_invert
=
!
config
->
enable_high
;
cfg
.
ena_gpio_invert
=
!
config
->
enable_high
;
if
(
config
->
enabled_at_boot
)
{
if
(
config
->
enabled_at_boot
)
{
if
(
config
->
enable_high
)
{
if
(
config
->
enable_high
)
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_HIGH
;
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_HIGH
;
}
else
{
else
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_LOW
;
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_LOW
;
}
}
else
{
}
else
{
if
(
config
->
enable_high
)
{
if
(
config
->
enable_high
)
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_LOW
;
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_LOW
;
}
else
{
else
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_HIGH
;
cfg
.
ena_gpio_flags
|=
GPIOF_OUT_INIT_HIGH
;
}
}
}
if
(
config
->
gpio_is_open_drain
)
if
(
config
->
gpio_is_open_drain
)
cfg
.
ena_gpio_flags
|=
GPIOF_OPEN_DRAIN
;
cfg
.
ena_gpio_flags
|=
GPIOF_OPEN_DRAIN
;
...
@@ -222,7 +196,7 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
...
@@ -222,7 +196,7 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
drvdata
);
platform_set_drvdata
(
pdev
,
drvdata
);
dev_dbg
(
&
pdev
->
dev
,
"%s supplying %duV
\n
"
,
drvdata
->
desc
.
name
,
dev_dbg
(
&
pdev
->
dev
,
"%s supplying %duV
\n
"
,
drvdata
->
desc
.
name
,
drvdata
->
microvolts
);
drvdata
->
desc
.
fixed_uV
);
return
0
;
return
0
;
...
...
include/linux/regulator/driver.h
View file @
706664c2
...
@@ -209,6 +209,7 @@ enum regulator_type {
...
@@ -209,6 +209,7 @@ enum regulator_type {
* @min_uV: Voltage given by the lowest selector (if linear mapping)
* @min_uV: Voltage given by the lowest selector (if linear mapping)
* @uV_step: Voltage increase with each selector (if linear mapping)
* @uV_step: Voltage increase with each selector (if linear mapping)
* @linear_min_sel: Minimal selector for starting linear mapping
* @linear_min_sel: Minimal selector for starting linear mapping
* @fixed_uV: Fixed voltage of rails.
* @ramp_delay: Time to settle down after voltage change (unit: uV/us)
* @ramp_delay: Time to settle down after voltage change (unit: uV/us)
* @volt_table: Voltage mapping table (if table based mapping)
* @volt_table: Voltage mapping table (if table based mapping)
*
*
...
@@ -241,6 +242,7 @@ struct regulator_desc {
...
@@ -241,6 +242,7 @@ struct regulator_desc {
unsigned
int
min_uV
;
unsigned
int
min_uV
;
unsigned
int
uV_step
;
unsigned
int
uV_step
;
unsigned
int
linear_min_sel
;
unsigned
int
linear_min_sel
;
int
fixed_uV
;
unsigned
int
ramp_delay
;
unsigned
int
ramp_delay
;
const
struct
regulator_linear_range
*
linear_ranges
;
const
struct
regulator_linear_range
*
linear_ranges
;
...
...
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