https://linux-sunxi.org/api.php?action=feedcontributions&user=Asterion&feedformat=atomlinux-sunxi.org - User contributions [en]2024-03-28T15:34:17ZUser contributionsMediaWiki 1.35.8https://linux-sunxi.org/index.php?title=Finepower_N1&diff=25273Finepower N12023-02-16T01:49:38Z<p>Asterion: </p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:FinePower_N1-1.jpg|250px]]<br />
| manufacturer = [https://finepower.ru/ Finepower]<br />
| dimensions = 193''mm'' x 115''mm'' x 10.4''mm''<br />
| release_date = 2017<br />
| website = [https://finepower.ru/product/df648e7a985e3330/7-planset-finepower-n1-4-gb--cernyj/ Device Product Page]<br />
| soc = [[A33]] @ 1.2Ghz<br />
| dram = 512MiB DDR3 @ {{Edit|xxx}}MHz<br />
| nand = 4GB<br />
| power = DC 5V @ 2A, 2200mAh 3.7V Li-Ion battery<br />
| lcd = 7" 1024x600<br />
| touchscreen = X-finger capacitive/resistive ([[Touchscreen#Hynitron|Hynitron CST2XX]])<br />
| video = LCD<br />
| audio = 3.5mm headphone plug, internal speaker, internal microphone<br />
| network = WiFi 802.11 b/g/n ([[Wifi#Realtek|RTL8703BS]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 OTG<br />
| camera = 0.3MP (640x480) front<br />
| other = Accelerometer ([[Accelerometer#Device|Manufacturer device]])<br />
}}<br />
<br />
= Identification =<br />
<br />
On the back of the device, the following is printed:<br />
<pre>FinePower<br />
Model: N1<br />
Rev.2</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>TZX-723VC4</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''N1''<br />
* Build Number: ''N1_R01_13.04.2018_V1.2''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Supported under mainline u-boot and mainline kernel.<br />
<br />
===== Android modules =====<br />
<pre><br />
cst2xx 18173 0 - Live 0xbf331000<br />
sc7660 13524 0 - Live 0xbf329000<br />
cdc_ether 5099 0 - Live 0xbf323000<br />
rtl8150 9023 0 - Live 0xbf31c000<br />
mcs7830 6292 0 - Live 0xbf316000<br />
qf9700 7805 0 - Live 0xbf310000<br />
asix 17150 0 - Live 0xbf307000<br />
usbnet 17700 4 cdc_ether,mcs7830,qf9700,asix, Live 0xbf2fc000<br />
sunxi_keyboard 3021 0 - Live 0xbf2f8000<br />
sw_device 14991 0 - Live 0xbf2f0000<br />
vfe_v4l2 448072 0 - Live 0xbf268000<br />
s5k6aafx 21182 0 - Live 0xbf25e000<br />
bf3603 9619 0 - Live 0xbf257000<br />
sp2519 10857 0 - Live 0xbf250000<br />
sp0a19 11296 0 - Live 0xbf249000<br />
sp0838 10574 0 - Live 0xbf242000<br />
bf3920 9807 0 - Live 0xbf23b000<br />
bf3703 9570 0 - Live 0xbf234000<br />
siv121du 10782 0 - Live 0xbf22d000<br />
gc2155 12592 0 - Live 0xbf225000<br />
gc2145 12536 0 - Live 0xbf21d000<br />
gc2035 12824 0 - Live 0xbf215000<br />
gc0309 10622 0 - Live 0xbf20e000<br />
gc0329 10478 0 - Live 0xbf207000<br />
gc0312 10535 0 - Live 0xbf200000<br />
gc0308 10822 0 - Live 0xbf1f9000<br />
gc0328 10687 0 - Live 0xbf1f2000<br />
vfe_subdev 4771 17 vfe_v4l2,s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1ed000<br />
vfe_os 3951 2 vfe_v4l2,vfe_subdev, Live 0xbf1e8000<br />
cci 21602 16 s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1dc000<br />
videobuf_dma_contig 5567 1 vfe_v4l2, Live 0xbf1d7000<br />
videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0xbf1cd000<br />
leds_sunxi 1359 0 - Live 0xbf1c9000<br />
mali 212058 20 - Live 0xbf181000 (O)<br />
lcd 116877 0 - Live 0xbf15f000<br />
disp 992768 8 mali,lcd, Live 0xbf058000<br />
nand 294363 8 - Live 0xbf000000 (O)<br />
</pre><br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Use the "q8_a33_tablet_1024x600_defconfig" build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Mainline kernel ====<br />
<br />
Use the "sun8i-a33-q8-tablet.dtb" device-tree binary.<br /><br />
<br /><br />
'''Wi-Fi''' kernel module: https://github.com/Icenowy/rtl8723cs/tree/new-driver-by-megous<br /><br />
Tested with kernel '''5.15.0-rc1-00014-g316346243be6'''<br /><br />
How to compile:<br /><br />
<pre><br />
make -C [KERNEL_PATH] ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- M="$(pwd)" modules \<br />
CONFIG_RTL8723CS=m<br />
</pre><br />
For turn off power save execute:<br />
<pre>echo 'options 8723cs rtw_power_mgnt=0 rtw_enusbss=0' | sudo tee /etc/modprobe.d/8723cs.conf</pre><br />
'''CONFIG_IPV6''' must be '''OFF''' in kernel otherwise Wi-Fi driver will crash!<br />
<br />
== FEL mode ==<br />
<br />
The {{Edit|something}} button triggers [[FEL | FEL mode]].<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:A33_finepower_serial.jpg|240px|thumbnail|UART pads near soc]]<br />
<br />
There a two pads right of A33 chip. They are actually B0 and B1 pads of SOC.<br />
<br />
== Device disassembly ==<br />
<br />
See [[Format_Q8#Disassembly|the Q8 tablet format disassembly page]].<br />
<br />
== Locating the UART ==<br />
<br />
{{Remove|Describe how to find the RX,TX,GND signals here, and mention the [[UART|UART howto]].}}<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:FinePower_N1-1.jpg<br />
File:FinePower_N1-3.jpg<br />
File:FinePower_N1-4.jpg<br />
File:FinePower_N1-5.jpg<br />
File:FinePower N1-6.jpg<br />
</gallery><br />
<br />
= See also =<br />
<br />
[[Format_Q8#A33_based|Other Q8 format A33 based tablets.]]<br />
<br />
[[Category:Devices]]<br />
[[Category:A33 Tablets]]<br />
[[Category:Format_Q8_A33]]<br />
<br />
[[Category:Devices with Wifi]]<br />
<br />
[[Category:Mainline_Kernel]]</div>Asterionhttps://linux-sunxi.org/index.php?title=File:FinePower_N1-6.jpg&diff=25272File:FinePower N1-6.jpg2023-02-16T01:49:22Z<p>Asterion: </p>
<hr />
<div>main board</div>Asterionhttps://linux-sunxi.org/index.php?title=Wexler_TAB_A720&diff=24811Wexler TAB A7202022-05-01T18:43:15Z<p>Asterion: </p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:Wexler_TAB_A720-1.jpg|250px]]<br />
| manufacturer = [http://wexler.ru/ Wexler] (dead link)<br />
| dimensions = 194''mm'' x 114''mm'' x 9''mm''<br />
| release_date = November 2014<br />
| website = [http://manufacturer/device Device Product Page]<br />
| soc = [[A23]] @ 1.5Ghz<br />
| dram = 512MiB DDR3 @ 240MHz<br />
| nand = 4GB<br />
| power = USB, 2500mAh 3.7V Li-Ion battery<br />
| lcd = 800x480 (7" 16:9)<br />
| touchscreen = X-finger capacitive/resistive ([[Touchscreen#Silead|Silead GSL1680]])<br />
| video = LCD<br />
| audio = 3.5mm headphone plug, internal speaker, internal microphone<br />
| network = WiFi 802.11 b/g/n ([[Wifi#ESP8089|Espressif ESP8089]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 OTG<br />
| camera = 0.3MP (640x480) front<br />
}}<br />
<br />
= Identification =<br />
<br />
On the back of the device, the following is printed:<br />
<pre>WEXLER.TAB A720</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>A23_M7085_L_V02<br />
2014_C5_29</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''TAB A720''<br />
* Build Number: ''TAB A720_20141115_3.2.0_INT''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Unsupported in mainline kernel, mostly because of non-standard LCD (but really i don't know).<br /><br />
Patches for kernel and U-Boot can be found in this repository: https://gitlab.com/ariarolin/sunxi-wexler-tab-a720<br />
<br /><br />
===== Tested and working with patches: =====<br />
Display<br /><br />
U-Boot v2021.07<br /><br />
Kernel 5.14.0 (commit 78e709522d2c012cb0daad2e668506637bffb7c2)<br /><br />
DTB<br /><br />
SDcard<br /><br />
USB OTG<br /><br />
Brightness<br /><br />
Hardware keys<br /><br />
Mali / lima (GPU)<br /><br />
Audio (by default speaker is off, enable it by uncommenting in device tree) <br /><br />
Touchscreen (use this firmware https://gitlab.com/ariarolin/sunxi-wexler-tab-a720/-/blob/master/firmware/gsl1680-wexler-taba720.fw) <br /><br />
(my xorg.conf.d (calibration) for touchscreen is here: https://gitlab.com/ariarolin/sunxi-wexler-tab-a720/-/tree/master/touchscreen_config/xorg.conf.d)<br /><br />
===== Working but with problems: =====<br />
Wifi - use this kernel module https://github.com/Icenowy/esp8089/tree/cleanup (Known problem - cannot connect to hidden SSID, not tested with normal)<br /><br />
===== Not working: =====<br />
Cedrus (hardware media acceleration)<br /><br />
Rotation<br /><br />
Accelerometer (it's mxc622x, no known driver for mainline)<br /><br />
Camera<br /><br />
<br /><br />
Problems encountered:<br /><br />
# Kernel 5.14.0 does not shutdown fully (screen is off but power is on) (on 5.8.0 all OK)<br />
===== Android modules =====<br />
<pre><br />
gslX680new 134112 0 - Live 0x00000000 (F)<br />
mxc622x 4025 0 - Live 0x00000000<br />
rtl8150 8115 0 - Live 0x00000000<br />
mcs7830 4948 0 - Live 0x00000000<br />
qf9700 5188 0 - Live 0x00000000<br />
asix 12322 0 - Live 0x00000000<br />
sunxi_keyboard 2749 0 - Live 0x00000000<br />
sw_device 12200 0 - Live 0x00000000<br />
vfe_v4l2 217660 0 - Live 0x00000000<br />
gc0308 9360 1 - Live 0x00000000<br />
vfe_subdev 3827 2 vfe_v4l2,gc0308, Live 0x00000000<br />
vfe_os 3175 2 vfe_v4l2,vfe_subdev, Live 0x00000000<br />
cci 2954 1 gc0308, Live 0x00000000<br />
videobuf_dma_contig 3821 1 vfe_v4l2, Live 0x00000000<br />
videobuf_core 15500 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000<br />
leds_sunxi 1279 0 - Live 0x00000000<br />
mali 179969 15 - Live 0x00000000 (O)<br />
lcd 7184 0 - Live 0x00000000<br />
disp 1045213 8 mali,lcd, Live 0x00000000<br />
nand 256473 8 - Live 0x00000000 (O)<br />
</pre><br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Mainline U-Boot ====<br />
<br />
'''For unknown reason, git u-boot is not working with tablet, use v2021.07 release'''<br /><br />
First, apply this patch: https://gitlab.com/ariarolin/sunxi-wexler-tab-a720/-/blob/master/patches/U-BOOT_0001-Add-Wexler-TAB-A720-support.patch<br /><br />
Then, use the ''Wexler_TAB_A720_defconfig'' build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Mainline kernel ====<br />
<br />
First, apply this patch: https://gitlab.com/ariarolin/sunxi-wexler-tab-a720/-/blob/master/patches/LINUX_0001-Add-Wexler-TAB-A720-support.patch<br /><br />
Then, use the ''sun8i-a23-wexler-tab-a720.dtb'' device-tree binary.<br />
<br />
== FEL mode ==<br />
<br />
With SD card: https://linux-sunxi.org/FEL#Through_a_special_SD_card_image<br /><br />
I do not tried search FEL buttons.<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:device_uart.jpg|thumb|240px|{{Remove|DEVICE}} UART pads]]<br />
<br />
{{Remove|This section explains how to attach a serial port to the device. Make sure it refers to our [[UART|UART howto]]. For a development board, you can just mention how to find the header with the pins and include a picture, and you can remove the warranty voiding warning.}}<br />
<br />
== Device disassembly ==<br />
<br />
See [[Format_Q8#Disassembly|the Q8 tablet format disassembly page]].<br />
<br />
== Locating the UART ==<br />
<br />
{{Remove|Describe how to find the RX,TX,GND signals here, and mention the [[UART|UART howto]].}}<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:Wexler_TAB_A720-1.jpg<br />
File:Wexler_TAB_A720-2.jpg<br />
File:Wexler_TAB_A720-3.jpg<br />
File:Wexler_TAB_A720-4.jpg<br />
File:Wexler_TAB_A720-5.jpg<br />
</gallery><br />
<br />
[[Category:Devices]]<br />
[[Category:A23_Tablets]]<br />
[[Category:Format_Q8_A23]]</div>Asterionhttps://linux-sunxi.org/index.php?title=Finepower_N1&diff=24810Finepower N12022-05-01T18:25:04Z<p>Asterion: </p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:FinePower_N1-1.jpg|250px]]<br />
| manufacturer = [https://finepower.ru/ Finepower]<br />
| dimensions = 193''mm'' x 115''mm'' x 10.4''mm''<br />
| release_date = 2017<br />
| website = [https://finepower.ru/product/df648e7a985e3330/7-planset-finepower-n1-4-gb--cernyj/ Device Product Page]<br />
| soc = [[A33]] @ 1.2Ghz<br />
| dram = 512MiB DDR3 @ {{Edit|xxx}}MHz<br />
| nand = 4GB<br />
| power = DC 5V @ 2A, 2200mAh 3.7V Li-Ion battery<br />
| lcd = 7" 1024x600<br />
| touchscreen = X-finger capacitive/resistive ([[Touchscreen#Hynitron|Hynitron CST2XX]])<br />
| video = LCD<br />
| audio = 3.5mm headphone plug, internal speaker, internal microphone<br />
| network = WiFi 802.11 b/g/n ([[Wifi#Realtek|RTL8703BS]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 OTG<br />
| camera = 0.3MP (640x480) front<br />
| other = Accelerometer ([[Accelerometer#Device|Manufacturer device]])<br />
}}<br />
<br />
= Identification =<br />
<br />
On the back of the device, the following is printed:<br />
<pre>FinePower<br />
Model: N1<br />
Rev.2</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>TZX-723VC4</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''N1''<br />
* Build Number: ''N1_R01_13.04.2018_V1.2''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Supported under mainline u-boot and mainline kernel.<br />
<br />
===== Android modules =====<br />
<pre><br />
cst2xx 18173 0 - Live 0xbf331000<br />
sc7660 13524 0 - Live 0xbf329000<br />
cdc_ether 5099 0 - Live 0xbf323000<br />
rtl8150 9023 0 - Live 0xbf31c000<br />
mcs7830 6292 0 - Live 0xbf316000<br />
qf9700 7805 0 - Live 0xbf310000<br />
asix 17150 0 - Live 0xbf307000<br />
usbnet 17700 4 cdc_ether,mcs7830,qf9700,asix, Live 0xbf2fc000<br />
sunxi_keyboard 3021 0 - Live 0xbf2f8000<br />
sw_device 14991 0 - Live 0xbf2f0000<br />
vfe_v4l2 448072 0 - Live 0xbf268000<br />
s5k6aafx 21182 0 - Live 0xbf25e000<br />
bf3603 9619 0 - Live 0xbf257000<br />
sp2519 10857 0 - Live 0xbf250000<br />
sp0a19 11296 0 - Live 0xbf249000<br />
sp0838 10574 0 - Live 0xbf242000<br />
bf3920 9807 0 - Live 0xbf23b000<br />
bf3703 9570 0 - Live 0xbf234000<br />
siv121du 10782 0 - Live 0xbf22d000<br />
gc2155 12592 0 - Live 0xbf225000<br />
gc2145 12536 0 - Live 0xbf21d000<br />
gc2035 12824 0 - Live 0xbf215000<br />
gc0309 10622 0 - Live 0xbf20e000<br />
gc0329 10478 0 - Live 0xbf207000<br />
gc0312 10535 0 - Live 0xbf200000<br />
gc0308 10822 0 - Live 0xbf1f9000<br />
gc0328 10687 0 - Live 0xbf1f2000<br />
vfe_subdev 4771 17 vfe_v4l2,s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1ed000<br />
vfe_os 3951 2 vfe_v4l2,vfe_subdev, Live 0xbf1e8000<br />
cci 21602 16 s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1dc000<br />
videobuf_dma_contig 5567 1 vfe_v4l2, Live 0xbf1d7000<br />
videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0xbf1cd000<br />
leds_sunxi 1359 0 - Live 0xbf1c9000<br />
mali 212058 20 - Live 0xbf181000 (O)<br />
lcd 116877 0 - Live 0xbf15f000<br />
disp 992768 8 mali,lcd, Live 0xbf058000<br />
nand 294363 8 - Live 0xbf000000 (O)<br />
</pre><br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Use the "q8_a33_tablet_1024x600_defconfig" build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Mainline kernel ====<br />
<br />
Use the "sun8i-a33-q8-tablet.dtb" device-tree binary.<br /><br />
<br /><br />
'''Wi-Fi''' kernel module: https://github.com/Icenowy/rtl8723cs/tree/new-driver-by-megous<br /><br />
Tested with kernel '''5.15.0-rc1-00014-g316346243be6'''<br /><br />
How to compile:<br /><br />
<pre><br />
make -C [KERNEL_PATH] ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- M="$(pwd)" modules \<br />
CONFIG_RTL8723CS=m<br />
</pre><br />
For turn off power save execute:<br />
<pre>echo 'options 8723cs rtw_power_mgnt=0 rtw_enusbss=0' | sudo tee /etc/modprobe.d/8723cs.conf</pre><br />
'''CONFIG_IPV6''' must be '''OFF''' in kernel otherwise Wi-Fi driver will crash!<br />
<br />
== FEL mode ==<br />
<br />
The {{Edit|something}} button triggers [[FEL | FEL mode]].<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:device_uart.jpg|thumb|240px|{{Remove|DEVICE}} UART pads]]<br />
<br />
{{Remove|This section explains how to attach a serial port to the device. Make sure it refers to our [[UART|UART howto]]. For a development board, you can just mention how to find the header with the pins and include a picture, and you can remove the warranty voiding warning.}}<br />
<br />
== Device disassembly ==<br />
<br />
See [[Format_Q8#Disassembly|the Q8 tablet format disassembly page]].<br />
<br />
== Locating the UART ==<br />
<br />
{{Remove|Describe how to find the RX,TX,GND signals here, and mention the [[UART|UART howto]].}}<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:FinePower_N1-1.jpg<br />
File:FinePower_N1-3.jpg<br />
File:FinePower_N1-4.jpg<br />
File:FinePower_N1-5.jpg<br />
</gallery><br />
<br />
= See also =<br />
<br />
[[Format_Q8#A33_based|Other Q8 format A33 based tablets.]]<br />
<br />
[[Category:Devices]]<br />
[[Category:A33 Tablets]]<br />
[[Category:Format_Q8_A33]]<br />
<br />
[[Category:Devices with Wifi]]<br />
<br />
[[Category:Mainline_Kernel]]</div>Asterionhttps://linux-sunxi.org/index.php?title=Finepower_N1&diff=24809Finepower N12022-05-01T18:17:32Z<p>Asterion: </p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:FinePower_N1-1.jpg|250px]]<br />
| manufacturer = [https://finepower.ru/ Finepower]<br />
| dimensions = 193''mm'' x 115''mm'' x 10.4''mm''<br />
| release_date = 2017<br />
| website = [https://finepower.ru/product/df648e7a985e3330/7-planset-finepower-n1-4-gb--cernyj/ Device Product Page]<br />
| soc = [[A33]] @ 1.2Ghz<br />
| dram = 512MiB DDR3 @ {{Edit|xxx}}MHz<br />
| nand = 4GB<br />
| power = DC 5V @ 2A, 2200mAh 3.7V Li-Ion battery<br />
| lcd = 7" 1024x600<br />
| touchscreen = X-finger capacitive/resistive ([[Touchscreen#Hynitron|Hynitron CST2XX]])<br />
| video = LCD<br />
| audio = 3.5mm headphone plug, internal speaker, internal microphone<br />
| network = WiFi 802.11 b/g/n ([[Wifi#Realtek|RTL8703BS]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 OTG<br />
| camera = 0.3MP (640x480) front<br />
| other = Accelerometer ([[Accelerometer#Device|Manufacturer device]])<br />
}}<br />
<br />
= Identification =<br />
<br />
On the back of the device, the following is printed:<br />
<pre>FinePower<br />
Model: N1<br />
Rev.2</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>TZX-723VC4</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''N1''<br />
* Build Number: ''N1_R01_13.04.2018_V1.2''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Supported under mainline u-boot and mainline kernel.<br />
<br />
===== Android modules =====<br />
<pre><br />
cst2xx 18173 0 - Live 0xbf331000<br />
sc7660 13524 0 - Live 0xbf329000<br />
cdc_ether 5099 0 - Live 0xbf323000<br />
rtl8150 9023 0 - Live 0xbf31c000<br />
mcs7830 6292 0 - Live 0xbf316000<br />
qf9700 7805 0 - Live 0xbf310000<br />
asix 17150 0 - Live 0xbf307000<br />
usbnet 17700 4 cdc_ether,mcs7830,qf9700,asix, Live 0xbf2fc000<br />
sunxi_keyboard 3021 0 - Live 0xbf2f8000<br />
sw_device 14991 0 - Live 0xbf2f0000<br />
vfe_v4l2 448072 0 - Live 0xbf268000<br />
s5k6aafx 21182 0 - Live 0xbf25e000<br />
bf3603 9619 0 - Live 0xbf257000<br />
sp2519 10857 0 - Live 0xbf250000<br />
sp0a19 11296 0 - Live 0xbf249000<br />
sp0838 10574 0 - Live 0xbf242000<br />
bf3920 9807 0 - Live 0xbf23b000<br />
bf3703 9570 0 - Live 0xbf234000<br />
siv121du 10782 0 - Live 0xbf22d000<br />
gc2155 12592 0 - Live 0xbf225000<br />
gc2145 12536 0 - Live 0xbf21d000<br />
gc2035 12824 0 - Live 0xbf215000<br />
gc0309 10622 0 - Live 0xbf20e000<br />
gc0329 10478 0 - Live 0xbf207000<br />
gc0312 10535 0 - Live 0xbf200000<br />
gc0308 10822 0 - Live 0xbf1f9000<br />
gc0328 10687 0 - Live 0xbf1f2000<br />
vfe_subdev 4771 17 vfe_v4l2,s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1ed000<br />
vfe_os 3951 2 vfe_v4l2,vfe_subdev, Live 0xbf1e8000<br />
cci 21602 16 s5k6aafx,bf3603,sp2519,sp0a19,sp0838,bf3920,bf3703,siv121du,gc2155,gc2145,gc2035,gc0309,gc0329,gc0312,gc0308,gc0328, Live 0xbf1dc000<br />
videobuf_dma_contig 5567 1 vfe_v4l2, Live 0xbf1d7000<br />
videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0xbf1cd000<br />
leds_sunxi 1359 0 - Live 0xbf1c9000<br />
mali 212058 20 - Live 0xbf181000 (O)<br />
lcd 116877 0 - Live 0xbf15f000<br />
disp 992768 8 mali,lcd, Live 0xbf058000<br />
nand 294363 8 - Live 0xbf000000 (O)<br />
</pre><br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Use the "q8_a33_tablet_1024x600_defconfig" build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Mainline kernel ====<br />
<br />
Use the "sun8i-a33-q8-tablet.dtb" device-tree binary.<br /><br />
'''Wi-Fi''' kernel module: https://github.com/Icenowy/rtl8723cs/tree/new-driver-by-megous<br />
<br />
== FEL mode ==<br />
<br />
The {{Edit|something}} button triggers [[FEL | FEL mode]].<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:device_uart.jpg|thumb|240px|{{Remove|DEVICE}} UART pads]]<br />
<br />
{{Remove|This section explains how to attach a serial port to the device. Make sure it refers to our [[UART|UART howto]]. For a development board, you can just mention how to find the header with the pins and include a picture, and you can remove the warranty voiding warning.}}<br />
<br />
== Device disassembly ==<br />
<br />
See [[Format_Q8#Disassembly|the Q8 tablet format disassembly page]].<br />
<br />
== Locating the UART ==<br />
<br />
{{Remove|Describe how to find the RX,TX,GND signals here, and mention the [[UART|UART howto]].}}<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:FinePower_N1-1.jpg<br />
File:FinePower_N1-3.jpg<br />
File:FinePower_N1-4.jpg<br />
File:FinePower_N1-5.jpg<br />
</gallery><br />
<br />
= See also =<br />
<br />
[[Format_Q8#A33_based|Other Q8 format A33 based tablets.]]<br />
<br />
[[Category:Devices]]<br />
[[Category:A33 Tablets]]<br />
[[Category:Format_Q8_A33]]<br />
<br />
[[Category:Devices with Wifi]]<br />
<br />
[[Category:Mainline_Kernel]]</div>Asterionhttps://linux-sunxi.org/index.php?title=Touchscreen&diff=24808Touchscreen2022-05-01T18:15:13Z<p>Asterion: </p>
<hr />
<div>This page collects all the information about the various touch screen controllers in use on sunxi hardware.<br />
<br />
= General information =<br />
<br />
In general touchscreens are configured by the ctp_para in the fex file. There's also support for resistive touch panels by setting rtp_para in the fex. An example for built in RTP (resistive touch panel) built in controller can be found in the [[Fex_Guide#.5Brtp_para.5D|Fex Guide]].<br />
<br />
An example (for ft5x) would be:<br />
<pre><br />
[ctp_para]<br />
ctp_used = 1 #enable or disable the touchscreen<br />
ctp_name = "ft5x_ts" #model of the touchscreen<br />
ctp_twi_id = 2 #I2C Interface<br />
ctp_twi_addr = 0x70 #I2C Address<br />
ctp_screen_max_x = 800 #X Settings<br />
ctp_screen_max_y = 480 #Y Settings<br />
ctp_revert_x_flag = 0 #Set this and ctp_revert_y_flag to 1 to flip x and y axis<br />
ctp_revert_y_flag = 0<br />
ctp_exchange_x_y_flag = 0 <br />
ctp_int_port = port:PH21<6><default><default><default> #INT port settings<br />
ctp_wakeup = port:PB13<1><default><default><1> #Wakeup port settings<br />
ctp_io_port = port:PH21<0><default><default><default> #IO Port Settings<br />
rst_port = port:PH20<1><default><default><default> #RST port settings<br />
</pre><br />
<br />
Example for built in RTP:<br />
<pre><br />
[rtp_para]<br />
rtp_used = 0<br />
rtp_screen_size = 7<br />
rtp_regidity_level = 7<br />
rtp_press_threshold_enable = 0<br />
rtp_press_threshold = 0x1f40<br />
rtp_sensitive_level = 0xf<br />
rtp_exchange_x_y_flag = 0<br />
</pre><br />
<br />
== Hardware ==<br />
In general a capacitive touchscreen hardware consists of 6 Pins:<br />
*RST - Reset Pin (Input), Used by the CPU to reset the touchscreen.<br />
*SDA - I2C SDA (IO)<br />
*SCL - I2C SDL (Input)<br />
*INT - Interrupt Pin (Output, can be input during startup), used by the Touchscreen to indicate to the CPU that there are new events<br />
*VCC - Power Supply<br />
*GND - GND<br />
<br />
Some touchscreen have wakeup pins to allow the touchscreen to go to sleep mode to save battery.<br />
<br />
Mainly the I2C pins are connected to any i2c port on the CPU and is used to communicate with the touchscreen.<br />
<br />
In the other way a resistive touchscreen has 4 wires. Details can be found in the user manuals for Allwinner chips, in the section TP (touch panel). The interesting thing is that sun4i, sun6i and sun7i have essentially the same RTP controllers so the sun4i_ts driver can work for all of them. Testing was done on an A20 platform and gave exceptionally good results.<br />
<br />
== Startup Procedure ==<br />
Usually any touchscreen has a startup procedure during which resets are sent to the touchscreen by the cpu to indicate this procedure. During the reset/startup procedure usually the touchscreen profile data is sent to the touchscreen. Also in some cases the I2C address is set by this rest procedure (for instance, GT911).<br />
<br />
The interrupt Pin can be part of the startup procedure for handshakes or indications. In some cases the interrupt pin is also used as input to read additional data from the cpu during reset.<br />
<br />
== Touchscreen profiles ==<br />
Some touchscreen (for instance, GT911) require a so call Touchscreen Profile/Configuration. This configuration is sent during or right after the reset procedure of the touchscreen and is usually written to the controller memory (in some cases selectable persistent in eeprom). The Profile/Config defines the parameters of the touchscreen (such as physical size, active area(s). also it can include touchscreen button areas, touchscreen mode and more.<br />
<br />
'''THIS CONFIGURATION MUST BE PROVIDED BY THE TOUCHSCREEN PRODUCER!'''<br />
<br />
Example:<br />
<pre><br />
#define CTP_CFG_GROUP1 {\<br />
0x00,0x58,0x02,0x00,0x04,0x05,0x30,0x08,0x03,0x9F,0x14,\<br />
0x0F,0x8C,0x64,0x03,0x05,0x00,0x00,0x00,0x00,0x00,0x00,\<br />
0x00,0x18,0x1A,0x1E,0x14,0x8C,0x28,0x0C,0x18,0x14,0xD1,\<br />
0x0B,0x00,0x00,0x01,0x9C,0x02,0x35,0x00,0x00,0x00,0x00,\<br />
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x64,0x94,0x85,\<br />
0x02,0x08,0x00,0x00,0xCD,0x07,0x16,0xBF,0x09,0x19,0xFC,\<br />
0x0C,0x1B,0xE7,0x0D,0x22,0x77,0x0E,0x2D,0x00,0x00,0x00,\<br />
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\<br />
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\<br />
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\<br />
0x00,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,0x12,\<br />
0x14,0x16,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\<br />
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,\<br />
0x02,0x04,0x06,0x08,0x0A,0x0C,0x0F,0x10,0x12,0x13,0x14,\<br />
0x16,0x18,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0xFF,0xFF,0xFF,\<br />
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\<br />
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7C,0x01\<br />
}<br />
</pre><br />
<br />
== Touchscreen modes ==<br />
There is 2 modes a touchscreen can work in:<br />
*Polling Mode<br />
*Interrupt Mode<br />
<br />
This mode is usually defined by the Touchscreen profile/config or the startup/reset procedure.<br />
<br />
The preferred mode a capacitive touchscreen should work in is always interrupt mode. In Interrupt mode every time an event on the touchscreen occurs the INT pin triggers and notifies the CPU. the cpu then read the new event from the touchscreen.<br />
<br />
In Polling mode the cpu periodically requests the touchscreen data from the touchscreen. This means that there will be a lot of communication on the i2c port since this has to happen once every few ms.<br />
<br />
As stated above whenever possible use interrupt mode!<br />
<br />
== Hardware Configuration and Fex ==<br />
<br />
It is very important to configure the FEX file correctly for your touchscreen. <br />
=== Step 1 ===<br />
In your hardware schematics identify the I2C pins of your touchscreen and see which I2C it is connected to and set the ''ctp_twi_id'' to the id of i2c port.<br />
Now you need to find our your i2c address of your touchscreen. this is something you can get out of the chip datasheet or your touchscreen manufacture.<br />
<br />
Remember that the address of the touchscreen might be changed when sending the profile/config or via the reset procedure.<br />
<br />
=== Step 2 ===<br />
In your schematics find out which GPIO Pin the INT Pin is connected to. <br />
<br />
Define:<br />
<pre>ctp_int_port = port:<text>PH21</text><6><default><default><default></pre><br />
<br />
please also note the ''<6>'' part in the line above. Verify that the Interrupt setting of your Int pin is Function number 6 of the mux setting or modify the ''<X>'' according.<br />
<br />
Note that on some touchscreens (ft5x) it is required to define another port called the IO port on the same port as the interrupt port:<br />
<pre>ctp_io_port = port: PH21<0><default><default><default></pre><br />
This setting will define the same port with mux setting 0 as output to allow the driver to switch to IO mode.<br />
<br />
=== Step 3 ===<br />
In your schematics find out which GPIO Pin the RST Pin is connected to.<br />
<br />
<pre>rst_port = port:PH20<1><default><default><default> #RST port settings</pre><br />
Note that <1> sets the port as an output.<br />
<br />
It might be required to define additional pins for your touchscreen<br />
<br />
== Software Calibration ==<br />
<br />
Calibration of a touchscreen device can be done with the [http://www.freedesktop.org/wiki/Software/xinput_calibrator/ xinput_calibrator]. The xinput_calibrator is very simple tool which enables you to go through standard calibration procedure (press a few points on the screen) and then produces a snippet for xorg.conf. <br />
<br />
There can be problems with produced configuration so it's good to test and see what's actually happening. Try to move your finger over the screen and see if there's some sings of miscalibration. Produced config actually scales values from touchscreen controller to map to the screen so it may happen that one axis works ok and another doesn't. Anyways, xinput_calibrator can give you good hint for start and you can tweak it further manually. Detailed list of options can be found in the [http://www.x.org/releases/X11R7.6/doc/man/man4/evdev.4.xhtml evdev manual page].<br />
<br />
= Manufacturers =<br />
== ChipOne ==<br />
<br />
* Mainline kernel driver: '''icn8138'''<br />
* WIP drivers:<br />
** '''icn85xx''' - [https://gitlab.com/SergK/icn85xx WIP branch] ([https://groups.google.com/forum/#!topic/linux-sunxi/vIROVNOR-fY announcement])<br />
<br />
== Elan ==<br />
<br />
[http://www.emc.com.tw/eng/index.asp Elan Microelectronics Corporation]<br />
<br />
=== EKT3632 ===<br />
<br />
== Focaltech ==<br />
<br />
[http://www.focaltech-systems.com/En/index.aspx Link]<br />
<br />
Support is available for [https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/input/touchscreen/ft5x_ts.c sunxi-3.4].<br />
<br />
=== FT5301 ===<br />
Supported in sunxi-3.4<br />
=== FT5302 ===<br />
???<br />
=== FT5402DQT ===<br />
Supported in sunxi-3.4<br />
=== FT5x06 ===<br />
'''Supported''' in mainline kernel.<br />
<br />
* FT5206GE1<br />
* FT5306DE4<br />
* FT5406EE8<br />
<br />
You should need to add in dtb node for support(example for a Q8 tablet):<br />
&i2c1{<br />
clock-frequency = <400000>;<br />
polytouch: edt-ft5x06@38 {<br />
compatible = "edt,edt-ft5406", "edt,edt-ft5x06";<br />
reg = <0x38>;<br />
pinctrl-names = "default";<br />
pinctrl-0 = <&edt_ft5x06_pins>;<br />
interrupt-parent = <&pio>;<br />
interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /*PG11 */<br />
wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */<br />
touchscreen-size-x = <800>;<br />
touchscreen-size-y = <480>;<br />
touchscreen-inverted-x;<br />
touchscreen-inverted-y;<br />
/* touchscreen-swapped-x-y;*/<br />
};<br />
};<br />
<br />
<br />
==== sunxi-3.4 ====<br />
Supported, but the driver does not load on [[A20]] without the following patch. See this [https://groups.google.com/forum/#!topic/linux-sunxi/3rOkL-MiA1g conversation] for more information. <br />
<pre>diff --git a/drivers/input/touchscreen/ft5x_ts.c b/drivers/input/touchscreen/ft5x_ts.c<br />
index 5d8dc97..3d88694 100644<br />
--- a/drivers/input/touchscreen/ft5x_ts.c<br />
+++ b/drivers/input/touchscreen/ft5x_ts.c<br />
@@ -1762,7 +1762,7 @@ ft5x_ts_probe(struct i2c_client *client, const struct i2c_device_id *id)<br />
pr_info("%s:ctp_ops.set_irq_mode err.\n", __func__);<br />
goto exit_set_irq_mode;<br />
}<br />
- err = request_irq(SW_INT_IRQNO_PIO, ft5x_ts_interrupt, IRQF_TRIGGER_FALLING | IRQF_SHARED, "ft5x_ts", ft5x_ts);<br />
+ err = request_irq(SW_INT_IRQNO_PIO, ft5x_ts_interrupt, IRQF_SHARED, "ft5x_ts", ft5x_ts);<br />
<br />
if (err < 0) {<br />
dev_err(&client->dev, "ft5x_ts_probe: request irq failed\n");</pre><br />
</pre><br />
<br />
This driver does not support transformations (e.g. x-revert), but generates events complying to the [https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/Documentation/input/multi-touch-protocol.txt multi touch protocol].<br />
<br />
== Goodix ==<br />
<br />
[http://www.goodix.com/ Manufacturer's website]<br />
<br />
[https://drive.google.com/folderview?id=0BxCVOQS3ZymGfmJyY2RKbE5XbVlKNlktVTlwV0lxNEdxd2dzeWZER094cmJPVnMxN1F0Yzg&usp=sharing Datasheets] for various GT9xx devices.<br />
<br />
Driver for most of the '''Goodix 9xx''' chips (see below) is available in mainline. It is quite possible that all the 9xx-series chips are supported by this driver because they seem to have a common register layout. Goodix 8xx is currently unsupported by mainline.<br />
<br />
For older chips there are various driver sources targeting older kernel versions (linux-3.3 or linux-3.4) scattered around in different vendor-provided source trees or SDKs.<br />
<br />
=== GT801 ===<br />
No mainline support.<br />
Driver available in sunxi-3.4<br />
=== GT801 2+1 ===<br />
No mainline support. [http://thread.gmane.org/gmane.linux.kernel.input/42478/ RFC patch] that needs to be adapted to work alongside gt9xx chips.<br />
<br />
Driver available in sunxi-3.4<br />
<br />
=== GT811 ===<br />
No mainline support.<br />
Driver available in sunxi-3.4<br />
=== GT818 ===<br />
No mainline support.<br />
Driver available in sunxi-3.4<br />
=== GT828 ===<br />
No mainline support.<br />
No driver in sunxi-3.4, [https://github.com/reinforce/sunxi-patches/blob/master/3.4/0003-touchscreen-Add-gt82x.patch WIP patch]<br />
<br />
=== GT9xx ===<br />
<br />
Support for various Goodix GT9xx chips is available since Linux-4.1 via common '''<tt>[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/input/touchscreen/goodix.c goodix]</tt>''' driver:<br />
* gt911<br />
* gt9110<br />
* gt912<br />
* gt927<br />
* gt9271<br />
* gt928<br />
* gt967<br />
<br />
For <tt>sunxi-3.4</tt>, there's [https://github.com/reinforce/gt9xx WIP driver].<br />
<br />
== Ilitek ==<br />
<br />
=== aimvf ===<br />
<br />
<br />
== Silead ==<br />
<br />
Supported in [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/touchscreen/silead.c mainline kernel] (gsl1680, gsl1688, gsl3670, gsl3675, gsl3692 and also MSSL1680, MSSL0001, MSSL0002, MSSL0017 variants).<br />
<br />
Please note that you need device-specific firmware stored under <tt>/lib/firmware/silead/</tt> which should be extracted from original software on the device.<br />
<br />
If you get lucky, you might find [https://github.com/onitake/gsl-firmware firmware supporting your device from this repository].<br />
<br />
* Datasheet for GSL1680 / GSL1688: [http://dl.linux-sunxi.org/touchscreen/GSL1680.pdf GSL1680, GSL1688 datasheet, rev A1.6 – Oct 2012]<br />
* Datasheet for GSL3680: http://dl.linux-sunxi.org/touchscreen/GSL3680_touch-screen-controller-ic-DataSheet_Chinese_RevA1.2.pdf<br />
<br />
See also:<br />
* [[GSL1680]] - capacitive, multitactile touchscreen controller<br />
<br />
== Solomon Systech Limited ==<br />
<br />
This [http://www.solomon-systech.com/ Hong Kong based company] creates various LCD/OLED driver and touchscreen chips.<br />
<br />
=== SSD2533 ===<br />
<br />
== TCM ==<br />
TrueCore Microelectronics<br />
=== tc1680 ===<br />
<br />
Chip marked tc1680j i2c@0x20<br />
The driver for tc1680 is named tc1126 , there's a driver for allwinner kernel 3.4 (lichee) that supports A23 A33 A31 ,Here's The driver:<br />
https://github.com/xchetah/tc1126-sunxi<br />
<br />
Mainline WIP driver ported from BSP :https://github.com/miky2k/tc1126<br />
<br />
See also:<br />
[[A33_Q7_V1.0]] tablet.<br />
<br />
== ZEITEC Semiconductor ==<br />
<br />
=== zet6221 ===<br />
* WiP and more info: https://github.com/jelly/linux-zet62xx <br />
* Datasheet: http://linux-sunxi.org/images/2/22/ZP-HW-PS-0003_ZET6221_Product_Spec_v1_2.pdf<br />
* Driver: https://github.com/wingrime/zet6221-ts-drv<br />
* WiP driver for all zet62xx chips with firmwares loading for linux-sunxi-3.4 legacy kernel: https://github.com/xchetah/zet6221-sunxi/<br />
<br />
=== zet6223 ===<br />
<br />
Supported in '''mainline''' Linux 4.11 ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/touchscreen/zet6223.c. '''zet6223.c''']). No firmware (blob) required.<br />
<br />
== Hynitron ==<br />
<br />
=== cst2xx ===<br />
<br />
Mainline driver: https://gitlab.com/ariarolin/cst2xx-touchscreen-driver<br />
<br />
= See also =<br />
<br />
[[Category:Hardware]]</div>Asterion