[Armadillo:05674] Re: Armadillo-440でキーパッドを使う方法について

nakai email@hidden
2010年 8月 23日 (月) 12:58:23 JST


nakaiです。

> と定義されておりましたので、"/dev/input/event0"で拾える
> イベント名は、"mxc_keypad"だと思ったのですが実際に拾えた
> イベント名は、"mxckpd"でした。
> これは正しい動作でしょうか。

platform_device名としては、"mxc_keypad"となっていますが、
インプットデバイス名としては、"mxcpkd"となっています。

linux-2.6.26-at10のlinux-2.6.26-at/drivers/input/keyboard/mxc_keyb.c
の次のコードで設定しています。

    902         mxckbd_dev->keycode = &mxckpd_keycodes;
    903         mxckbd_dev->keycodesize = sizeof(unsigned char);
    904         mxckbd_dev->keycodemax = mxckpd_keycodes_size;
    905         mxckbd_dev->name = "mxckpd";
    906         mxckbd_dev->id.bustype = BUS_HOST;
    907         mxckbd_dev->open = mxc_kpp_open;
    908         mxckbd_dev->close = mxc_kpp_close;
    909
    910         __set_bit(EV_KEY, mxckbd_dev->evbit);
    911         for (i = 0; i < mxckpd_keycodes_size; i++)
    912                 __set_bit(mxckpd_keycodes[i], mxckbd_dev->keybit);
    913
    914         key_pad_enabled = 1;
    915
    916         retval = input_register_device(mxckbd_dev);

(2010/08/20 22:07), muroi wrote:
> 室井です、自己レス致します。
> 
> 動かない原因は、menuconfigの使い方に問題がありました。
> カーネルコンフィグの設定を触った後、ファイル名を入力して
> Save操作を行うとコンフィグが反映されていませんでした。
> 
> 質問に記載したコンフィグレーションとソース修正のみで
> キーパッドドライバからのイベントを拾うことが出来ました。
> 
> お騒がせしました。
> 
> ただ疑問があります。
> 
> "/linux-2.6.26-at9/arch/arm/mach-mx25/devices.c"に
> 
> struct platform_device mx25_keypad_device = {
> 	.name = "mxc_keypad",
> 	.id = 0,
> 	.num_resources = ARRAY_SIZE(mx25_keypad_resources),
> 	.resource = mx25_keypad_resources,
> 	.dev = {
> 		.release = mx25_nop_release,
> 	},
> };
> 
> と定義されておりましたので、"/dev/input/event0"で拾える
> イベント名は、"mxc_keypad"だと思ったのですが実際に拾えた
> イベント名は、"mxckpd"でした。
> これは正しい動作でしょうか。
> 
> 以上、宜しくお願い致します。
> 
> 
> On Fri, 20 Aug 2010 11:01:51 +0900
> muroi<email@hidden>  wrote:
> 
>> MLの皆様、お世話になります。
>> 室井と申します。
>>
>> Armadillo-440のキーパッドドライバを用いて2×4のキーマトリクスを
>> 構築したいと考えております。
>> そこでカーネルコンフィグレーションとソースの修正を行いました。
>>
>> ◆有効にしたコンフィグレーション
>> ・CONFIG_INPUT
>> ・CONFIG_INPUT_EVDEV
>> ・CONFIG_KEYBOARD_MXC
>> ・CONFIG_ARMADILLO400_KEYPAD_CON11
>> ・CONFIG_ARMADILLO400_KEYPAD_ROW0_CON11_40
>> ・CONFIG_ARMADILLO400_KEYPAD_ROW1_CON11_41
>> ・CONFIG_ARMADILLO400_KEYPAD_ROW2_CON11_42
>> ・CONFIG_ARMADILLO400_KEYPAD_ROW3_CON11_43
>> ・CONFIG_ARMADILLO400_KEYPAD_COL0_CON11_44
>> ・CONFIG_ARMADILLO400_KEYPAD_COL1_CON11_45
>>
>> ◆ソースの修正
>> linux-2.6.x/arch/arm/mach-mx25/armadillo400.c(816)に
>> 定義されている構造体を下記のように定義し直しました。
>>
>> static struct keypad_data armadillo440_keypad_data = {
>> 	.row_first = 0,
>> 	.row_last = 3,
>> 	.col_first = 0,
>> 	.col_last = 1,
>> 	.matrix = armadillo440_keymapping,
>> };
>>
>> ★上記2点の対応を行いビルドして出来あがった
>> linux.bin.gz と romfs.img.gz をArmadilloに
>> 書き込んだ後に CON11の40pin〜45pin をオシロで
>> あたってみたのですが、どのポートからも
>> スキャン信号が出てきませんでした。
>>
>> キーパッドを使うには、他にどのような作業が必要でしょうか。
>>
>> 以上、宜しくお願い致します。
>>
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内