Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
20e37532
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
20e37532
编写于
6月 12, 2013
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v3.11-next/driver-gpio' into v3.11-next/s3c24xx-driver
上级
317ddd25
9fdb27d4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
0 addition
and
106 deletion
+0
-106
Documentation/devicetree/bindings/gpio/gpio-samsung.txt
Documentation/devicetree/bindings/gpio/gpio-samsung.txt
+0
-43
drivers/gpio/gpio-samsung.c
drivers/gpio/gpio-samsung.c
+0
-63
未找到文件。
Documentation/devicetree/bindings/gpio/gpio-samsung.txt
浏览文件 @
20e37532
...
@@ -39,46 +39,3 @@ Example:
...
@@ -39,46 +39,3 @@ Example:
#gpio-cells = <4>;
#gpio-cells = <4>;
gpio-controller;
gpio-controller;
};
};
Samsung S3C24XX GPIO Controller
Required properties:
- compatible: Compatible property value should be "samsung,s3c24xx-gpio".
- reg: Physical base address of the controller and length of memory mapped
region.
- #gpio-cells: Should be 3. The syntax of the gpio specifier used by client nodes
should be the following with values derived from the SoC user manual.
<[phandle of the gpio controller node]
[pin number within the gpio controller]
[mux function]
[flags and pull up/down]
Values for gpio specifier:
- Pin number: depending on the controller a number from 0 up to 15.
- Mux function: Depending on the SoC and the gpio bank the gpio can be set
as input, output or a special function
- Flags and Pull Up/Down: the values to use differ for the individual SoCs
example S3C2416/S3C2450:
0 - Pull Up/Down Disabled.
1 - Pull Down Enabled.
2 - Pull Up Enabled.
Bit 16 (0x00010000) - Input is active low.
Consult the user manual for the correct values of Mux and Pull Up/Down.
- gpio-controller: Specifies that the node is a gpio controller.
- #address-cells: should be 1.
- #size-cells: should be 1.
Example:
gpa: gpio-controller@56000000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "samsung,s3c24xx-gpio";
reg = <0x56000000 0x10>;
#gpio-cells = <3>;
gpio-controller;
};
drivers/gpio/gpio-samsung.c
浏览文件 @
20e37532
...
@@ -933,67 +933,6 @@ static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
...
@@ -933,67 +933,6 @@ static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
s3c_gpiolib_track
(
chip
);
s3c_gpiolib_track
(
chip
);
}
}
#if defined(CONFIG_PLAT_S3C24XX) && defined(CONFIG_OF)
static
int
s3c24xx_gpio_xlate
(
struct
gpio_chip
*
gc
,
const
struct
of_phandle_args
*
gpiospec
,
u32
*
flags
)
{
unsigned
int
pin
;
if
(
WARN_ON
(
gc
->
of_gpio_n_cells
<
3
))
return
-
EINVAL
;
if
(
WARN_ON
(
gpiospec
->
args_count
<
gc
->
of_gpio_n_cells
))
return
-
EINVAL
;
if
(
gpiospec
->
args
[
0
]
>
gc
->
ngpio
)
return
-
EINVAL
;
pin
=
gc
->
base
+
gpiospec
->
args
[
0
];
if
(
s3c_gpio_cfgpin
(
pin
,
S3C_GPIO_SFN
(
gpiospec
->
args
[
1
])))
pr_warn
(
"gpio_xlate: failed to set pin function
\n
"
);
if
(
s3c_gpio_setpull
(
pin
,
gpiospec
->
args
[
2
]
&
0xffff
))
pr_warn
(
"gpio_xlate: failed to set pin pull up/down
\n
"
);
if
(
flags
)
*
flags
=
gpiospec
->
args
[
2
]
>>
16
;
return
gpiospec
->
args
[
0
];
}
static
const
struct
of_device_id
s3c24xx_gpio_dt_match
[]
__initdata
=
{
{
.
compatible
=
"samsung,s3c24xx-gpio"
,
},
{}
};
static
__init
void
s3c24xx_gpiolib_attach_ofnode
(
struct
samsung_gpio_chip
*
chip
,
u64
base
,
u64
offset
)
{
struct
gpio_chip
*
gc
=
&
chip
->
chip
;
u64
address
;
if
(
!
of_have_populated_dt
())
return
;
address
=
chip
->
base
?
base
+
((
u32
)
chip
->
base
&
0xfff
)
:
base
+
offset
;
gc
->
of_node
=
of_find_matching_node_by_address
(
NULL
,
s3c24xx_gpio_dt_match
,
address
);
if
(
!
gc
->
of_node
)
{
pr_info
(
"gpio: device tree node not found for gpio controller"
" with base address %08llx
\n
"
,
address
);
return
;
}
gc
->
of_gpio_n_cells
=
3
;
gc
->
of_xlate
=
s3c24xx_gpio_xlate
;
}
#else
static
__init
void
s3c24xx_gpiolib_attach_ofnode
(
struct
samsung_gpio_chip
*
chip
,
u64
base
,
u64
offset
)
{
return
;
}
#endif
/* defined(CONFIG_PLAT_S3C24XX) && defined(CONFIG_OF) */
static
void
__init
s3c24xx_gpiolib_add_chips
(
struct
samsung_gpio_chip
*
chip
,
static
void
__init
s3c24xx_gpiolib_add_chips
(
struct
samsung_gpio_chip
*
chip
,
int
nr_chips
,
void
__iomem
*
base
)
int
nr_chips
,
void
__iomem
*
base
)
{
{
...
@@ -1018,8 +957,6 @@ static void __init s3c24xx_gpiolib_add_chips(struct samsung_gpio_chip *chip,
...
@@ -1018,8 +957,6 @@ static void __init s3c24xx_gpiolib_add_chips(struct samsung_gpio_chip *chip,
gc
->
direction_output
=
samsung_gpiolib_2bit_output
;
gc
->
direction_output
=
samsung_gpiolib_2bit_output
;
samsung_gpiolib_add
(
chip
);
samsung_gpiolib_add
(
chip
);
s3c24xx_gpiolib_attach_ofnode
(
chip
,
S3C24XX_PA_GPIO
,
i
*
0x10
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录