Skip to content

Commit ed97361

Browse files
author
shiguanghu
authored
Update pinctrl子系统与GPIO子系统.txt
1 parent 5abd9c7 commit ed97361

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

pinctrl/pinctrl子系统与GPIO子系统.txt

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--------------------------------------------------------------
2-
pinctrl子系统总结
2+
A.pinctrl子系统总结
33
--------------------------------------------------------------
44
软件框架:
55
1. pinctrl-core
@@ -327,21 +327,30 @@ pinctrl_select_state(pinctrl, turnon_tes)。
327327

328328

329329

330+
331+
330332
------------------
331333
案例2 -- 一个背光灯device需要使用pwm的输出pin:
332334
------------------
333-
device tree:
334-
背光系统中要用到gpd2_4这个pin的TOUT_0功能和gpd4_3这个pin的输出功能并输出1,需要在backlight这个node中做以下描述,这两个pin只有一个状态(pwm-on),同样,这个名字也是可以随便起的。bl_pwm_ctrl和bl_pwm_en_ctrl分别是对这两个pin的描述。
335+
/////////////////////////
336+
//device tree:
337+
/////////////////////////
338+
背光系统中要用到
339+
gpd2_4 这个pin的TOUT_0功能 和
340+
gpd4_3 这个pin的输出功能, 并输出1.
341+
342+
需要在backlight这个node中做以下描述:
343+
这两个pin只有一个状态(pwm-on),同样,这个名字也是可以随便起的;
344+
bl_pwm_ctrl 和 bl_pwm_en_ctrl 分别是对这两个pin的描述;
335345

336346
backlight {
337347
...
338348
...
339-
pinctrl-names = "pwm-on";
340-
pinctrl-0 = <&bl_pwm_ctrl @bl_pwm_en_ctrl>;
349+
pinctrl-names = "pwm-on"; //state
350+
pinctrl-0 = <&bl_pwm_ctrl @bl_pwm_en_ctrl>; //它里面就必须要有function和gruop了
341351
};
342352

343353
/* 这个和上面一样,就不多说了 */
344-
345354
&bl_pwm_ctrl_pinctrl{ //#define bl_pwm_ctrl_pinctrl pinctrl_2
346355
bl_pwm_ctrl: bl_pwm_ctrl {
347356
samsung,pins = bl_pwm_ctrl_pin; //#define bl_pwm_ctrl_pin "gpd2-4"
@@ -351,8 +360,7 @@ backlight {
351360
};
352361
};
353362

354-
这个描述比上面多了个pin-val,因为这个引脚不仅要配置成输出功能,还要输出1,所以pin-val = 1。
355-
363+
下面这个描述,比上面的多了个pin-val,因为这个引脚不但要配置成输出功能,还要输出1,所以pin-val = 1。
356364
&bl_pwm_en_ctrl_pinctrl{
357365
bl_pwm_en_ctrl: bl_pwm_en_ctrl {
358366
samsung,pins = bl_pwm_en_ctrl_pin; //#define bl_pwm_en_ctrl_pin "gpd4-3"
@@ -363,15 +371,19 @@ backlight {
363371
};
364372
};
365373

366-
driver的操作:
367-
368-
在backlight的driver的probe中:
374+
/////////////////////////
375+
//driver的操作:
376+
/////////////////////////
377+
在backlight的driver的probe中: 仅需3行,
369378

370379
struct pinctrl * p = devm_pinctrl_get(&pdev->dev);
371380
struct pinctrl_state * default_state = pinctrl_lookup_state(p, "pwm-on");
372381
pinctrl_select_state(p, default_state);
373382

374-
执行完以上操作,可以发现gpd2_4引脚被配置成了TOUT_0功能,gpd4_3引脚被配置成为了输出功能,并且输出1(高电平)。
375-
以上就是pinctrl子系统的应用实例。如果有解释不太正确的地方请指教。
383+
执行完以上操作,可以发现
384+
gpd2_4引脚被配置成了TOUT_0功能,
385+
gpd4_3引脚被配置成为了输出功能,并且输出1(高电平)。
386+
387+
376388

377-
---------------------
389+
以上就是pinctrl子系统的应用实例

0 commit comments

Comments
 (0)