Raspberry Pi のペリフェラル割り込み番号を調べてみました。
Raspberry Pi の割り込み番号は、BCM2835 ARM Peripheralsというドキュメントにも載っているのですが、情報が抜けています。
抜けている情報をLinuxのカーネルソースから拾って埋めてみました。
番号 | 割込み | 番号 | 割込み | 番号 | 割込み | 番号 | 割込み |
---|---|---|---|---|---|---|---|
0 | timer0 | 16 | dma0 | 32 | 48 | smi | |
1 | timer1 | 17 | dma1 | 33 | hvs | 49 | gpio |
2 | timer2 | 18 | vc_dma2 | 34 | 50 | gpio | |
3 | timer3 | 19 | vc_dma3 | 35 | 51 | gpio | |
4 | 20 | dma4 | 36 | dsi0 | 52 | gpio | |
5 | 21 | dma5 | 37 | 53 | i2c0/i2c1/i2c2 | ||
6 | 22 | dma6 | 38 | 54 | spi_int | ||
7 | 23 | dma7 | 39 | 55 | pcm_int | ||
8 | 24 | dma8 | 40 | hdmi | 56 | sdhost | |
9 | usb | 25 | dma9 | 41 | hdmi | 57 | uart0 |
10 | v3d | 26 | dma10 | 42 | pixelvalve | 58 | |
11 | 27 | dma11 | 43 | i2c_spi_slv_int | 59 | vec | |
12 | 28 | dma12 | 44 | dsi1 | 60 | ||
13 | 29 | uart1/spi1/spi2 | 45 | pwa0 | 61 | uart0 | |
14 | 30 | sdhci | 46 | pwa1 | 62 | sdhci | |
15 | 31 | 47 | 63 |
割り込み番号の調べ方
- デバイスツリーのファイルを開く
- https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/bcm283x.dtsi
- 各ペリフェラルのinterrupts の設定を探す。
interrupts = <2 30>;
- 1番目の数字をa, 2番目の数字をbとしたら 32*(a-1) + b が割り込み番号になります。
- a=2、b=30なら、割り込み番号は62です。
追記
- もうちょっと探したら、割り込み番号が定義されたヘッダファイルがあった。
- https://github.com/raspberrypi/linux/blob/rpi-4.2.y/arch/arm/mach-bcm2708/include/mach/platform.h