linux 使用regulator

公众号

欢迎扫码关注本人微信公众号:公众号上分享更多嵌入式知识和资料,分享个人学习嵌入式的心得体会。欢迎大家一起来玩呀。
在这里插入图片描述

linux 使用regulator

简要说明一下在Rockchip平台regulator的使用方法

//在pmic这个节点中可以看到一个子节点vcc_sd,表明有一路电源从pmic中引出来连接到sdmmc的外设上,给sdmmc进行供电,那这一路电源如何使用呢?可以看下面的dts sdmmc 这个节点的vqmmc-supply
vcc_sd: LDO_REG4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc_sd";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};
			

&sdmmc {
	clock-frequency = <50000000>;
	clock-freq-min-max = <400000 150000000>;
	supports-sd;
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	num-slots = <1>;
	//sd-uhs-sdr104;
	vqmmc-supply = <&vcc_sd>;   //指定vqmmc-supply 使用pmic是使用那一路电源
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
	status = "okay";
};

在代码中使用vqmmc-supply这一路电源代码调用如下:
kernel\drivers\mmc\host\dw_mmc-pltfm.c

//step 1
static const struct of_device_id dw_mci_rockchip_match[] = {
	{ .compatible = "rockchip,rk2928-dw-mshc",
		.data = &rk2928_drv_data },
	{ .compatible = "rockchip,rk3288-dw-mshc",
		.data = &rk3288_drv_data },
	{},
};

//step 2
static struct platform_driver dw_mci_rockchip_pltfm_driver = {
	.probe		= dw_mci_rockchip_probe,
	.remove		= dw_mci_pltfm_remove,
	.driver		= {
		.name		= "dwmmc_rockchip",
		.of_match_table	= dw_mci_rockchip_match,
		.pm		= &dw_mci_rockchip_pmops,
	},
};

static int dw_mci_rockchip_probe(struct platform_device *pdev)
    dw_mci_pltfm_register(pdev, drv_data);
        dw_mci_probe(host);
           ret = dw_mci_init_slot(host, i);
               ret = mmc_regulator_get_supply(mmc);
                  mmc->supply.vmmc  = devm_regulator_get_optional(dev, "vmmc");
	              mmc->supply.vqmmc = devm_regulator_get_optional(dev, "vqmmc");
	               /"代码里通过“vqmmc” 找到 vqmmc-supply = <&vcc_sd>;,从而找到vcc_sd,电源配置*/
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值