rk3399 linux 风扇调试

一、原理图

 

 当前风扇控制支持gpio与pwm控制

二、gpio控制

1、查找gpio号

    当前控制风扇通过控制GPIO高低电平来实现,
    FAN_CTL接GPIO4_C6
    查找gpio号
    进入系统,输入命令
    cat /sys/kernel/debug/gpio
            root@linaro-alip:/# cat /sys/kernel/debug/gpio
            GPIOs 0-31, platform/pinctrl, gpio0:
             gpio-4   (                    |bt_default_wake_host) in  lo    
             gpio-5   (                    |GPIO Key Power      ) in  hi    
             gpio-9   (                    |bt_default_reset    ) out hi    
             gpio-10  (                    |reset               ) out hi    
             gpio-11  (                    |spk-con-gpio        ) out lo    
            
            GPIOs 32-63, platform/pinctrl, gpio1:
             gpio-33  (                    |vcc_lcd             ) out hi    
             gpio-35  (                    |vcc_otg_vbus        ) out lo    
             gpio-46  (                    |vsel                ) out lo    
             gpio-49  (                    |vsel                ) out lo    
             gpio-55  (                    |enable              ) out lo    
            
            GPIOs 64-95, platform/pinctrl, gpio2:
             gpio-76  (                    |rockchip,pd-gpio    ) out hi    
             gpio-83  (                    |bt_default_rts      ) out lo    
             gpio-90  (                    |bt_default_wake     ) out hi    
             gpio-92  (                    |reset               ) out hi    
            
            GPIOs 96-127, platform/pinctrl, gpio3:
             gpio-111 (                    |mdio-reset          ) out hi    
            
            GPIOs 128-159, platform/pinctrl, gpio4:
             gpio-148 (                    |sysfs               ) in  hi    
             gpio-150 (                    |sysfs               ) out lo    
             gpio-153 (                    |vcc5v0_host         ) out hi  
    GPIO4_C6对应的gpio号是150

2、GPIO口操作

    导出GPIO口
        cd /sys/class/gpio
        echo 150 >export
    查看GPIO文件夹下会多出gpio150文件夹
         ls
        export   gpio150    gpiochip128  gpiochip64  unexport
        gpio148  gpiochip0  gpiochip32   gpiochip96
    进入文件夹gpio150
        cd gpio150
    打开文件权限并设置输入模式
        chmod 777 direction
        chmod 777 value
        echo out > direction
    修改GPIO口状态
        echo 1 > value / echo 0 > value

三、pwm控制

1、dts配置

    当前风扇控制引脚接pwm1,我们需配置风扇驱动和pwn1
        fan0: pwm-fan {
    		compatible = "pwm-fan";
    		pwms = <&pwm1 0 10000 0>;
    	};
        
        &pwm1 {
        	pinctrl-names = "active";
        	pinctrl-0 = <&pwm1_pin>;
        	status = "okay";
        };

2、打开风扇驱动编译

    当前风扇驱动在 kernel/drivers/hwmon/pwm-fan.c中,打开编译宏配制  
        CONFIG_PWM_ROCKCHIP=y
        CONFIG_SENSORS_PWM_FAN=y
        CONFIG_HWMON=y

3、上层控制

    通过修改占空比达到控制风扇转动
        echo 100 > /sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1
        占空比的有效操作大致在180-229左右,数据值越大,转速越慢

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值