Finepower F1 (finepower-f1)

== Contributors ==
* HenriDellal
* ollieparanoid
* drebrez
* asriel-danctnix
* and other guys from Matrix/IRC chat
== Maintainer(s) ==
* HenriDellal
== Users owning this device ==
== Current issues ==
* Only power button works. Other keys can be enabled in kernel config, but they won't work properly.
The phone uses a proprietary keypad driver called sci-keypad-ext which is an extended version of sci-keypad. In sci-keypad key presses are detected judging by row and column coordinates of the key in keypad matrix. Extended driver adds another variable called gpio-column. One of keypad columns (third) is divided on multiple GPIO columns those can be differentiated only by extended driver. With sci-keypad driver, keys of GPIO columns 2 and 3 repeat value from column 0. GPIO column 1 somehow has something common with power button GPIO, which causes the device to power off. In result: 3 keys (4 with power button) shutdown the device, another 6 keys don't function properly too, repeating the 3 keys from matrix column 2, gpio column 0.
* Screen doesn't turn off completely.
* SSH doesn't work, use telnet to connect to device
== Hardware ==
* LCD panel controller: Sintronix ST7796S (MIPI)
* Back camera: GalaxyCore GC2385 (mipiraw)
* Front camera: GalaxyCore GC030
* Wi-Fi, Bluetooth, GPS: sc2351
* Keyboard LED: sc2723
* Touch panel: FocalTech *
=== How to control brightness ===
# echo 255 > /sys/class/backlight/sprd_backlight/brightness
# echo 255 > /sys/class/leds/keyboard-backlight/brightness
== How to enter flash mode ==
Press and hold the Power key, then, immediately press and hold VolumeDown. Release both buttons when the logo appears. Using the volume buttons, navigate to the "Reboot to bootloader" option, pressing Power to select it. The phone will reboot in fastboot mode.
Another option is to connect the phone to a computer and run
$ adb reboot bootloader
or
Another option is to connect the phone to a computer and run
$ sudo fastboot reboot bootloader
== Installation ==
=== Flashing kernel ===
Fastboot on this phone doesn't support booting the kernel from an SD card, so it's required to flash the kernel to internal storage with $ pmbootstrap flasher flash_kernel
If you have an SD card that is rather fast, consider flashing rootfs onto it instead of the phone's internal storage, which is quite slow (15 Mb/s on read, 9 Mb/s on write).
=== Partitions layout ===
major minor #blocks name 
 
 253 0 409600 zram0 
 179 0 3817472 mmcblk0 
 179 1 5120 mmcblk0p1 
 179 2 1024 mmcblk0p2 
 179 3 15360 mmcblk0p3 
 179 4 2048 mmcblk0p4 
 179 5 1024 mmcblk0p5 
 179 6 1024 mmcblk0p6 
 179 7 1024 mmcblk0p7 
 179 8 1024 mmcblk0p8 
 179 9 1024 mmcblk0p9 
 179 10 1024 mmcblk0p10 
 179 11 1024 mmcblk0p11 
 179 12 1024 mmcblk0p12 
 179 13 1024 mmcblk0p13 
 179 14 1024 mmcblk0p14 
 179 15 1024 mmcblk0p15 
 179 16 17408 mmcblk0p16 
 179 17 1228800 mmcblk0p17 
 179 18 153600 mmcblk0p18 
 179 19 15360 mmcblk0p19 
 179 20 1024 mmcblk0p20 
 179 21 2048 mmcblk0p21 
 179 22 6144 mmcblk0p22 
 179 23 2357231 mmcblk0p23 
 179 96 512 mmcblk0rpmb 
 179 64 4096 mmcblk0boot1 
 179 32 4096 mmcblk0boot0
boot -> /dev/block/mmcblk0p16
cache -> /dev/block/mmcblk0p18
fbootlogo -> /dev/block/mmcblk0p15
logo -> /dev/block/mmcblk0p14
misc -> /dev/block/mmcblk0p20
miscdata -> /dev/block/mmcblk0p2
persist -> /dev/block/mmcblk0p21
prodnv -> /dev/block/mmcblk0p1
recovery -> /dev/block/mmcblk0p19
sysinfo -> /dev/block/mmcblk0p22
system -> /dev/block/mmcblk0p17
userdata -> /dev/block/mmcblk0p23
wcnfixnv1 -> /dev/block/mmcblk0p10
wcnfixnv2 -> /dev/block/mmcblk0p11
wcnmodem -> /dev/block/mmcblk0p9
wcnruntimenv1 -> /dev/block/mmcblk0p12
wcnruntimenv2 -> /dev/block/mmcblk0p13
wdsp -> /dev/block/mmcblk0p4
wfixnv1 -> /dev/block/mmcblk0p5
wfixnv2 -> /dev/block/mmcblk0p6
wmodem -> /dev/block/mmcblk0p3
wruntimenv1 -> /dev/block/mmcblk0p7
wruntimenv2 -> /dev/block/mmcblk0p8
== See also ==
* porting process
* initial merge request
* Generic kernel for Spreadtrum
* 
*