Root/
| 1 | |
| 2 | Linux for the Dingoo A320 |
| 3 | |
| 4 | ------------- |
| 5 | ** History ** |
| 6 | ------------- |
| 7 | |
| 8 | The initial port of Linux 2.6.24.3 to the A320 was done by Ignacio Garcia Perez |
| 9 | aka booboo. He added support for the Dingoo to the 2.6.24.3 kernel from Ingenic. |
| 10 | Ignacio Garcia Perez <iggarpe@gmail.com> |
| 11 | http://www.dingux.com/ |
| 12 | |
| 13 | The OpenDingux tree is a merge between booboo's patches and the qi-kernel tree |
| 14 | from Qi Hardware. This tree is kept up-to-date with the mainline kernel and |
| 15 | the latest drivers from Ingenic. |
| 16 | http://projects.qi-hardware.com/index.php/p/qi-kernel/ |
| 17 | |
| 18 | ------------------ |
| 19 | ** Contributing ** |
| 20 | ------------------ |
| 21 | |
| 22 | You can find the latest code on github: |
| 23 | http://github.com/mthuurne/opendingux-kernel |
| 24 | |
| 25 | Developers can be found on the #dingoonity channel on freenode IRC: |
| 26 | irc://irc.freenode.net/dingoonity |
| 27 | |
| 28 | ---------------- |
| 29 | ** Quickstart ** |
| 30 | ---------------- |
| 31 | |
| 32 | Use "make a320_defconfig" for a default configuration (LCD driver ILI9325). |
| 33 | |
| 34 | If your A320 is one of the newer models, you must change the LCD driver |
| 35 | to ILI9331: |
| 36 | |
| 37 | Device drivers |
| 38 | |---Graphics support |
| 39 | |---Support for framebuffer devices |
| 40 | |---SLCD panel |
| 41 | |
| 42 | -------------- |
| 43 | ** Keyboard ** |
| 44 | -------------- |
| 45 | |
| 46 | The keyboard driver has been completely rewritten now using the polled |
| 47 | input device code. The standard keyboard map is as follows: |
| 48 | |
| 49 | D-pad up KEY_UP KEY_VOLUMEUP 's' |
| 50 | D-pad down KEY_DOWN KEY_VOLUMEDOWN 'u' |
| 51 | D-pad left KEY_LEFT KEY_BRIGHTNESSDOWN 'e' |
| 52 | D-pad right KEY_RIGHT KEY_BRIGHTNESSUP 'i' |
| 53 | A button KEY_LEFTCTRL |
| 54 | B button KEY_LEFTATL |
| 55 | X button KEY_SPACE |
| 56 | Y button KEY_LEFTSHIFT |
| 57 | Left shoulder KEY_TAB KEY_EXIT |
| 58 | Right shoulder KEY_BACKSPACE |
| 59 | START button KEY_ENTER |
| 60 | SELECT button KEY_ESC KEY_MENU 'b' |
| 61 | |
| 62 | The second column is the generated keycode when the button is pressed normally. |
| 63 | The third column is the generated keycode when the button is pressed while the |
| 64 | power slider is pressed too. |
| 65 | The fourth column is the generated system request when the button is pressed |
| 66 | while both the power slider and the START button are pressed: |
| 67 | |
| 68 | 's' Emergency sync of all discs. |
| 69 | 'u' Remount all discs read-only. |
| 70 | 'e' Send SIGTERM to all processes except init. |
| 71 | 'i' Send SIGKILL to all processes except init. |
| 72 | 'b' Reboot immediately. |
| 73 | |
| 74 | For example, to reboot the console syncing all disces and mounting read-only, |
| 75 | press and hold POWER, press and hold START, and press secuentially UP, DOWN |
| 76 | and SELECT. Note that SELECT is also used in dual-boot to select linux boot, |
| 77 | so if you hold SELECT pressed at the end of the previous sequence, you should |
| 78 | reboot back into linux. |
| 79 | |
| 80 | Note that the POWER + key combinations are selected to enable an user space |
| 81 | daemon handle the volume, LCD bightness, and perhaps an on-screen keyboard. |
| 82 | |
| 83 | If you hold the power slider pressed alone this is what will happen: |
| 84 | - After two seconds a KEY_POWER key press and release will be generated. |
| 85 | - After five seconds, an inmediate reboot will happen. |
| 86 | |
| 87 | This is subject to change when hardware powerdown or idle support works. |
| 88 | |
| 89 | I did my best to come up with a clever and useful keyboard map, but if you |
| 90 | have any suggestions, please do not hesitate to contact me. |
| 91 | |
| 92 | ----------- |
| 93 | ** Sound ** |
| 94 | ----------- |
| 95 | |
| 96 | Sound driver is still OSS. It's quite buggy, but stick to S16 sample |
| 97 | format and everything should be ok. |
| 98 | |
| 99 | --------------------------------- |
| 100 | ** IPU (Image Processing Unit) ** |
| 101 | --------------------------------- |
| 102 | |
| 103 | IPU (Image Processing Unit) memory reservation at startup is disabled |
| 104 | (saves 4MB). If you intend to test video playing, you might want to |
| 105 | enable it: |
| 106 | |
| 107 | General setup |
| 108 | |---Configure standard kernel features (for small sytems) |
| 109 | |---Reserve memory for IPU on Ingenic JZ4740 SOC |
| 110 | |
| 111 | --------------------------- |
| 112 | ** CPU frequency scaling ** |
| 113 | --------------------------- |
| 114 | |
| 115 | CPU frequency scaling is now default enabled. Have a look at the stuff |
| 116 | in /sys/devices/system/cpu/cpu0/cpufreq/. Default governor is "userspace". |
| 117 | It is untested, and anyway at the moment you can only REDUCE the CPU |
| 118 | frequency below the 336MHz set by the boot hardware initialization code |
| 119 | (in hwinit if you're booting vía USB boot). |
| 120 | |
| 121 | ------------- |
| 122 | ** Battery ** |
| 123 | ------------- |
| 124 | |
| 125 | You can read the battery status by reading from /proc/jz/battery. You will |
| 126 | read a single line with a decimal value which is the battery voltage in |
| 127 | millivolts. |
| 128 | |
| 129 | We want a platform independent way of reading the battery status, and thus |
| 130 | we need something like a percentage of full battery charge. When this and |
| 131 | other info reading is implemented, it will be available in the second and |
| 132 | further lines read from /proc/jz/battery. |
| 133 | |
| 134 | ------------------- |
| 135 | ** LCD backlight ** |
| 136 | ------------------- |
| 137 | |
| 138 | You can change the LCD backlight level by using the FBIOSETBACKLIGHT ioctl |
| 139 | command on the /dev/fb0 interface or by writing to /proc/jz/lcd_backlight. |
| 140 | I recommend the later method since the first requires kernel headers, |
| 141 | which Ingenic didn't event bother to place in the right place (the ioctl |
| 142 | defintions are in drivers/video/jz4740_slcd.h). |
| 143 | |
| 144 | Write a value between 0 and 100. |
| 145 | |
| 146 | Note: the relation between the value and the luminosity is not linear. |
| 147 | This is likely to be fixed some day. |
| 148 | |
| 149 | ------------------- |
| 150 | ** Miscellaneous ** |
| 151 | ------------------- |
| 152 | |
| 153 | Lots of JZ4740 hardware support is disabled. Not because it doesn't |
| 154 | work but because it is untested. Enable it at your own risk. |
| 155 | |
| 156 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9
