dts 外部中断驱动的写法
外部中断:
Max11801接gpio3_26
Dts写法:
I2c从设备驱动获取方法:
max11801@48 {
compatible = "maxim,max11801";
reg = <0x48>;
interrupt-parent = <&gpio3>;
interrupts = <26 2>;//注:2
work-mode = <1>;/*DCM mode*/
};
注
1 = low-to-high edge triggered.
2 = high-to-low edge triggered.
4 = active high level-sensitive.
8 = active low level-sensitive.
I2c驱动内核会自动解析dts计算中断号赋值给client
驱动里获取使用中断号:
static int max11801_ts_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
request_threaded_irq(client->irq, NULL, max11801_ts_interrupt,
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
"max11801_ts", data);
}
普通平台设备方法:
Dts:
uart1: serial@02020000 {
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
reg = <0x02020000 0x4000>;
interrupts = <0 26 0x04>;
clocks = <&clks 160>, <&clks 161>;
clock-names = "ipg", "per";
dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
dma-names = "rx", "tx";
status = "disabled";
};
驱动:
static int serial_imx_probe(struct platform_device *pdev)
{
sport->port.irq = platform_get_irq(pdev, 0);
}
评论