设备树解析:gpio

gpio2: gpio@fec30000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x0 0xfec30000 0x0 0x100>;
			interrupts = <GIC_SPI 279 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>;
		};

这段设备树(Device Tree)代码描述了一个名为gpio2的GPIO(通用输入输出)控制器设备,它属于Rockchip(瑞芯微)平台的一部分。下面是对这段代码各部分的详细解释:

  • gpio@fec30000:这是GPIO控制器的节点名,@fec30000表示该设备在内存中的基地址为0xfec30000

  • compatible = "rockchip,gpio-bank";:这一行指定了设备的兼容性字符串,表明这是一个Rockchip平台的GPIO bank(GPIO组)。

  • reg = <0x0 0xfec30000 0x0 0x100>;:这一行定义了设备的寄存器地址范围。0x00xfec30000是寄存器地址的开始,0x00x100表示寄存器大小是256字节(0x100)。

  • interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>;:这一行定义了设备使用的中断。GIC_SPI指的是通用中断控制器(Generic Interrupt Controller)的SPI(Shared Peripheral Interrupt)中断类型,279是中断号,IRQ_TYPE_LEVEL_HIGH表示这是一个电平触发的高电平中断。

  • clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;:这一行指定了GPIO控制器所需的时钟。&cru是对时钟控制单元(Clock Reset Unit)的引用,PCLK_GPIO2DBCLK_GPIO2分别是GPIO2的外设时钟和调试时钟。

  • gpio-controller;:这一行表明这个节点是一个GPIO控制器。

  • #gpio-cells = <2>;:这一行指定了每个GPIO引脚配置所需的单元数量。这里是2,意味着每个GPIO的配置需要两个32位单元(通常是地址和数据)。

  • gpio-ranges = <&pinctrl 0 64 32>;:这一行定义了GPIO引脚的范围和它们如何映射到pinctrl(引脚控制)系统中。&pinctrl是对引脚控制器节点的引用,0 64表示从第0个引脚开始,共有64个引脚,32表示这些引脚被组织成32个GPIO。

  • interrupt-controller;:这一行表明这个节点也是一个中断控制器。

  • #interrupt-cells = <2>;:这一行指定了定义中断时所需的单元数量。这里是2,通常意味着需要两个32位单元来指定中断号和中断类型/配置。

综上所述,这段代码定义了一个位于0xfec30000地址,具有256字节寄存器空间,使用中断号279,需要两个时钟信号,支持64个GPIO引脚(组织成32个GPIO),并且具有中断控制器功能的Rockchip GPIO控制器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值