Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
46294d66
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
46294d66
编写于
11月 10, 2017
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'regulator/fix/qcom-spmi' into regulator-linus
上级
39dae59d
ab953b9d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
6 deletion
+33
-6
drivers/regulator/qcom_spmi-regulator.c
drivers/regulator/qcom_spmi-regulator.c
+33
-6
未找到文件。
drivers/regulator/qcom_spmi-regulator.c
浏览文件 @
46294d66
...
@@ -593,13 +593,20 @@ static int spmi_sw_selector_to_hw(struct spmi_regulator *vreg,
...
@@ -593,13 +593,20 @@ static int spmi_sw_selector_to_hw(struct spmi_regulator *vreg,
u8
*
voltage_sel
)
u8
*
voltage_sel
)
{
{
const
struct
spmi_voltage_range
*
range
,
*
end
;
const
struct
spmi_voltage_range
*
range
,
*
end
;
unsigned
offset
;
range
=
vreg
->
set_points
->
range
;
range
=
vreg
->
set_points
->
range
;
end
=
range
+
vreg
->
set_points
->
count
;
end
=
range
+
vreg
->
set_points
->
count
;
for
(;
range
<
end
;
range
++
)
{
for
(;
range
<
end
;
range
++
)
{
if
(
selector
<
range
->
n_voltages
)
{
if
(
selector
<
range
->
n_voltages
)
{
*
voltage_sel
=
selector
;
/*
* hardware selectors between set point min and real
* min are invalid so we ignore them
*/
offset
=
range
->
set_point_min_uV
-
range
->
min_uV
;
offset
/=
range
->
step_uV
;
*
voltage_sel
=
selector
+
offset
;
*
range_sel
=
range
->
range_sel
;
*
range_sel
=
range
->
range_sel
;
return
0
;
return
0
;
}
}
...
@@ -613,15 +620,35 @@ static int spmi_sw_selector_to_hw(struct spmi_regulator *vreg,
...
@@ -613,15 +620,35 @@ static int spmi_sw_selector_to_hw(struct spmi_regulator *vreg,
static
int
spmi_hw_selector_to_sw
(
struct
spmi_regulator
*
vreg
,
u8
hw_sel
,
static
int
spmi_hw_selector_to_sw
(
struct
spmi_regulator
*
vreg
,
u8
hw_sel
,
const
struct
spmi_voltage_range
*
range
)
const
struct
spmi_voltage_range
*
range
)
{
{
int
sw_sel
=
hw_sel
;
unsigned
sw_sel
=
0
;
unsigned
offset
,
max_hw_sel
;
const
struct
spmi_voltage_range
*
r
=
vreg
->
set_points
->
range
;
const
struct
spmi_voltage_range
*
r
=
vreg
->
set_points
->
range
;
const
struct
spmi_voltage_range
*
end
=
r
+
vreg
->
set_points
->
count
;
while
(
r
!=
range
)
{
for
(;
r
<
end
;
r
++
)
{
if
(
r
==
range
&&
range
->
n_voltages
)
{
/*
* hardware selectors between set point min and real
* min and between set point max and real max are
* invalid so we return an error if they're
* programmed into the hardware
*/
offset
=
range
->
set_point_min_uV
-
range
->
min_uV
;
offset
/=
range
->
step_uV
;
if
(
hw_sel
<
offset
)
return
-
EINVAL
;
max_hw_sel
=
range
->
set_point_max_uV
-
range
->
min_uV
;
max_hw_sel
/=
range
->
step_uV
;
if
(
hw_sel
>
max_hw_sel
)
return
-
EINVAL
;
return
sw_sel
+
hw_sel
-
offset
;
}
sw_sel
+=
r
->
n_voltages
;
sw_sel
+=
r
->
n_voltages
;
r
++
;
}
}
return
sw_sel
;
return
-
EINVAL
;
}
}
static
const
struct
spmi_voltage_range
*
static
const
struct
spmi_voltage_range
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录