RK3588: Gameforce Ace bring up
This commit is contained in:
parent
0815fc609c
commit
8e06a27fb8
50 changed files with 15089 additions and 6 deletions
5
Makefile
5
Makefile
|
@ -41,6 +41,11 @@ RK3588:
|
|||
PROJECT=Rockchip DEVICE=RK3588 ARCH=arm ./scripts/build_distro
|
||||
PROJECT=Rockchip DEVICE=RK3588 ARCH=aarch64 ./scripts/build_distro
|
||||
|
||||
RK3588-ACE:
|
||||
unset DEVICE_ROOT
|
||||
PROJECT=Rockchip DEVICE=RK3588-ACE ARCH=arm ./scripts/build_distro
|
||||
PROJECT=Rockchip DEVICE=RK3588-ACE ARCH=aarch64 ./scripts/build_distro
|
||||
|
||||
S922X:
|
||||
unset DEVICE_ROOT
|
||||
PROJECT=Amlogic DEVICE=S922X ARCH=arm ./scripts/build_distro
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
# a BSP kernel and a rotated display when using DEVICE_ROOT.
|
||||
if [ -n "${DEVICE_ROOT}" ]
|
||||
then
|
||||
CLEAN_DEVICE_ROOT="busybox systemd initramfs linux u-boot libmali SDL2 SDL2-rotated retroarch mupen64plus-sa-input-sdl flycast-sa duckstation-sa drastic-sa fileman oga_controls portmaster glew-cmake"
|
||||
CLEAN_DEVICE_ROOT="busybox systemd initramfs linux u-boot libmali libmali_rk3588 SDL2 SDL2-rotated retroarch mupen64plus-sa-input-sdl flycast-sa duckstation-sa drastic-sa fileman oga_controls portmaster glew-cmake"
|
||||
fi
|
||||
|
||||
# additional drivers to install:
|
||||
|
|
|
@ -0,0 +1,122 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Supported Systems Emulators and Cores
|
||||
This document describes all available systems emulators and cores available for the device.
|
||||
|
||||
|Manufacturer|System|Release Date|Games Path|Supported Extensions|Emulator / Core|
|
||||
|----|----|----|----|----|----|
|
||||
| System|Media Player (mplayer)|System|`mplayer`|.mp4 .mkv .avi .mov .wmv .m3u .mpg .ytb .twi .sh .mp3 .aac .mka .dts .flac .ogg .m4a .ac3 .opus .wav .wv .eac33 .thd|**mplayer:** mplayer (default)<br>|
|
||||
| System|Moonlight Game Streaming (moonlight)|System|`moonlight`|.sh||
|
||||
| System|Music Player (music)|System|`playlists`|.m3u .sh|**gmu:** gmu (default)<br>|
|
||||
| System|Ports (ports)|System|`ports`|.sh|**portmaster:** portmaster (default)<br>|
|
||||
| System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|
||||
| System|Tools (tools)|System|`modules`|.sh||
|
||||
|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .cpr .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|
||||
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|
||||
|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame<br>|
|
||||
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|
||||
|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
|
||||
|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
|
||||
|Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)<br>|
|
||||
|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)<br>|
|
||||
|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)<br>**retroarch:** atari800<br>|
|
||||
|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)<br>|
|
||||
|Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)<br>|
|
||||
|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)<br>|
|
||||
|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .lyx .o .zip .7z|**retroarch:** handy (default)<br>**retroarch:** beetle_lynx<br>|
|
||||
|Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)<br>**hatarisa:** hatarisa<br>|
|
||||
|Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)<br>|
|
||||
|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)<br>|
|
||||
|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)<br>|
|
||||
|belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)<br>|
|
||||
|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** fbalpha2012<br>**AdvanceMame:** AdvanceMame<br>|
|
||||
|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** fbalpha2012<br>**AdvanceMame:** AdvanceMame<br>|
|
||||
|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** fbalpha2012<br>**AdvanceMame:** AdvanceMame<br>|
|
||||
|Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)<br>**retroarch:** gearcoleco<br>**retroarch:** smsplus<br>|
|
||||
|Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)<br>**retroarch:** puae<br>**amiberry:** amiberry<br>**retroarch:** uae4arm<br>|
|
||||
|Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)<br>**retroarch:** puae<br>**retroarch:** uae4arm<br>|
|
||||
|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)<br>**vicesa:** x128<br>|
|
||||
|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)<br>**vicesa:** xplus4<br>|
|
||||
|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)<br>**vicesa:** x64sc<br>|
|
||||
|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)<br>|
|
||||
|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)<br>**vicesa:** xvic<br>|
|
||||
|EPOCH/YENO|Super Cassette Vision (scv)|1984|`scv`|.cart .bin .rom .0 .zip|**retroarch:** emuscv (default)<br>|
|
||||
|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)<br>|
|
||||
|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)<br>|
|
||||
|id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech<br>|
|
||||
|Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)<br>|
|
||||
|Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)<br>**retroarch:** fake08<br>|
|
||||
|Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)<br>|
|
||||
|Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)<br>|
|
||||
|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure<br>**retroarch:** dosbox_svn<br>|
|
||||
|Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)<br>**retroarch:** fmsx<br>|
|
||||
|Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)<br>**retroarch:** fmsx<br>|
|
||||
|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|
||||
|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|
||||
|NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .m3u|**retroarch:** quasi88 (default)<br>|
|
||||
|NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88 .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)<br>|
|
||||
|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)<br>|
|
||||
|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx<br>**retroarch:** beetle_pce<br>|
|
||||
|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|
||||
|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|
||||
|Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)<br>|
|
||||
|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw<br>**retroarch:** mame<br>|
|
||||
|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>|
|
||||
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>|
|
||||
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)<br>**retroarch:** melonds<br>**retroarch:** desmume<br>|
|
||||
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|
||||
|Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>|
|
||||
|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes<br>**retroarch:** bsnes_hd_beta<br>|
|
||||
|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|
||||
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes<br>**retroarch:** bsnes_hd_beta<br>|
|
||||
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes<br>**retroarch:** bsnes_hd_beta<br>|
|
||||
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)<br>|
|
||||
|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)<br>|
|
||||
|Philips|CD-i (cdi)|1991|`cdi`|.chd .cue .iso|**retroarch:** same_cdi (default)<br>|
|
||||
|Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)<br>|
|
||||
|Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021<br>**retroarch:** flycast<br>**flycast:** flycast-sa<br>|
|
||||
|Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u .cue|**retroarch:** flycast2021<br>**retroarch:** flycast<br>**flycast:** flycast-sa<br>|
|
||||
|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|
||||
|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|
||||
|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|
||||
|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|
||||
|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|
||||
|Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|
||||
|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|
||||
|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|
||||
|Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021<br>**retroarch:** flycast<br>**flycast:** flycast-sa<br>|
|
||||
|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)<br>**retroarch:** yabasanshiro<br>**retroarch:** beetle_saturn<br>**mednafen:** ss<br>|
|
||||
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|
||||
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|
||||
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|
||||
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>**mednafen:** ss<br>|
|
||||
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88 .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|
||||
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88 .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|
||||
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|
|
||||
|Sinclair|ZX81 (zx81)|1981|`zx81`|.tzx .p .zip .7z|**retroarch:** 81 (default)<br>|
|
||||
|Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)<br>|
|
||||
|SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>|
|
||||
|SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)<br>**retroarch:** fbneo<br>|
|
||||
|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|
||||
|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|
||||
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** duckstation<br>**retroarch:** swanstation<br>|
|
||||
|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)<br>|
|
||||
|Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)<br>**retroarch:** ppsspp<br>|
|
||||
|Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)<br>|
|
||||
|Various|CHIP-8 / S-CHIP / XO-CHIP (chip-8)|1978|`chip-8`|.ch8 .sc8 .xo8|**retroarch:** jaxe (default)<br>|
|
||||
|Various|EasyRPG (easyrpg)|2003|`easyrpg`|.zip .easyrpg .ldb|**retroarch:** easyrpg (default)<br>|
|
||||
|Various|OpenBOR (openbor)|2003|`openbor`|.pak|**OpenBOR:** OpenBOR (default)<br>|
|
||||
|Various|ScummVM (scummvm)|2001|`games`|.sh .svm .scummvm|**scummvmsa:** scummvm (default)<br>**retroarch:** scummvm<br>|
|
||||
|Various|Vircon32 (vircon32)|2021|`vircon32`|.v32|**retroarch:** vircon32 (default)<br>|
|
||||
|Watara|Supervision (supervision)|1992|`supervision`|.sv .zip .7z|**retroarch:** potator (default)<br>|
|
||||
|Welback Holdings|Mega Duck (megaduck)|1993|`megaduck`|.bin .zip .7z|**retroarch:** sameduck (default)<br>|
|
|
@ -8,6 +8,15 @@ PKG_DEPENDS_TARGET="toolchain"
|
|||
PKG_TOOLCHAIN="make"
|
||||
GET_HANDLER_SUPPORT="git"
|
||||
|
||||
case ${DEVOCE} in
|
||||
RK3588-ACE)
|
||||
PKG_PATCH_DIRS+=" ${DEVICE}"
|
||||
;;
|
||||
*)
|
||||
PKG_PATCH_DIRS+=" common"
|
||||
;;
|
||||
esac
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp rinputer2 ${INSTALL}/usr/bin/jelos_gamepad
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
diff -rupN rinputer2.orig/main.c rinputer2/main.c
|
||||
--- rinputer2.orig/main.c 2024-02-22 18:08:36.307753030 +0000
|
||||
+++ rinputer2/main.c 2024-02-23 20:00:20.626534557 +0000
|
||||
@@ -144,6 +144,9 @@ void *worker(void *data)
|
||||
if((codes[ABS_X / 8]) & 1)
|
||||
useful = 1;
|
||||
|
||||
+ if(codes[ABS_Z / 8])
|
||||
+ useful = 1;
|
||||
+
|
||||
struct input_absinfo tmp;
|
||||
for(int tmp_code = ABS_X; tmp_code < ABS_HAT3Y; tmp_code++)
|
||||
{
|
||||
@@ -240,7 +243,7 @@ int rescan_devices(struct rinputer_devic
|
||||
continue;
|
||||
|
||||
// let's not make a loop
|
||||
- if(strncmp("Rinputer", name, 8) == 0)
|
||||
+ if(strncmp("gameforce_ace_gamepad", name, 8) == 0)
|
||||
continue;
|
||||
// ignore steam-created controllers
|
||||
// they have this name, with a digit at the end
|
||||
@@ -316,10 +319,10 @@ int main(void)
|
||||
|
||||
ioctl(outfd, UI_SET_EVBIT, EV_KEY);
|
||||
|
||||
- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_UP); // dpad up
|
||||
- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_DOWN); // dpad down
|
||||
- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_LEFT); // dpad left
|
||||
- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_RIGHT); // dpad right
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_UP); // dpad up
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_DOWN); // dpad down
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_LEFT); // dpad left
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_RIGHT); // dpad right
|
||||
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_NORTH); // x
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_SOUTH); // b
|
||||
@@ -329,8 +332,11 @@ int main(void)
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_TL); // L1
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_TR); // R1
|
||||
|
||||
- ioctl(outfd, UI_SET_KEYBIT, BTN_TR2); // L2
|
||||
- ioctl(outfd, UI_SET_KEYBIT, BTN_TL2); // R2
|
||||
+ //ioctl(outfd, UI_SET_KEYBIT, BTN_TR2); // L2
|
||||
+ //ioctl(outfd, UI_SET_KEYBIT, BTN_TL2); // R2
|
||||
+
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_THUMBL); // L3
|
||||
+ ioctl(outfd, UI_SET_KEYBIT, BTN_THUMBR); // R3
|
||||
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_SELECT);
|
||||
ioctl(outfd, UI_SET_KEYBIT, BTN_START);
|
||||
@@ -350,15 +356,15 @@ int main(void)
|
||||
setup_abs(outfd, ABS_RZ);
|
||||
|
||||
// dpad
|
||||
- setup_abs(outfd, ABS_HAT0X);
|
||||
- setup_abs(outfd, ABS_HAT0Y);
|
||||
+ //setup_abs(outfd, ABS_HAT0X);
|
||||
+ //setup_abs(outfd, ABS_HAT0Y);
|
||||
|
||||
// maybe we should pretend to be xbox gamepad?
|
||||
memset(&usetup, 0, sizeof(usetup));
|
||||
usetup.id.bustype = BUS_USB;
|
||||
usetup.id.vendor = 0x1234;
|
||||
- usetup.id.product = 0x5678;
|
||||
- strcpy(usetup.name, "Rinputer");
|
||||
+ usetup.id.product = 0x8765;
|
||||
+ strcpy(usetup.name, "gameforce_ace_gamepad");
|
||||
|
||||
ioctl(outfd, UI_DEV_SETUP, &usetup);
|
||||
ioctl(outfd, UI_DEV_CREATE);
|
|
@ -0,0 +1,43 @@
|
|||
diff -rupN flycast.orig/Makefile flycast/Makefile
|
||||
--- flycast.orig/Makefile 2022-06-18 13:29:52.675787687 -0400
|
||||
+++ flycast/Makefile 2022-06-18 13:53:23.564624927 -0400
|
||||
@@ -403,26 +403,30 @@ else ifeq ($(platform), arm64_cortex_a53
|
||||
|
||||
#######################################
|
||||
|
||||
-# ARM64 SM1 Odroid C4
|
||||
-else ifeq ($(platform), odroidc4)
|
||||
+# ARM64 RK3588
|
||||
+else ifeq ($(platform), RK3588-ACE)
|
||||
EXT ?= so
|
||||
TARGET := $(TARGET_NAME)_libretro.$(EXT)
|
||||
SHARED += -shared -Wl,--version-script=link.T
|
||||
- LDFLAGS += -Wl,--no-undefined
|
||||
fpic = -fPIC
|
||||
LIBS += -lrt
|
||||
ARM_FLOAT_ABI_HARD = 0
|
||||
FORCE_GLES = 1
|
||||
SINGLE_PREC_FLAGS = 1
|
||||
- CPUFLAGS += -DHOST_CPU=0x20000006 -DTARGET_LINUX_ARMv8 -frename-registers
|
||||
- CFLAGS += -mcpu=cortex-a55 -mtune=cortex-a55 $(CPUFLAGS)
|
||||
- CXXFLAGS += -mcpu=cortex-a55 -mtune=cortex-a55 $(CPUFLAGS)
|
||||
- ASFLAGS += $(CFLAGS) -c -frename-registers -fno-strict-aliasing -ffast-math -ftree-vectorize
|
||||
+ HAVE_LTCG = 0
|
||||
+ HAVE_OPENMP = 0
|
||||
+ CFLAGS += -Ofast \
|
||||
+ -fuse-linker-plugin \
|
||||
+ -fno-stack-protector -fno-ident -fomit-frame-pointer \
|
||||
+ -fmerge-all-constants -ffast-math -funroll-all-loops \
|
||||
+ -mcpu=cortex-a76 -mtune=cortex-a76
|
||||
+ CXXFLAGS += $(CFLAGS)
|
||||
+ LDFLAGS += -mcpu=cortex-a76 -mtune=cortex-a76 -Ofast -flto -fuse-linker-plugin
|
||||
PLATFORM_EXT := unix
|
||||
+ CORE_DEFINES += -DLOW_END -DLOW_RES
|
||||
WITH_DYNAREC=arm64
|
||||
+ PLATFORM_EXT := unix
|
||||
HAVE_GENERIC_JIT = 0
|
||||
- HAVE_VULKAN = 0
|
||||
- HAVE_LTCG = 0
|
||||
|
||||
#######################################
|
||||
|
|
@ -0,0 +1,446 @@
|
|||
[UI]
|
||||
SettingsVersion = 1
|
||||
StartFullscreen = true
|
||||
RenderToSeparateWindow = true
|
||||
|
||||
[EmuCore]
|
||||
CdvdVerboseReads = false
|
||||
CdvdDumpBlocks = false
|
||||
CdvdShareWrite = false
|
||||
EnablePatches = true
|
||||
EnableCheats = false
|
||||
EnablePINE = false
|
||||
EnableWideScreenPatches = false
|
||||
EnableNoInterlacingPatches = false
|
||||
EnableRecordingTools = true
|
||||
EnableGameFixes = true
|
||||
SaveStateOnShutdown = false
|
||||
ConsoleToStdio = false
|
||||
HostFs = false
|
||||
PatchBios = false
|
||||
PatchRegion =
|
||||
BackupSavestate = true
|
||||
SavestateZstdCompression = true
|
||||
McdEnableEjection = true
|
||||
McdFolderAutoManage = true
|
||||
GzipIsoIndexTemplate = $(f).pindex.tmp
|
||||
BlockDumpSaveDirectory =
|
||||
|
||||
|
||||
[EmuCore/Speedhacks]
|
||||
EECycleRate = 0
|
||||
EECycleSkip = 0
|
||||
fastCDVD = false
|
||||
IntcStat = true
|
||||
WaitLoop = true
|
||||
vuFlagHack = true
|
||||
vuThread = true
|
||||
vu1Instant = true
|
||||
|
||||
|
||||
[EmuCore/CPU]
|
||||
FPU.DenormalsAreZero = true
|
||||
FPU.FlushToZero = true
|
||||
FPU.Roundmode = 3
|
||||
AffinityControlMode = 0
|
||||
VU.DenormalsAreZero = true
|
||||
VU.FlushToZero = true
|
||||
VU.Roundmode = 3
|
||||
|
||||
|
||||
[EmuCore/CPU/Recompiler]
|
||||
EnableEE = true
|
||||
EnableIOP = true
|
||||
EnableEECache = false
|
||||
EnableVU0 = true
|
||||
EnableVU1 = true
|
||||
EnableFastmem = true
|
||||
vuOverflow = true
|
||||
vuExtraOverflow = false
|
||||
vuSignOverflow = false
|
||||
vuUnderflow = false
|
||||
fpuOverflow = true
|
||||
fpuExtraOverflow = false
|
||||
fpuFullMode = false
|
||||
fpuCorrectAddSub = true
|
||||
StackFrameChecks = false
|
||||
PreBlockCheckEE = false
|
||||
PreBlockCheckIOP = false
|
||||
|
||||
|
||||
[EmuCore/GS]
|
||||
VsyncQueueSize = 2
|
||||
FrameLimitEnable = true
|
||||
VsyncEnable = 0
|
||||
FramerateNTSC = 59.940000
|
||||
FrameratePAL = 50.000000
|
||||
SyncToHostRefreshRate = false
|
||||
AspectRatio = Auto 4:3/3:2
|
||||
FMVAspectRatioSwitch = Off
|
||||
Zoom = 100.000000
|
||||
StretchY = 100.000000
|
||||
CropLeft = 0
|
||||
CropTop = 0
|
||||
CropRight = 0
|
||||
CropBottom = 0
|
||||
pcrtc_antiblur = true
|
||||
disable_interlace_offset = false
|
||||
pcrtc_offsets = false
|
||||
pcrtc_overscan = false
|
||||
IntegerScaling = false
|
||||
linear_present = true
|
||||
UseDebugDevice = false
|
||||
UseBlitSwapChain = false
|
||||
disable_shader_cache = false
|
||||
DisableDualSourceBlend = false
|
||||
DisableFramebufferFetch = false
|
||||
ThreadedPresentation = false
|
||||
SkipDuplicateFrames = true
|
||||
OsdShowMessages = true
|
||||
OsdShowSpeed = false
|
||||
OsdShowFPS = false
|
||||
OsdShowCPU = false
|
||||
OsdShowGPU = false
|
||||
OsdShowResolution = false
|
||||
OsdShowGSStats = false
|
||||
OsdShowIndicators = true
|
||||
OsdShowVersionInfo = false
|
||||
accurate_date = true
|
||||
paltex = false
|
||||
conservative_framebuffer = true
|
||||
autoflush_sw = true
|
||||
preload_frame_with_gs_data = false
|
||||
wrap_gs_mem = false
|
||||
mipmap = true
|
||||
aa1 = true
|
||||
UserHacks = false
|
||||
UserHacks_align_sprite_X = false
|
||||
UserHacks_AutoFlush = false
|
||||
UserHacks_CPU_FB_Conversion = false
|
||||
UserHacks_DisableDepthSupport = false
|
||||
UserHacks_DisablePartialInvalidation = false
|
||||
UserHacks_Disable_Safe_Features = false
|
||||
UserHacks_merge_pp_sprite = false
|
||||
UserHacks_WildHack = false
|
||||
UserHacks_TextureInsideRt = false
|
||||
fxaa = false
|
||||
ShadeBoost = false
|
||||
shaderfx = false
|
||||
dump = false
|
||||
save = false
|
||||
savef = false
|
||||
savet = false
|
||||
savez = false
|
||||
DumpReplaceableTextures = false
|
||||
DumpReplaceableMipmaps = false
|
||||
DumpTexturesWithFMVActive = false
|
||||
DumpDirectTextures = true
|
||||
DumpPaletteTextures = true
|
||||
LoadTextureReplacements = false
|
||||
LoadTextureReplacementsAsync = true
|
||||
PrecacheTextureReplacements = false
|
||||
deinterlace = 7
|
||||
OsdScale = 100
|
||||
Renderer = -1
|
||||
upscale_multiplier = 1
|
||||
mipmap_hw = -1
|
||||
accurate_blending_unit = 1
|
||||
crc_hack_level = -1
|
||||
filter = 2
|
||||
texture_preloading = 2
|
||||
GSDumpCompression = 0
|
||||
HWDownloadMode = 0
|
||||
dithering_ps2 = 2
|
||||
MaxAnisotropy = 0
|
||||
extrathreads = 2
|
||||
extrathreads_height = 4
|
||||
TVShader = 0
|
||||
UserHacks_SkipDraw_Start = 0
|
||||
UserHacks_SkipDraw_End = 0
|
||||
UserHacks_Half_Bottom_Override = -1
|
||||
UserHacks_HalfPixelOffset = 0
|
||||
UserHacks_round_sprite_offset = 0
|
||||
UserHacks_TCOffsetX = 0
|
||||
UserHacks_TCOffsetY = 0
|
||||
UserHacks_CPUSpriteRenderBW = 0
|
||||
UserHacks_TriFilter = -1
|
||||
OverrideTextureBarriers = -1
|
||||
OverrideGeometryShaders = -1
|
||||
ShadeBoost_Brightness = 50
|
||||
ShadeBoost_Contrast = 50
|
||||
ShadeBoost_Saturation = 50
|
||||
saven = 0
|
||||
savel = 5000
|
||||
Adapter =
|
||||
shaderfx_conf = shaders/GS_FX_Settings.ini
|
||||
shaderfx_glsl = shaders/GS.fx
|
||||
|
||||
|
||||
[SPU2/Mixing]
|
||||
Interpolation = 5
|
||||
FinalVolume = 100
|
||||
VolumeAdjustC = 0.000000
|
||||
VolumeAdjustFL = 0.000000
|
||||
VolumeAdjustFR = 0.000000
|
||||
VolumeAdjustBL = 0.000000
|
||||
VolumeAdjustBR = 0.000000
|
||||
VolumeAdjustSL = 0.000000
|
||||
VolumeAdjustSR = 0.000000
|
||||
VolumeAdjustLFE = 0.000000
|
||||
|
||||
|
||||
[SPU2/Output]
|
||||
OutputModule = cubeb
|
||||
Latency = 100
|
||||
SynchMode = 0
|
||||
SpeakerConfiguration = 0
|
||||
|
||||
|
||||
[DEV9/Eth]
|
||||
EthEnable = false
|
||||
EthApi = Unset
|
||||
EthDevice =
|
||||
EthLogDNS = false
|
||||
InterceptDHCP = false
|
||||
PS2IP = 0.0.0.0
|
||||
Mask = 0.0.0.0
|
||||
Gateway = 0.0.0.0
|
||||
DNS1 = 0.0.0.0
|
||||
DNS2 = 0.0.0.0
|
||||
AutoMask = true
|
||||
AutoGateway = true
|
||||
ModeDNS1 = Auto
|
||||
ModeDNS2 = Auto
|
||||
|
||||
|
||||
[DEV9/Eth/Hosts]
|
||||
Count = 0
|
||||
|
||||
|
||||
[DEV9/Hdd]
|
||||
HddEnable = false
|
||||
HddFile = DEV9hdd.raw
|
||||
HddSizeSectors = 83886080
|
||||
|
||||
|
||||
[EmuCore/Gamefixes]
|
||||
VuAddSubHack = false
|
||||
FpuMulHack = false
|
||||
FpuNegDivHack = false
|
||||
XgKickHack = false
|
||||
EETimingHack = false
|
||||
SoftwareRendererFMVHack = false
|
||||
SkipMPEGHack = false
|
||||
OPHFlagHack = false
|
||||
DMABusyHack = false
|
||||
VIFFIFOHack = false
|
||||
VIF1StallHack = false
|
||||
GIFFIFOHack = false
|
||||
GoemonTlbHack = false
|
||||
IbitHack = false
|
||||
VUSyncHack = false
|
||||
VUOverflowHack = false
|
||||
BlitInternalFPSHack = false
|
||||
|
||||
|
||||
[EmuCore/Profiler]
|
||||
Enabled = false
|
||||
RecBlocks_EE = true
|
||||
RecBlocks_IOP = true
|
||||
RecBlocks_VU0 = true
|
||||
RecBlocks_VU1 = true
|
||||
|
||||
|
||||
[EmuCore/Debugger]
|
||||
ShowDebuggerOnStart = false
|
||||
AlignMemoryWindowStart = true
|
||||
FontWidth = 8
|
||||
FontHeight = 12
|
||||
WindowWidth = 0
|
||||
WindowHeight = 0
|
||||
MemoryViewBytesPerRow = 16
|
||||
|
||||
|
||||
[EmuCore/TraceLog]
|
||||
Enabled = false
|
||||
EE.bitset = 0
|
||||
IOP.bitset = 0
|
||||
|
||||
|
||||
[Filenames]
|
||||
BIOS =
|
||||
|
||||
|
||||
[Framerate]
|
||||
NominalScalar = 1.000000
|
||||
TurboScalar = 2.000000
|
||||
SlomoScalar = 0.500000
|
||||
|
||||
|
||||
[MemoryCards]
|
||||
Slot1_Enable = true
|
||||
Slot1_Filename = Mcd001.ps2
|
||||
Slot2_Enable = true
|
||||
Slot2_Filename = Mcd002.ps2
|
||||
Multitap1_Slot2_Enable = false
|
||||
Multitap1_Slot2_Filename = Mcd-Multitap1-Slot02.ps2
|
||||
Multitap1_Slot3_Enable = false
|
||||
Multitap1_Slot3_Filename = Mcd-Multitap1-Slot03.ps2
|
||||
Multitap1_Slot4_Enable = false
|
||||
Multitap1_Slot4_Filename = Mcd-Multitap1-Slot04.ps2
|
||||
Multitap2_Slot2_Enable = false
|
||||
Multitap2_Slot2_Filename = Mcd-Multitap2-Slot02.ps2
|
||||
Multitap2_Slot3_Enable = false
|
||||
Multitap2_Slot3_Filename = Mcd-Multitap2-Slot03.ps2
|
||||
Multitap2_Slot4_Enable = false
|
||||
Multitap2_Slot4_Filename = Mcd-Multitap2-Slot04.ps2
|
||||
|
||||
|
||||
[Folders]
|
||||
Bios = /storage/roms/bios/aethersx2/bios
|
||||
Snapshots = snaps
|
||||
Savestates = /storage/roms/savestates/ps2
|
||||
MemoryCards = /storage/roms/ps2
|
||||
Logs = logs
|
||||
Cheats = cheats
|
||||
CheatsWS = cheats_ws
|
||||
CheatsNI = cheats_ni
|
||||
Cache = cache
|
||||
Textures = textures
|
||||
InputProfiles = inputprofiles
|
||||
|
||||
|
||||
[InputSources]
|
||||
SDL = true
|
||||
SDLControllerEnhancedMode = false
|
||||
XInput = false
|
||||
RawInput = false
|
||||
|
||||
|
||||
[Hotkeys]
|
||||
ToggleFullscreen = Keyboard/Alt & Keyboard/Return
|
||||
CycleAspectRatio = Keyboard/F6
|
||||
CycleInterlaceMode = Keyboard/F5
|
||||
CycleMipmapMode = Keyboard/Insert
|
||||
GSDumpMultiFrame = Keyboard/Control & Keyboard/Shift & Keyboard/F8
|
||||
Screenshot = Keyboard/F8
|
||||
GSDumpSingleFrame = Keyboard/Shift & Keyboard/F8
|
||||
ToggleSoftwareRendering = Keyboard/F9
|
||||
ZoomIn = Keyboard/Control & Keyboard/Plus
|
||||
ZoomOut = Keyboard/Control & Keyboard/Minus
|
||||
InputRecToggleMode = Keyboard/Shift & Keyboard/R
|
||||
LoadStateFromSlot = Keyboard/F3
|
||||
SaveStateToSlot = Keyboard/F1
|
||||
NextSaveStateSlot = Keyboard/F2
|
||||
PreviousSaveStateSlot = Keyboard/Shift & Keyboard/F2
|
||||
OpenPauseMenu = Keyboard/Escape
|
||||
ToggleFrameLimit = Keyboard/F4
|
||||
TogglePause = Keyboard/Space
|
||||
ToggleSlowMotion = Keyboard/Shift & Keyboard/Backtab
|
||||
ToggleTurbo = Keyboard/Tab
|
||||
HoldTurbo = Keyboard/Period
|
||||
|
||||
|
||||
[Pad]
|
||||
MultitapPort1 = false
|
||||
MultitapPort2 = false
|
||||
PointerXScale = 8.000000
|
||||
PointerYScale = 8.000000
|
||||
PointerXInvert = false
|
||||
PointerYInvert = false
|
||||
|
||||
|
||||
[Pad1]
|
||||
Type = DualShock2
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
Up = SDL-0/DPadUp
|
||||
Right = SDL-0/DPadRight
|
||||
Down = SDL-0/DPadDown
|
||||
Left = SDL-0/DPadLeft
|
||||
Triangle = SDL-0/Y
|
||||
Circle = SDL-0/B
|
||||
Cross = SDL-0/A
|
||||
Square = SDL-0/X
|
||||
Select = SDL-0/Back
|
||||
Start = SDL-0/Start
|
||||
L1 = SDL-0/LeftShoulder
|
||||
L2 = SDL-0/+LeftTrigger
|
||||
R1 = SDL-0/RightShoulder
|
||||
R2 = SDL-0/+RightTrigger
|
||||
L3 = SDL-0/LeftStick
|
||||
R3 = SDL-0/RightStick
|
||||
LUp = SDL-0/-LeftY
|
||||
LRight = SDL-0/+LeftX
|
||||
LDown = SDL-0/+LeftY
|
||||
LLeft = SDL-0/-LeftX
|
||||
RUp = SDL-0/-RightY
|
||||
RRight = SDL-0/+RightX
|
||||
RDown = SDL-0/+RightY
|
||||
RLeft = SDL-0/-RightX
|
||||
|
||||
|
||||
[Pad2]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad3]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad4]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad5]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad6]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad7]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
||||
|
||||
|
||||
[Pad8]
|
||||
Type = None
|
||||
Deadzone = 0.000000
|
||||
AxisScale = 1.330000
|
||||
LargeMotorScale = 1.000000
|
||||
SmallMotorScale = 1.000000
|
||||
PressureModifier = 0.500000
|
|
@ -0,0 +1,148 @@
|
|||
[General]
|
||||
LastFilename =
|
||||
ShowLag = False
|
||||
ShowFrameCount = False
|
||||
ISOPaths = 1
|
||||
RecursiveISOPaths = False
|
||||
NANDRootPath =
|
||||
WirelessMac =
|
||||
[Interface]
|
||||
ConfirmStop = True
|
||||
UsePanicHandlers = True
|
||||
OnScreenDisplayMessages = True
|
||||
HideCursor = False
|
||||
AutoHideCursor = False
|
||||
MainWindowPosX = 403
|
||||
MainWindowPosY = 148
|
||||
MainWindowWidth = 800
|
||||
MainWindowHeight = 600
|
||||
Language = 0
|
||||
ShowToolbar = True
|
||||
ShowStatusbar = True
|
||||
ShowLogWindow = False
|
||||
ShowLogConfigWindow = False
|
||||
ExtendedFPSInfo = False
|
||||
ThemeName40 = Clean Blue
|
||||
PauseOnFocusLost = False
|
||||
[Display]
|
||||
FullscreenResolution = Auto
|
||||
Fullscreen = True
|
||||
RenderToMain = False
|
||||
RenderWindowXPos = -1
|
||||
RenderWindowYPos = -1
|
||||
RenderWindowWidth = 640
|
||||
RenderWindowHeight = 480
|
||||
RenderWindowAutoSize = False
|
||||
KeepWindowOnTop = False
|
||||
ProgressiveScan = False
|
||||
PAL60 = True
|
||||
DisableScreenSaver = True
|
||||
ForceNTSCJ = False
|
||||
[GameList]
|
||||
ListDrives = False
|
||||
ListWad = True
|
||||
ListElfDol = True
|
||||
ListWii = True
|
||||
ListGC = True
|
||||
ListJap = True
|
||||
ListPal = True
|
||||
ListUsa = True
|
||||
ListAustralia = True
|
||||
ListFrance = True
|
||||
ListGermany = True
|
||||
ListItaly = True
|
||||
ListKorea = True
|
||||
ListNetherlands = True
|
||||
ListRussia = True
|
||||
ListSpain = True
|
||||
ListTaiwan = True
|
||||
ListWorld = True
|
||||
ListUnknown = True
|
||||
ListSort = 3
|
||||
ListSortSecondary = 0
|
||||
ColorCompressed = True
|
||||
ColumnPlatform = True
|
||||
ColumnBanner = True
|
||||
ColumnNotes = True
|
||||
ColumnFileName = False
|
||||
ColumnID = False
|
||||
ColumnRegion = True
|
||||
ColumnSize = True
|
||||
ColumnState = True
|
||||
[Core]
|
||||
HLE_BS2 = False
|
||||
TimingVariance = 40
|
||||
CPUCore = 4
|
||||
Fastmem = True
|
||||
CPUThread = True
|
||||
DSPHLE = True
|
||||
SkipIdle = True
|
||||
SyncOnSkipIdle = True
|
||||
SyncGPU = False
|
||||
SyncGpuMaxDistance = 200000
|
||||
SyncGpuMinDistance = -200000
|
||||
SyncGpuOverclock = 1.00000000
|
||||
FPRF = False
|
||||
AccurateNaNs = False
|
||||
DefaultISO =
|
||||
DVDRoot =
|
||||
Apploader =
|
||||
EnableCheats = True
|
||||
SelectedLanguage = 0
|
||||
OverrideGCLang = False
|
||||
DPL2Decoder = False
|
||||
Latency = 2
|
||||
MemcardAPath =
|
||||
MemcardBPath =
|
||||
AgpCartAPath =
|
||||
AgpCartBPath =
|
||||
SlotA = 1
|
||||
SlotB = 255
|
||||
SerialPort1 = 255
|
||||
BBA_MAC =
|
||||
SIDevice0 = 6
|
||||
AdapterRumble0 = True
|
||||
SimulateKonga0 = False
|
||||
SIDevice1 = 6
|
||||
AdapterRumble1 = True
|
||||
SimulateKonga1 = False
|
||||
SIDevice2 = 0
|
||||
AdapterRumble2 = True
|
||||
SimulateKonga2 = False
|
||||
SIDevice3 = 0
|
||||
AdapterRumble3 = True
|
||||
SimulateKonga3 = False
|
||||
WiiSDCard = False
|
||||
WiiKeyboard = False
|
||||
WiimoteContinuousScanning = False
|
||||
WiimoteEnableSpeaker = False
|
||||
RunCompareServer = False
|
||||
RunCompareClient = False
|
||||
EmulationSpeed = 1.00000000
|
||||
FrameSkip = 0x00000003
|
||||
Overclock = 4.00000000
|
||||
OverclockEnable = False
|
||||
GFXBackend = OGL
|
||||
GPUDeterminismMode = auto
|
||||
PerfMapDir =
|
||||
[Movie]
|
||||
PauseMovie = False
|
||||
Author =
|
||||
DumpFrames = False
|
||||
DumpFramesSilent = False
|
||||
ShowInputDisplay = False
|
||||
[DSP]
|
||||
EnableJIT = True
|
||||
DumpAudio = False
|
||||
DumpUCode = False
|
||||
Backend = Pulse
|
||||
Volume = 100
|
||||
CaptureLog = False
|
||||
[Input]
|
||||
BackgroundInput = False
|
||||
[FifoPlayer]
|
||||
LoopReplay = True
|
||||
[Analytics]
|
||||
ID = 5082f0c30a7e422b1220107f69d6c108
|
||||
Enabled = False
|
||||
PermissionAsked = True
|
|
@ -0,0 +1,29 @@
|
|||
[GCPad1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Buttons/A = Button 0
|
||||
Buttons/B = Button 2
|
||||
Buttons/Start = Button 6
|
||||
Buttons/X = Button 1
|
||||
Buttons/Y = Button 3
|
||||
Buttons/Z = Button 5
|
||||
Buttons/Hotkey = Button 7
|
||||
C-Stick/Dead Zone = 25.000000000000000
|
||||
C-Stick/Down = Axis 4+
|
||||
C-Stick/Left = Axis 3-
|
||||
C-Stick/Modifier = Control_L
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Right = Axis 3+
|
||||
C-Stick/Up = Axis 4-
|
||||
D-Pad/Down = Axis 7+
|
||||
D-Pad/Left = Axis 6-
|
||||
D-Pad/Right = Axis 6+
|
||||
D-Pad/Up = Axis 7-
|
||||
Main Stick/Dead Zone = 25.000000000000000
|
||||
Main Stick/Down = Axis 1+
|
||||
Main Stick/Left = Axis 0-
|
||||
Main Stick/Modifier = Shift_L
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
Main Stick/Right = Axis 0+
|
||||
Main Stick/Up = Axis 1-
|
||||
Triggers/L = Axis 2+
|
||||
Triggers/R = Axis 5+
|
|
@ -0,0 +1,29 @@
|
|||
[GCPad1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Buttons/A = Button 1
|
||||
Buttons/B = Button 0
|
||||
Buttons/Start = Button 6
|
||||
Buttons/X = Button 3
|
||||
Buttons/Y = Button 2
|
||||
Buttons/Z = Button 5
|
||||
Buttons/Hotkey = Button 7
|
||||
C-Stick/Dead Zone = 25.000000000000000
|
||||
C-Stick/Down = Axis 4+
|
||||
C-Stick/Left = Axis 3-
|
||||
C-Stick/Modifier = Control_L
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Right = Axis 3+
|
||||
C-Stick/Up = Axis 4-
|
||||
D-Pad/Down = Axis 7+
|
||||
D-Pad/Left = Axis 6-
|
||||
D-Pad/Right = Axis 6+
|
||||
D-Pad/Up = Axis 7-
|
||||
Main Stick/Dead Zone = 25.000000000000000
|
||||
Main Stick/Down = Axis 1+
|
||||
Main Stick/Left = Axis 0-
|
||||
Main Stick/Modifier = Shift_L
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
Main Stick/Right = Axis 0+
|
||||
Main Stick/Up = Axis 1-
|
||||
Triggers/L = Axis 2+
|
||||
Triggers/R = Axis 5+
|
|
@ -0,0 +1,62 @@
|
|||
[Hardware]
|
||||
VSync = False
|
||||
Adapter = 0
|
||||
[Settings]
|
||||
PreferGLES = True
|
||||
AspectRatio = 0
|
||||
InternalResolution = 2
|
||||
Crop = False
|
||||
wideScreenHack = False
|
||||
UseXFB = False
|
||||
UseRealXFB = False
|
||||
SafeTextureCacheColorSamples = 128
|
||||
ShowFPS = False
|
||||
LogRenderTimeToFile = False
|
||||
OverlayStats = False
|
||||
OverlayProjStats = False
|
||||
DumpTextures = False
|
||||
HiresTextures = False
|
||||
ConvertHiresTextures = False
|
||||
CacheHiresTextures = False
|
||||
DumpEFBTarget = False
|
||||
FreeLook = False
|
||||
UseFFV1 = False
|
||||
EnablePixelLighting = False
|
||||
FastDepthCalc = True
|
||||
MSAA = 1
|
||||
SSAA = False
|
||||
EFBScale = 2
|
||||
TexFmtOverlayEnable = False
|
||||
TexFmtOverlayCenter = False
|
||||
Wireframe = False
|
||||
DisableFog = False
|
||||
EnableShaderDebugging = False
|
||||
BorderlessFullscreen = False
|
||||
SWZComploc = True
|
||||
SWZFreeze = True
|
||||
SWDumpObjects = False
|
||||
SWDumpTevStages = False
|
||||
SWDumpTevTexFetches = False
|
||||
SWDrawStart = 0
|
||||
SWDrawEnd = 100000
|
||||
ShaderCompilationMode = 0
|
||||
WaitForShadersBeforeStarting = True
|
||||
BackendMultithreading = True
|
||||
EnableGPUTextureDecoding = True
|
||||
[Enhancements]
|
||||
ForceTextureFiltering = False
|
||||
MaxAnisotropy = 0
|
||||
PostProcessingShader =
|
||||
[Stereoscopy]
|
||||
StereoMode = 0
|
||||
StereoDepth = 20
|
||||
StereoConvergencePercentage = 100
|
||||
StereoSwapEyes = False
|
||||
[Hacks]
|
||||
EFBAccessEnable = False
|
||||
BBoxEnable = False
|
||||
ForceProgressive = True
|
||||
EFBToTextureEnable = True
|
||||
EFBScaledCopy = False
|
||||
EFBEmulateFormatChanges = False
|
||||
SkipDuplicateXFBs = True
|
|
@ -0,0 +1,27 @@
|
|||
[Wiimote1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Extension = Classic
|
||||
Source = 1
|
||||
Classic/Buttons/A = Button 1
|
||||
Classic/Buttons/B = Button 0
|
||||
Classic/Buttons/X = Button 3
|
||||
Classic/Buttons/Y = Button 2
|
||||
Classic/Buttons/ZL = Axis 2+
|
||||
Classic/Buttons/ZR = Axis 5+
|
||||
Classic/Buttons/- = Button 6
|
||||
Classic/Buttons/+ = Button 7
|
||||
Classic/Buttons/Home = Button 8
|
||||
Classic/Left Stick/Up = Axis 1-
|
||||
Classic/Left Stick/Down = Axis 1+
|
||||
Classic/Left Stick/Left = Axis 0-
|
||||
Classic/Left Stick/Right = Axis 0+
|
||||
Classic/Right Stick/Up = Axis 4-
|
||||
Classic/Right Stick/Down = Axis 4+
|
||||
Classic/Right Stick/Left = Axis 3-
|
||||
Classic/Right Stick/Right = Axis 3+
|
||||
Classic/Triggers/L = Button 4
|
||||
Classic/Triggers/R = Button 5
|
||||
Classic/D-Pad/Up = Axis 7-
|
||||
Classic/D-Pad/Down = Axis 7+
|
||||
Classic/D-Pad/Left = Axis 6-
|
||||
Classic/D-Pad/Right = Axis 6+
|
|
@ -0,0 +1,20 @@
|
|||
[Wiimote1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Buttons/A = Button 0
|
||||
Buttons/B = Button 1
|
||||
Buttons/1 = Button 2
|
||||
Buttons/2 = Button 3
|
||||
Buttons/- = Button 6
|
||||
Buttons/+ = Button 7
|
||||
Buttons/Home = Button 8
|
||||
Shake/X = Button 4
|
||||
Shake/Y = Button 4
|
||||
Shake/Z = Button 4
|
||||
D-Pad/Up = Axis 6-
|
||||
D-Pad/Down = Axis 6+
|
||||
D-Pad/Left = Axis 7-
|
||||
D-Pad/Right = Axis 7+
|
||||
IR/Up = `Axis 4-`
|
||||
IR/Down = `Axis 4+`
|
||||
IR/Left = `Axis 3-`
|
||||
IR/Right = `Axis 3+`
|
|
@ -0,0 +1,30 @@
|
|||
[Wiimote1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Extension = Nunchuk
|
||||
Buttons/A = Button 0
|
||||
Buttons/B = Button 1
|
||||
Buttons/1 = Button 2
|
||||
Buttons/2 = Button 3
|
||||
Buttons/- = Button 6
|
||||
Buttons/+ = Button 7
|
||||
D-Pad/Up = Axis 7-
|
||||
D-Pad/Down = Axis 7+
|
||||
D-Pad/Left = Axis 6-
|
||||
D-Pad/Right = Axis 6+
|
||||
Buttons/Home = Button 8
|
||||
Shake/X = Button 4
|
||||
Shake/Y = Button 4
|
||||
Shake/Z = Button 4
|
||||
Nunchuk/Buttons/C = Button 5
|
||||
Nunchuk/Buttons/Z = Axis 5+
|
||||
Nunchuk/Stick/Up = Axis 1-
|
||||
Nunchuk/Stick/Down = Axis 1+
|
||||
Nunchuk/Stick/Left = Axis 0-
|
||||
Nunchuk/Stick/Right = Axis 0+
|
||||
Nunchuk/Shake/X = Axis 2+
|
||||
Nunchuk/Shake/Y = Axis 2+
|
||||
Nunchuk/Shake/Z = Axis 2+
|
||||
IR/Up = `Axis 4-`
|
||||
IR/Down = `Axis 4+`
|
||||
IR/Left = `Axis 3-`
|
||||
IR/Right = `Axis 3+`
|
|
@ -0,0 +1,20 @@
|
|||
[Wiimote1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Buttons/A = Button 0
|
||||
Buttons/B = Button 1
|
||||
Buttons/1 = Button 2
|
||||
Buttons/2 = Button 3
|
||||
Buttons/- = Button 6
|
||||
Buttons/+ = Button 7
|
||||
Buttons/Home = Button 8
|
||||
Shake/X = Button 4
|
||||
Shake/Y = Button 4
|
||||
Shake/Z = Button 4
|
||||
D-Pad/Up = Axis 7-
|
||||
D-Pad/Down = Axis 7+
|
||||
D-Pad/Left = Axis 6-
|
||||
D-Pad/Right = Axis 6+
|
||||
IR/Up = `Axis 4-`
|
||||
IR/Down = `Axis 4+`
|
||||
IR/Left = `Axis 3-`
|
||||
IR/Right = `Axis 3+`
|
|
@ -0,0 +1,27 @@
|
|||
[Wiimote1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad
|
||||
Extension = Classic
|
||||
Source = 1
|
||||
Classic/Buttons/A = Button 1
|
||||
Classic/Buttons/B = Button 0
|
||||
Classic/Buttons/X = Button 3
|
||||
Classic/Buttons/Y = Button 2
|
||||
Classic/Buttons/ZL = Axis 2+
|
||||
Classic/Buttons/ZR = Axis 5+
|
||||
Classic/Buttons/- = Button 6
|
||||
Classic/Buttons/+ = Button 7
|
||||
Classic/Buttons/Home = Button 8
|
||||
Classic/Left Stick/Up = Axis 1-
|
||||
Classic/Left Stick/Down = Axis 1+
|
||||
Classic/Left Stick/Left = Axis 0-
|
||||
Classic/Left Stick/Right = Axis 0+
|
||||
Classic/Right Stick/Up = Axis 4-
|
||||
Classic/Right Stick/Down = Axis 4+
|
||||
Classic/Right Stick/Left = Axis 3-
|
||||
Classic/Right Stick/Right = Axis 3+
|
||||
Classic/Triggers/L = Button 4
|
||||
Classic/Triggers/R = Button 5
|
||||
Classic/D-Pad/Up = Axis 7-
|
||||
Classic/D-Pad/Down = Axis 7+
|
||||
Classic/D-Pad/Left = Axis 6-
|
||||
Classic/D-Pad/Right = Axis 6+
|
|
@ -8,7 +8,7 @@ PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games f
|
|||
PKG_TOOLCHAIN="cmake"
|
||||
|
||||
case ${DEVICE} in
|
||||
RK3588|AMD64|S922X|RK3399)
|
||||
RK3588*|AMD64|S922X|RK3399)
|
||||
PKG_SITE="https://github.com/dolphin-emu/dolphin"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_VERSION="e6583f8bec814d8f3748f1d7738457600ce0de56"
|
||||
|
@ -87,7 +87,7 @@ post_install() {
|
|||
RK356*)
|
||||
DOLPHIN_PLATFORM="drm"
|
||||
;;
|
||||
RK3588)
|
||||
RK3588*)
|
||||
DOLPHIN_PLATFORM="x11"
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
frameskip_type = 0
|
||||
frameskip_value = 4
|
||||
safe_frameskip = 0
|
||||
show_frame_counter = 0
|
||||
screen_orientation = 0
|
||||
screen_swap = 0
|
||||
savestate_number = 0
|
||||
fast_forward = 0
|
||||
enable_sound = 1
|
||||
clock_speed = 0
|
||||
threaded_3d = 0
|
||||
mirror_touch = 0
|
||||
compress_savestates = 1
|
||||
savestate_snapshot = 1
|
||||
unzip_roms = 0
|
||||
preload_roms = 0
|
||||
backup_in_savestates = 1
|
||||
ignore_gamecard_limit = 0
|
||||
frame_interval = 0
|
||||
trim_roms = 0
|
||||
fix_main_2d_screen = 0
|
||||
disable_edge_marking = 0
|
||||
interframe_blend = 0
|
||||
hires_3d = 1
|
||||
use_rtc_custom_time = 0
|
||||
rtc_custom_time = 0
|
||||
rtc_system_time = 0
|
||||
slot2_device_type = 0
|
||||
rumble_frames = 3
|
||||
firmware.username = Jelos
|
||||
firmware.language = 1
|
||||
firmware.favorite_color = 0
|
||||
firmware.birthday_month = 1
|
||||
firmware.birthday_day = 1
|
||||
enable_cheats = 1
|
||||
controls_a[CONTROL_INDEX_UP] = 1217
|
||||
controls_a[CONTROL_INDEX_DOWN] = 1153
|
||||
controls_a[CONTROL_INDEX_LEFT] = 1216
|
||||
controls_a[CONTROL_INDEX_RIGHT] = 1152
|
||||
controls_a[CONTROL_INDEX_A] = 65535
|
||||
controls_a[CONTROL_INDEX_B] = 65535
|
||||
controls_a[CONTROL_INDEX_X] = 65535
|
||||
controls_a[CONTROL_INDEX_Y] = 65535
|
||||
controls_a[CONTROL_INDEX_L] = 65535
|
||||
controls_a[CONTROL_INDEX_R] = 65535
|
||||
controls_a[CONTROL_INDEX_START] = 65535
|
||||
controls_a[CONTROL_INDEX_SELECT] = 65535
|
||||
controls_a[CONTROL_INDEX_HINGE] = 65535
|
||||
controls_a[CONTROL_INDEX_TOUCH_CURSOR_UP] = 65535
|
||||
controls_a[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 65535
|
||||
controls_a[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 65535
|
||||
controls_a[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 65535
|
||||
controls_a[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 65535
|
||||
controls_a[CONTROL_INDEX_MENU] = 65535
|
||||
controls_a[CONTROL_INDEX_SAVE_STATE] = 65535
|
||||
controls_a[CONTROL_INDEX_LOAD_STATE] = 65535
|
||||
controls_a[CONTROL_INDEX_FAST_FORWARD] = 65535
|
||||
controls_a[CONTROL_INDEX_SWAP_SCREENS] = 65535
|
||||
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_A] = 65535
|
||||
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_B] = 65535
|
||||
controls_a[CONTROL_INDEX_LOAD_GAME] = 65535
|
||||
controls_a[CONTROL_INDEX_QUIT] = 65535
|
||||
controls_a[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_UP] = 1217
|
||||
controls_a[CONTROL_INDEX_UI_DOWN] = 1153
|
||||
controls_a[CONTROL_INDEX_UI_LEFT] = 1216
|
||||
controls_a[CONTROL_INDEX_UI_RIGHT] = 1152
|
||||
controls_a[CONTROL_INDEX_UI_SELECT] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_BACK] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_EXIT] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_PAGE_UP] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_PAGE_DOWN] = 65535
|
||||
controls_a[CONTROL_INDEX_UI_SWITCH] = 65535
|
||||
controls_b[CONTROL_INDEX_UP] = 1037
|
||||
controls_b[CONTROL_INDEX_DOWN] = 1038
|
||||
controls_b[CONTROL_INDEX_LEFT] = 1039
|
||||
controls_b[CONTROL_INDEX_RIGHT] = 1040
|
||||
controls_b[CONTROL_INDEX_A] = 1025
|
||||
controls_b[CONTROL_INDEX_B] = 1024
|
||||
controls_b[CONTROL_INDEX_X] = 1026
|
||||
controls_b[CONTROL_INDEX_Y] = 1027
|
||||
controls_b[CONTROL_INDEX_L] = 1028
|
||||
controls_b[CONTROL_INDEX_R] = 1029
|
||||
controls_b[CONTROL_INDEX_START] = 1033
|
||||
controls_b[CONTROL_INDEX_SELECT] = 1032
|
||||
controls_b[CONTROL_INDEX_HINGE] = 65535
|
||||
controls_b[CONTROL_INDEX_TOUCH_CURSOR_UP] = 1219
|
||||
controls_b[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 1155
|
||||
controls_b[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 1218
|
||||
controls_b[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 1154
|
||||
controls_b[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 1036
|
||||
controls_b[CONTROL_INDEX_MENU] = 1035
|
||||
controls_b[CONTROL_INDEX_SAVE_STATE] = 65535
|
||||
controls_b[CONTROL_INDEX_LOAD_STATE] = 65535
|
||||
controls_b[CONTROL_INDEX_FAST_FORWARD] = 65535
|
||||
controls_b[CONTROL_INDEX_SWAP_SCREENS] = 65535
|
||||
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_A] = 1030
|
||||
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_B] = 1031
|
||||
controls_b[CONTROL_INDEX_LOAD_GAME] = 65535
|
||||
controls_b[CONTROL_INDEX_QUIT] = 65535
|
||||
controls_b[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
|
||||
controls_b[CONTROL_INDEX_UI_UP] = 1037
|
||||
controls_b[CONTROL_INDEX_UI_DOWN] = 1038
|
||||
controls_b[CONTROL_INDEX_UI_LEFT] = 1039
|
||||
controls_b[CONTROL_INDEX_UI_RIGHT] = 1040
|
||||
controls_b[CONTROL_INDEX_UI_SELECT] = 1025
|
||||
controls_b[CONTROL_INDEX_UI_BACK] = 65535
|
||||
controls_b[CONTROL_INDEX_UI_EXIT] = 1024
|
||||
controls_b[CONTROL_INDEX_UI_PAGE_UP] = 65535
|
||||
controls_b[CONTROL_INDEX_UI_PAGE_DOWN] = 65535
|
||||
controls_b[CONTROL_INDEX_UI_SWITCH] = 65535
|
|
@ -0,0 +1,262 @@
|
|||
[Main]
|
||||
SettingsVersion = 3
|
||||
StartFullscreen = true
|
||||
EmulationSpeed = 1.000000
|
||||
FastForwardSpeed = 0.000000
|
||||
TurboSpeed = 0.000000
|
||||
SyncToHostRefreshRate = false
|
||||
IncreaseTimerResolution = true
|
||||
InhibitScreensaver = true
|
||||
StartPaused = false
|
||||
PauseOnFocusLoss = false
|
||||
PauseOnMenu = true
|
||||
SaveStateOnExit = true
|
||||
ConfirmPowerOff = true
|
||||
LoadDevicesFromSaveStates = false
|
||||
ApplyGameSettings = true
|
||||
AutoLoadCheats = true
|
||||
DisableAllEnhancements = false
|
||||
RewindEnable = false
|
||||
RewindFrequency = 10.000000
|
||||
RewindSaveSlots = 10
|
||||
RunaheadFrameCount = 0
|
||||
|
||||
|
||||
[BIOS]
|
||||
SearchDirectory = /storage/roms/bios
|
||||
PathNTSCU =
|
||||
PathNTSCJ =
|
||||
PathPAL =
|
||||
PatchTTYEnable = false
|
||||
PatchFastBoot = true
|
||||
|
||||
|
||||
[GPU]
|
||||
Renderer = Software
|
||||
Adapter =
|
||||
ResolutionScale = 1
|
||||
Multisamples = 1
|
||||
UseDebugDevice = false
|
||||
PerSampleShading = false
|
||||
UseThread = true
|
||||
ThreadedPresentation = true
|
||||
UseSoftwareRendererForReadbacks = false
|
||||
TrueColor = false
|
||||
ScaledDithering = false
|
||||
TextureFilter = Nearest
|
||||
DownsampleMode = Disabled
|
||||
DisableInterlacing = false
|
||||
ForceNTSCTimings = false
|
||||
WidescreenHack = false
|
||||
ChromaSmoothing24Bit = false
|
||||
PGXPEnable = false
|
||||
PGXPCulling = true
|
||||
PGXPTextureCorrection = true
|
||||
PGXPVertexCache = false
|
||||
PGXPCPU = false
|
||||
PGXPPreserveProjFP = false
|
||||
PGXPTolerance = -1.000000
|
||||
PGXPDepthBuffer = false
|
||||
PGXPDepthClearThreshold = 300.000000
|
||||
|
||||
|
||||
[Display]
|
||||
CropMode = Overscan
|
||||
ActiveStartOffset = 0
|
||||
ActiveEndOffset = 0
|
||||
LineStartOffset = 0
|
||||
LineEndOffset = 0
|
||||
Force4_3For24Bit = false
|
||||
AspectRatio = 4:3
|
||||
CustomAspectRatioNumerator = 4
|
||||
LinearFiltering = true
|
||||
IntegerScaling = false
|
||||
Stretch = false
|
||||
PostProcessing = false
|
||||
ShowOSDMessages = true
|
||||
ShowFPS = false
|
||||
ShowVPS = false
|
||||
ShowSpeed = false
|
||||
ShowResolution = false
|
||||
ShowStatusIndicators = true
|
||||
ShowEnhancements = false
|
||||
DisplayAllFrames = true
|
||||
VSync = false
|
||||
MaxFPS = 0.000000
|
||||
|
||||
|
||||
[Hotkeys]
|
||||
OpenPauseMenu = SDL-0/Back & SDL-0/X
|
||||
FastForward = SDL-0/Back & SDL-0/+RightTrigger
|
||||
Screenshot = SDL-0/Back & SDL-0/A
|
||||
LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder
|
||||
SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder
|
||||
PowerOff = SDL-0/Back & SDL-0/Start
|
||||
|
||||
|
||||
[Logging]
|
||||
LogLevel = Error
|
||||
LogFilter =
|
||||
LogToConsole = false
|
||||
LogToDebug = false
|
||||
LogToWindow = false
|
||||
LogToFile = false
|
||||
|
||||
|
||||
[Controller1]
|
||||
Type = AnalogController
|
||||
ButtonUp = Controller0/Button11
|
||||
ButtonDown = Controller0/Button12
|
||||
ButtonLeft = Controller0/Button13
|
||||
ButtonRight = Controller0/Button14
|
||||
ButtonSelect = Controller0/Button4
|
||||
ButtonStart = Controller0/Button6
|
||||
ButtonTriangle = Controller0/Button2
|
||||
ButtonCross = Controller0/Button1
|
||||
ButtonSquare = Controller0/Button3
|
||||
ButtonCircle = Controller0/Button0
|
||||
ButtonL1 = Controller0/Button9
|
||||
ButtonL2 = Controller0/+Axis4
|
||||
ButtonR1 = Controller0/Button10
|
||||
ButtonR2 = Controller0/+Axis5
|
||||
AxisLeftX = Controller0/Axis0
|
||||
AxisLeftY = Controller0/Axis1
|
||||
ButtonL3 = Controller0/Button7
|
||||
ButtonR3 = Controller0/Button8
|
||||
AxisRightX = Controller0/Axis2
|
||||
AxisRightY = Controller0/Axis3
|
||||
AnalogDPadInDigitalMode = false
|
||||
|
||||
|
||||
[GameList]
|
||||
RecursivePaths = /storage/roms/psx
|
||||
|
||||
|
||||
[MemoryCards]
|
||||
UsePlaylistTitle = true
|
||||
Directory = /storage/roms/psx
|
||||
Card1Type = PerGameTitle
|
||||
Card2Type = None
|
||||
|
||||
|
||||
[Console]
|
||||
Region = Auto
|
||||
Enable8MBRAM = false
|
||||
|
||||
|
||||
[CPU]
|
||||
ExecutionMode = Recompiler
|
||||
OverclockEnable = false
|
||||
OverclockNumerator = 1
|
||||
OverclockDenominator = 1
|
||||
RecompilerMemoryExceptions = false
|
||||
RecompilerBlockLinking = true
|
||||
RecompilerICache = false
|
||||
FastmemMode = MMap
|
||||
|
||||
|
||||
[CDROM]
|
||||
ReadaheadSectors = 8
|
||||
RegionCheck = false
|
||||
LoadImageToRAM = false
|
||||
MuteCDAudio = false
|
||||
ReadSpeedup = 1
|
||||
SeekSpeedup = 1
|
||||
|
||||
|
||||
[Audio]
|
||||
Backend = SDL
|
||||
OutputVolume = 100
|
||||
FastForwardVolume = 100
|
||||
BufferSize = 2048
|
||||
Resampling = true
|
||||
OutputMuted = false
|
||||
Sync = true
|
||||
DumpOnBoot = false
|
||||
|
||||
|
||||
[Hacks]
|
||||
DMAMaxSliceTicks = 1000
|
||||
DMAHaltTicks = 100
|
||||
GPUFIFOSize = 16
|
||||
GPUMaxRunAhead = 128
|
||||
|
||||
|
||||
[Controller2]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller3]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller4]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller5]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller6]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller7]
|
||||
Type = None
|
||||
|
||||
|
||||
[Controller8]
|
||||
Type = None
|
||||
|
||||
|
||||
[ControllerPorts]
|
||||
MultitapMode = Disabled
|
||||
|
||||
|
||||
[Debug]
|
||||
ShowVRAM = false
|
||||
DumpCPUToVRAMCopies = false
|
||||
DumpVRAMToCPUCopies = false
|
||||
ShowGPUState = false
|
||||
ShowCDROMState = false
|
||||
ShowSPUState = false
|
||||
ShowTimersState = false
|
||||
ShowMDECState = false
|
||||
ShowDMAState = false
|
||||
|
||||
|
||||
[TextureReplacements]
|
||||
EnableVRAMWriteReplacements = false
|
||||
PreloadTextures = false
|
||||
DumpVRAMWrites = false
|
||||
DumpVRAMWriteForceAlphaChannel = true
|
||||
DumpVRAMWriteWidthThreshold = 128
|
||||
DumpVRAMWriteHeightThreshold = 128
|
||||
|
||||
|
||||
[Pad1]
|
||||
Up = SDL-0/DPadUp
|
||||
Right = SDL-0/DPadRight
|
||||
Down = SDL-0/DPadDown
|
||||
Left = SDL-0/DPadLeft
|
||||
Triangle = SDL-0/X
|
||||
Circle = SDL-0/A
|
||||
Cross = SDL-0/B
|
||||
Square = SDL-0/Y
|
||||
Select = SDL-0/Back
|
||||
Start = SDL-0/Start
|
||||
L1 = SDL-0/LeftShoulder
|
||||
R1 = SDL-0/RightShoulder
|
||||
L2 = SDL-0/+LeftTrigger
|
||||
R2 = SDL-0/+RightTrigger
|
||||
L3 = SDL-0/LeftStick
|
||||
R3 = SDL-0/RightStick
|
||||
LLeft = SDL-0/-LeftX
|
||||
LRight = SDL-0/+LeftX
|
||||
LDown = SDL-0/+LeftY
|
||||
LUp = SDL-0/-LeftY
|
||||
RLeft = SDL-0/+RightX
|
||||
RRight = SDL-0/-RightX
|
||||
RDown = SDL-0/+RightY
|
||||
RUp = SDL-0/-RightY
|
|
@ -0,0 +1,13 @@
|
|||
[audio]
|
||||
backend = pulse
|
||||
|
||||
[input]
|
||||
maple_sdl_joystick_0 = 0
|
||||
maple_sdl_joystick_1 = 1
|
||||
|
||||
device1 = 0
|
||||
device1.1 = 1
|
||||
device1.2 = 1
|
||||
device2 = 0
|
||||
device2.1 = 1
|
||||
device2.2 = 1
|
|
@ -0,0 +1,147 @@
|
|||
Key_A=-1
|
||||
Key_B=-1
|
||||
Key_Select=-1
|
||||
Key_Start=-1
|
||||
Key_Right=-1
|
||||
Key_Left=-1
|
||||
Key_Up=-1
|
||||
Key_Down=-1
|
||||
Key_R=-1
|
||||
Key_L=-1
|
||||
Key_X=-1
|
||||
Key_Y=-1
|
||||
Joy_A=1
|
||||
Joy_B=0
|
||||
Joy_Select=6
|
||||
Joy_Start=7
|
||||
Joy_Right=65794
|
||||
Joy_Left=1114376
|
||||
Joy_Up=17891585
|
||||
Joy_Down=16843012
|
||||
Joy_R=86114303
|
||||
Joy_L=35782655
|
||||
Joy_X=3
|
||||
Joy_Y=2
|
||||
HKKey_Lid=-1
|
||||
HKKey_Mic=-1
|
||||
HKKey_Pause=-1
|
||||
HKKey_Reset=-1
|
||||
HKKey_FastForward=-1
|
||||
HKKey_FastForwardToggle=-1
|
||||
HKKey_FullscreenToggle=-1
|
||||
HKKey_SwapScreens=-1
|
||||
HKKey_SolarSensorDecrease=-1
|
||||
HKKey_SolarSensorIncrease=-1
|
||||
HKKey_FrameStep=-1
|
||||
HKKey_SaveState=-1
|
||||
HKKey_LoadState=-1
|
||||
HKJoy_Lid=-1
|
||||
HKJoy_Mic=10
|
||||
HKJoy_Pause=-1
|
||||
HKJoy_Reset=-1
|
||||
HKJoy_FastForward=-1
|
||||
HKJoy_FastForwardToggle=-1
|
||||
HKJoy_FullscreenToggle=-1
|
||||
HKJoy_SwapScreens=9
|
||||
HKJoy_SolarSensorDecrease=-1
|
||||
HKJoy_SolarSensorIncrease=-1
|
||||
HKJoy_FrameStep=-1
|
||||
HKJoy_SaveState=5
|
||||
HKJoy_LoadState=4
|
||||
JoystickID=0
|
||||
WindowWidth=1920
|
||||
WindowHeight=1080
|
||||
WindowMax=0
|
||||
ScreenRotation=0
|
||||
ScreenGap=0
|
||||
ScreenLayout=2
|
||||
ScreenSwap=0
|
||||
ScreenSizing=3
|
||||
IntegerScaling=0
|
||||
ScreenAspectTop=0
|
||||
ScreenAspectBot=0
|
||||
ScreenFilter=1
|
||||
ScreenUseGL=0
|
||||
ScreenVSync=0
|
||||
ScreenVSyncInterval=1
|
||||
3DRenderer=0
|
||||
Threaded3D=1
|
||||
GL_ScaleFactor=1
|
||||
GL_BetterPolygons=0
|
||||
LimitFPS=1
|
||||
AudioSync=0
|
||||
ShowOSD=1
|
||||
ConsoleType=0
|
||||
DirectBoot=1
|
||||
JIT_Enable=0
|
||||
JIT_MaxBlockSize=32
|
||||
JIT_BranchOptimisations=1
|
||||
JIT_LiteralOptimisations=1
|
||||
JIT_FastMemory=1
|
||||
ExternalBIOSEnable=0
|
||||
BIOS9Path=
|
||||
BIOS7Path=
|
||||
FirmwarePath=
|
||||
DSiBIOS9Path=
|
||||
DSiBIOS7Path=
|
||||
DSiFirmwarePath=
|
||||
DSiNANDPath=
|
||||
DLDIEnable=0
|
||||
DLDISDPath=dldi.bin
|
||||
DLDISize=0
|
||||
DLDIReadOnly=0
|
||||
DLDIFolderSync=0
|
||||
DLDIFolderPath=
|
||||
DSiSDEnable=0
|
||||
DSiSDPath=dsisd.bin
|
||||
DSiSDSize=0
|
||||
DSiSDReadOnly=0
|
||||
DSiSDFolderSync=0
|
||||
DSiSDFolderPath=
|
||||
FirmwareOverrideSettings=0
|
||||
FirmwareUsername=melonDS
|
||||
FirmwareLanguage=1
|
||||
FirmwareBirthdayMonth=1
|
||||
FirmwareBirthdayDay=1
|
||||
FirmwareFavouriteColour=0
|
||||
FirmwareMessage=
|
||||
FirmwareMAC=
|
||||
MPAudioMode=1
|
||||
MPRecvTimeout=25
|
||||
LANDevice=
|
||||
DirectLAN=0
|
||||
SavStaRelocSRAM=0
|
||||
AudioInterp=0
|
||||
AudioBitrate=0
|
||||
AudioVolume=256
|
||||
MicInputType=0
|
||||
MicWavPath=
|
||||
LastROMFolder=
|
||||
RecentROM_0=
|
||||
RecentROM_1=
|
||||
RecentROM_2=
|
||||
RecentROM_3=
|
||||
RecentROM_4=
|
||||
RecentROM_5=
|
||||
RecentROM_6=
|
||||
RecentROM_7=
|
||||
RecentROM_8=
|
||||
RecentROM_9=
|
||||
SaveFilePath=/storage/roms/nds
|
||||
SavestatePath=/storage/roms/savestates/nds
|
||||
CheatFilePath=
|
||||
EnableCheats=0
|
||||
MouseHide=0
|
||||
MouseHideSeconds=5
|
||||
PauseLostFocus=0
|
||||
DSBatteryLevelOkay=1
|
||||
DSiBatteryLevel=15
|
||||
DSiBatteryCharging=1
|
||||
Camera0_InputType=0
|
||||
Camera0_ImagePath=
|
||||
Camera0_CamDeviceName=
|
||||
Camera0_XFlip=0
|
||||
Camera1_InputType=0
|
||||
Camera1_ImagePath=
|
||||
Camera1_CamDeviceName=
|
||||
Camera1_XFlip=0
|
|
@ -0,0 +1,665 @@
|
|||
# Mupen64Plus Configuration File
|
||||
# This file is automatically read and written by the Mupen64Plus Core library
|
||||
|
||||
[64DD]
|
||||
|
||||
# Filename of the 64DD IPL ROM
|
||||
IPL-ROM = ""
|
||||
# Filename of the disk to load into Disk Drive
|
||||
Disk = ""
|
||||
|
||||
|
||||
[Audio-SDL]
|
||||
|
||||
# Mupen64Plus SDL Audio Plugin config parameter version number
|
||||
Version = 1.000000
|
||||
# Frequency which is used if rom doesn't want to change it
|
||||
DEFAULT_FREQUENCY = 33600
|
||||
# Swaps left and right channels
|
||||
SWAP_CHANNELS = False
|
||||
# Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory.
|
||||
PRIMARY_BUFFER_SIZE = 16384
|
||||
# Fullness level target for Primary audio buffer, in equivalent output samples. This value must be larger than the SECONDARY_BUFFER_SIZE. Decreasing this value will reduce audio latency but requires a faster PC to avoid choppiness. Increasing this will increase audio latency but reduce the chance of drop-outs.
|
||||
PRIMARY_BUFFER_TARGET = 2048
|
||||
# Size of secondary buffer in output samples. This is SDL's hardware buffer. The SDL documentation states that this should be a power of two between 512 and 8192.
|
||||
SECONDARY_BUFFER_SIZE = 1024
|
||||
# Audio resampling algorithm. src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, speex-fixed-{10-0}, trivial
|
||||
RESAMPLE = "trivial"
|
||||
# Volume control type: 1 = SDL (only affects Mupen64Plus output) 2 = OSS mixer (adjusts master PC volume)
|
||||
VOLUME_CONTROL_TYPE = 1
|
||||
# Percentage change each time the volume is increased or decreased
|
||||
VOLUME_ADJUST = 5
|
||||
# Default volume when a game is started. Only used if VOLUME_CONTROL_TYPE is 1
|
||||
VOLUME_DEFAULT = 100
|
||||
# Synchronize Video/Audio
|
||||
AUDIO_SYNC = False
|
||||
|
||||
|
||||
[Core]
|
||||
|
||||
# Mupen64Plus Core config parameter set version number. Please don't change this version number.
|
||||
Version = 1.010000
|
||||
# Draw on-screen display if True, otherwise don't draw OSD
|
||||
OnScreenDisplay = True
|
||||
# Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more
|
||||
R4300Emulator = 2
|
||||
# Disable compiled jump commands in dynamic recompiler (should be set to False)
|
||||
NoCompiledJump = False
|
||||
# Disable 4MB expansion RAM pack. May be necessary for some games
|
||||
DisableExtraMem = False
|
||||
# Increment the save state slot after each save operation
|
||||
AutoStateSlotIncrement = False
|
||||
# Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support
|
||||
EnableDebugger = False
|
||||
# Save state slot (0-9) to use when saving/loading the emulator state
|
||||
CurrentStateSlot = 0
|
||||
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserDataPath}/screenshot will be used
|
||||
ScreenshotPath = "/storage/roms/screenshots"
|
||||
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserDataPath}/save will be used
|
||||
SaveStatePath = "/storage/roms/n64"
|
||||
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserDataPath}/save will be used
|
||||
SaveSRAMPath = "/storage/roms/n64"
|
||||
# Path to a directory to search when looking for shared data files
|
||||
SharedDataPath = "/storage/.config/game/configs/mupen64plussa"
|
||||
# Force number of cycles per emulated instruction
|
||||
CountPerOp = 0
|
||||
# Randomize PI/SI Interrupt Timing
|
||||
RandomizeInterrupt = True
|
||||
# Duration of SI DMA (-1: use per game settings)
|
||||
SiDmaDuration = -1
|
||||
# Gameboy Camera Video Capture backend
|
||||
GbCameraVideoCaptureBackend1 = ""
|
||||
# Disk Save Format (0: Full Disk Copy (*.ndr/*.d6r), 1: RAM Area Only (*.ram))
|
||||
SaveDiskFormat = 1
|
||||
|
||||
|
||||
[CoreEvents]
|
||||
|
||||
# Mupen64Plus CoreEvents config parameter set version number. Please don't change this version number.
|
||||
Version = 1.000000
|
||||
# SDL keysym for stopping the emulator
|
||||
Kbd Mapping Stop = 27
|
||||
# SDL keysym for switching between fullscreen/windowed modes
|
||||
Kbd Mapping Fullscreen = 0
|
||||
# SDL keysym for saving the emulator state
|
||||
Kbd Mapping Save State = 286
|
||||
# SDL keysym for loading the emulator state
|
||||
Kbd Mapping Load State = 288
|
||||
# SDL keysym for advancing the save state slot
|
||||
Kbd Mapping Increment Slot = 0
|
||||
# SDL keysym for resetting the emulator
|
||||
Kbd Mapping Reset = 290
|
||||
# SDL keysym for slowing down the emulator
|
||||
Kbd Mapping Speed Down = 291
|
||||
# SDL keysym for speeding up the emulator
|
||||
Kbd Mapping Speed Up = 292
|
||||
# SDL keysym for taking a screenshot
|
||||
Kbd Mapping Screenshot = 293
|
||||
# SDL keysym for pausing the emulator
|
||||
Kbd Mapping Pause = 112
|
||||
# SDL keysym for muting/unmuting the sound
|
||||
Kbd Mapping Mute = 109
|
||||
# SDL keysym for increasing the volume
|
||||
Kbd Mapping Increase Volume = 93
|
||||
# SDL keysym for decreasing the volume
|
||||
Kbd Mapping Decrease Volume = 91
|
||||
# SDL keysym for temporarily going really fast
|
||||
Kbd Mapping Fast Forward = 102
|
||||
# SDL keysym for advancing by one frame when paused
|
||||
Kbd Mapping Frame Advance = 47
|
||||
# SDL keysym for pressing the game shark button
|
||||
Kbd Mapping Gameshark = 103
|
||||
# Joystick event string for stopping the emulator
|
||||
Joy Mapping Stop = "J0B8/B9"
|
||||
# Joystick event string for switching between fullscreen/windowed modes
|
||||
Joy Mapping Fullscreen = ""
|
||||
# Joystick event string for saving the emulator state
|
||||
Joy Mapping Save State = "J0B8/B5"
|
||||
# Joystick event string for loading the emulator state
|
||||
Joy Mapping Load State = "J0B8/B4"
|
||||
# Joystick event string for advancing the save state slot
|
||||
Joy Mapping Increment Slot = ""
|
||||
# Joystick event string for resetting the emulator
|
||||
Joy Mapping Reset = "J0B8/B0"
|
||||
# Joystick event string for slowing down the emulator
|
||||
Joy Mapping Speed Down = ""
|
||||
# Joystick event string for speeding up the emulator
|
||||
Joy Mapping Speed Up = ""
|
||||
# Joystick event string for taking a screenshot
|
||||
Joy Mapping Screenshot = "J0B8/B3"
|
||||
# Joystick event string for pausing the emulator
|
||||
Joy Mapping Pause = "J0B12/B1"
|
||||
# Joystick event string for muting/unmuting the sound
|
||||
Joy Mapping Mute = ""
|
||||
# Joystick event string for increasing the volume
|
||||
Joy Mapping Increase Volume = ""
|
||||
# Joystick event string for decreasing the volume
|
||||
Joy Mapping Decrease Volume = ""
|
||||
# Joystick event string for fast-forward
|
||||
Joy Mapping Fast Forward = "J0B8/B7"
|
||||
# Joystick event string for advancing by one frame when paused
|
||||
Joy Mapping Frame Advance = ""
|
||||
# Joystick event string for pressing the game shark button
|
||||
Joy Mapping Gameshark = "J0B8/B2"
|
||||
# SDL keysym for save slot 0
|
||||
Kbd Mapping Slot 0 = 48
|
||||
# SDL keysym for save slot 1
|
||||
Kbd Mapping Slot 1 = 49
|
||||
# SDL keysym for save slot 2
|
||||
Kbd Mapping Slot 2 = 50
|
||||
# SDL keysym for save slot 3
|
||||
Kbd Mapping Slot 3 = 51
|
||||
# SDL keysym for save slot 4
|
||||
Kbd Mapping Slot 4 = 52
|
||||
# SDL keysym for save slot 5
|
||||
Kbd Mapping Slot 5 = 53
|
||||
# SDL keysym for save slot 6
|
||||
Kbd Mapping Slot 6 = 54
|
||||
# SDL keysym for save slot 7
|
||||
Kbd Mapping Slot 7 = 55
|
||||
# SDL keysym for save slot 8
|
||||
Kbd Mapping Slot 8 = 56
|
||||
# SDL keysym for save slot 9
|
||||
Kbd Mapping Slot 9 = 57
|
||||
|
||||
|
||||
[Input-SDL-Control1]
|
||||
|
||||
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
|
||||
version = 2.000000
|
||||
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
|
||||
mode = 2
|
||||
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
|
||||
device = 0
|
||||
# SDL joystick name (or Keyboard)
|
||||
name = "rg552_joypad"
|
||||
# Specifies whether this controller is 'plugged in' to the simulated N64
|
||||
plugged = True
|
||||
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
|
||||
plugin = 2
|
||||
# If True, then mouse buttons may be used with this controller
|
||||
mouse = False
|
||||
# Scaling factor for mouse movements. For X, Y axes.
|
||||
MouseSensitivity = "2.00,2.00"
|
||||
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
|
||||
AnalogDeadzone = "0,0"
|
||||
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
|
||||
AnalogPeak = "32768,32768"
|
||||
# Digital button configuration mappings
|
||||
DPad R = button(16)
|
||||
DPad L = button(15)
|
||||
DPad D = button(14)
|
||||
DPad U = button(13)
|
||||
Start = button(9)
|
||||
Z Trig = button(5)
|
||||
B Button = button(3)
|
||||
A Button = button(0)
|
||||
C Button R = axis(2+)
|
||||
C Button L = axis(2-)
|
||||
C Button D = axis(3+)
|
||||
C Button U = axis(3-)
|
||||
R Trig = button(7)
|
||||
L Trig = button(4)
|
||||
Mempak switch =
|
||||
Rumblepak switch =
|
||||
# Analog axis configuration mappings
|
||||
X Axis = axis(0-,0+)
|
||||
Y Axis = axis(1-,1+)
|
||||
|
||||
|
||||
[Input-SDL-Control2]
|
||||
|
||||
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
|
||||
version = 2.000000
|
||||
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
|
||||
mode = 2
|
||||
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
|
||||
device = -1
|
||||
# SDL joystick name (or Keyboard)
|
||||
name = ""
|
||||
# Specifies whether this controller is 'plugged in' to the simulated N64
|
||||
plugged = False
|
||||
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
|
||||
plugin = 2
|
||||
# If True, then mouse buttons may be used with this controller
|
||||
mouse = False
|
||||
# Scaling factor for mouse movements. For X, Y axes.
|
||||
MouseSensitivity = "2.00,2.00"
|
||||
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
|
||||
AnalogDeadzone = "4096,4096"
|
||||
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
|
||||
AnalogPeak = "32768,32768"
|
||||
# Digital button configuration mappings
|
||||
DPad R = ""
|
||||
DPad L = ""
|
||||
DPad D = ""
|
||||
DPad U = ""
|
||||
Start = ""
|
||||
Z Trig = ""
|
||||
B Button = ""
|
||||
A Button = ""
|
||||
C Button R = ""
|
||||
C Button L = ""
|
||||
C Button D = ""
|
||||
C Button U = ""
|
||||
R Trig = ""
|
||||
L Trig = ""
|
||||
Mempak switch = ""
|
||||
Rumblepak switch = ""
|
||||
# Analog axis configuration mappings
|
||||
X Axis = ""
|
||||
Y Axis = ""
|
||||
|
||||
|
||||
[Input-SDL-Control3]
|
||||
|
||||
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
|
||||
version = 2.000000
|
||||
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
|
||||
mode = 2
|
||||
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
|
||||
device = -1
|
||||
# SDL joystick name (or Keyboard)
|
||||
name = ""
|
||||
# Specifies whether this controller is 'plugged in' to the simulated N64
|
||||
plugged = False
|
||||
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
|
||||
plugin = 2
|
||||
# If True, then mouse buttons may be used with this controller
|
||||
mouse = False
|
||||
# Scaling factor for mouse movements. For X, Y axes.
|
||||
MouseSensitivity = "2.00,2.00"
|
||||
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
|
||||
AnalogDeadzone = "4096,4096"
|
||||
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
|
||||
AnalogPeak = "32768,32768"
|
||||
# Digital button configuration mappings
|
||||
DPad R = ""
|
||||
DPad L = ""
|
||||
DPad D = ""
|
||||
DPad U = ""
|
||||
Start = ""
|
||||
Z Trig = ""
|
||||
B Button = ""
|
||||
A Button = ""
|
||||
C Button R = ""
|
||||
C Button L = ""
|
||||
C Button D = ""
|
||||
C Button U = ""
|
||||
R Trig = ""
|
||||
L Trig = ""
|
||||
Mempak switch = ""
|
||||
Rumblepak switch = ""
|
||||
# Analog axis configuration mappings
|
||||
X Axis = ""
|
||||
Y Axis = ""
|
||||
|
||||
|
||||
[Input-SDL-Control4]
|
||||
|
||||
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
|
||||
version = 2.000000
|
||||
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
|
||||
mode = 2
|
||||
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
|
||||
device = -1
|
||||
# SDL joystick name (or Keyboard)
|
||||
name = ""
|
||||
# Specifies whether this controller is 'plugged in' to the simulated N64
|
||||
plugged = False
|
||||
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
|
||||
plugin = 2
|
||||
# If True, then mouse buttons may be used with this controller
|
||||
mouse = False
|
||||
# Scaling factor for mouse movements. For X, Y axes.
|
||||
MouseSensitivity = "2.00,2.00"
|
||||
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
|
||||
AnalogDeadzone = "4096,4096"
|
||||
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
|
||||
AnalogPeak = "32768,32768"
|
||||
# Digital button configuration mappings
|
||||
DPad R = ""
|
||||
DPad L = ""
|
||||
DPad D = ""
|
||||
DPad U = ""
|
||||
Start = ""
|
||||
Z Trig = ""
|
||||
B Button = ""
|
||||
A Button = ""
|
||||
C Button R = ""
|
||||
C Button L = ""
|
||||
C Button D = ""
|
||||
C Button U = ""
|
||||
R Trig = ""
|
||||
L Trig = ""
|
||||
Mempak switch = ""
|
||||
Rumblepak switch = ""
|
||||
# Analog axis configuration mappings
|
||||
X Axis = ""
|
||||
Y Axis = ""
|
||||
|
||||
|
||||
[Rsp-HLE]
|
||||
|
||||
# Mupen64Plus RSP HLE Plugin config parameter version number
|
||||
Version = 1.000000
|
||||
# Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string.
|
||||
RspFallback = ""
|
||||
# Send display lists to the graphics plugin
|
||||
DisplayListToGraphicsPlugin = True
|
||||
# Send audio lists to the audio plugin
|
||||
AudioListToAudioPlugin = False
|
||||
|
||||
|
||||
[Transferpak]
|
||||
|
||||
# Filename of the GB ROM to load into transferpak 1
|
||||
GB-rom-1 = ""
|
||||
# Filename of the GB RAM to load into transferpak 1
|
||||
GB-ram-1 = ""
|
||||
# Filename of the GB ROM to load into transferpak 2
|
||||
GB-rom-2 = ""
|
||||
# Filename of the GB RAM to load into transferpak 2
|
||||
GB-ram-2 = ""
|
||||
# Filename of the GB ROM to load into transferpak 3
|
||||
GB-rom-3 = ""
|
||||
# Filename of the GB RAM to load into transferpak 3
|
||||
GB-ram-3 = ""
|
||||
# Filename of the GB ROM to load into transferpak 4
|
||||
GB-rom-4 = ""
|
||||
# Filename of the GB RAM to load into transferpak 4
|
||||
GB-ram-4 = ""
|
||||
|
||||
|
||||
[UI-Console]
|
||||
|
||||
# Mupen64Plus UI-Console config parameter set version number. Please don't change this version number.
|
||||
Version = 1.000000
|
||||
# Directory in which to search for plugins
|
||||
PluginDir = "/usr/local/lib/mupen64plus"
|
||||
# Filename of video plugin
|
||||
VideoPlugin = "mupen64plus-video-rice"
|
||||
# Filename of audio plugin
|
||||
AudioPlugin = "mupen64plus-audio-sdl.so"
|
||||
# Filename of input plugin
|
||||
InputPlugin = "mupen64plus-input-sdl.so"
|
||||
# Filename of RSP plugin
|
||||
RspPlugin = "mupen64plus-rsp-hle.so"
|
||||
|
||||
|
||||
[Video-General]
|
||||
|
||||
# Width of output window or fullscreen width
|
||||
ScreenWidth = 640
|
||||
# Height of output window or fullscreen height
|
||||
ScreenHeight = 480
|
||||
# Use fullscreen mode if True, or windowed mode if False
|
||||
Fullscreen = True
|
||||
# If true, activate the SDL_GL_SWAP_CONTROL attribute
|
||||
VerticalSync = True
|
||||
# Rotate screen contents: 0=0 degree, 1=90 degree, 2 = 180 degree, 3=270 degree
|
||||
Rotate = 0
|
||||
|
||||
[Video-GLideN64]
|
||||
|
||||
###### Hardware Compatibility ######
|
||||
# Leave enabled unless a mobile gpu doesn't support it.
|
||||
EnableFragmentDepthWrite = 1
|
||||
# Hardware per pixel lighting, supposedly good for GLES3.1 devices or higher.
|
||||
EnableHWLighting = 0
|
||||
|
||||
###### Enhancements #######
|
||||
# Internal render resoluton rather than output. So 2 x 240p is 480p, etc.
|
||||
UseNativeResolutionFactor = 1
|
||||
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
|
||||
MultiSampling = 0
|
||||
# Enable/Disable Fast Approximate Anti-Aliasing FXAA
|
||||
FXAA = 0
|
||||
# Max level of Anisotropic Filtering, 0 for off
|
||||
anisotropy = 0
|
||||
# Bilinear filtering mode (0=N64 3point, 1=standard)
|
||||
# @rishooty: best to use this at 1x native res, any higher turn it off.
|
||||
bilinearMode = 1
|
||||
|
||||
###### Compatibility ######
|
||||
# Make texrect coordinates continuous to avoid black lines between them. (0=Off/default, 1=Auto, 2=Force)
|
||||
CorrectTexrectCoords = 1
|
||||
# Copy auxiliary buffers to RDRAM (default: 0)
|
||||
EnableCopyAuxiliaryToRDRAM = 1
|
||||
# Render 2D texrects in native resolution to fix misalignment between parts of 2D image. (0=Off/default, 1=Optimized, 2=Unoptimized)")
|
||||
EnableNativeResTexrects = 1
|
||||
|
||||
###### Other ######
|
||||
# Enable threaded video backend at the cost of input lag
|
||||
ThreadedVideo = 1
|
||||
# Screen aspect ratio (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust)
|
||||
AspectRatio = 1
|
||||
# Display On-screen FPS
|
||||
ShowFPS = False
|
||||
|
||||
[Video-Glide64mk2]
|
||||
|
||||
# Enable full-scene anti-aliasing by setting this to a value greater than 1
|
||||
wrpAntiAliasing = 0
|
||||
# Card ID
|
||||
card_id = 0
|
||||
# If true, use polygon offset values specified below
|
||||
force_polygon_offset = False
|
||||
# Specifies a scale factor that is used to create a variable depth offset for each polygon
|
||||
polygon_offset_factor = 0.000000
|
||||
# Is multiplied by an implementation-specific value to create a constant depth offset
|
||||
polygon_offset_units = 0.000000
|
||||
# Vertical sync
|
||||
vsync = True
|
||||
# TODO:ssformat
|
||||
ssformat = False
|
||||
# Display performance stats (add together desired flags): 1=FPS counter, 2=VI/s counter, 4=% speed, 8=FPS transparent
|
||||
show_fps = 0
|
||||
# Clock enabled
|
||||
clock = False
|
||||
# Clock is 24-hour
|
||||
clock_24_hr = True
|
||||
# Wrapper resolution
|
||||
wrpResolution = 0
|
||||
# Wrapper VRAM
|
||||
wrpVRAM = 0
|
||||
# Wrapper FBO
|
||||
wrpFBO = True
|
||||
# Wrapper Anisotropic Filtering
|
||||
wrpAnisotropic = True
|
||||
# Texture Enhancement: Smooth/Sharpen Filters
|
||||
ghq_fltr = 0
|
||||
# Texture Compression: 0 for S3TC, 1 for FXT1
|
||||
ghq_cmpr = 0
|
||||
# Texture Enhancement: More filters
|
||||
ghq_enht = 0
|
||||
# Hi-res texture pack format (0 for none, 1 for Rice)
|
||||
ghq_hirs = 1
|
||||
# Compress texture cache with S3TC or FXT1
|
||||
ghq_enht_cmpr = False
|
||||
# Tile textures (saves memory but could cause issues)
|
||||
ghq_enht_tile = 0
|
||||
# Force 16bpp textures (saves ram but lower quality)
|
||||
ghq_enht_f16bpp = False
|
||||
# Compress texture cache
|
||||
ghq_enht_gz = True
|
||||
# Don't enhance textures for backgrounds
|
||||
ghq_enht_nobg = False
|
||||
# Enable S3TC and FXT1 compression
|
||||
ghq_hirs_cmpr = False
|
||||
# Tile hi-res textures (saves memory but could cause issues)
|
||||
ghq_hirs_tile = False
|
||||
# Force 16bpp hi-res textures (saves ram but lower quality)
|
||||
ghq_hirs_f16bpp = False
|
||||
# Compress hi-res texture cache
|
||||
ghq_hirs_gz = True
|
||||
# Alternative CRC calculation -- emulates Rice bug
|
||||
ghq_hirs_altcrc = True
|
||||
# Save tex cache to disk
|
||||
ghq_cache_save = True
|
||||
# Texture Cache Size (MB)
|
||||
ghq_cache_size = 128
|
||||
# Use full alpha channel -- could cause issues for some tex packs
|
||||
ghq_hirs_let_texartists_fly = False
|
||||
# Dump textures
|
||||
ghq_hirs_dump = False
|
||||
# Alternate texture size method: -1=Game default, 0=disable. 1=enable
|
||||
alt_tex_size = -1
|
||||
# Use first SETTILESIZE only: -1=Game default, 0=disable. 1=enable
|
||||
use_sts1_only = -1
|
||||
# Use spheric mapping only: -1=Game default, 0=disable. 1=enable
|
||||
force_calc_sphere = -1
|
||||
# Force positive viewport: -1=Game default, 0=disable. 1=enable
|
||||
correct_viewport = -1
|
||||
# Force texrect size to integral value: -1=Game default, 0=disable. 1=enable
|
||||
increase_texrect_edge = -1
|
||||
# Reduce fillrect size by 1: -1=Game default, 0=disable. 1=enable
|
||||
decrease_fillrect_edge = -1
|
||||
# Enable perspective texture correction emulation: -1=Game default, 0=disable. 1=enable
|
||||
texture_correction = -1
|
||||
# Set special scale for PAL games: -1=Game default, 0=disable. 1=enable
|
||||
pal230 = -1
|
||||
# 3DFX Dithered alpha emulation mode: -1=Game default, >=0=dithered alpha emulation mode
|
||||
stipple_mode = -1
|
||||
# 3DFX Dithered alpha pattern: -1=Game default, >=0=pattern used for dithered alpha emulation
|
||||
stipple_pattern = -1
|
||||
# Check microcode each frame: -1=Game default, 0=disable. 1=enable
|
||||
force_microcheck = -1
|
||||
# Force 0xb5 command to be quad, not line 3D: -1=Game default, 0=disable. 1=enable
|
||||
force_quad3d = -1
|
||||
# Enable near z clipping: -1=Game default, 0=disable. 1=enable
|
||||
clip_zmin = -1
|
||||
# Enable far plane clipping: -1=Game default, 0=disable. 1=enable
|
||||
clip_zmax = -1
|
||||
# Use fast CRC algorithm: -1=Game default, 0=disable. 1=enable
|
||||
fast_crc = -1
|
||||
# Adjust screen aspect for wide screen mode: -1=Game default, 0=disable. 1=enable
|
||||
adjust_aspect = -1
|
||||
# Force strict check in Depth buffer test: -1=Game default, 0=disable. 1=enable
|
||||
zmode_compare_less = -1
|
||||
# Apply alpha dither regardless of alpha_dither_mode: -1=Game default, 0=disable. 1=enable
|
||||
old_style_adither = -1
|
||||
# Scale vertex z value before writing to depth buffer: -1=Game default, 0=disable. 1=enable
|
||||
n64_z_scale = -1
|
||||
# Fast texrect rendering with hwfbe: -1=Game default, 0=disable. 1=enable
|
||||
optimize_texrect = -1
|
||||
# Do not copy auxiliary frame buffers: -1=Game default, 0=disable. 1=enable
|
||||
ignore_aux_copy = -1
|
||||
# Clear auxiliary texture frame buffers: -1=Game default, 0=disable. 1=enable
|
||||
hires_buf_clear = -1
|
||||
# Read alpha from framebuffer: -1=Game default, 0=disable. 1=enable
|
||||
fb_read_alpha = -1
|
||||
# Handle unchanged fb: -1=Game default, 0=disable. 1=enable
|
||||
useless_is_useless = -1
|
||||
# Set frambuffer CRC mode: -1=Game default, 0=disable CRC, 1=fast CRC, 2=safe CRC
|
||||
fb_crc_mode = -1
|
||||
# Filtering mode: -1=Game default, 0=automatic, 1=force bilinear, 2=force point sampled
|
||||
filtering = -1
|
||||
# Fog: -1=Game default, 0=disable. 1=enable
|
||||
fog = -1
|
||||
# Buffer clear on every frame: -1=Game default, 0=disable. 1=enable
|
||||
buff_clear = -1
|
||||
# Buffer swapping method: -1=Game default, 0=swap buffers when vertical interrupt has occurred, 1=swap buffers when set of conditions is satisfied. Prevents flicker on some games, 2=mix of first two methods
|
||||
swapmode = -1
|
||||
# Aspect ratio: -1=Game default, 0=Force 4:3, 1=Force 16:9, 2=Stretch, 3=Original
|
||||
aspect = -1
|
||||
# LOD calculation: -1=Game default, 0=disable. 1=fast, 2=precise
|
||||
lodmode = -1
|
||||
# Smart framebuffer: -1=Game default, 0=disable. 1=enable
|
||||
fb_smart = -1
|
||||
# Hardware frame buffer emulation: -1=Game default, 0=disable. 1=enable
|
||||
fb_hires = -1
|
||||
# Read framebuffer every frame (may be slow use only for effects that need it e.g. Banjo Kazooie, DK64 transitions): -1=Game default, 0=disable. 1=enable
|
||||
fb_read_always = -1
|
||||
# Render N64 frame buffer as texture: -1=Game default, 0=disable, 1=mode1, 2=mode2
|
||||
read_back_to_screen = -1
|
||||
# Show images written directly by CPU: -1=Game default, 0=disable. 1=enable
|
||||
detect_cpu_write = -1
|
||||
# Get frame buffer info: -1=Game default, 0=disable. 1=enable
|
||||
fb_get_info = -1
|
||||
# Enable software depth render: -1=Game default, 0=disable. 1=enable
|
||||
fb_render = -1
|
||||
# If true, skip up to maxframeskip frames to maintain clock schedule; if false, skip exactly maxframeskip frames
|
||||
autoframeskip = False
|
||||
# If autoframeskip is true, skip up to this many frames to maintain clock schedule; if autoframeskip is false, skip exactly this many frames
|
||||
maxframeskip = 0
|
||||
|
||||
|
||||
[Video-Rice]
|
||||
|
||||
# Mupen64Plus Rice Video Plugin config parameter version number
|
||||
Version = 1
|
||||
# Frame Buffer Emulation (0=ROM default, 1=disable)
|
||||
FrameBufferSetting = 0
|
||||
# Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc)
|
||||
FrameBufferWriteBackControl = 0
|
||||
# Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload)
|
||||
RenderToTexture = 0
|
||||
# Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn)
|
||||
ScreenUpdateSetting = 4
|
||||
# Force to use normal alpha blender
|
||||
NormalAlphaBlender = False
|
||||
# Use a faster algorithm to speed up texture loading and CRC computation
|
||||
FastTextureLoading = False
|
||||
# Use different texture coordinate clamping code
|
||||
AccurateTextureMapping = True
|
||||
# Force emulated frame buffers to be in N64 native resolution
|
||||
InN64Resolution = False
|
||||
# Try to reduce Video RAM usage (should never be used)
|
||||
SaveVRAM = False
|
||||
# Enable this option to have better render-to-texture quality
|
||||
DoubleSizeForSmallTxtrBuf = False
|
||||
# Force to use normal color combiner
|
||||
DefaultCombinerDisable = False
|
||||
# Enable game-specific settings from INI file
|
||||
EnableHacks = True
|
||||
# If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode
|
||||
WinFrameMode = False
|
||||
# N64 Texture Memory Full Emulation (may fix some games, may break others)
|
||||
FullTMEMEmulation = False
|
||||
# Enable vertex clipper for fog operations
|
||||
OpenGLVertexClipper = False
|
||||
# Enable/Disable SSE optimizations for capable CPUs
|
||||
EnableSSE = True
|
||||
# If this option is enabled, the plugin will skip every other frame
|
||||
SkipFrame = False
|
||||
# If enabled, texture enhancement will be done only for TxtRect ucode
|
||||
TexRectOnly = False
|
||||
# If enabled, texture enhancement will be done only for textures width+height<=128
|
||||
SmallTextureOnly = False
|
||||
# Select hi-resolution textures based only on the CRC and ignore format+size information (Glide64 compatibility)
|
||||
LoadHiResCRCOnly = True
|
||||
# Enable hi-resolution texture file loading
|
||||
LoadHiResTextures = False
|
||||
# Enable texture dumping
|
||||
DumpTexturesToFiles = False
|
||||
# Display On-screen FPS
|
||||
ShowFPS = False
|
||||
# Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear
|
||||
Mipmapping = 2
|
||||
# Enable, Disable fog generation (0=Disable, 1=Enable)
|
||||
FogMethod = 1
|
||||
# Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering)
|
||||
ForceTextureFilter = 0
|
||||
# Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored)
|
||||
TextureEnhancement = 0
|
||||
# Secondary texture enhancement filter (0 = none, 1-4 = filtered)
|
||||
TextureEnhancementControl = 0
|
||||
# Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits)
|
||||
TextureQuality = 0
|
||||
# Z-buffer depth (only 16 or 32)
|
||||
OpenGLDepthBufferSetting = 16
|
||||
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
|
||||
MultiSampling = 0
|
||||
# Color bit depth for rendering window (0=32 bits, 1=16 bits)
|
||||
ColorQuality = 1
|
||||
# OpenGL level to support (0=auto, 1=OGL_FRAGMENT_PROGRAM)
|
||||
OpenGLRenderSetting = 0
|
||||
# Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering
|
||||
AnisotropicFiltering = 0
|
||||
# If true, use polygon offset values specified below
|
||||
ForcePolygonOffset = False
|
||||
# Specifies a scale factor that is used to create a variable depth offset for each polygon
|
||||
PolygonOffsetFactor = 0.000000
|
||||
# Is multiplied by an implementation-specific value to create a constant depth offset
|
||||
PolygonOffsetUnits = 0.000000
|
|
@ -0,0 +1,25 @@
|
|||
; RG552 Gamepad - default.ini
|
||||
[rg552_joypad]
|
||||
plugged = True
|
||||
mouse = False
|
||||
AnalogDeadzone = 0,0
|
||||
AnalogPeak = 32768,32768
|
||||
DPad R = button(16)
|
||||
DPad L = button(15)
|
||||
DPad D = button(14)
|
||||
DPad U = button(13)
|
||||
Start = button(9)
|
||||
Z Trig = button(6)
|
||||
B Button = button(3)
|
||||
A Button = button(0)
|
||||
C Button R = axis(2+)
|
||||
C Button L = axis(2-)
|
||||
C Button D = axis(3+)
|
||||
C Button U = axis(3-)
|
||||
R Trig = button(5)
|
||||
L Trig = button(4)
|
||||
Mempak switch =
|
||||
Rumblepak switch =
|
||||
# Analog axis configuration mappings
|
||||
X Axis = axis(0-,0+)
|
||||
Y Axis = axis(1-,1+)
|
|
@ -0,0 +1,25 @@
|
|||
; RG552 Gamepad - zlswap.ini
|
||||
[rg552_joypad]
|
||||
plugged = True
|
||||
mouse = False
|
||||
AnalogDeadzone = 0,0
|
||||
AnalogPeak = 32768,32768
|
||||
DPad R = button(16)
|
||||
DPad L = button(15)
|
||||
DPad D = button(14)
|
||||
DPad U = button(13)
|
||||
Start = button(9)
|
||||
Z Trig = button(4)
|
||||
B Button = button(3)
|
||||
A Button = button(0)
|
||||
C Button R = axis(2+)
|
||||
C Button L = axis(2-)
|
||||
C Button D = axis(3+)
|
||||
C Button U = axis(3-)
|
||||
R Trig = button(5)
|
||||
L Trig = button(6)
|
||||
Mempak switch =
|
||||
Rumblepak switch =
|
||||
# Analog axis configuration mappings
|
||||
X Axis = axis(0-,0+)
|
||||
Y Axis = axis(1-,1+)
|
|
@ -0,0 +1,18 @@
|
|||
# See https://wiki.libsdl.org/SDL_Keycode for key names
|
||||
|
||||
[general]
|
||||
fastforward = "Space"
|
||||
reset = "F9"
|
||||
fullscreen = "F10"
|
||||
|
||||
[gba]
|
||||
a = "A"
|
||||
b = "S"
|
||||
l = "D"
|
||||
r = "F"
|
||||
start = "Return"
|
||||
select = "Backspace"
|
||||
up = "Up"
|
||||
down = "Down"
|
||||
left = "Left"
|
||||
right = "Right"
|
|
@ -0,0 +1,18 @@
|
|||
# See https://wiki.libsdl.org/SDL_Keycode for key names
|
||||
|
||||
[general]
|
||||
fastforward = "Space"
|
||||
reset = "F9"
|
||||
fullscreen = "F10"
|
||||
|
||||
[gba]
|
||||
a = "A"
|
||||
b = "S"
|
||||
l = "D"
|
||||
r = "F"
|
||||
start = "Return"
|
||||
select = "Backspace"
|
||||
up = "Up"
|
||||
down = "Down"
|
||||
left = "Left"
|
||||
right = "Right"
|
1
packages/emulators/standalone/retroarch/sources/RK3588-ACE
Symbolic link
1
packages/emulators/standalone/retroarch/sources/RK3588-ACE
Symbolic link
|
@ -0,0 +1 @@
|
|||
RK3588
|
|
@ -10,7 +10,7 @@ PKG_TOOLCHAIN="meson"
|
|||
PKG_PATCH_DIRS+=" ${DEVICE}"
|
||||
|
||||
case ${DEVICE} in
|
||||
RK3588)
|
||||
RK3588*)
|
||||
PKG_VERSION="120202c675749c5ef81ae4c8cdc30019b4de08f4"
|
||||
PKG_SITE="https://gitlab.com/panfork/mesa"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
19
packages/hardware/quirks/devices/Gameforce Ace/001-device_config
Executable file
19
packages/hardware/quirks/devices/Gameforce Ace/001-device_config
Executable file
|
@ -0,0 +1,19 @@
|
|||
/storage/.config/profile.d/001-device_config#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/001-device_config
|
||||
# Device Features
|
||||
#DEVICE_FAKE_JACKSENSE="true"
|
||||
DEVICE_VOLUMECTL="true"
|
||||
#DEVICE_AUDIO_MIXER="DAC"
|
||||
#DEVICE_PLAYBACK_PATH_SPK="1*"
|
||||
#DEVICE_PLAYBACK_PATH_HP="0*"
|
||||
DEVICE_BRIGHTNESS="128"
|
||||
#DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-es8316-sound-event"
|
||||
#DEVICE_HAS_HDMI="true"
|
||||
#DEVICE_BATTERY_LED_STATUS="true"
|
||||
#DEVICE_PWR_LED_CONTROL="true"
|
||||
|
||||
DEVICE_TEMP_SENSOR=("/sys/devices/virtual/thermal/thermal_zone0/temp" "/sys/devices/virtual/thermal/thermal_zone1/temp")
|
||||
EOF
|
9
packages/hardware/quirks/devices/Gameforce Ace/020-fan_control
Executable file
9
packages/hardware/quirks/devices/Gameforce Ace/020-fan_control
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/020-fan_control
|
||||
DEVICE_HAS_FAN="true"
|
||||
DEVICE_PWM_FAN="/sys/class/hwmon/hwmon8/pwm1"
|
||||
DEVICE_FAN_INPUT="/sys/class/hwmon/hwmon8/pwm1"
|
||||
EOF
|
10
packages/hardware/quirks/devices/Gameforce Ace/050-modifiers
Normal file
10
packages/hardware/quirks/devices/Gameforce Ace/050-modifiers
Normal file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/050-modifiers
|
||||
DEVICE_KEY_VOLUMEDOWN=114
|
||||
DEVICE_KEY_VOLUMEUP=115
|
||||
DEVICE_FUNC_KEYA_MODIFIER="BTN_SELECT"
|
||||
DEVICE_FUNC_KEYB_MODIFIER="BTN_MODE"
|
||||
EOF
|
83
packages/hardware/quirks/devices/Gameforce Ace/bin/fancontrol
Executable file
83
packages/hardware/quirks/devices/Gameforce Ace/bin/fancontrol
Executable file
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
DEBUG=false
|
||||
COOLING_PROFILE=$(get_setting "cooling.profile")
|
||||
FAN_PWM="${DEVICE_PWM_FAN}"
|
||||
|
||||
log $0 "Setting profile to ${COOLING_PROFILE}"
|
||||
|
||||
function set_control() {
|
||||
log $0 "Set fan control to ${1}"
|
||||
if [ -e "${DEVICE_PWM_FAN}_enable" ]
|
||||
then
|
||||
echo ${1} >${DEVICE_PWM_FAN}_enable
|
||||
fi
|
||||
}
|
||||
|
||||
trap "set_control 0 && exit 0" SIGHUP SIGINT SIGQUIT SIGABRT
|
||||
|
||||
if [ -e "/storage/.config/fancontrol.conf" ] && [ "${COOLING_PROFILE}" = "custom" ]
|
||||
then
|
||||
log $0 "Loading configuration file" 2>/dev/null
|
||||
source /storage/.config/fancontrol.conf
|
||||
if [ ! $? = 0 ]
|
||||
then
|
||||
WARN="Custom fan profile could not be loaded, defaulting to auto."
|
||||
log $0 "${WARN}"
|
||||
COOLING_PROFILE="auto"
|
||||
set_setting cooling.profile auto
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ ! "${COOLING_PROFILE}" = "custom" ]
|
||||
then
|
||||
if [ "${COOLING_PROFILE}" = "aggressive" ]
|
||||
then
|
||||
SPEEDS=(255 225 195)
|
||||
TEMPS=(55000 45000 0)
|
||||
elif [ "${COOLING_PROFILE}" = "moderate" ]
|
||||
then
|
||||
SPEEDS=(255 192 128 96)
|
||||
TEMPS=(65000 55000 45000 0)
|
||||
elif [ "${COOLING_PROFILE}" = "quiet" ]
|
||||
then
|
||||
# Quiet.
|
||||
SPEEDS=(255 192 128 96 64 48 32)
|
||||
TEMPS=(70000 60000 55000 50000 49000 47000 0)
|
||||
else
|
||||
# auto
|
||||
set_control 0 >/dev/null 2>&1
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
log $0 "Enabling fan control."
|
||||
set_control 1 >/dev/null 2>&1
|
||||
|
||||
while true
|
||||
do
|
||||
INDEX=0
|
||||
CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
|
||||
$DEBUG && log $0 "CPU TEMP: ${CPU_TEMP}" 2>/dev/null
|
||||
for TEMP in "${TEMPS[@]}"
|
||||
do
|
||||
if (( "${CPU_TEMP}" > "${TEMP}" )) && \
|
||||
[ ! "${LASTSPEED}" = "${SPEEDS[${INDEX}]}" ]
|
||||
then
|
||||
$DEBUG && log $0 "Setting PWM FAN to ${SPEEDS[${INDEX}]} (${TEMP})" 2>/dev/null
|
||||
echo ${SPEEDS[${INDEX}]} >${FAN_PWM}
|
||||
LASTSPEED=${SPEEDS[${INDEX}]}
|
||||
break
|
||||
fi
|
||||
INDEX=$(( $INDEX + 1 ))
|
||||
done
|
||||
sleep 2
|
||||
done
|
||||
|
||||
log $0 "Disabling fan control."
|
||||
set_control 0 >/dev/null 2>&1
|
1
packages/hardware/quirks/platforms/RK3588-ACE
Symbolic link
1
packages/hardware/quirks/platforms/RK3588-ACE
Symbolic link
|
@ -0,0 +1 @@
|
|||
RK3588
|
18
packages/kernel/firmware/ap6256-firmware/package.mk
Normal file
18
packages/kernel/firmware/ap6256-firmware/package.mk
Normal file
|
@ -0,0 +1,18 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="ap6256-firmware"
|
||||
PKG_VERSION="6b6f053f6089e08dd2a675cda1ec813de2e842e2"
|
||||
PKG_LICENSE="Apache"
|
||||
PKG_SITE="https://github.com/armbian/firmware"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_NEED_UNPACK="${LINUX_DEPENDS}"
|
||||
PKG_LONGDESC="ap6256 Linux firmware"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/$(get_kernel_overlay_dir)/lib/firmware/brcm
|
||||
cp -av brcm/brcmfmac43456-sdio.bin ${INSTALL}/$(get_kernel_overlay_dir)/lib/firmware/brcm/
|
||||
cp -av brcm/brcmfmac43456-sdio.txt ${INSTALL}/$(get_kernel_overlay_dir)/lib/firmware/brcm/
|
||||
}
|
|
@ -8,8 +8,17 @@ PKG_ARCH="arm aarch64"
|
|||
PKG_DEPENDS_TARGET="kernel-firmware"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
PKG_LONGDESC="Mali blob needed for RK3588 gpu"
|
||||
PKG_ACE_FIRMWARE="https://github.com/JeffyCN/mirrors/raw/ca33693a03b2782edc237d1d3b786f94849bed7d/firmware/g610/mali_csffw.bin"
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/$(get_full_firmware_dir)
|
||||
cp -rf ${PKG_DIR}/firmware/* ${INSTALL}/$(get_full_firmware_dir)/
|
||||
case ${DEVICE} in
|
||||
RK3588-ACE)
|
||||
# RK Linux 6.1 reequires libmali v18 for the moment
|
||||
curl -Lo ${INSTALL}/$(get_full_firmware_dir)/mali_csffw.bin ${PKG_ACE_FIRMWARE}
|
||||
;;
|
||||
*)
|
||||
cp -rf ${PKG_DIR}/firmware/* ${INSTALL}/$(get_full_firmware_dir)/
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
26
packages/wayland/weston/config/kiosk.ini.ace
Normal file
26
packages/wayland/weston/config/kiosk.ini.ace
Normal file
|
@ -0,0 +1,26 @@
|
|||
[core]
|
||||
idle-time=0
|
||||
backend=drm-backend.so
|
||||
shell=kiosk-shell.so
|
||||
modules=systemd-notify.so,kiosk-shell-dpms.so
|
||||
xwayland=true
|
||||
|
||||
[output]
|
||||
name=DSI-1
|
||||
mode=1080x1920@60.0
|
||||
transform=rotate-270
|
||||
|
||||
[xwayland]
|
||||
path=/usr/bin/Xwayland
|
||||
|
||||
[terminal]
|
||||
font-size=@WESTONFONTSIZE@
|
||||
|
||||
[shell]
|
||||
background-color=0x00000000
|
||||
clock-format=minutes-24h
|
||||
locking=false
|
||||
|
||||
[autolaunch]
|
||||
path=@STARTUP@
|
||||
watch=true
|
24
packages/wayland/weston/config/weston.ini.ace
Normal file
24
packages/wayland/weston/config/weston.ini.ace
Normal file
|
@ -0,0 +1,24 @@
|
|||
[core]
|
||||
idle-time=0
|
||||
backend=drm-backend.so
|
||||
xwayland=true
|
||||
|
||||
[output]
|
||||
name=DSI-1
|
||||
mode=1080x1920@60.0
|
||||
transform=rotate-270
|
||||
|
||||
[xwayland]
|
||||
path=/usr/bin/Xwayland
|
||||
|
||||
[terminal]
|
||||
font-size=@WESTONFONTSIZE@
|
||||
|
||||
[shell]
|
||||
background-color=0x00000000
|
||||
clock-format=minutes-24h
|
||||
locking=false
|
||||
|
||||
[launcher]
|
||||
path=/usr/bin/weston-terminal
|
||||
icon=/usr/share/weston/terminal.png
|
|
@ -59,7 +59,12 @@ post_makeinstall_target() {
|
|||
cp ${PKG_DIR}/scripts/weston-config ${INSTALL}/usr/lib/weston
|
||||
|
||||
mkdir -p ${INSTALL}/usr/share/weston
|
||||
if [ ${DEVICE} = "RK3588-ACE" ]; then
|
||||
cp ${PKG_DIR}/config/weston.ini.ace ${INSTALL}/usr/share/weston/weston.ini
|
||||
cp ${PKG_DIR}/config/kiosk.ini.ace ${INSTALL}/usr/share/weston/kiosk.ini
|
||||
else
|
||||
cp ${PKG_DIR}/config/*ini ${INSTALL}/usr/share/weston
|
||||
fi
|
||||
|
||||
safe_remove ${INSTALL}/usr/share/wayland-sessions
|
||||
|
||||
|
|
8826
projects/Rockchip/devices/RK3588-ACE/linux/linux.aarch64.conf
Normal file
8826
projects/Rockchip/devices/RK3588-ACE/linux/linux.aarch64.conf
Normal file
File diff suppressed because it is too large
Load diff
171
projects/Rockchip/devices/RK3588-ACE/options
Executable file
171
projects/Rockchip/devices/RK3588-ACE/options
Executable file
|
@ -0,0 +1,171 @@
|
|||
################################################################################
|
||||
# setup device defaults
|
||||
################################################################################
|
||||
|
||||
# The TARGET_CPU variable controls which processor should be targeted for
|
||||
# generated code.
|
||||
case ${TARGET_ARCH} in
|
||||
aarch64)
|
||||
TARGET_KERNEL_ARCH="arm64"
|
||||
TARGET_PATCH_ARCH="aarch64"
|
||||
TARGET_CPU="cortex-a76.cortex-a55"
|
||||
TARGET_CPU_FLAGS="+crc+crypto"
|
||||
TARGET_FPU="fp-armv8"
|
||||
TARGET_FLOAT="hard"
|
||||
TARGET_FEATURES="64bit"
|
||||
;;
|
||||
arm)
|
||||
TARGET_KERNEL_ARCH="arm64"
|
||||
TARGET_PATCH_ARCH="aarch64"
|
||||
TARGET_CPU="cortex-a76.cortex-a55"
|
||||
TARGET_CPU_FLAGS="+crc"
|
||||
TARGET_FPU="crypto-neon-fp-armv8"
|
||||
TARGET_FLOAT="hard"
|
||||
TARGET_FEATURES="32bit"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Kernel target
|
||||
DEVICE_NAME="RK3588-ACE"
|
||||
KERNEL_TARGET="Image"
|
||||
BOOTLOADER="u-boot"
|
||||
PARTITION_TABLE="gpt"
|
||||
UBOOT_LABEL="uboot"
|
||||
|
||||
# Single dtb settings
|
||||
TRUST_LABEL="trust"
|
||||
DEVICE_DTB=("rk3588s-gameforce-ace")
|
||||
UBOOT_DTB="${DEVICE_DTB[0]}"
|
||||
|
||||
# Multi dtb settings
|
||||
#TRUST_LABEL="resource"
|
||||
#DEVICE_DTB=("rk3588s-orangepi-5" "rk3588-rock-5b" "rk3588s-indiedroid-nova")
|
||||
#UBOOT_DTB="rk3588-evb"
|
||||
|
||||
UBOOT_CONFIG="orangepi_5_defconfig"
|
||||
PKG_SOC="rk3588"
|
||||
PKG_DATAFILE="${PKG_RKBIN}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin"
|
||||
PKG_LOADER="spl/u-boot-spl.bin"
|
||||
PKG_BL31="${PKG_RKBIN}/bin/rk35/rk3588_bl31_v1.38.elf"
|
||||
PKG_LOAD_ADDR="0x00200000"
|
||||
BOOT_INI=false
|
||||
EXT_LINUX_CONF=true
|
||||
|
||||
# Additional kernel make parameters (for example to specify the u-boot loadaddress)
|
||||
KERNEL_MAKE_EXTRACMD=" $(for DTB in "${DEVICE_DTB[@]}"; do echo -n "rockchip/${DTB}.dtb "; done)"
|
||||
|
||||
# Define the CPU
|
||||
HW_CPU="Rockchip RK3588"
|
||||
|
||||
# Mali GPU family
|
||||
MALI_FAMILY="g610"
|
||||
GRAPHIC_DRIVERS="panfrost"
|
||||
|
||||
# OpenGL(X) implementation to use (mesa / no)
|
||||
OPENGL="mesa"
|
||||
|
||||
# OpenGL-ES implementation to use (mesa / no)
|
||||
OPENGLES="mesa"
|
||||
|
||||
# Displayserver to use (weston / x11 / no)
|
||||
DISPLAYSERVER="wl"
|
||||
|
||||
# Windowmanager to use (fluxbox / weston / no)
|
||||
WINDOWMANAGER="weston"
|
||||
|
||||
# kernel serial console
|
||||
EXTRA_CMDLINE="rootwait quiet systemd.debug_shell=ttyFIQ0 earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 console=tty0 fbcon=rotate:1 coherent_pool=2M"
|
||||
|
||||
# additional packages to install
|
||||
# ADDITIONAL_PACKAGES=""
|
||||
|
||||
# additional Firmware to use ( )
|
||||
# Space separated list is supported,
|
||||
# e.g. FIRMWARE=""
|
||||
FIRMWARE="libmali_rk3588 RTL8821CS-firmware ap6256-firmware"
|
||||
|
||||
# additional drivers to install:
|
||||
# for a list of additional drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS+=" RTW89 jelos-gamepad"
|
||||
|
||||
# build and install driver addons (yes / no)
|
||||
DRIVER_ADDONS_SUPPORT="no"
|
||||
|
||||
# driver addons to install:
|
||||
# for a list of additinoal drivers see packages/linux-driver-addons
|
||||
# Space separated list is supported,
|
||||
DRIVER_ADDONS=""
|
||||
|
||||
# debug tty path
|
||||
DEBUG_TTY="/dev/ttyFIQ0"
|
||||
|
||||
# Disable 32BIT support
|
||||
ENABLE_32BIT="true"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
# build and install Avahi (Zeroconf) daemon (yes / no)
|
||||
AVAHI_DAEMON="no"
|
||||
|
||||
# build with NFS support (mounting nfs shares via the OS) (yes / no)
|
||||
NFS_SUPPORT="no"
|
||||
|
||||
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
|
||||
SAMBA_SUPPORT="no"
|
||||
|
||||
# build and install Samba Server (yes / no)
|
||||
SAMBA_SERVER="yes"
|
||||
|
||||
# build and install SFTP Server (yes / no)
|
||||
SFTP_SERVER="yes"
|
||||
|
||||
# build and install Simple HTTP Server (yes / no)
|
||||
SIMPLE_HTTP_SERVER="yes"
|
||||
|
||||
# build and install OpenVPN support (yes / no)
|
||||
OPENVPN_SUPPORT="no"
|
||||
|
||||
# build and install ZeroTier support (yes / no)
|
||||
ZEROTIER_SUPPORT="yes"
|
||||
|
||||
# build and install diskmounter support (udevil)
|
||||
# this service provide auto mounting support for external drives in the
|
||||
# mediacenter also automount internally drives at boottime via udev (yes / no)
|
||||
UDEVIL="yes"
|
||||
|
||||
# build and install exFAT fuse support (yes / no)
|
||||
EXFAT="yes"
|
||||
|
||||
# build and install NTFS-3G fuse support (yes / no)
|
||||
NTFS3G="no"
|
||||
|
||||
# build and install hfs filesystem utilities (yes / no)
|
||||
HFSTOOLS="no"
|
||||
|
||||
# Support for partitioning and formating disks in initramfs (yes / no)
|
||||
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
||||
INITRAMFS_PARTED_SUPPORT="no"
|
||||
|
||||
# build with swap support (yes / no)
|
||||
SWAP_SUPPORT="yes"
|
||||
|
||||
# swap support enabled per default (yes / no)
|
||||
SWAP_ENABLED_DEFAULT="yes"
|
||||
|
||||
# swapfile size if SWAP_SUPPORT=yes in MB
|
||||
SWAPFILESIZE="384"
|
||||
|
||||
# Some devices have internal storage.
|
||||
INSTALLER_SUPPORT="yes"
|
||||
|
||||
# cron support (yes / no)
|
||||
CRON_SUPPORT="no"
|
||||
|
||||
# Settings package name - blank if not required
|
||||
DISTRO_PKG_SETTINGS=""
|
||||
|
||||
# htop tool (yes / no)
|
||||
HTOP_TOOL="yes"
|
|
@ -16,12 +16,17 @@ PKG_STAMP="${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD}"
|
|||
PKG_PATCH_DIRS+="${DEVICE}"
|
||||
|
||||
case ${DEVICE} in
|
||||
RK358*)
|
||||
RK3588)
|
||||
PKG_VERSION="eef98210c4984831d1706f884c95eec132c791e1"
|
||||
PKG_URL="${PKG_SITE}/rk358x-kernel.git"
|
||||
GET_HANDLER_SUPPORT="git"
|
||||
PKG_GIT_CLONE_BRANCH="main"
|
||||
;;
|
||||
RK3588-ACE)
|
||||
PKG_VERSION="99e54e1a546eca7fa8d5b86be1b825914e097d06"
|
||||
PKG_URL="https://github.com/brooksytech/linux-rockchip/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_GIT_CLONE_BRANCH="panfork-6.1"
|
||||
;;
|
||||
RK3399|RK3326|RK-ARMV8-A)
|
||||
PKG_VERSION="6.7.6"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,743 @@
|
|||
diff -rupN linux.orig/Makefile linux/Makefile
|
||||
--- linux.orig/Makefile 2024-02-20 15:29:33.987442662 +0000
|
||||
+++ linux/Makefile 2024-02-20 16:30:19.099604354 +0000
|
||||
@@ -568,7 +568,7 @@ LINUXINCLUDE := \
|
||||
KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
|
||||
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
|
||||
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
|
||||
- -Werror=implicit-function-declaration -Werror=implicit-int \
|
||||
+ -Werror=implicit-int \
|
||||
-Werror=return-type -Wno-format-security \
|
||||
-std=gnu11
|
||||
KBUILD_CPPFLAGS := -D__KERNEL__
|
||||
diff -rupN linux.orig/drivers/gpu/drm/panel/Kconfig linux/drivers/gpu/drm/panel/Kconfig
|
||||
--- linux.orig/drivers/gpu/drm/panel/Kconfig 2024-02-20 15:29:34.639464011 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/Kconfig 2024-02-20 16:20:00.804814361 +0000
|
||||
@@ -154,6 +154,15 @@ config DRM_PANEL_FEIYANG_FY07024DI26A30D
|
||||
Say Y if you want to enable support for panels based on the
|
||||
Feiyang FY07024DI26A30-D MIPI-DSI interface.
|
||||
|
||||
+config DRM_PANEL_HIMAX_HX8394
|
||||
+ tristate "HIMAX HX8394 MIPI-DSI LCD panel"
|
||||
+ depends on OF
|
||||
+ depends on DRM_MIPI_DSI
|
||||
+ depends on BACKLIGHT_CLASS_DEVICE
|
||||
+ help
|
||||
+ Say Y if you want to enable support for panels based on the
|
||||
+ HIMAX HX8394 MIPI-DSI interface.
|
||||
+
|
||||
config DRM_PANEL_ILITEK_IL9322
|
||||
tristate "Ilitek ILI9322 320x240 QVGA panels"
|
||||
depends on OF && SPI
|
||||
diff -rupN linux.orig/drivers/gpu/drm/panel/Makefile linux/drivers/gpu/drm/panel/Makefile
|
||||
--- linux.orig/drivers/gpu/drm/panel/Makefile 2024-02-20 15:29:34.639464011 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/Makefile 2024-02-20 16:16:03.525879814 +0000
|
||||
@@ -13,6 +13,7 @@ obj-$(CONFIG_DRM_PANEL_EBBG_FT8719) += p
|
||||
obj-$(CONFIG_DRM_PANEL_ELIDA_KD35T133) += panel-elida-kd35t133.o
|
||||
obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) += panel-feixin-k101-im2ba02.o
|
||||
obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += panel-feiyang-fy07024di26a30d.o
|
||||
+obj-$(CONFIG_DRM_PANEL_HIMAX_HX8394) += panel-himax-hx8394.o
|
||||
obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o
|
||||
obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o
|
||||
obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881c.o
|
||||
diff -rupN linux.orig/drivers/gpu/drm/panel/panel-himax-hx8394.c linux/drivers/gpu/drm/panel/panel-himax-hx8394.c
|
||||
--- linux.orig/drivers/gpu/drm/panel/panel-himax-hx8394.c 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/panel-himax-hx8394.c 2024-02-20 16:14:26.146716456 +0000
|
||||
@@ -0,0 +1,697 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Driver for panels based on Himax HX8394 controller, such as:
|
||||
+ *
|
||||
+ * - HannStar HSD060BHW4 5.99" MIPI-DSI panel
|
||||
+ *
|
||||
+ * Copyright (C) 2021 Kamil Trzciński
|
||||
+ *
|
||||
+ * Based on drivers/gpu/drm/panel/panel-sitronix-st7703.c
|
||||
+ * Copyright (C) Purism SPC 2019
|
||||
+ */
|
||||
+
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/gpio/consumer.h>
|
||||
+#include <linux/media-bus-format.h>
|
||||
+#include <linux/mod_devicetable.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/regulator/consumer.h>
|
||||
+
|
||||
+#include <video/mipi_display.h>
|
||||
+
|
||||
+#include <drm/drm_mipi_dsi.h>
|
||||
+#include <drm/drm_modes.h>
|
||||
+#include <drm/drm_panel.h>
|
||||
+
|
||||
+#define DRV_NAME "panel-himax-hx8394"
|
||||
+
|
||||
+/* Manufacturer specific commands sent via DSI, listed in HX8394-F datasheet */
|
||||
+#define HX8394_CMD_SETSEQUENCE 0xb0
|
||||
+#define HX8394_CMD_SETPOWER 0xb1
|
||||
+#define HX8394_CMD_SETDISP 0xb2
|
||||
+#define HX8394_CMD_SETCYC 0xb4
|
||||
+#define HX8394_CMD_SETVCOM 0xb6
|
||||
+#define HX8394_CMD_SETTE 0xb7
|
||||
+#define HX8394_CMD_SETSENSOR 0xb8
|
||||
+#define HX8394_CMD_SETEXTC 0xb9
|
||||
+#define HX8394_CMD_SETMIPI 0xba
|
||||
+#define HX8394_CMD_SETOTP 0xbb
|
||||
+#define HX8394_CMD_SETREGBANK 0xbd
|
||||
+#define HX8394_CMD_UNKNOWN5 0xbf
|
||||
+#define HX8394_CMD_UNKNOWN1 0xc0
|
||||
+#define HX8394_CMD_SETDGCLUT 0xc1
|
||||
+#define HX8394_CMD_SETID 0xc3
|
||||
+#define HX8394_CMD_SETDDB 0xc4
|
||||
+#define HX8394_CMD_UNKNOWN2 0xc6
|
||||
+#define HX8394_CMD_SETCABC 0xc9
|
||||
+#define HX8394_CMD_SETCABCGAIN 0xca
|
||||
+#define HX8394_CMD_SETPANEL 0xcc
|
||||
+#define HX8394_CMD_SETOFFSET 0xd2
|
||||
+#define HX8394_CMD_SETGIP0 0xd3
|
||||
+#define HX8394_CMD_UNKNOWN3 0xd4
|
||||
+#define HX8394_CMD_SETGIP1 0xd5
|
||||
+#define HX8394_CMD_SETGIP2 0xd6
|
||||
+#define HX8394_CMD_SETGPO 0xd6
|
||||
+#define HX8394_CMD_UNKNOWN4 0xd8
|
||||
+#define HX8394_CMD_SETGIP3 0xd8
|
||||
+#define HX8394_CMD_SETSCALING 0xdd
|
||||
+#define HX8394_CMD_SETIDLE 0xdf
|
||||
+#define HX8394_CMD_SETGAMMA 0xe0
|
||||
+#define HX8394_CMD_SETCHEMODE_DYN 0xe4
|
||||
+#define HX8394_CMD_SETCHE 0xe5
|
||||
+#define HX8394_CMD_SETCESEL 0xe6
|
||||
+#define HX8394_CMD_SET_SP_CMD 0xe9
|
||||
+#define HX8394_CMD_SETREADINDEX 0xfe
|
||||
+#define HX8394_CMD_GETSPIREAD 0xff
|
||||
+
|
||||
+struct hx8394 {
|
||||
+ struct device *dev;
|
||||
+ struct drm_panel panel;
|
||||
+ struct gpio_desc *reset_gpio;
|
||||
+ struct regulator *vcc;
|
||||
+ struct regulator *iovcc;
|
||||
+ enum drm_panel_orientation orientation;
|
||||
+
|
||||
+ const struct hx8394_panel_desc *desc;
|
||||
+};
|
||||
+
|
||||
+struct hx8394_panel_desc {
|
||||
+ const struct drm_display_mode *mode;
|
||||
+ unsigned int lanes;
|
||||
+ unsigned long mode_flags;
|
||||
+ enum mipi_dsi_pixel_format format;
|
||||
+ int (*init_sequence)(struct hx8394 *ctx);
|
||||
+};
|
||||
+
|
||||
+static inline struct hx8394 *panel_to_hx8394(struct drm_panel *panel)
|
||||
+{
|
||||
+ return container_of(panel, struct hx8394, panel);
|
||||
+}
|
||||
+
|
||||
+static int hsd060bhw4_init_sequence(struct hx8394 *ctx)
|
||||
+{
|
||||
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
+
|
||||
+ /* 5.19.8 SETEXTC: Set extension command (B9h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETEXTC,
|
||||
+ 0xff, 0x83, 0x94);
|
||||
+
|
||||
+ /* 5.19.2 SETPOWER: Set power (B1h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
|
||||
+ 0x48, 0x11, 0x71, 0x09, 0x32, 0x24, 0x71, 0x31, 0x55, 0x30);
|
||||
+
|
||||
+ /* 5.19.9 SETMIPI: Set MIPI control (BAh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETMIPI,
|
||||
+ 0x63, 0x03, 0x68, 0x6b, 0xb2, 0xc0);
|
||||
+
|
||||
+ /* 5.19.3 SETDISP: Set display related register (B2h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETDISP,
|
||||
+ 0x00, 0x80, 0x78, 0x0c, 0x07);
|
||||
+
|
||||
+ /* 5.19.4 SETCYC: Set display waveform cycles (B4h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETCYC,
|
||||
+ 0x12, 0x63, 0x12, 0x63, 0x12, 0x63, 0x01, 0x0c, 0x7c, 0x55,
|
||||
+ 0x00, 0x3f, 0x12, 0x6b, 0x12, 0x6b, 0x12, 0x6b, 0x01, 0x0c,
|
||||
+ 0x7c);
|
||||
+
|
||||
+ /* 5.19.19 SETGIP0: Set GIP Option0 (D3h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP0,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1c, 0x00, 0x00, 0x32, 0x10,
|
||||
+ 0x09, 0x00, 0x09, 0x32, 0x15, 0xad, 0x05, 0xad, 0x32, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x37, 0x03, 0x0b, 0x0b, 0x37, 0x00, 0x00,
|
||||
+ 0x00, 0x0c, 0x40);
|
||||
+
|
||||
+ /* 5.19.20 Set GIP Option1 (D5h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP1,
|
||||
+ 0x19, 0x19, 0x18, 0x18, 0x1b, 0x1b, 0x1a, 0x1a, 0x00, 0x01,
|
||||
+ 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x20, 0x21, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x24, 0x25, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18);
|
||||
+
|
||||
+ /* 5.19.21 Set GIP Option2 (D6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP2,
|
||||
+ 0x18, 0x18, 0x19, 0x19, 0x1b, 0x1b, 0x1a, 0x1a, 0x07, 0x06,
|
||||
+ 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x25, 0x24, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x21, 0x20, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18);
|
||||
+
|
||||
+ /* 5.19.25 SETGAMMA: Set gamma curve related setting (E0h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGAMMA,
|
||||
+ 0x00, 0x04, 0x0c, 0x12, 0x14, 0x18, 0x1a, 0x18, 0x31, 0x3f,
|
||||
+ 0x4d, 0x4c, 0x54, 0x65, 0x6b, 0x70, 0x7f, 0x82, 0x7e, 0x8a,
|
||||
+ 0x99, 0x4a, 0x48, 0x49, 0x4b, 0x4a, 0x4c, 0x4b, 0x7f, 0x00,
|
||||
+ 0x04, 0x0c, 0x11, 0x13, 0x17, 0x1a, 0x18, 0x31,
|
||||
+ 0x3f, 0x4d, 0x4c, 0x54, 0x65, 0x6b, 0x70, 0x7f,
|
||||
+ 0x82, 0x7e, 0x8a, 0x99, 0x4a, 0x48, 0x49, 0x4b,
|
||||
+ 0x4a, 0x4c, 0x4b, 0x7f);
|
||||
+
|
||||
+ /* 5.19.17 SETPANEL (CCh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPANEL,
|
||||
+ 0x0b);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN1,
|
||||
+ 0x1f, 0x31);
|
||||
+
|
||||
+ /* 5.19.5 SETVCOM: Set VCOM voltage (B6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETVCOM,
|
||||
+ 0x7d, 0x7d);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN3,
|
||||
+ 0x02);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x01);
|
||||
+
|
||||
+ /* 5.19.2 SETPOWER: Set power (B1h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN3,
|
||||
+ 0xed);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_display_mode hsd060bhw4_mode = {
|
||||
+ .hdisplay = 720,
|
||||
+ .hsync_start = 720 + 40,
|
||||
+ .hsync_end = 720 + 40 + 46,
|
||||
+ .htotal = 720 + 40 + 46 + 40,
|
||||
+ .vdisplay = 1440,
|
||||
+ .vsync_start = 1440 + 9,
|
||||
+ .vsync_end = 1440 + 9 + 7,
|
||||
+ .vtotal = 1440 + 9 + 7 + 7,
|
||||
+ .clock = 74250,
|
||||
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
|
||||
+ .width_mm = 68,
|
||||
+ .height_mm = 136,
|
||||
+};
|
||||
+
|
||||
+static const struct hx8394_panel_desc hsd060bhw4_desc = {
|
||||
+ .mode = &hsd060bhw4_mode,
|
||||
+ .lanes = 4,
|
||||
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST,
|
||||
+ .format = MIPI_DSI_FMT_RGB888,
|
||||
+ .init_sequence = hsd060bhw4_init_sequence,
|
||||
+};
|
||||
+
|
||||
+static int powkiddy_x55_init_sequence(struct hx8394 *ctx)
|
||||
+{
|
||||
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
+
|
||||
+ /* 5.19.8 SETEXTC: Set extension command (B9h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETEXTC,
|
||||
+ 0xff, 0x83, 0x94);
|
||||
+
|
||||
+ /* 5.19.9 SETMIPI: Set MIPI control (BAh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETMIPI,
|
||||
+ 0x63, 0x03, 0x68, 0x6b, 0xb2, 0xc0);
|
||||
+
|
||||
+ /* 5.19.2 SETPOWER: Set power (B1h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
|
||||
+ 0x48, 0x12, 0x72, 0x09, 0x32, 0x54, 0x71, 0x71, 0x57, 0x47);
|
||||
+
|
||||
+ /* 5.19.3 SETDISP: Set display related register (B2h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETDISP,
|
||||
+ 0x00, 0x80, 0x64, 0x2c, 0x16, 0x2f);
|
||||
+
|
||||
+ /* 5.19.4 SETCYC: Set display waveform cycles (B4h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETCYC,
|
||||
+ 0x73, 0x74, 0x73, 0x74, 0x73, 0x74, 0x01, 0x0c, 0x86, 0x75,
|
||||
+ 0x00, 0x3f, 0x73, 0x74, 0x73, 0x74, 0x73, 0x74, 0x01, 0x0c,
|
||||
+ 0x86);
|
||||
+
|
||||
+ /* 5.19.5 SETVCOM: Set VCOM voltage (B6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETVCOM,
|
||||
+ 0x6e, 0x6e);
|
||||
+
|
||||
+ /* 5.19.19 SETGIP0: Set GIP Option0 (D3h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP0,
|
||||
+ 0x00, 0x00, 0x07, 0x07, 0x40, 0x07, 0x0c, 0x00, 0x08, 0x10,
|
||||
+ 0x08, 0x00, 0x08, 0x54, 0x15, 0x0a, 0x05, 0x0a, 0x02, 0x15,
|
||||
+ 0x06, 0x05, 0x06, 0x47, 0x44, 0x0a, 0x0a, 0x4b, 0x10, 0x07,
|
||||
+ 0x07, 0x0c, 0x40);
|
||||
+
|
||||
+ /* 5.19.20 Set GIP Option1 (D5h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP1,
|
||||
+ 0x1c, 0x1c, 0x1d, 0x1d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
|
||||
+ 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x24, 0x25, 0x18, 0x18,
|
||||
+ 0x26, 0x27, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x20, 0x21,
|
||||
+ 0x18, 0x18, 0x18, 0x18);
|
||||
+
|
||||
+ /* 5.19.21 Set GIP Option2 (D6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP2,
|
||||
+ 0x1c, 0x1c, 0x1d, 0x1d, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02,
|
||||
+ 0x01, 0x00, 0x0b, 0x0a, 0x09, 0x08, 0x21, 0x20, 0x18, 0x18,
|
||||
+ 0x27, 0x26, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x25, 0x24,
|
||||
+ 0x18, 0x18, 0x18, 0x18);
|
||||
+
|
||||
+ /* 5.19.25 SETGAMMA: Set gamma curve related setting (E0h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGAMMA,
|
||||
+ 0x00, 0x0a, 0x15, 0x1b, 0x1e, 0x21, 0x24, 0x22, 0x47, 0x56,
|
||||
+ 0x65, 0x66, 0x6e, 0x82, 0x88, 0x8b, 0x9a, 0x9d, 0x98, 0xa8,
|
||||
+ 0xb9, 0x5d, 0x5c, 0x61, 0x66, 0x6a, 0x6f, 0x7f, 0x7f, 0x00,
|
||||
+ 0x0a, 0x15, 0x1b, 0x1e, 0x21, 0x24, 0x22, 0x47, 0x56, 0x65,
|
||||
+ 0x65, 0x6e, 0x81, 0x87, 0x8b, 0x98, 0x9d, 0x99, 0xa8, 0xba,
|
||||
+ 0x5d, 0x5d, 0x62, 0x67, 0x6b, 0x72, 0x7f, 0x7f);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN1,
|
||||
+ 0x1f, 0x31);
|
||||
+
|
||||
+ /* 5.19.17 SETPANEL (CCh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPANEL,
|
||||
+ 0x0b);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN3,
|
||||
+ 0x02);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x02);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN4,
|
||||
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
+ 0xff, 0xff);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x01);
|
||||
+
|
||||
+ /* 5.19.2 SETPOWER: Set power (B1h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* 5.19.11 Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN5,
|
||||
+ 0x40, 0x81, 0x50, 0x00, 0x1a, 0xfc, 0x01);
|
||||
+
|
||||
+ /* Unknown command, not listed in the HX8394-F datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN2,
|
||||
+ 0xed);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_display_mode powkiddy_x55_mode = {
|
||||
+ .hdisplay = 720,
|
||||
+ .hsync_start = 720 + 44,
|
||||
+ .hsync_end = 720 + 44 + 20,
|
||||
+ .htotal = 720 + 44 + 20 + 20,
|
||||
+ .vdisplay = 1280,
|
||||
+ .vsync_start = 1280 + 12,
|
||||
+ .vsync_end = 1280 + 12 + 10,
|
||||
+ .vtotal = 1280 + 12 + 10 + 10,
|
||||
+ .clock = 63290,
|
||||
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
|
||||
+ .width_mm = 67,
|
||||
+ .height_mm = 121,
|
||||
+};
|
||||
+
|
||||
+static const struct hx8394_panel_desc powkiddy_x55_desc = {
|
||||
+ .mode = &powkiddy_x55_mode,
|
||||
+ .lanes = 4,
|
||||
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
|
||||
+ MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET,
|
||||
+ .format = MIPI_DSI_FMT_RGB888,
|
||||
+ .init_sequence = powkiddy_x55_init_sequence,
|
||||
+};
|
||||
+
|
||||
+static int gameforce_ace_init_sequence(struct hx8394 *ctx)
|
||||
+{
|
||||
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
+
|
||||
+ /* SETEXTC: Set extension command (B9h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETEXTC,
|
||||
+ 0xff, 0x83, 0x99);
|
||||
+
|
||||
+ /* SETOFFSET (D2h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETOFFSET,
|
||||
+ 0x77);
|
||||
+
|
||||
+ /* SETPOWER: Set power (B1h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
|
||||
+ 0x02, 0x04, 0x74, 0x94, 0x01, 0x32, 0x33, 0x11, 0x11, 0xAB,
|
||||
+ 0x4D, 0x56, 0x73, 0x02, 0x02);
|
||||
+
|
||||
+ /* SETDISP: Set display related register (B2h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETDISP,
|
||||
+ 0x00, 0x80, 0x80, 0xAE, 0x05, 0x07, 0x5A, 0x11, 0x00, 0x00,
|
||||
+ 0x10, 0x1E, 0x70, 0x03, 0xD4);
|
||||
+
|
||||
+ /* SETCYC: Set display waveform cycles (B4h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETCYC,
|
||||
+ 0x00, 0xFF, 0x02, 0xC0, 0x02, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x04,
|
||||
+ 0x06, 0x00, 0x32, 0x04, 0x0A, 0x08, 0x21, 0x03, 0x01, 0x00, 0x0F,
|
||||
+ 0xB8, 0x8B, 0x02, 0xC0, 0x02, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x04,
|
||||
+ 0x06, 0x00, 0x32, 0x04, 0x0A, 0x08, 0x01, 0x00, 0x0F, 0xB8, 0x01);
|
||||
+
|
||||
+ /* SETGIP0: Set GIP Option0 (D3h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP0,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x10, 0x04,
|
||||
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x01, 0x00, 0x05, 0x05, 0x07, 0x00, 0x00, 0x00, 0x05, 0x40);
|
||||
+
|
||||
+ /* Set GIP Option1 (D5h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP1,
|
||||
+ 0x18, 0x18, 0x19, 0x19, 0x18, 0x18, 0x21, 0x20, 0x01, 0x00, 0x07,
|
||||
+ 0x06, 0x05, 0x04, 0x03, 0x02, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
+ 0x2F, 0x2F, 0x30, 0x30, 0x31, 0x31, 0x18, 0x18, 0x18, 0x18);
|
||||
+
|
||||
+ /* Set GIP Option2 (D6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP2,
|
||||
+ 0x18, 0x18, 0x19, 0x19, 0x40, 0x40, 0x20, 0x21, 0x02, 0x03, 0x04,
|
||||
+ 0x05, 0x06, 0x07, 0x00, 0x01, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
|
||||
+ 0x2F, 0x2F, 0x30, 0x30, 0x31, 0x31, 0x40, 0x40, 0x40, 0x40);
|
||||
+
|
||||
+ /* Set GIP Option3 (D8h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP3,
|
||||
+ 0xA2, 0xAA, 0x02, 0xA0, 0xA2, 0xA8, 0x02, 0xA0, 0xB0, 0x00, 0x00,
|
||||
+ 0x00, 0xB0, 0x00, 0x00, 0x00);
|
||||
+
|
||||
+ /* Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x01);
|
||||
+
|
||||
+ /* Set GIP Option3 (D8h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP3,
|
||||
+ 0xB0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xE2, 0xAA, 0x03,
|
||||
+ 0xF0, 0xE2, 0xAA, 0x03, 0xF0);
|
||||
+
|
||||
+ /* Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x02);
|
||||
+
|
||||
+ /* Set GIP Option3 (D8h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP3,
|
||||
+ 0xE2, 0xAA, 0x03, 0xF0, 0xE2, 0xAA, 0x03, 0xF);
|
||||
+
|
||||
+ /* Set register bank (BDh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
|
||||
+ 0x00);
|
||||
+
|
||||
+ /* SETVCOM: Set VCOM voltage (B6h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETVCOM,
|
||||
+ 0x7A, 0x7A);
|
||||
+
|
||||
+ /* SETGAMMA: Set gamma curve related setting (E0h) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGAMMA,
|
||||
+ 0x00, 0x18, 0x27, 0x24, 0x5A, 0x68, 0x79, 0x78, 0x81, 0x8A, 0x92,
|
||||
+ 0x99, 0x9E, 0xA7, 0xAF, 0xB4, 0xB9, 0xC3, 0xC7, 0xD1, 0xC6, 0xD4,
|
||||
+ 0xD5, 0x6C, 0x67, 0x71, 0x77, 0x00, 0x00, 0x18, 0x27, 0x24, 0x5A,
|
||||
+ 0x68, 0x79, 0x78, 0x81, 0x8A, 0x92, 0x99, 0x9E, 0xA7, 0xAF, 0xB4,
|
||||
+ 0xB9, 0xC3, 0xC7, 0xD1, 0xC6, 0xD4, 0xD5, 0x6C, 0x67, 0x77);
|
||||
+
|
||||
+ /* Unknown command, C6h, not listed in the HX8399-c datasheet */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN2,
|
||||
+ 0xFF, 0xF9);
|
||||
+
|
||||
+ /* SETPANEL (CCh) */
|
||||
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPANEL,
|
||||
+ 0x08);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_display_mode gameforce_ace_mode = {
|
||||
+ .hdisplay = 1080,
|
||||
+ .hsync_start = 1080 + 32,
|
||||
+ .hsync_end = 1080 + 32 + 8,
|
||||
+ .htotal = 1080 + 32 + 8 + 32,
|
||||
+ .vdisplay = 1920,
|
||||
+ .vsync_start = 1920 + 16,
|
||||
+ .vsync_end = 1920 + 16 + 2,
|
||||
+ .vtotal = 1920 + 16 + 2 + 14,
|
||||
+ .clock = 12400,
|
||||
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
|
||||
+ .width_mm = 68,
|
||||
+ .height_mm = 120,
|
||||
+};
|
||||
+
|
||||
+static const struct hx8394_panel_desc gameforce_ace_desc = {
|
||||
+ .mode = &gameforce_ace_mode,
|
||||
+ .lanes = 4,
|
||||
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
|
||||
+ MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET,
|
||||
+ .format = MIPI_DSI_FMT_RGB888,
|
||||
+ .init_sequence = gameforce_ace_init_sequence,
|
||||
+};
|
||||
+
|
||||
+static int hx8394_enable(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = ctx->desc->init_sequence(ctx);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Panel init sequence failed: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ /* Panel is operational 120 msec after reset */
|
||||
+ msleep(120);
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_set_display_on(dsi);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Failed to turn on the display: %d\n", ret);
|
||||
+ goto sleep_in;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+sleep_in:
|
||||
+ /* This will probably fail, but let's try orderly power off anyway. */
|
||||
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
|
||||
+ if (!ret)
|
||||
+ msleep(50);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int hx8394_disable(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Failed to enter sleep mode: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ msleep(50); /* about 3 frames */
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int hx8394_unprepare(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
|
||||
+
|
||||
+ regulator_disable(ctx->iovcc);
|
||||
+ regulator_disable(ctx->vcc);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int hx8394_prepare(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+ int ret;
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
|
||||
+
|
||||
+ ret = regulator_enable(ctx->vcc);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Failed to enable vcc supply: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ ret = regulator_enable(ctx->iovcc);
|
||||
+ if (ret) {
|
||||
+ dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret);
|
||||
+ goto disable_vcc;
|
||||
+ }
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
|
||||
+
|
||||
+ msleep(180);
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+disable_vcc:
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
|
||||
+ regulator_disable(ctx->vcc);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int hx8394_get_modes(struct drm_panel *panel,
|
||||
+ struct drm_connector *connector)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+ struct drm_display_mode *mode;
|
||||
+
|
||||
+ mode = drm_mode_duplicate(connector->dev, ctx->desc->mode);
|
||||
+ if (!mode) {
|
||||
+ dev_err(ctx->dev, "Failed to add mode %ux%u@%u\n",
|
||||
+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
|
||||
+ drm_mode_vrefresh(ctx->desc->mode));
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
+ drm_mode_set_name(mode);
|
||||
+
|
||||
+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
|
||||
+ connector->display_info.width_mm = mode->width_mm;
|
||||
+ connector->display_info.height_mm = mode->height_mm;
|
||||
+ drm_mode_probed_add(connector, mode);
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static enum drm_panel_orientation hx8394_get_orientation(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
+
|
||||
+ return ctx->orientation;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_panel_funcs hx8394_drm_funcs = {
|
||||
+ .disable = hx8394_disable,
|
||||
+ .unprepare = hx8394_unprepare,
|
||||
+ .prepare = hx8394_prepare,
|
||||
+ .enable = hx8394_enable,
|
||||
+ .get_modes = hx8394_get_modes,
|
||||
+ .get_orientation = hx8394_get_orientation,
|
||||
+};
|
||||
+
|
||||
+static int hx8394_probe(struct mipi_dsi_device *dsi)
|
||||
+{
|
||||
+ struct device *dev = &dsi->dev;
|
||||
+ struct hx8394 *ctx;
|
||||
+ int ret;
|
||||
+
|
||||
+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
|
||||
+ if (!ctx)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
|
||||
+ if (IS_ERR(ctx->reset_gpio))
|
||||
+ return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio),
|
||||
+ "Failed to get reset gpio\n");
|
||||
+
|
||||
+ ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ mipi_dsi_set_drvdata(dsi, ctx);
|
||||
+
|
||||
+ ctx->dev = dev;
|
||||
+ ctx->desc = of_device_get_match_data(dev);
|
||||
+
|
||||
+ dsi->mode_flags = ctx->desc->mode_flags;
|
||||
+ dsi->format = ctx->desc->format;
|
||||
+ dsi->lanes = ctx->desc->lanes;
|
||||
+
|
||||
+ ctx->vcc = devm_regulator_get(dev, "vcc");
|
||||
+ if (IS_ERR(ctx->vcc))
|
||||
+ return dev_err_probe(dev, PTR_ERR(ctx->vcc),
|
||||
+ "Failed to request vcc regulator\n");
|
||||
+
|
||||
+ ctx->iovcc = devm_regulator_get(dev, "iovcc");
|
||||
+ if (IS_ERR(ctx->iovcc))
|
||||
+ return dev_err_probe(dev, PTR_ERR(ctx->iovcc),
|
||||
+ "Failed to request iovcc regulator\n");
|
||||
+
|
||||
+ drm_panel_init(&ctx->panel, dev, &hx8394_drm_funcs,
|
||||
+ DRM_MODE_CONNECTOR_DSI);
|
||||
+
|
||||
+ ret = drm_panel_of_backlight(&ctx->panel);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ drm_panel_add(&ctx->panel);
|
||||
+
|
||||
+ ret = mipi_dsi_attach(dsi);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err_probe(dev, ret, "mipi_dsi_attach failed\n");
|
||||
+ drm_panel_remove(&ctx->panel);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ dev_dbg(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
|
||||
+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
|
||||
+ drm_mode_vrefresh(ctx->desc->mode),
|
||||
+ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void hx8394_remove(struct mipi_dsi_device *dsi)
|
||||
+{
|
||||
+ struct hx8394 *ctx = mipi_dsi_get_drvdata(dsi);
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = mipi_dsi_detach(dsi);
|
||||
+ if (ret < 0)
|
||||
+ dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
|
||||
+
|
||||
+ drm_panel_remove(&ctx->panel);
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id hx8394_of_match[] = {
|
||||
+ { .compatible = "hannstar,hsd060bhw4", .data = &hsd060bhw4_desc },
|
||||
+ { .compatible = "powkiddy,x55-panel", .data = &powkiddy_x55_desc },
|
||||
+ { .compatible = "gameforce,ace-panel", .data = &gameforce_ace_desc },
|
||||
+ { /* sentinel */ }
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, hx8394_of_match);
|
||||
+
|
||||
+static struct mipi_dsi_driver hx8394_driver = {
|
||||
+ .probe = hx8394_probe,
|
||||
+ .remove = hx8394_remove,
|
||||
+ .driver = {
|
||||
+ .name = DRV_NAME,
|
||||
+ .of_match_table = hx8394_of_match,
|
||||
+ },
|
||||
+};
|
||||
+module_mipi_dsi_driver(hx8394_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Kamil Trzciński <ayufan@ayufan.eu>");
|
||||
+MODULE_DESCRIPTION("DRM driver for Himax HX8394 based MIPI DSI panels");
|
||||
+MODULE_LICENSE("GPL");
|
|
@ -0,0 +1,217 @@
|
|||
diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3588s.dtsi linux/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
|
||||
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3588s.dtsi 2024-02-21 01:57:23.561577173 +0000
|
||||
+++ linux/arch/arm64/boot/dts/rockchip/rk3588s.dtsi 2024-02-23 16:00:03.971337529 +0000
|
||||
@@ -706,20 +706,20 @@
|
||||
rockchip,high-temp-max-freq = <1608000>;
|
||||
|
||||
/* RK3588 cluster0 OPPs */
|
||||
- opp-408000000 {
|
||||
- opp-supported-hw = <0xf9 0xffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <675000 675000 950000>,
|
||||
- <675000 675000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp-600000000 {
|
||||
- opp-supported-hw = <0xf9 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <675000 675000 950000>,
|
||||
- <675000 675000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-408000000 {
|
||||
+ // opp-supported-hw = <0xf9 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <675000 675000 950000>,
|
||||
+ // <675000 675000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
+ //opp-600000000 {
|
||||
+ // opp-supported-hw = <0xf9 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <675000 675000 950000>,
|
||||
+ // <675000 675000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-816000000 {
|
||||
opp-supported-hw = <0xf9 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
@@ -813,20 +813,20 @@
|
||||
};
|
||||
|
||||
/* RK3588J/M cluster0 OPPs */
|
||||
- opp-j-m-408000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp-j-m-600000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-j-m-408000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
+ //opp-j-m-600000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-j-m-816000000 {
|
||||
opp-supported-hw = <0x06 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
@@ -971,21 +971,21 @@
|
||||
rockchip,high-temp-max-freq = <2208000>;
|
||||
|
||||
/* RK3588 cluster1 OPPs */
|
||||
- opp-408000000 {
|
||||
- opp-supported-hw = <0xf9 0xffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <675000 675000 1000000>,
|
||||
- <675000 675000 1000000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- opp-suspend;
|
||||
- };
|
||||
- opp-600000000 {
|
||||
- opp-supported-hw = <0xf9 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <675000 675000 1000000>,
|
||||
- <675000 675000 1000000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-408000000 {
|
||||
+ // opp-supported-hw = <0xf9 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <675000 675000 1000000>,
|
||||
+ // <675000 675000 1000000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ // opp-suspend;
|
||||
+ //};
|
||||
+ //opp-600000000 {
|
||||
+ // opp-supported-hw = <0xf9 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <675000 675000 1000000>,
|
||||
+ // <675000 675000 1000000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-816000000 {
|
||||
opp-supported-hw = <0xf9 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
@@ -1138,20 +1138,20 @@
|
||||
};
|
||||
|
||||
/* RK3588J/M cluster1 OPPs */
|
||||
- opp-j-m-408000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp-j-m-600000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-j-m-408000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
+ //opp-j-m-600000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-j-m-816000000 {
|
||||
opp-supported-hw = <0x06 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
@@ -1304,21 +1304,21 @@
|
||||
rockchip,high-temp-max-freq = <2208000>;
|
||||
|
||||
/* RK3588 cluster2 OPPs */
|
||||
- opp-408000000 {
|
||||
- opp-supported-hw = <0xf9 0x0ffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <675000 675000 1000000>,
|
||||
- <675000 675000 1000000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- opp-suspend;
|
||||
- };
|
||||
- opp-600000000 {
|
||||
- opp-supported-hw = <0xf9 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <675000 675000 1000000>,
|
||||
- <675000 675000 1000000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-408000000 {
|
||||
+ // opp-supported-hw = <0xf9 0x0ffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <675000 675000 1000000>,
|
||||
+ // <675000 675000 1000000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ // opp-suspend;
|
||||
+ //};
|
||||
+ //opp-600000000 {
|
||||
+ // opp-supported-hw = <0xf9 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <675000 675000 1000000>,
|
||||
+ // <675000 675000 1000000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-816000000 {
|
||||
opp-supported-hw = <0xf9 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
@@ -1467,20 +1467,20 @@
|
||||
};
|
||||
|
||||
/* RK3588J/M cluster2 OPPs */
|
||||
- opp-j-m-408000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp-j-m-600000000 {
|
||||
- opp-supported-hw = <0x06 0xffff>;
|
||||
- opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <750000 750000 950000>,
|
||||
- <750000 750000 950000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
+ //opp-j-m-408000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <408000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
+ //opp-j-m-600000000 {
|
||||
+ // opp-supported-hw = <0x06 0xffff>;
|
||||
+ // opp-hz = /bits/ 64 <600000000>;
|
||||
+ // opp-microvolt = <750000 750000 950000>,
|
||||
+ // <750000 750000 950000>;
|
||||
+ // clock-latency-ns = <40000>;
|
||||
+ //};
|
||||
opp-j-m-816000000 {
|
||||
opp-supported-hw = <0x06 0xffff>;
|
||||
opp-hz = /bits/ 64 <816000000>;
|
|
@ -0,0 +1,691 @@
|
|||
diff -rupN linux.orig/Makefile linux/Makefile
|
||||
--- linux.orig/Makefile 2024-02-21 01:57:23.445573377 +0000
|
||||
+++ linux/Makefile 2024-02-22 16:21:29.661040043 +0000
|
||||
@@ -1075,7 +1075,7 @@ endif
|
||||
KBUILD_CFLAGS += -Werror=date-time
|
||||
|
||||
# enforce correct pointer usage
|
||||
-KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
|
||||
+#KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
|
||||
|
||||
# Require designated initializers for all marked structures
|
||||
KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
|
||||
diff -rupN linux.orig/drivers/iio/adc/ti-ads1015.c linux/drivers/iio/adc/ti-ads1015.c
|
||||
--- linux.orig/drivers/iio/adc/ti-ads1015.c 2024-02-21 01:57:24.113595238 +0000
|
||||
+++ linux/drivers/iio/adc/ti-ads1015.c 2024-02-22 16:18:15.319056297 +0000
|
||||
@@ -76,15 +76,10 @@
|
||||
#define ADS1015_DEFAULT_DATA_RATE 4
|
||||
#define ADS1015_DEFAULT_CHAN 0
|
||||
|
||||
-struct ads1015_chip_data {
|
||||
- struct iio_chan_spec const *channels;
|
||||
- int num_channels;
|
||||
- const struct iio_info *info;
|
||||
- const int *data_rate;
|
||||
- const int data_rate_len;
|
||||
- const int *scale;
|
||||
- const int scale_len;
|
||||
- bool has_comparator;
|
||||
+enum chip_ids {
|
||||
+ ADSXXXX = 0,
|
||||
+ ADS1015,
|
||||
+ ADS1115,
|
||||
};
|
||||
|
||||
enum ads1015_channels {
|
||||
@@ -99,11 +94,11 @@ enum ads1015_channels {
|
||||
ADS1015_TIMESTAMP,
|
||||
};
|
||||
|
||||
-static const int ads1015_data_rate[] = {
|
||||
+static const unsigned int ads1015_data_rate[] = {
|
||||
128, 250, 490, 920, 1600, 2400, 3300, 3300
|
||||
};
|
||||
|
||||
-static const int ads1115_data_rate[] = {
|
||||
+static const unsigned int ads1115_data_rate[] = {
|
||||
8, 16, 32, 64, 128, 250, 475, 860
|
||||
};
|
||||
|
||||
@@ -111,28 +106,10 @@ static const int ads1115_data_rate[] = {
|
||||
* Translation from PGA bits to full-scale positive and negative input voltage
|
||||
* range in mV
|
||||
*/
|
||||
-static const int ads1015_fullscale_range[] = {
|
||||
+static int ads1015_fullscale_range[] = {
|
||||
6144, 4096, 2048, 1024, 512, 256, 256, 256
|
||||
};
|
||||
|
||||
-static const int ads1015_scale[] = { /* 12bit ADC */
|
||||
- 256, 11,
|
||||
- 512, 11,
|
||||
- 1024, 11,
|
||||
- 2048, 11,
|
||||
- 4096, 11,
|
||||
- 6144, 11
|
||||
-};
|
||||
-
|
||||
-static const int ads1115_scale[] = { /* 16bit ADC */
|
||||
- 256, 15,
|
||||
- 512, 15,
|
||||
- 1024, 15,
|
||||
- 2048, 15,
|
||||
- 4096, 15,
|
||||
- 6144, 15
|
||||
-};
|
||||
-
|
||||
/*
|
||||
* Translation from COMP_QUE field value to the number of successive readings
|
||||
* exceed the threshold values before an interrupt is generated
|
||||
@@ -157,53 +134,71 @@ static const struct iio_event_spec ads10
|
||||
},
|
||||
};
|
||||
|
||||
-/*
|
||||
- * Compile-time check whether _fitbits can accommodate up to _testbits
|
||||
- * bits. Returns _fitbits on success, fails to compile otherwise.
|
||||
- *
|
||||
- * The test works such that it multiplies constant _fitbits by constant
|
||||
- * double-negation of size of a non-empty structure, i.e. it multiplies
|
||||
- * constant _fitbits by constant 1 in each successful compilation case.
|
||||
- * The non-empty structure may contain C11 _Static_assert(), make use of
|
||||
- * this and place the kernel variant of static assert in there, so that
|
||||
- * it performs the compile-time check for _testbits <= _fitbits. Note
|
||||
- * that it is not possible to directly use static_assert in compound
|
||||
- * statements, hence this convoluted construct.
|
||||
- */
|
||||
-#define FIT_CHECK(_testbits, _fitbits) \
|
||||
- ( \
|
||||
- (_fitbits) * \
|
||||
- !!sizeof(struct { \
|
||||
- static_assert((_testbits) <= (_fitbits)); \
|
||||
- int pad; \
|
||||
- }) \
|
||||
- )
|
||||
+#define ADS1015_V_CHAN(_chan, _addr) { \
|
||||
+ .type = IIO_VOLTAGE, \
|
||||
+ .indexed = 1, \
|
||||
+ .address = _addr, \
|
||||
+ .channel = _chan, \
|
||||
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
|
||||
+ BIT(IIO_CHAN_INFO_SCALE) | \
|
||||
+ BIT(IIO_CHAN_INFO_SAMP_FREQ), \
|
||||
+ .scan_index = _addr, \
|
||||
+ .scan_type = { \
|
||||
+ .sign = 's', \
|
||||
+ .realbits = 12, \
|
||||
+ .storagebits = 16, \
|
||||
+ .shift = 4, \
|
||||
+ .endianness = IIO_CPU, \
|
||||
+ }, \
|
||||
+ .event_spec = ads1015_events, \
|
||||
+ .num_event_specs = ARRAY_SIZE(ads1015_events), \
|
||||
+ .datasheet_name = "AIN"#_chan, \
|
||||
+}
|
||||
|
||||
-#define ADS1015_V_CHAN(_chan, _addr, _realbits, _shift, _event_spec, _num_event_specs) { \
|
||||
+#define ADS1015_V_DIFF_CHAN(_chan, _chan2, _addr) { \
|
||||
.type = IIO_VOLTAGE, \
|
||||
+ .differential = 1, \
|
||||
.indexed = 1, \
|
||||
.address = _addr, \
|
||||
.channel = _chan, \
|
||||
+ .channel2 = _chan2, \
|
||||
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
|
||||
BIT(IIO_CHAN_INFO_SCALE) | \
|
||||
BIT(IIO_CHAN_INFO_SAMP_FREQ), \
|
||||
- .info_mask_shared_by_all_available = \
|
||||
+ .scan_index = _addr, \
|
||||
+ .scan_type = { \
|
||||
+ .sign = 's', \
|
||||
+ .realbits = 12, \
|
||||
+ .storagebits = 16, \
|
||||
+ .shift = 4, \
|
||||
+ .endianness = IIO_CPU, \
|
||||
+ }, \
|
||||
+ .event_spec = ads1015_events, \
|
||||
+ .num_event_specs = ARRAY_SIZE(ads1015_events), \
|
||||
+ .datasheet_name = "AIN"#_chan"-AIN"#_chan2, \
|
||||
+}
|
||||
+
|
||||
+#define ADS1115_V_CHAN(_chan, _addr) { \
|
||||
+ .type = IIO_VOLTAGE, \
|
||||
+ .indexed = 1, \
|
||||
+ .address = _addr, \
|
||||
+ .channel = _chan, \
|
||||
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
|
||||
BIT(IIO_CHAN_INFO_SCALE) | \
|
||||
BIT(IIO_CHAN_INFO_SAMP_FREQ), \
|
||||
.scan_index = _addr, \
|
||||
.scan_type = { \
|
||||
.sign = 's', \
|
||||
- .realbits = (_realbits), \
|
||||
- .storagebits = FIT_CHECK((_realbits) + (_shift), 16), \
|
||||
- .shift = (_shift), \
|
||||
+ .realbits = 16, \
|
||||
+ .storagebits = 16, \
|
||||
.endianness = IIO_CPU, \
|
||||
}, \
|
||||
- .event_spec = (_event_spec), \
|
||||
- .num_event_specs = (_num_event_specs), \
|
||||
+ .event_spec = ads1015_events, \
|
||||
+ .num_event_specs = ARRAY_SIZE(ads1015_events), \
|
||||
.datasheet_name = "AIN"#_chan, \
|
||||
}
|
||||
|
||||
-#define ADS1015_V_DIFF_CHAN(_chan, _chan2, _addr, _realbits, _shift, _event_spec, _num_event_specs) { \
|
||||
+#define ADS1115_V_DIFF_CHAN(_chan, _chan2, _addr) { \
|
||||
.type = IIO_VOLTAGE, \
|
||||
.differential = 1, \
|
||||
.indexed = 1, \
|
||||
@@ -213,19 +208,15 @@ static const struct iio_event_spec ads10
|
||||
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
|
||||
BIT(IIO_CHAN_INFO_SCALE) | \
|
||||
BIT(IIO_CHAN_INFO_SAMP_FREQ), \
|
||||
- .info_mask_shared_by_all_available = \
|
||||
- BIT(IIO_CHAN_INFO_SCALE) | \
|
||||
- BIT(IIO_CHAN_INFO_SAMP_FREQ), \
|
||||
.scan_index = _addr, \
|
||||
.scan_type = { \
|
||||
.sign = 's', \
|
||||
- .realbits = (_realbits), \
|
||||
- .storagebits = FIT_CHECK((_realbits) + (_shift), 16), \
|
||||
- .shift = (_shift), \
|
||||
+ .realbits = 16, \
|
||||
+ .storagebits = 16, \
|
||||
.endianness = IIO_CPU, \
|
||||
}, \
|
||||
- .event_spec = (_event_spec), \
|
||||
- .num_event_specs = (_num_event_specs), \
|
||||
+ .event_spec = ads1015_events, \
|
||||
+ .num_event_specs = ARRAY_SIZE(ads1015_events), \
|
||||
.datasheet_name = "AIN"#_chan"-AIN"#_chan2, \
|
||||
}
|
||||
|
||||
@@ -254,7 +245,7 @@ struct ads1015_data {
|
||||
unsigned int comp_mode;
|
||||
struct ads1015_thresh_data thresh_data[ADS1015_CHANNELS];
|
||||
|
||||
- const struct ads1015_chip_data *chip;
|
||||
+ unsigned int *data_rate;
|
||||
/*
|
||||
* Set to true when the ADC is switched to the continuous-conversion
|
||||
* mode and exits from a power-down state. This flag is used to avoid
|
||||
@@ -282,91 +273,49 @@ static void ads1015_event_channel_disabl
|
||||
data->event_channel = ADS1015_CHANNELS;
|
||||
}
|
||||
|
||||
-static const struct regmap_range ads1015_writeable_ranges[] = {
|
||||
- regmap_reg_range(ADS1015_CFG_REG, ADS1015_HI_THRESH_REG),
|
||||
-};
|
||||
-
|
||||
-static const struct regmap_access_table ads1015_writeable_table = {
|
||||
- .yes_ranges = ads1015_writeable_ranges,
|
||||
- .n_yes_ranges = ARRAY_SIZE(ads1015_writeable_ranges),
|
||||
-};
|
||||
+static bool ads1015_is_writeable_reg(struct device *dev, unsigned int reg)
|
||||
+{
|
||||
+ switch (reg) {
|
||||
+ case ADS1015_CFG_REG:
|
||||
+ case ADS1015_LO_THRESH_REG:
|
||||
+ case ADS1015_HI_THRESH_REG:
|
||||
+ return true;
|
||||
+ default:
|
||||
+ return false;
|
||||
+ }
|
||||
+}
|
||||
|
||||
static const struct regmap_config ads1015_regmap_config = {
|
||||
.reg_bits = 8,
|
||||
.val_bits = 16,
|
||||
.max_register = ADS1015_HI_THRESH_REG,
|
||||
- .wr_table = &ads1015_writeable_table,
|
||||
-};
|
||||
-
|
||||
-static const struct regmap_range tla2024_writeable_ranges[] = {
|
||||
- regmap_reg_range(ADS1015_CFG_REG, ADS1015_CFG_REG),
|
||||
-};
|
||||
-
|
||||
-static const struct regmap_access_table tla2024_writeable_table = {
|
||||
- .yes_ranges = tla2024_writeable_ranges,
|
||||
- .n_yes_ranges = ARRAY_SIZE(tla2024_writeable_ranges),
|
||||
-};
|
||||
-
|
||||
-static const struct regmap_config tla2024_regmap_config = {
|
||||
- .reg_bits = 8,
|
||||
- .val_bits = 16,
|
||||
- .max_register = ADS1015_CFG_REG,
|
||||
- .wr_table = &tla2024_writeable_table,
|
||||
+ .writeable_reg = ads1015_is_writeable_reg,
|
||||
};
|
||||
|
||||
static const struct iio_chan_spec ads1015_channels[] = {
|
||||
- ADS1015_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(0, ADS1015_AIN0, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(1, ADS1015_AIN1, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(2, ADS1015_AIN2, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(3, ADS1015_AIN3, 12, 4,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
+ ADS1015_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1),
|
||||
+ ADS1015_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3),
|
||||
+ ADS1015_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3),
|
||||
+ ADS1015_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3),
|
||||
+ ADS1015_V_CHAN(0, ADS1015_AIN0),
|
||||
+ ADS1015_V_CHAN(1, ADS1015_AIN1),
|
||||
+ ADS1015_V_CHAN(2, ADS1015_AIN2),
|
||||
+ ADS1015_V_CHAN(3, ADS1015_AIN3),
|
||||
IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
|
||||
};
|
||||
|
||||
static const struct iio_chan_spec ads1115_channels[] = {
|
||||
- ADS1015_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(0, ADS1015_AIN0, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(1, ADS1015_AIN1, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(2, ADS1015_AIN2, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
- ADS1015_V_CHAN(3, ADS1015_AIN3, 16, 0,
|
||||
- ads1015_events, ARRAY_SIZE(ads1015_events)),
|
||||
+ ADS1115_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1),
|
||||
+ ADS1115_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3),
|
||||
+ ADS1115_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3),
|
||||
+ ADS1115_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3),
|
||||
+ ADS1115_V_CHAN(0, ADS1015_AIN0),
|
||||
+ ADS1115_V_CHAN(1, ADS1015_AIN1),
|
||||
+ ADS1115_V_CHAN(2, ADS1015_AIN2),
|
||||
+ ADS1115_V_CHAN(3, ADS1015_AIN3),
|
||||
IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
|
||||
};
|
||||
|
||||
-static const struct iio_chan_spec tla2024_channels[] = {
|
||||
- ADS1015_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1, 12, 4, NULL, 0),
|
||||
- ADS1015_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3, 12, 4, NULL, 0),
|
||||
- ADS1015_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3, 12, 4, NULL, 0),
|
||||
- ADS1015_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3, 12, 4, NULL, 0),
|
||||
- ADS1015_V_CHAN(0, ADS1015_AIN0, 12, 4, NULL, 0),
|
||||
- ADS1015_V_CHAN(1, ADS1015_AIN1, 12, 4, NULL, 0),
|
||||
- ADS1015_V_CHAN(2, ADS1015_AIN2, 12, 4, NULL, 0),
|
||||
- ADS1015_V_CHAN(3, ADS1015_AIN3, 12, 4, NULL, 0),
|
||||
- IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
|
||||
-};
|
||||
-
|
||||
-
|
||||
#ifdef CONFIG_PM
|
||||
static int ads1015_set_power_state(struct ads1015_data *data, bool on)
|
||||
{
|
||||
@@ -374,7 +323,9 @@ static int ads1015_set_power_state(struc
|
||||
struct device *dev = regmap_get_device(data->regmap);
|
||||
|
||||
if (on) {
|
||||
- ret = pm_runtime_resume_and_get(dev);
|
||||
+ ret = pm_runtime_get_sync(dev);
|
||||
+ if (ret < 0)
|
||||
+ pm_runtime_put_noidle(dev);
|
||||
} else {
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
ret = pm_runtime_put_autosuspend(dev);
|
||||
@@ -395,7 +346,6 @@ static int ads1015_set_power_state(struc
|
||||
static
|
||||
int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)
|
||||
{
|
||||
- const int *data_rate = data->chip->data_rate;
|
||||
int ret, pga, dr, dr_old, conv_time;
|
||||
unsigned int old, mask, cfg;
|
||||
|
||||
@@ -430,8 +380,8 @@ int ads1015_get_adc_result(struct ads101
|
||||
}
|
||||
if (data->conv_invalid) {
|
||||
dr_old = (old & ADS1015_CFG_DR_MASK) >> ADS1015_CFG_DR_SHIFT;
|
||||
- conv_time = DIV_ROUND_UP(USEC_PER_SEC, data_rate[dr_old]);
|
||||
- conv_time += DIV_ROUND_UP(USEC_PER_SEC, data_rate[dr]);
|
||||
+ conv_time = DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr_old]);
|
||||
+ conv_time += DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr]);
|
||||
conv_time += conv_time / 10; /* 10% internal clock inaccuracy */
|
||||
usleep_range(conv_time, conv_time + 1);
|
||||
data->conv_invalid = false;
|
||||
@@ -497,8 +447,8 @@ static int ads1015_set_data_rate(struct
|
||||
{
|
||||
int i;
|
||||
|
||||
- for (i = 0; i < data->chip->data_rate_len; i++) {
|
||||
- if (data->chip->data_rate[i] == rate) {
|
||||
+ for (i = 0; i < ARRAY_SIZE(ads1015_data_rate); i++) {
|
||||
+ if (data->data_rate[i] == rate) {
|
||||
data->channel_data[chan].data_rate = i;
|
||||
return 0;
|
||||
}
|
||||
@@ -507,32 +457,6 @@ static int ads1015_set_data_rate(struct
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
-static int ads1015_read_avail(struct iio_dev *indio_dev,
|
||||
- struct iio_chan_spec const *chan,
|
||||
- const int **vals, int *type, int *length,
|
||||
- long mask)
|
||||
-{
|
||||
- struct ads1015_data *data = iio_priv(indio_dev);
|
||||
-
|
||||
- if (chan->type != IIO_VOLTAGE)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- switch (mask) {
|
||||
- case IIO_CHAN_INFO_SCALE:
|
||||
- *type = IIO_VAL_FRACTIONAL_LOG2;
|
||||
- *vals = data->chip->scale;
|
||||
- *length = data->chip->scale_len;
|
||||
- return IIO_AVAIL_LIST;
|
||||
- case IIO_CHAN_INFO_SAMP_FREQ:
|
||||
- *type = IIO_VAL_INT;
|
||||
- *vals = data->chip->data_rate;
|
||||
- *length = data->chip->data_rate_len;
|
||||
- return IIO_AVAIL_LIST;
|
||||
- default:
|
||||
- return -EINVAL;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
static int ads1015_read_raw(struct iio_dev *indio_dev,
|
||||
struct iio_chan_spec const *chan, int *val,
|
||||
int *val2, long mask)
|
||||
@@ -542,7 +466,9 @@ static int ads1015_read_raw(struct iio_d
|
||||
|
||||
mutex_lock(&data->lock);
|
||||
switch (mask) {
|
||||
- case IIO_CHAN_INFO_RAW:
|
||||
+ case IIO_CHAN_INFO_RAW: {
|
||||
+ int shift = chan->scan_type.shift;
|
||||
+
|
||||
ret = iio_device_claim_direct_mode(indio_dev);
|
||||
if (ret)
|
||||
break;
|
||||
@@ -563,8 +489,7 @@ static int ads1015_read_raw(struct iio_d
|
||||
goto release_direct;
|
||||
}
|
||||
|
||||
- *val = sign_extend32(*val >> chan->scan_type.shift,
|
||||
- chan->scan_type.realbits - 1);
|
||||
+ *val = sign_extend32(*val >> shift, 15 - shift);
|
||||
|
||||
ret = ads1015_set_power_state(data, false);
|
||||
if (ret < 0)
|
||||
@@ -574,6 +499,7 @@ static int ads1015_read_raw(struct iio_d
|
||||
release_direct:
|
||||
iio_device_release_direct_mode(indio_dev);
|
||||
break;
|
||||
+ }
|
||||
case IIO_CHAN_INFO_SCALE:
|
||||
idx = data->channel_data[chan->address].pga;
|
||||
*val = ads1015_fullscale_range[idx];
|
||||
@@ -582,7 +508,7 @@ release_direct:
|
||||
break;
|
||||
case IIO_CHAN_INFO_SAMP_FREQ:
|
||||
idx = data->channel_data[chan->address].data_rate;
|
||||
- *val = data->chip->data_rate[idx];
|
||||
+ *val = data->data_rate[idx];
|
||||
ret = IIO_VAL_INT;
|
||||
break;
|
||||
default:
|
||||
@@ -642,7 +568,7 @@ static int ads1015_read_event(struct iio
|
||||
dr = data->channel_data[chan->address].data_rate;
|
||||
comp_queue = data->thresh_data[chan->address].comp_queue;
|
||||
period = ads1015_comp_queue[comp_queue] *
|
||||
- USEC_PER_SEC / data->chip->data_rate[dr];
|
||||
+ USEC_PER_SEC / data->data_rate[dr];
|
||||
|
||||
*val = period / USEC_PER_SEC;
|
||||
*val2 = period % USEC_PER_SEC;
|
||||
@@ -664,7 +590,6 @@ static int ads1015_write_event(struct ii
|
||||
int val2)
|
||||
{
|
||||
struct ads1015_data *data = iio_priv(indio_dev);
|
||||
- const int *data_rate = data->chip->data_rate;
|
||||
int realbits = chan->scan_type.realbits;
|
||||
int ret = 0;
|
||||
long long period;
|
||||
@@ -690,7 +615,7 @@ static int ads1015_write_event(struct ii
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(ads1015_comp_queue) - 1; i++) {
|
||||
if (period <= ads1015_comp_queue[i] *
|
||||
- USEC_PER_SEC / data_rate[dr])
|
||||
+ USEC_PER_SEC / data->data_rate[dr])
|
||||
break;
|
||||
}
|
||||
data->thresh_data[chan->address].comp_queue = i;
|
||||
@@ -881,20 +806,54 @@ static const struct iio_buffer_setup_ops
|
||||
.validate_scan_mask = &iio_validate_scan_mask_onehot,
|
||||
};
|
||||
|
||||
+static IIO_CONST_ATTR_NAMED(ads1015_scale_available, scale_available,
|
||||
+ "3 2 1 0.5 0.25 0.125");
|
||||
+static IIO_CONST_ATTR_NAMED(ads1115_scale_available, scale_available,
|
||||
+ "0.1875 0.125 0.0625 0.03125 0.015625 0.007813");
|
||||
+
|
||||
+static IIO_CONST_ATTR_NAMED(ads1015_sampling_frequency_available,
|
||||
+ sampling_frequency_available, "128 250 490 920 1600 2400 3300");
|
||||
+static IIO_CONST_ATTR_NAMED(ads1115_sampling_frequency_available,
|
||||
+ sampling_frequency_available, "8 16 32 64 128 250 475 860");
|
||||
+
|
||||
+static struct attribute *ads1015_attributes[] = {
|
||||
+ &iio_const_attr_ads1015_scale_available.dev_attr.attr,
|
||||
+ &iio_const_attr_ads1015_sampling_frequency_available.dev_attr.attr,
|
||||
+ NULL,
|
||||
+};
|
||||
+
|
||||
+static const struct attribute_group ads1015_attribute_group = {
|
||||
+ .attrs = ads1015_attributes,
|
||||
+};
|
||||
+
|
||||
+static struct attribute *ads1115_attributes[] = {
|
||||
+ &iio_const_attr_ads1115_scale_available.dev_attr.attr,
|
||||
+ &iio_const_attr_ads1115_sampling_frequency_available.dev_attr.attr,
|
||||
+ NULL,
|
||||
+};
|
||||
+
|
||||
+static const struct attribute_group ads1115_attribute_group = {
|
||||
+ .attrs = ads1115_attributes,
|
||||
+};
|
||||
+
|
||||
static const struct iio_info ads1015_info = {
|
||||
- .read_avail = ads1015_read_avail,
|
||||
.read_raw = ads1015_read_raw,
|
||||
.write_raw = ads1015_write_raw,
|
||||
.read_event_value = ads1015_read_event,
|
||||
.write_event_value = ads1015_write_event,
|
||||
.read_event_config = ads1015_read_event_config,
|
||||
.write_event_config = ads1015_write_event_config,
|
||||
+ .attrs = &ads1015_attribute_group,
|
||||
};
|
||||
|
||||
-static const struct iio_info tla2024_info = {
|
||||
- .read_avail = ads1015_read_avail,
|
||||
+static const struct iio_info ads1115_info = {
|
||||
.read_raw = ads1015_read_raw,
|
||||
.write_raw = ads1015_write_raw,
|
||||
+ .read_event_value = ads1015_read_event,
|
||||
+ .write_event_value = ads1015_write_event,
|
||||
+ .read_event_config = ads1015_read_event_config,
|
||||
+ .write_event_config = ads1015_write_event_config,
|
||||
+ .attrs = &ads1115_attribute_group,
|
||||
};
|
||||
|
||||
static int ads1015_client_get_channels_config(struct i2c_client *client)
|
||||
@@ -977,18 +936,12 @@ static int ads1015_set_conv_mode(struct
|
||||
static int ads1015_probe(struct i2c_client *client,
|
||||
const struct i2c_device_id *id)
|
||||
{
|
||||
- const struct ads1015_chip_data *chip;
|
||||
struct iio_dev *indio_dev;
|
||||
struct ads1015_data *data;
|
||||
int ret;
|
||||
+ enum chip_ids chip;
|
||||
int i;
|
||||
|
||||
- chip = device_get_match_data(&client->dev);
|
||||
- if (!chip)
|
||||
- chip = (const struct ads1015_chip_data *)id->driver_data;
|
||||
- if (!chip)
|
||||
- return dev_err_probe(&client->dev, -EINVAL, "Unknown chip\n");
|
||||
-
|
||||
indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
|
||||
if (!indio_dev)
|
||||
return -ENOMEM;
|
||||
@@ -1001,12 +954,28 @@ static int ads1015_probe(struct i2c_clie
|
||||
indio_dev->name = ADS1015_DRV_NAME;
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
|
||||
- indio_dev->channels = chip->channels;
|
||||
- indio_dev->num_channels = chip->num_channels;
|
||||
- indio_dev->info = chip->info;
|
||||
- data->chip = chip;
|
||||
- data->event_channel = ADS1015_CHANNELS;
|
||||
+ chip = (enum chip_ids)device_get_match_data(&client->dev);
|
||||
+ if (chip == ADSXXXX)
|
||||
+ chip = id->driver_data;
|
||||
+ switch (chip) {
|
||||
+ case ADS1015:
|
||||
+ indio_dev->channels = ads1015_channels;
|
||||
+ indio_dev->num_channels = ARRAY_SIZE(ads1015_channels);
|
||||
+ indio_dev->info = &ads1015_info;
|
||||
+ data->data_rate = (unsigned int *) &ads1015_data_rate;
|
||||
+ break;
|
||||
+ case ADS1115:
|
||||
+ indio_dev->channels = ads1115_channels;
|
||||
+ indio_dev->num_channels = ARRAY_SIZE(ads1115_channels);
|
||||
+ indio_dev->info = &ads1115_info;
|
||||
+ data->data_rate = (unsigned int *) &ads1115_data_rate;
|
||||
+ break;
|
||||
+ default:
|
||||
+ dev_err(&client->dev, "Unknown chip %d\n", chip);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
+ data->event_channel = ADS1015_CHANNELS;
|
||||
/*
|
||||
* Set default lower and upper threshold to min and max value
|
||||
* respectively.
|
||||
@@ -1021,9 +990,7 @@ static int ads1015_probe(struct i2c_clie
|
||||
/* we need to keep this ABI the same as used by hwmon ADS1015 driver */
|
||||
ads1015_get_channels_config(client);
|
||||
|
||||
- data->regmap = devm_regmap_init_i2c(client, chip->has_comparator ?
|
||||
- &ads1015_regmap_config :
|
||||
- &tla2024_regmap_config);
|
||||
+ data->regmap = devm_regmap_init_i2c(client, &ads1015_regmap_config);
|
||||
if (IS_ERR(data->regmap)) {
|
||||
dev_err(&client->dev, "Failed to allocate register map\n");
|
||||
return PTR_ERR(data->regmap);
|
||||
@@ -1037,7 +1004,7 @@ static int ads1015_probe(struct i2c_clie
|
||||
return ret;
|
||||
}
|
||||
|
||||
- if (client->irq && chip->has_comparator) {
|
||||
+ if (client->irq) {
|
||||
unsigned long irq_trig =
|
||||
irqd_get_trigger_type(irq_get_irq_data(client->irq));
|
||||
unsigned int cfg_comp_mask = ADS1015_CFG_COMP_QUE_MASK |
|
||||
@@ -1094,22 +1061,19 @@ static int ads1015_probe(struct i2c_clie
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void ads1015_remove(struct i2c_client *client)
|
||||
+static int ads1015_remove(struct i2c_client *client)
|
||||
{
|
||||
struct iio_dev *indio_dev = i2c_get_clientdata(client);
|
||||
struct ads1015_data *data = iio_priv(indio_dev);
|
||||
- int ret;
|
||||
|
||||
iio_device_unregister(indio_dev);
|
||||
|
||||
pm_runtime_disable(&client->dev);
|
||||
pm_runtime_set_suspended(&client->dev);
|
||||
+ pm_runtime_put_noidle(&client->dev);
|
||||
|
||||
/* power down single shot mode */
|
||||
- ret = ads1015_set_conv_mode(data, ADS1015_SINGLESHOT);
|
||||
- if (ret)
|
||||
- dev_warn(&client->dev, "Failed to power down (%pe)\n",
|
||||
- ERR_PTR(ret));
|
||||
+ return ads1015_set_conv_mode(data, ADS1015_SINGLESHOT);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
@@ -1140,51 +1104,22 @@ static const struct dev_pm_ops ads1015_p
|
||||
ads1015_runtime_resume, NULL)
|
||||
};
|
||||
|
||||
-static const struct ads1015_chip_data ads1015_data = {
|
||||
- .channels = ads1015_channels,
|
||||
- .num_channels = ARRAY_SIZE(ads1015_channels),
|
||||
- .info = &ads1015_info,
|
||||
- .data_rate = ads1015_data_rate,
|
||||
- .data_rate_len = ARRAY_SIZE(ads1015_data_rate),
|
||||
- .scale = ads1015_scale,
|
||||
- .scale_len = ARRAY_SIZE(ads1015_scale),
|
||||
- .has_comparator = true,
|
||||
-};
|
||||
-
|
||||
-static const struct ads1015_chip_data ads1115_data = {
|
||||
- .channels = ads1115_channels,
|
||||
- .num_channels = ARRAY_SIZE(ads1115_channels),
|
||||
- .info = &ads1015_info,
|
||||
- .data_rate = ads1115_data_rate,
|
||||
- .data_rate_len = ARRAY_SIZE(ads1115_data_rate),
|
||||
- .scale = ads1115_scale,
|
||||
- .scale_len = ARRAY_SIZE(ads1115_scale),
|
||||
- .has_comparator = true,
|
||||
-};
|
||||
-
|
||||
-static const struct ads1015_chip_data tla2024_data = {
|
||||
- .channels = tla2024_channels,
|
||||
- .num_channels = ARRAY_SIZE(tla2024_channels),
|
||||
- .info = &tla2024_info,
|
||||
- .data_rate = ads1015_data_rate,
|
||||
- .data_rate_len = ARRAY_SIZE(ads1015_data_rate),
|
||||
- .scale = ads1015_scale,
|
||||
- .scale_len = ARRAY_SIZE(ads1015_scale),
|
||||
- .has_comparator = false,
|
||||
-};
|
||||
-
|
||||
static const struct i2c_device_id ads1015_id[] = {
|
||||
- { "ads1015", (kernel_ulong_t)&ads1015_data },
|
||||
- { "ads1115", (kernel_ulong_t)&ads1115_data },
|
||||
- { "tla2024", (kernel_ulong_t)&tla2024_data },
|
||||
+ {"ads1015", ADS1015},
|
||||
+ {"ads1115", ADS1115},
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, ads1015_id);
|
||||
|
||||
static const struct of_device_id ads1015_of_match[] = {
|
||||
- { .compatible = "ti,ads1015", .data = &ads1015_data },
|
||||
- { .compatible = "ti,ads1115", .data = &ads1115_data },
|
||||
- { .compatible = "ti,tla2024", .data = &tla2024_data },
|
||||
+ {
|
||||
+ .compatible = "ti,ads1015",
|
||||
+ .data = (void *)ADS1015
|
||||
+ },
|
||||
+ {
|
||||
+ .compatible = "ti,ads1115",
|
||||
+ .data = (void *)ADS1115
|
||||
+ },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ads1015_of_match);
|
|
@ -0,0 +1,178 @@
|
|||
diff -rupN linux.orig/sound/soc/codecs/es8323.c linux/sound/soc/codecs/es8323.c
|
||||
--- linux.orig/sound/soc/codecs/es8323.c 2024-02-22 23:16:12.484295695 +0000
|
||||
+++ linux/sound/soc/codecs/es8323.c 2024-02-22 23:23:57.934593039 +0000
|
||||
@@ -25,6 +25,11 @@
|
||||
#include <sound/soc-dapm.h>
|
||||
#include <sound/initval.h>
|
||||
#include <linux/proc_fs.h>
|
||||
+#include <linux/gpio/consumer.h>
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/gpio.h>
|
||||
+#include <linux/of_gpio.h>
|
||||
+
|
||||
#include "es8323.h"
|
||||
|
||||
#define NR_SUPPORTED_MCLK_LRCK_RATIOS 5
|
||||
@@ -33,6 +38,9 @@ static const unsigned int supported_mclk
|
||||
};
|
||||
|
||||
#define es8323_DEF_VOL 0x1b
|
||||
+//extern struct gpio_desc *g_spk_ctl_gpio;
|
||||
+static int es8323_mute(struct snd_soc_dai *dai, int mute, int stream);
|
||||
+static void es8323_pcm_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai);
|
||||
|
||||
static int es8323_set_bias_level(struct snd_soc_component *component,
|
||||
enum snd_soc_bias_level level);
|
||||
@@ -93,6 +101,7 @@ struct es8323_priv {
|
||||
struct snd_pcm_hw_constraint_list sysclk_constraints;
|
||||
struct snd_soc_component *component;
|
||||
struct regmap *regmap;
|
||||
+ struct gpio_desc *spk_ctl_gpio;
|
||||
};
|
||||
|
||||
static int es8323_reset(struct snd_soc_component *component)
|
||||
@@ -382,8 +391,8 @@ static const struct _coeff_div coeff_div
|
||||
{12000000, 22050, 544, 0x6, 0x1},
|
||||
|
||||
/* 32k */
|
||||
- {8192000, 32000, 256, 0x2, 0x0},
|
||||
- {16384000, 32000, 512, 0x4, 0x0},
|
||||
+ {8192000, 16000, 256, 0x2, 0x0},
|
||||
+ {16384000, 16000, 512, 0x4, 0x0},
|
||||
{12288000, 32000, 384, 0x3, 0x0},
|
||||
{18432000, 32000, 576, 0x5, 0x0},
|
||||
{12000000, 32000, 375, 0x4, 0x1},
|
||||
@@ -540,6 +549,11 @@ static int es8323_pcm_startup(struct snd
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static void es8323_pcm_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
|
||||
+{
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
static int es8323_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_hw_params *params,
|
||||
struct snd_soc_dai *dai)
|
||||
@@ -615,8 +629,31 @@ static int es8323_pcm_hw_params(struct s
|
||||
}
|
||||
|
||||
static int es8323_mute(struct snd_soc_dai *dai, int mute, int stream)
|
||||
-{
|
||||
- return 0;
|
||||
+{
|
||||
+ // struct snd_soc_component *component = dai->component;
|
||||
+ // struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component);
|
||||
+
|
||||
+ // gpiod_set_value_cansleep(es8323->spk_ctl_gpio, mute ? 0 : 1);
|
||||
+
|
||||
+ int hp = 0;
|
||||
+ hp = gpio_get_value(102);//hp det
|
||||
+
|
||||
+ // printk("gsy hp =%d\n",hp);
|
||||
+
|
||||
+ if (hp) {
|
||||
+ // printk("gsy es8323_mute\n");
|
||||
+ // gsy add
|
||||
+ if (mute) {
|
||||
+ gpio_direction_output(133, 0);// spk ctl
|
||||
+ gpio_set_value(133, 0);
|
||||
+ } else {
|
||||
+ gpio_direction_output(133, 1);
|
||||
+ gpio_set_value(133, 1);
|
||||
+ }
|
||||
+ }
|
||||
+ // gsy end
|
||||
+ usleep_range(5000, 7000);
|
||||
+ return snd_soc_component_update_bits(dai->component, ES8323_DACCONTROL3, ES8323_DACCONTROL3_DACMUTE, mute ? ES8323_DACCONTROL3_DACMUTE : 0);
|
||||
}
|
||||
|
||||
static int es8323_set_bias_level(struct snd_soc_component *component,
|
||||
@@ -645,6 +682,8 @@ static int es8323_set_bias_level(struct
|
||||
snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0x00);
|
||||
snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00);
|
||||
snd_soc_component_write(component, ES8323_ADCPOWER, 0x59);
|
||||
+ // printk("gsy SND_SOC_BIAS_PREPARE\n");
|
||||
+ usleep_range(50000, 51000);
|
||||
break;
|
||||
case SND_SOC_BIAS_STANDBY:
|
||||
dev_dbg(component->dev, "%s standby\n", __func__);
|
||||
@@ -653,6 +692,7 @@ static int es8323_set_bias_level(struct
|
||||
snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0x00);
|
||||
snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00);
|
||||
snd_soc_component_write(component, ES8323_ADCPOWER, 0x59);
|
||||
+ // printk("gsy SND_SOC_BIAS_STANDBY\n");
|
||||
break;
|
||||
case SND_SOC_BIAS_OFF:
|
||||
dev_dbg(component->dev, "%s off\n", __func__);
|
||||
@@ -662,6 +702,7 @@ static int es8323_set_bias_level(struct
|
||||
snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0xFF);
|
||||
snd_soc_component_write(component, ES8323_CHIPPOWER, 0xFF);
|
||||
snd_soc_component_write(component, ES8323_ANAVOLMANAG, 0x7B);
|
||||
+ // printk("gsy SND_SOC_BIAS_OFF\n");
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
@@ -674,6 +715,7 @@ static int es8323_set_bias_level(struct
|
||||
|
||||
static struct snd_soc_dai_ops es8323_ops = {
|
||||
.startup = es8323_pcm_startup,
|
||||
+ .shutdown = es8323_pcm_shutdown,
|
||||
.hw_params = es8323_pcm_hw_params,
|
||||
.set_fmt = es8323_set_dai_fmt,
|
||||
.set_sysclk = es8323_set_dai_sysclk,
|
||||
@@ -743,6 +785,12 @@ static int es8323_probe(struct snd_soc_c
|
||||
struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component);
|
||||
int ret = 0;
|
||||
|
||||
+ es8323->spk_ctl_gpio = devm_gpiod_get_optional(component->dev,
|
||||
+ "spk-con",
|
||||
+ GPIOD_OUT_LOW);
|
||||
+ if (IS_ERR(es8323->spk_ctl_gpio))
|
||||
+ return PTR_ERR(es8323->spk_ctl_gpio);
|
||||
+
|
||||
es8323->mclk = devm_clk_get(component->dev, "mclk");
|
||||
if (IS_ERR(es8323->mclk)) {
|
||||
dev_err(component->dev, "%s mclk is missing or invalid\n", __func__);
|
||||
@@ -870,9 +918,10 @@ static int es8323_i2c_probe(struct i2c_c
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static void es8323_i2c_remove(struct i2c_client *client)
|
||||
+static int es8323_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
snd_soc_unregister_component(&client->dev);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static const struct i2c_device_id es8323_i2c_id[] = {
|
||||
diff -rupN linux.orig/sound/soc/codecs/es8323.h linux/sound/soc/codecs/es8323.h
|
||||
--- linux.orig/sound/soc/codecs/es8323.h 2024-02-22 23:16:12.484295695 +0000
|
||||
+++ linux/sound/soc/codecs/es8323.h 2024-02-22 23:17:51.183289828 +0000
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
#define ES8323_ADC_MUTE ES8323_ADCCONTROL7
|
||||
#define ES8323_DAC_MUTE ES8323_DACCONTROL3
|
||||
-
|
||||
+#define ES8323_DACCONTROL3_DACMUTE (1 << 2)
|
||||
|
||||
|
||||
#define ES8323_IFACE ES8323_MASTERMODE
|
||||
diff -rupN linux.orig/sound/soc/rockchip/rockchip_multicodecs.c linux/sound/soc/rockchip/rockchip_multicodecs.c
|
||||
--- linux.orig/sound/soc/rockchip/rockchip_multicodecs.c 2024-02-22 23:16:12.580298595 +0000
|
||||
+++ linux/sound/soc/rockchip/rockchip_multicodecs.c 2024-02-22 23:20:46.900676454 +0000
|
||||
@@ -272,9 +272,13 @@ static int mc_hp_event(struct snd_soc_da
|
||||
struct snd_soc_card *card = w->dapm->card;
|
||||
struct multicodecs_data *mc_data = snd_soc_card_get_drvdata(card);
|
||||
|
||||
+ struct snd_soc_jack *jack_headset = mc_data->jack_headset;
|
||||
+
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
- gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 1);
|
||||
+ //gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 1);
|
||||
+ if (!(jack_headset->status & SND_JACK_HEADPHONE))
|
||||
+ gpiod_set_value_cansleep(mc_data->spk_ctl_gpio, 1);
|
||||
break;
|
||||
case SND_SOC_DAPM_PRE_PMD:
|
||||
gpiod_set_value_cansleep(mc_data->hp_ctl_gpio, 0);
|
|
@ -0,0 +1,12 @@
|
|||
diff -rupN linux.orig/drivers/power/supply/cw2015_battery.c linux/drivers/power/supply/cw2015_battery.c
|
||||
--- linux.orig/drivers/power/supply/cw2015_battery.c 2023-12-15 19:18:59.060967411 +0000
|
||||
+++ linux/drivers/power/supply/cw2015_battery.c 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -553,7 +553,7 @@ static enum power_supply_property cw_bat
|
||||
};
|
||||
|
||||
static const struct power_supply_desc cw2015_bat_desc = {
|
||||
- .name = "cw2015-battery",
|
||||
+ .name = "battery",
|
||||
.type = POWER_SUPPLY_TYPE_BATTERY,
|
||||
.properties = cw_battery_properties,
|
||||
.num_properties = ARRAY_SIZE(cw_battery_properties),
|
|
@ -0,0 +1,14 @@
|
|||
diff -rupN linux.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c linux/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
|
||||
--- linux.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 2024-02-21 01:57:24.081594191 +0000
|
||||
+++ linux/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 2024-02-23 14:30:21.801129014 +0000
|
||||
@@ -4884,8 +4884,8 @@ static int vop2_plane_atomic_check(struc
|
||||
|
||||
if (vop2_cluster_window(win) && !vpstate->afbc_en &&
|
||||
(win->supported_rotations & pstate->rotation)) {
|
||||
- DRM_ERROR("Unsupported linear rotation(%d) format at %s\n",
|
||||
- pstate->rotation, win->name);
|
||||
+ //DRM_ERROR("Unsupported linear rotation(%d) format at %s\n",
|
||||
+ // pstate->rotation, win->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
1
projects/Rockchip/packages/u-boot/patches/RK3588-ACE
Symbolic link
1
projects/Rockchip/packages/u-boot/patches/RK3588-ACE
Symbolic link
|
@ -0,0 +1 @@
|
|||
RK3588/
|
Loading…
Reference in a new issue