RK3568技术笔记十八 Linux GPIO驱动程序中设备树分析

这段代码是RK3568芯片的设备树(Device Tree)片段,用于描述GPIO控制器的配置。

pinctrl: pinctrl {

       compatible = "rockchip,rk3568-pinctrl";  // 兼容性字符串,指定此设备树节点适用于RK3568的引脚控制器

       rockchip,grf = <&grf>;  // 引用通用寄存器(GRF)

       rockchip,pmu = <&pmugrf>;  // 引用GPIO控制寄存器

       #address-cells = <2>;  // 指定地址长度的位数为32x2,也就是64位地址

       #size-cells = <2>;  // 指定每个地址的长度是32x2,也就是64位长度

       ranges;  // 指定地址映射范围

       gpio0: gpio@fdd60000 {  // GPIO控制器0的描述,0xfdd60000是GPIO0的起始地址,这是从RK3568TRM里面截图出来的信息,一一对应了。

              compatible = "rockchip,gpio-bank";  // 兼容性字符串,指定这是Rockchip GPIO控制器,为了通配GPIO

              reg = <0x0 0xfdd60000 0x0 0x100>;  // 寄存器地址和大小

              interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;  // 中断配置

              clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;  // 时钟源配置

              gpio-controller;  // 标识这是一个GPIO控制器

              #gpio-cells = <2>;  // 每个GPIO单元的属性位数(标识和偏移)

              gpio-ranges = <&pinctrl 0 0 32>;  // GPIO范围配置

              interrupt-controller;  // 标识这是一个中断控制器

              #interrupt-cells = <2>;  // 每个中断单元的属性位数

       };

gpio1: gpio@fe740000 {
		compatible = "rockchip,gpio-bank";
		reg = <0x0 0xfe740000 0x0 0x100>;
		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;

		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&pinctrl 0 32 32>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpio2: gpio@fe750000 {
		compatible = "rockchip,gpio-bank";
		reg = <0x0 0xfe750000 0x0 0x100>;
		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;

		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&pinctrl 0 64 32>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpio3: gpio@fe760000 {
		compatible = "rockchip,gpio-bank";
		reg = <0x0 0xfe760000 0x0 0x100>;
		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;

		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&pinctrl 0 96 32>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值