1*4882a593Smuzhiyun* Marvell PXA Keypad controller 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired Properties 4*4882a593Smuzhiyun- compatible : should be "marvell,pxa27x-keypad" 5*4882a593Smuzhiyun- reg : Address and length of the register set for the device 6*4882a593Smuzhiyun- interrupts : The interrupt for the keypad controller 7*4882a593Smuzhiyun- marvell,debounce-interval : How long time the key will be 8*4882a593Smuzhiyun recognized when it is pressed. It is a u32 value, and bit[31:16] 9*4882a593Smuzhiyun is debounce interval for direct key and bit[15:0] is debounce 10*4882a593Smuzhiyun interval for matrix key. The value is in binary number of 2ms 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunOptional Properties For Matrix Keyes 13*4882a593SmuzhiyunPlease refer to matrix-keymap.txt 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunOptional Properties for Direct Keyes 16*4882a593Smuzhiyun- marvell,direct-key-count : How many direct keyes are used. 17*4882a593Smuzhiyun- marvell,direct-key-mask : The mask indicates which keyes 18*4882a593Smuzhiyun are used. If bit[X] of the mask is set, the direct key X 19*4882a593Smuzhiyun is used. 20*4882a593Smuzhiyun- marvell,direct-key-low-active : Direct key status register 21*4882a593Smuzhiyun tells the level of pins that connects to the direct keyes. 22*4882a593Smuzhiyun When this property is set, it means that when the pin level 23*4882a593Smuzhiyun is low, the key is pressed(active). 24*4882a593Smuzhiyun- marvell,direct-key-map : It is a u16 array. Each item indicates 25*4882a593Smuzhiyun the linux key-code for the direct key. 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunOptional Properties For Rotary 28*4882a593Smuzhiyun- marvell,rotary0 : It is a u32 value. Bit[31:16] is the 29*4882a593Smuzhiyun linux key-code for rotary up. Bit[15:0] is the linux key-code 30*4882a593Smuzhiyun for rotary down. It is for rotary 0. 31*4882a593Smuzhiyun- marvell,rotary1 : Same as marvell,rotary0. It is for rotary 1. 32*4882a593Smuzhiyun- marvell,rotary-rel-key : When rotary is used for relative axes 33*4882a593Smuzhiyun in the device, the value indicates the key-code for relative 34*4882a593Smuzhiyun axes measurement in the device. It is a u32 value. Bit[31:16] 35*4882a593Smuzhiyun is for rotary 1, and Bit[15:0] is for rotary 0. 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunExamples: 38*4882a593Smuzhiyun keypad: keypad@d4012000 { 39*4882a593Smuzhiyun keypad,num-rows = <3>; 40*4882a593Smuzhiyun keypad,num-columns = <5>; 41*4882a593Smuzhiyun linux,keymap = <0x0000000e /* KEY_BACKSPACE */ 42*4882a593Smuzhiyun 0x0001006b /* KEY_END */ 43*4882a593Smuzhiyun 0x00020061 /* KEY_RIGHTCTRL */ 44*4882a593Smuzhiyun 0x0003000b /* KEY_0 */ 45*4882a593Smuzhiyun 0x00040002 /* KEY_1 */ 46*4882a593Smuzhiyun 0x0100008b /* KEY_MENU */ 47*4882a593Smuzhiyun 0x01010066 /* KEY_HOME */ 48*4882a593Smuzhiyun 0x010200e7 /* KEY_SEND */ 49*4882a593Smuzhiyun 0x01030009 /* KEY_8 */ 50*4882a593Smuzhiyun 0x0104000a /* KEY_9 */ 51*4882a593Smuzhiyun 0x02000160 /* KEY_OK */ 52*4882a593Smuzhiyun 0x02010003 /* KEY_2 */ 53*4882a593Smuzhiyun 0x02020004 /* KEY_3 */ 54*4882a593Smuzhiyun 0x02030005 /* KEY_4 */ 55*4882a593Smuzhiyun 0x02040006>; /* KEY_5 */ 56*4882a593Smuzhiyun marvell,rotary0 = <0x006c0067>; /* KEY_UP & KEY_DOWN */ 57*4882a593Smuzhiyun marvell,direct-key-count = <1>; 58*4882a593Smuzhiyun marvell,direct-key-map = <0x001c>; 59*4882a593Smuzhiyun marvell,debounce-interval = <0x001e001e>; 60*4882a593Smuzhiyun }; 61