理想的状态是GPIO controll driver也只是象UART,SPI这样driver一样和pin control subsystem进行交互,但是,实际上由于各种源由(后文详述),pin control subsystem和GPIO subsystem必须有交互,这部分的接口在第五章描述。第六章描述了Driver model和pin control subsystem的接口,第七章描述了为Pin control subsystem提供data...
/*check dlevel config */ if (gpio_cfg->drive != GPIO_DRVLVL_DEFAULT) { config = SUNXI_PINCFG_PACK(SUNXI_PINCFG_TYPE_DRV, 0XFFFF); pin_config_get(SUNXI_PINCTRL, gpio_cfg->name, &config); if (gpio_cfg->drive != SUNXI_PINCFG_UNPACK_VALUE(config)) { pr_warn("failed! dlevel v...
* 由于不同板级的pin经常改变,建议通过板级dts修改(参考下一小节) */s_rsb0_pins_a:s_rsb0@0{allwinner,pins="PL0","PL1";allwinner,function="s_rsb0";allwinner,muxsel=<2>;allwinner,drive=<2>;allwinner,pull=<1>;};/* * 以下配置为linux-5.4模块使用pin的配置,模块通过引用相应的节点对pin进...
qcom,vdd-io-current-level= <20060000>;//qcom,pad-pull-on= <0x0 0x3 0x3>;//qcom,pad-pull-off= <0x0 0x3 0x3>;//qcom,pad-drv-on= <0x4 0x4 0x4>;//qcom,pad-drv-off= <0x0 0x0 0x0>;pinctrl-names="active","sleep"; pinctrl-0= <&sdc1_clk_on &sdc1_cmd_on &sdc1_dat...
Pad#func0func1func2 GPIO0_C1 UART8_TX_M2 I2C0_SCL_M1 I3C0_SCL_M0 GPIO0_C2 UART8_RX_M2 I2C0_SDA_M1 I3C0_SDA_M0 In kernel/arch/arm64/boot/dts/rockchip/rk3576.dtsi there are: i2c0: i2c@27300000 { compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c"; reg = <0x0...
/* 在 driver 代码中 , 需要包含 #include <linux/gpio.h>使用 : *//* 获取 GP3_04的 ID号 ,然后申请 一个GPIO 操作对象。 */gpio_id =of_get_named_gpio(your_driver->dev->of_node,"hc595_DATA_OUT",0);if(gpio_is_valid(gpio_id))//判断一个IO是否合法devm_gpio_request_one(&platform...
pin control subsystem要管理所有的pin group。(C)配置这些pin的特性。例如配置该引脚上的pull-up/down电阻,配置drive strength等(2)接口规格。linux内核的某个软件组件必须放回到linux系统中才容易探讨它的接口以及在系统中的位置,因此,在本章的第二节会基于系统block上描述各个pin control subsystem和其他内核模块的...
Pad# func0 func1I2C4_SDA/GPIO1_B3gpio1b3i2c4_sdaI2C4_SCL/GPIO1_B4gpio1b4i2c4_scl Inkernel/arch/arm64/boot/dts/rockchip/rk3399.dtsithere are: i2c4:i2c@ff3d0000{compatible="rockchip,rk3399-i2c";reg=<0x00xff3d00000x00x1000>;clocks=<&pmucruSCLK_I2C4_PMU>,<&pmucruPCLK_I2C4_PM...
芯片的引脚,在数据手册里可能被称为PIN或者PAD。怎么表示一个引脚?有两种方法:引脚编号(pin number)、引脚名(pin name)。 芯片的每一个引脚都有一个编号。对于贴片封装的芯片,使用数字编号,比如第100号引脚、PIN100;对于BGA封装的芯片,使用行列编号:使用数字(1、2、3、……)表示行,使用字母(A、B、C、……,...
•SUNXI_PINCFG_TYPE_DRV更新为内核标准定义(PIN_CONFIG_DRIVE_STRENGTH),相应的val对应关系为(4.9->5.4: 0->10, 1->20…) •SUNXI_PINCFG_TYPE_DAT已不再生效,暂未支持DAT配置(建议使用gpio_direction_output或者__gpio_set_value设置电平值) ...