From a525d3c506e18d4475c8878d7db827b22ed66652 Mon Sep 17 00:00:00 2001 From: August Date: Wed, 25 Jul 2018 21:17:36 +0800 Subject: [PATCH] back m64 lichee configuration and create new a new one from p4 Signed-off-by: August --- .../chips/sun50iw1p1/configs/m64/bootlogo.bmp | Bin 0 -> 4096056 bytes .../sun50iw1p1/configs/m64/sys_config.fex | 786 ++++---- .../configs/m64/sys_config_linux-4.9.fex | 792 +++++---- .../sun50iw1p1/configs/m64/sys_partition.fex | 82 +- .../sun50iw1p1/configs/m64/test_config.fex | 80 +- .../chips/sun50iw1p1/configs/m64/warnings.bmp | Bin 0 -> 4096054 bytes .../sun50iw1p1/configs/m64_old/sys_config.fex | 1578 ++++++++++++++++ .../configs/m64_old/sys_config_linux-4.9.fex | 1583 +++++++++++++++++ .../configs/m64_old/sys_partition.fex | 120 ++ .../configs/m64_old/test_config.fex | 379 ++++ 10 files changed, 4609 insertions(+), 791 deletions(-) create mode 100755 lichee/tools/pack/chips/sun50iw1p1/configs/m64/bootlogo.bmp create mode 100755 lichee/tools/pack/chips/sun50iw1p1/configs/m64/warnings.bmp create mode 100644 lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config.fex create mode 100644 lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config_linux-4.9.fex create mode 100644 lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_partition.fex create mode 100644 lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/test_config.fex diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/bootlogo.bmp b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/bootlogo.bmp new file mode 100755 index 0000000000000000000000000000000000000000..df53493679f18a8f2d6fda321e613443f86bdb78 GIT binary patch literal 4096056 zcmeF)53p@jeJA)0>25${(4MLuC7BLjrbAGY4?f>}E-S8S#_#XiR1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjY$B7tL$Ic8gqrpm2!J(bixN!$7Ll(ARy*73}1-&CHdb>lJ?$+PG_8!4;G9`8F| zu6(N`L?X0t5&geF9Ve z{f2H%vT`SL8+vk;S8vz0Y2oNA};Kqc79gA@%r&{TgGe$){V>9>~hsnY1^)L zUAw;O9B;4n<8+*Fyj=NfeWkTtN`L?X0t5&gT>|5O>&MGmb+l9EPOY0)-#CA}+|JJ{ zV<)$5Rhu?j&Sv+I*+$A(WS>RyZ1$X09hEM6JZ=8A4YSr)p0&1DzDg^9rL}&$)2eTr zrrugtZ5S`t`bE>V_OI=gE?Ta91PBlyK!CuJEl~gVCw=mhpWK~){`uXT-~8t8=9_Qs z?!EWk?%{_Y?!Nu)Zx64B9(rh4cm4I(cW->-8@sd5KD&Fu6P_>tR5{zFF;)K5y6vie zz2#QhDqZjXYvoV5IbY|Vdv5oZx4dQLeB~VFe0}R%-x|(c&SB1F^1SFpFX~P{`Q)MK zwc54T_Id3a?>k=3zF9Z5eqOno+1A!|+G(eCFMHX`x_7?wo!v)1@{!>^U2d^Ec<|t` z?z-!)>)!OHH?4B3wpUx)<7n%s?c;P-o>}G0%0Di5E0*)O{Nq3V+m=;DQUfr$7DaE9bFoYdb&HwzalT?PDDQ0t5&UAaHaD z{O}L|@DNL+pIUK7rRl@wmE}rnTcuf_{z&?BC!KWCVJK}sqxPw^%1qz5&6h&j<-|I* zPn%}{^r?4iy7=OYC)<@a#$%&Xd+g&f5_6>9^bN}|^|kY@QM;}3WZ(21Pd)Y2aq+9% z)AwxmuW}QA&TC_iz4DItf7Y{}wW`i}<*drM$%Usr^{F%8=WSbSzO35xQ=j@&_lj4% zVlw95$Z^y@m8S1s^;cT;Uv$w$n-rMd{jraI>=45yMy)z4t-7=P$Rm#&w!QM@eUiW7 z#3J*i{89BMebuX8wMelG=gC+{{;t|_pE|ZS zP2JUw@%nbT<`c)nygk0m=hem^$={Z{aKmLJK!5-N0tAjYfm2R7WmVi!{f2RWpk2S{ zeDx=C%~ty6C!BD?DxX>9OpSlEJI)&aNO>9mX!|8eI-a3Qh5 ztoV8nlST66c;c2ZggS-|Hh0)<9DlTiTQ&ZXzsZc@OvN3G9`hpka_!nUJ{!j$?eT5K z&AtQ(5FkK+z}^yQ`$g#!xBZSq`VoudY5NiF{GE5++2#7Kn%ZsceEKExrnTaadHZhX zwyF4|j%z*fM|+Oi_MUatSu=(7O_S%Id+u2k9~?MvU^0%V_@ixW zJ3qeus;#GuKiYlPJKvhM^C>6&>qU;a+O?j%wNIPo+Qnx+^O=)}FmBsqrsb9M;*Y%7 zHZryK=Wp?jJMNe~r#YTDEMl=%p4y(Y{W}nUY~&2uhX4Tr1PC0N0{MQny>_Si2i50j z`%*RE=9#yywvE%;Kk-iPkxBY~guf9U1 zwZ77<&v(1|&h(aBZW+?{KJ{7q)&5BZ_eoHnX;+U!M1P z%<{^(-K@Oha%;Kn&(8fc)NZooHTvp z+`oS5rI#M|9Hx0?&)T-1;*a(n)S6~}yz@NR)@j_2Yqw=SeZurFb6r!;OFLEhS)c96 zm;B>0rk2}!+xg_(OYujJ@#OxQ!nt;A>Nuv><@vgK&%NLUFBqO>RZeAB%TIdJlZLUo zYp%KGu(Hdf($rJ)xnE}^(^kbF)&8{MHLrQiVQrr>sdb4tbG>8Q^7zL;{;*hTNsqN2{OuH_9 z+xEJbs&kyS^|jmfd;Ag8^y$WZxz=brfBEH?ch7jnGltXAo{Ks^Z93kb*fM?O_I$MS zRo8f3E$^lHW04rU+MRKYJg*?unZ_>d@_0Ud@k=hbWa0a##?N$X&&RC!t%^UY{Ctm4 z=W-+^EG~-)O)2(_e%T` zkJe{uKG&O#p94E(GPSOZrqYZR)c5^UW@$^dul1XJZQ1kQ2f21`(dm@_UYJ}*HLG3a zl=GOFVSMasEvFshJZ;zDEzE=M2pY?Bk)@OUhDz`1DgJ29vY-&ES3!@UrH zq+dVP&URhKM&i5Psk|zkwSVq`SnJ&7H`C|EjBVLl6@N_K=iQ#a7}ek0tYe(DKJA^i zt&Zok(@q=iRd3J7y!qNsN`L?X0t5&gc>?Jhw*SsozoXLhWw+`#7}nCMahSF}Q}fjq znpNJ>`uiX0$K}{#Qs-wXO}}&}rreJ`)t2!&+v)gYs=u5270PPdzAWdu!g0TUs+`Tb zCf*;%Amer=7N0e>ZQ6?XorwSe0t5&U z*xLg2Z~QpTn8wtk1B_g|&%sdJdIk#@g!zS^2FY8*ei zwf=3dfB*9=&P?q-!-_5Z-?;322ffxaU-x7D5vTFk$M}5ZKIgILR-CG}%A9&1)q5yy z+{yT3>UgV<-L|RhlIGg1wT^MB+>NZOdMa*9{Zs8)`LJ8OO}pKlN7|YW%9T zXy@ZLbv;_`zmek~?=w|aYty!;ogbHDnE(L-1PBn=`vSQZz5VyR=BqE1zQ_1_lpNJm ze_^vnJ1(=@R&A-aRk|PJkKFg0YvIaZY?Etxs;@Zq-0b<8+P|&il>YwZv@LBKw=3=4 z&G=*dT&J|BZDYpUc4{iKO2=__wJT|!Gqu*=-@I$5X2l=vv9@tzTX((3rtbNwwzuVM zc7CeN_F3T7o;KZVo%Sa{fB*pk1h!A0{%x?}w*6^nZ6Yt*Jp%4f$Lq(TA&2oNAZU|j-j|D)#b zz4zXk{f}F2xn-p#kBKP?9}sZtBpGue^h&tw&M$9zbv18^2u%XmHDaTTiLk5nOSAlbBxQX zZD+2jn>D4pd4D6buD_~w+zF~+cIxn z{4r0*HUb0)5Fl`52~6EfP~X8`dg-Nm;$Y_Wt)}9SwqMrX3q9`7<$9Ohn$jm6x2Kl# z+lw`|$C7o47wh~~{#wqqy)ez|({6YCF?IYgtb3fws_c^H{k0dSv@_4SZrj$*&x<4G z{f&(GYu{66o_Xd_UtC(7%+I^#Yp1=$A3H6sJ^};?5FoI90`vY|&-bluUuFARF~8(_ zeXFVXqb+S5f3$t9BO(51k0tZt@A2E?x$wdZhwM3LyLsMrJN{^oJ@dIAzwO7j^YPm& z-|^?o-euR8=iT3v-yfef&HEdfia+XoGHbjgM&oC0&8mAR){8%OLRlRI2oNAZVCw~{ z&rxY=X!~X3`8;=jFHH0LR*S?Ra8Pri}8p)#jbm=ABqC{@4j+br2vxfB=E*5vcw|rPbGH)9UXe{-}K0)0)Lfo!7To zEB=_*zZ&1qyI5sZSl&KdpUV@PZet?6;feZMWl(@v%?E zA7z#_*Jq9QS%KW)nbS`{edhaO9DlS;oA);|jz8M{#@8pdF7vMUYRlM(dGW_iD64}2 z0RjXFY`;MITn7#unAzW{-#y>$zS+FK)l~dZ?M-^wWtUAJUt+9WYrk95D_{A_!^S?U z@0VvHx5v=7G0%#veB*StfA_rFx!dtawWHGUZ>CgyUFk_Dom5$OJ$?T3pTF|HsP@%) zzVgZ|SK3$ak6JPBZ={VsYQIY7#liEg_o{k#Diwe1l(c#X5FkK+!1fE|nXT2o8K?8U zhu{8|9jako-)bCxRKKeBp7*;C`CavK{@QOl)6_ZZy8E1i@oz4)Z5-c!-k!63m)%b7 ze(ijlXFKNiQv6ZJ-8zlu^LvSvZ#z8JQ|7$;!N>3Qw%mDtBW?VVecEHqwSMC`r+n_X z?*&?2@oJafWW2&+WyD9{_JjEe^G5rnsJ!w6OGe(eX>BM?^XS)aXRll zi%lc1Q9#-~K9*XZcVGOh@to{CzCNclT%$Q#x;ej-SI3gH+^5<&t~lqU-M5`z@BK)1 z{HY^->9!qhxoy1H?lW%NPAundu5DX8pWl9&HLWN9NEvmUXPj}yVfB?$(i2WN;jk)e z-@`U+;|lS|HsUIp009C72yC-J^&Kjmcl~#MGa*yuZJXAvYvwk_>^?g410wr%Mvw|U#+%CpR>zu4~6mbDY} zr=51%q<7jqj*-UgIq$slR?b%)Tcvp)w9_KTSb6d+r`9d=Rqi;>u6^3Nwqt&(p8M{* zZ)Q7l{8Rg+ZS(#{+VPKe|ID9!^2vwQ*V>HVi>*VIRcX6zqw{T9?Y#J7qoVdBK!5-N z0=qBJ{+piGZrwYja<1%X7cBPvc{}{g?+hZI*FQATVoaVS{T^(bM ztF+~nTke56{`li7>tXw@Y}n?R_S~jzZCf+{geN>%3LEnR4w*fB*pk1PJVmK-*_XpQipDANP5(+>Q}c>)QQm-FBw)`c|{z zk7~~;6VG0)<7~$ZD*sNTX;a(J8~ayZc$Rb97aNz8@A+$L_iyKG`*x(M=V?!S+N$?d zdwgq+f8-jg%3sG;>7|!my3*u2o=R)Ocsc8{Zt9+tDmV4zJ+@QRR2x(Gys^kU_iSpa zvgZAbjN^~mr^>th^2=Au%f8aYW;Lc(`IEL~wDWDAt(<@O;fH6oaVzUl76AeT2oNB! zeFANt;nrJko%wHj`sn%nwoL6lZOdk@Z}V(s{(=iGnAyIm_+#9j@mRxd^*hTT*YQ{X zZk*nH^UalQNOLT8JeB^|Z~fNH_$B2%=}AvItc+DFws|4X6>E>H^b+ss@cY{Ef}~Ezmr#VBWNz_+wm7d%nt}bA5vcyd_@09H-}m%K+UF|OJ~_&Eemjmj7UQ~t@3%tS=;g~w6@%KKIM<^Z?FBf+H0!Z zdC$R3+n)U7C(muhdgG6_4f*|(@%Tb(lejIoKl1N<+Xu<@D>cn3r?zhLuN8l!t@Ex2YM%|Z)^UxuXIv<4iP@A}u5qes-?r0eT=w^W|M#yN`xv)v)_qDj zzBGg}zGB*Oy|tV&@^@7AR@#;`>pO@lW4qGCUGv6;(nb>j0t5&UAh7oZs?XB4 zw7vFxs{fJam)3Wn*>9?hw!E#FZ|}#QYE$|i^Wu+cWBQZ_4<20AFRt>E=K8apn9`2+ z8lbj+m-%W(wR={Zvc2x79+y$e_uO;O-20VhmA#qur}WoOt<_gtEB;9RFMjchSDmXm zrljp}Qmo}Pbu9B@o0Ok1lAWCLo|wA+G4IQIk0!PlPvc|H?-sUB?fg{yG2TD@{C1zJ zyIt4DwBz<{$8u~Ed$nztn%|DPl}UgA0RjXFY`?%FeaD^rJ>-nZ%)9QY`XTe;k5+B1 zYdGfpwnAIZ)cm+FH_lVr)7EPDRN8*GKQ3duJTI21zGM1s$+yTU%5_f27Rxk7s>1U&pyf zzcXb`wY^<8HQ$a`RDETdG_lsKSfMSi^~|$sr^;%}P0YCH^NVKHGhRPlPP~vdN0p)t`3Nb&8qK_+9&agZ6lG+~ehW7W1~1P1}yvsGXlz zj%@@85FkK+z}^(7K12Gy>GzNS&2N`8pFZtc*J4$f<0GE6zVhY!)kVfVs{gS_{844M zF+lC#rs;R)_cM+?_So8GC0(oCD;b-a+NbXCA3IjvSwD__YTu@~$-Z6s^Holpwsj>o z$avD!RP|Ka=2>K2`mE#YhuXT^`Lu6d{L$9kj#IS9Rr7b=dFRYys&dBdujRx`xjwDR z8n-d)zxK7S4fpEQK2>I=wZ78v`dXe!6A#w7M_YG0pEl(C|3#;*h(A)-tiO@8t=gAs z8S}e9b?lW^Tjwp0w`HGpUG9Y++f==EzQ$?QDTA0%Z?mEW!(Z%;ox{l3(*R-dEVvYz-O@l|_`P?a%G$Jb(w+nMF@y4JAf z)0fKcw~fmmFJF7@wYAHTE>d>oNnA0$r)0`5dFr>UYu~DLyj<(oN;Cd4@3%3t zO`e?_`m-rObKxYFmD{vW;cyJdf)gFQjfm7n1Lkv+t~OQ%7yf zce{BOZGL~F?a!pHS{|oU?HI=&Req)IaaH~8GjOZSs;ic(9qF&H_1vGTE60?6;G*9j z$1QQnMyIMb`>!Wv%(2yR)pzXk+K_tc*b;Zds=O*~-Ny56p7q2ZX;by9+cK*Bc3onG zjGv{S-@2@IT(j;4sj@3gow+vg{PWLW6)(;!Kid-PapKXPpK+k9;uRql9QmQzRCoj5an`Ha`hn`XrzRY#jved%xK+Pd@3J8yU&P#`D*)kUB(VCyX>;TChf{O zh)q5Z^7oU!qxSxrDrZ(YE`OY_+AAeMfB*pk1da}YS@)x+4=}G^Ftu%J-CE_O4|hs` z&HT8}QOon(kFn|9;*yukE#8@{IGPznAjUj;g!T zaogJEHc!o0+UA>@Z}X+Unm%T`F7vg#p7^6Zw)MmaX=Bxw`FxK*YpOafxZr}B@3E<4 z9@jC>Q}tKcZl79r;J|@RjfHJT{1LN^-{fAew*5OjpYJl}#lN%8t@Q*55FkK+z>zDE z?=Exy@>IWR(Z0w=_HCcDHLIR^@y9Ij>T_m$ez$ES{q95XvcGY^~kMXhAcwE)DmUXo?eb+^%^x^0AbE~|n zztX98)V4}%-*KAl8B0lwz0oP>eJcK_y5qLdDP`yWjEwJ%+g{66Po=efDqSm2yFKS3 zVVzaf{JGFh@F(m)g z_KZ*Dd0&~@_+y-RGx0~tZexThyVCYp+I4w9Ejs1Bkn_}*H8tOsKeavU*2?iX4SRX@sBD$XD#>7rhnD8tDT=}L%Xi>R$ANg zoY?daGqv>%E4KN6dA8X2d9T&Jaa!#ir}Ofq?DqbO9A6uMjLX_={1L9aKkC`MXKZT4yZ&m5KgW>!mZqLxR&~ru$90dFYrotB(e|&``@U%NXTIW(aeY}{H2!GIoN~#! z$3On@tK!;meL24Iy76)uWPQ6W^YyH;s=wNl>(gq#aawt$1PBlyK!CuJDNz63uhsh8 zCtJ^XYWoo5zQH2P>GS7a-nKth^;dh^a@zXV6Ms}$RrXYx=RD<}m+`&BZJo2`+csuC z&r8ZZ+-rTmy-2&J+B$1pl~-x<@d0P>G zRGo=)+TTeZ*Hvvu-*qEX{Boa8+FWH#)iJfM^0#T86`Z&!KJB?l+s4c5X>aze_@nA; z+q7u>F;(ZdUA3HNZfDGE-nc}yWs$W0Rx*Z`I;x&()4Xw)$|EH}fB*pk1dd#R@xT4^ zjwIiQ=9#4FkB;x7nCf>_zbMbYN#8O3yXv2h>#gOa>FZ3r&N}O?dCfa)Ta|g(hS7@T zOP@V;uIGF3j1A>^tLYn$>l!bo%Bgjurfh0)T>eQXoivQ|1nQ;i#se^ePMceC-w_;^x(jw$U**?A9EeU+x|>zUd*YCf@X;?l%$?Q_nm zj@GPw-{*dxyw4Mdj-L%&Wv{1g$vd@Q?z@@#`^a;sGG@8nX{wGYqurLj-NZimt@gz1 z@hFo@TaVW1rkidW#%2ynB;S`G6A2oNAZVE+h=`v&cD=JU$$2IQXZT+5Va zpr$XLSDuNKK4SVp>C4qrWz0$|->kIuo3*`Nzi8g6eCa#pTBh_P(+|ye%6Vlz>$0tW z`=G6JJYQv3I^Moj%We7X{J8v+Pd<4#CpkA4UU=ck`O3M=In23C-*#%6DmUxK@kiVL z+-&?&?Wnpdt@TOMpG}{*Jx^2l+I`0J^YUkmtlsBw%ljbj@%)Bf`#z8DymH2Mu4lQ* zt#sDDYi*ykU#*|Ff4i;b6ALD8k4r3Kld;YETgm<8IX^Ydu}D41BmO8UDFFfm2oN}W z1*$)hBW&lVmRp5!-dXwEd^KO`TIIFdH!@%K%t|*>=DdBz^;F(j>udXZ(<-m_YnR*k z+Ft3rZI!1@+x%1WI}v}h?P=%R_O$C4ncvBMtFB5HX?K&Ked0muI4M9YUg-c z<(W#S@`^vEq^u)AfB*pkM~A@Fzx}h0Y(06`Dq~hzv)0clZ>{xPU0z#XTXxM?+U6V2 zFOp}x&t{g_TVI>MouAc)-HbodrfTCjoz>p;tgkZX?K94^*7CfvHo9$G=c47TXTSC2 z9oN5}eUn%GF&4B;fB*pk1PBlyPy)Lhe^fh;=5$v7eb)LT-9r3vq@O|UCqRGz0RjXF zY@dMmV|#4p#TK*fKhHhsc~;$#K8Zh$^fRda1PBlyK!5;&?Gq4xY@cmP9>*bB9zTD# zz32a;i!M5BpY3ho)|W2+*m_eX5+Fc;009C7jurv&$M&4bsko!o@1PBlyuzdpJkL|OaRdRkur;RykJ~2t2rF^7M;*TT!3~E0C0t5&U zAV6UI1jHZPXWN!sV;@;J@A@m_AFY~s0t5&UAV7csful`8{ITGDGi&`;)jL(rM%JyTohiS~-_CEO?w#1@2~T)J_p+D0tb6H8Upl1cpMU<4 zW?lNprmYt^<&;xajN_bF-1Ba74C3}=bn4+@b(=2oNAZfWV#? z*yz9CwO^&<1D&;goNv6`?$^$b^Gz*R{&Cvot!-J?&R3qPb+v7+bkTi}J@(k4sN|ou z&v<<;SGrbPc6<9&JEzv|b~}&6`pdD>S;tV@E1i{ZudF{(+PPP}w1WTv0t5&gi2@t_ z_rCV4w2pnP<;piJ9q(WH#_Pw+m2Z)>_N{bkpLyGof35BF@~mgyweqgDed^eDVqLYX z(yDX3T~-(ocqAV7cs0RoE%9CzGtU9R1D>|-Ch zNcL5Ejz9kR?yR%U>R$1RS9C9U!3(+*PB>xJ_VGgU&#Noja_vs0>UUI{b=h98lTSXm z%j?urPhDA;@-t#LrmS(my}W=*Lp>uP(_SdQx%FW3H+ zw&he=sjrSD`KHRKb>I8F-#fIS%G>R<+O^(xY;?c%)^jxEFRMzYj%nVusr-9&-PCbR zt=p^Z*DeAC2oNAZV0B+M|Bl!12E64hZ&`?^{_VfwiYtcS8>naO+itz})><{B zciwsDu)Zz3J-+rn-e*1QS%>A#ez)9mOLyLR=dCKYU8uHHTK;W4Re##|yyrcy-F=v^ zeY5bu0}l-C*hu_%Si#%0qHS-gsO3uQTC{Dd{-`gu99!Eu=yqGJ+w19(*yg=%s(l0q z5FkKcFA1d2p1$u}-}=@yn^paSk9_1KD}C?GCw95+y6aZf-E`AUhn1Cm-}~P8uH>n) zgeo&*DAn&y-#$}qOPc)Ie&E1?;rG-oy6B=Iwn&=aS4(X0MVNdQ(^Br<^Lk+LfK2`OIeydGEO6j-l@4i$ncRT8_0H z!x$=>_+R~Q^`}1dsg-h4*5#L9K9rwhZtEQv5s&0ae74u7a;;rm8Soj{_7&~N9sJ|j5AjCi>sV$ z%NRy|k6+*0x7!aMJlNfH&pkt)T(?!*k|vJHwzMUE|Js&vGbL`ww!81XduheQ|J!|1 zM)IdG-%hW2&1;7B?|kPw+ttH-#UH2i*HX1*9hR|QQR5$p6WY9KXT@iUsn(k6xv3d9 zYRk!f7hZVbU^Q<{sp6fzHvUn^QfccjwXWT6e!jrb?l(TZ@p5!(U8VEIY$ZT|009C7 zc3YtRH@mL?S>*bw>{os3Ttn5CQ^%C`i9wRDrsT_5L)Kq<>7~OMLG}N$t;RMID?Iej zL#y_!GAjPaHByUADQg^mrUNrP;+kG;Ik-l}F$3HdIJs!Enshuvk;DTYljEf}p zNWZzJ+`FDK6QiWBo%zHhRd3RYKhn;5Q|(jnN8+FyOJ2F3VqV+p{*OiDkCZhvHjy^u zK9Fp0uL-MmR~xfj{!``TT%?Ry<0vUR+w-dNrm7=pTTi>*JOKg(2oNAZfB=D=6lnXU z)&ET&Hs7OHf40)Z5xK6armubNYcu=1$y2dJ8((C78&_1Gr#v;f5QA`%O}2y-q*<^p*a0j<3q8<7m^wFm3tek@1fhBxXsuxu>PduNa{6*4V^2 zZm8|oUVH7}lzg?W(s*Rba>k!h=Y99xH^ee2@0x3_S-D4L>OPVxr@fyh$JE|$QhAnY z5{s0BlmGz&1PBlyKwx(Ss()JXM`D0>${4_9mt8jWp>Mza_LWV!ekpzVw!go!v7f2f zqT-2cOTRe#1(&Ij9cVBmYQ;Gb^pgD zms~Q8o#g)Pj2C3wCePSP9P^Z?JY^*|$i68vb^lGgGCq@WlQ^XvxwpKItIk*LTTa<0<4MV%--6E6=56O|Unv0s1PBlyK!5;& zofK&Mq*L)nyFLBl^lj^YiF$TajR%a|UH$&_*;7tl)mLw0ob;RXI_SQu&kC{WleV)&AM9+LJgbQ|*`eic!*z+CFjit819r{&Zan^}-jvaHZ(P2kGml-jtVn z!)vaVocR~(dj##3Ua)SWmaQ|&t|W~l9LIc@yWuFrhkYoBN8 zj;C>175|l2yFJeVj!njFYJJjk&N*jjf6hfs6;suDZ1YzhDFFfm2oNAZfB=Er7O4Jj z`mO1+w*A&z&y)UdVv3rc^rR;Zec!CF{(H7%zv=^z#}Mk7S@k`B@~8ivGLp9~KilfM zue7b&G%Nl{{F#Q{pVFynPIbe%S<)7H0>dE~!$BcltIYZ{9?J009C7 z2oNAZU@r>fyY=*&+gIX=+<%d{;N<>Zh^Z<4=DId3{q4N6+P&mmAFnC#N885ne8vh=SJjdJ|2R+LkK7kN>)F8-L)3nC?|Isob#;$Q z+LXGoy|!h0Vug&|)HqMIrP4ZhPB>vWZz(77 z(Y$)c`&uSIfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF 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 zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DQZ F)j$hc?4<3> -gmac_rxd2 = port:PD09<4><3> -gmac_rxd1 = port:PD10<4><3> -gmac_rxd0 = port:PD11<4><3> -gmac_rxclk = port:PD12<4><3> -gmac_rxdv = port:PD13<4><3> -gmac_rxerr = port:PD14<4><3> -gmac_txd3 = port:PD15<4><3> -gmac_txd2 = port:PD16<4><3> -gmac_txd1 = port:PD17<4><3> -gmac_txd0 = port:PD18<4><3> -gmac_txclk = port:PD19<4><3> -gmac_txen = port:PD20<4><3> -gmac_clkin = port:PD21<4><3> -gmac_mdc = port:PD22<4><3> -gmac_mdio = port:PD23<4><3> -gmac_power1 = "vcc-gmac-33" -gmac_power2 = -tx-delay = 0 -rx-delay = 0 +[gmac_para] +gmac_used = 0 +gmac_txd0 = port:PA00<2> +gmac_txd1 = port:PA01<2> +gmac_txd2 = port:PA02<2> +gmac_txd3 = port:PA03<2> +gmac_txd4 = port:PA04<2> +gmac_txd5 = port:PA05<2> +gmac_txd6 = port:PA06<2> +gmac_txd7 = port:PA07<2> +gmac_txclk = port:PA08<2> +gmac_txen = port:PA09<2> +gmac_gtxclk = port:PA10<2> +gmac_rxd0 = port:PA11<2> +gmac_rxd1 = port:PA12<2> +gmac_rxd2 = port:PA13<2> +gmac_rxd3 = port:PA14<2> +gmac_rxd4 = port:PA15<2> +gmac_rxd5 = port:PA16<2> +gmac_rxd6 = port:PA17<2> +gmac_rxd7 = port:PA18<2> +gmac_rxdv = port:PA19<2> +gmac_rxclk = port:PA20<2> +gmac_txerr = port:PA21<2> +gmac_rxerr = port:PA22<2> +gmac_col = port:PA23<2> +gmac_crs = port:PA24<2> +gmac_clkin = port:PA25<2> +gmac_mdc = port:PA26<2> +gmac_mdio = port:PA27<2> ;---------------------------------------------------------------------------------- ;i2c configuration @@ -207,17 +211,31 @@ rx-delay = 0 twi0_used = 1 twi0_scl = port:PH0<2> twi0_sda = port:PH1<2> +twi_regulator = "vcc-io2" + +[twi0_suspend] +twi0_scl = port:PH0<7> +twi0_sda = port:PH1<7> [twi1] -twi1_used = 0 +twi1_used = 1 twi1_scl = port:PH2<2> twi1_sda = port:PH3<2> +twi_regulator = "vcc-io2" + +[twi1_suspend] +twi1_scl = port:PH2<7> +twi1_sda = port:PH3<7> [twi2] twi2_used = 0 twi2_scl = port:PE14<3> twi2_sda = port:PE15<3> +[twi2_suspend] +twi2_scl = port:PE14<7> +twi2_sda = port:PE15<7> + ;---------------------------------------------------------------------------------- ;TWI device configuration ;compatible --- device name @@ -239,6 +257,10 @@ uart0_type = 2 uart0_tx = port:PB8<4><1> uart0_rx = port:PB9<4><1> +[uart0_suspend] +uart0_tx = port:PB8<7><1> +uart0_rx = port:PB9<7><1> + [uart1] uart1_used = 1 uart1_port = 1 @@ -248,6 +270,12 @@ uart1_rx = port:PG7<2><1> uart1_rts = port:PG8<2><1> uart1_cts = port:PG9<2><1> +[uart1_suspend] +uart1_tx = port:PG6<7><1> +uart1_rx = port:PG7<7><1> +uart1_rts = port:PG8<7><1> +uart1_cts = port:PG9<7><1> + [uart2] uart2_used = 0 uart2_port = 2 @@ -257,6 +285,12 @@ uart2_rx = port:PB1<2><1> uart2_rts = port:PB2<2><1> uart2_cts = port:PB3<2><1> +[uart2_suspend] +uart2_tx = port:PB0<7><1> +uart2_rx = port:PB1<7><1> +uart2_rts = port:PB2<7><1> +uart2_cts = port:PB3<7><1> + [uart3] uart3_used = 0 uart3_port = 3 @@ -266,6 +300,12 @@ uart3_rx = port:PH5<2><1> uart3_rts = port:PH6<2><1> uart3_cts = port:PH7<2><1> +[uart3_suspend] +uart3_tx = port:PH4<7><1> +uart3_rx = port:PH5<7><1> +uart3_rts = port:PH6<7><1> +uart3_cts = port:PH7<7><1> + [uart4] uart4_used = 0 uart4_port = 4 @@ -275,6 +315,12 @@ uart4_rx = port:PD3<3><1> uart4_rts = port:PD4<3><1> uart4_cts = port:PD5<3><1> +[uart4_suspend] +uart4_tx = port:PD2<7><1> +uart4_rx = port:PD3<7><1> +uart4_rts = port:PD4<7><1> +uart4_cts = port:PD5<7><1> + ;---------------------------------------------------------------------------------- ;SPI controller configuration ;---------------------------------------------------------------------------------- @@ -287,6 +333,12 @@ spi0_sclk = port:PC2<4> spi0_mosi = port:PC0<4> spi0_miso = port:PC1<4> +[spi0_suspend] +spi0_cs0 = port:PC3<7><1> +spi0_sclk = port:PC2<7> +spi0_mosi = port:PC0<7> +spi0_miso = port:PC1<7> + [spi1] spi1_used = 0 spi1_cs_number = 1 @@ -296,6 +348,12 @@ spi1_sclk = port:PD1<4> spi1_mosi = port:PD2<4> spi1_miso = port:PD3<4> +[spi1_suspend] +spi1_cs0 = port:PD0<7><1> +spi1_sclk = port:PD1<7> +spi1_mosi = port:PD2<7> +spi1_miso = port:PD3<7> + ;---------------------------------------------------------------------------------- ;SPI device configuration ;compatible --- device name @@ -330,13 +388,14 @@ rtp_exchange_x_y_flag = 0 ;notice --- tp_int_port & tp_io_port use the same port ;---------------------------------------------------------------------------------- [ctp] -compatible = "allwinner,sun50i-ctp-para" +compatible = "allwinner,sun50i-ctp-para" ctp_used = 1 -ctp_name = "ft5x_ts" +ctp_name = "ft5x_ts" +;ctp_name = "gsl1680e_801YDT" ctp_twi_id = 0 ctp_twi_addr = 0x38 ctp_screen_max_x = 800 -ctp_screen_max_y = 480 +ctp_screen_max_y = 1280 ctp_revert_x_flag = 0 ctp_revert_y_flag = 0 ctp_exchange_x_y_flag = 0 @@ -353,15 +412,15 @@ ctp_power_io = ;Module name postposition 1 said detection, 0 means no detection. ;-------------------------------------------------------------------------------- [ctp_list] -compatible = "allwinner,sun50i-ctp-list" -ctp_list_used = 1 -gslX680new = 0 +compatible = "allwinner,sun50i-ctp-list" +ctp_list_used = 1 +ft5x16_ts = 1 +gslX680new = 1 gt9xx_ts = 0 -gt9xxnew_ts = 0 -gt82x = 0 -zet622x = 0 -aw5306_ts = 0 -ft5x = 1 +gt9xxnew_ts = 1 +gt82x = 1 +zet622x = 1 +aw5306_ts = 1 ;---------------------------------------------------------------------------------- ;touch key configuration @@ -380,7 +439,7 @@ motor_used = 0 motor_shake = port:power3<1><1> ;---------------------------------------------------------------------------------- -; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 +; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 ;---------------------------------------------------------------------------------- [nand0_para] nand0_dragonboard = 0 @@ -407,8 +466,8 @@ nand0_ndqs = port:PC16<2><0><1> nand0_ce2 = port:PC17<2><1><1> nand0_ce3 = port:PC18<2><1><1> -nand0_regulator1 = "vcc-nand" -nand0_regulator2 = "none" +nand0_regulator1 = "vcc-nand" +nand0_regulator2 = "none" nand0_cache_level = 0x55aaaa55 nand0_flush_cache_num = 0x55aaaa55 nand0_capacity_level = 0x55aaaa55 @@ -433,11 +492,11 @@ nand0_p3 = 0x55aaaa55 disp_init_enable = 1 disp_mode = 0 -screen0_output_type = 3 -screen0_output_mode = 5 +screen0_output_type = 1 +screen0_output_mode = 4 screen1_output_type = 3 -screen1_output_mode = 5 +screen1_output_mode = 4 fb0_format = 0 fb0_width = 0 @@ -480,30 +539,27 @@ fb1_height = 0 ;---------------------------------------------------------------------------------- [lcd0] lcd_used = 1 -lcd_driver_name = "S070WV20_MIPI_RGB" -lcd_bl_0_percent = 0 -lcd_bl_40_percent = 23 -lcd_bl_100_percent = 100 - -lcd_backlight = 180 +lcd_driver_name = "WilliamLcd" +;lcd_model_name= "LT080B21BA94" +lcd_backlight = 50 lcd_if = 4 lcd_x = 800 -lcd_y = 480 -lcd_width = 86 -lcd_height = 154 -lcd_dclk_freq = 30 +lcd_y = 1280 +lcd_width = 108 +lcd_height = 172 +lcd_dclk_freq = 95 lcd_pwm_used = 1 -lcd_pwm_ch = 16 -lcd_pwm_freq = 50000 +lcd_pwm_ch = 0 +lcd_pwm_freq = 10000 lcd_pwm_pol = 1 lcd_pwm_max_limit = 255 -lcd_hbp = 88 -lcd_ht = 928 -lcd_hspw = 48 -lcd_vbp = 32 -lcd_vt = 525 -lcd_vspw = 3 +lcd_hbp = 78 +lcd_ht = 1198 +lcd_hspw = 20 +lcd_vbp = 15 +lcd_vt = 1330 +lcd_vspw = 5 lcd_lvds_if = 0 lcd_lvds_colordepth = 0 lcd_lvds_mode = 0 @@ -518,16 +574,17 @@ lcd_gamma_en = 0 lcd_bright_curve_en = 0 lcd_cmap_en = 0 -lcd_bl_en = port:PD5<1><0><2><1> -lcd_bl_en_power = "none" -lcd_power = "vcc-lcd" -lcd_power1 = "vcc-dsi-33" -;lcd_power2 = "vcc-pd" -;lcd_fix_power = "vcc-dsi-33" +lcd_gpio_0 = port:PD24<1><0><1> + +;power enable +lcd_gpio_1 = port:PD21<1><0><1> +lcd_bl_en = port:PD23<1><0><1> + +lcd_power = "vcc-mipi" +lcd_power1 = "vcc-lcd" lcd_pin_power = "vcc-pd" -lcd_gpio_0 = port:PD6<1><0><2><1> -lcd_gpio_1 = port:PD7<1><0><2><1> -;lcd_io_regulator1 = "vcc-pd" +lcd_fix_power = "vcc-dsi-33" + [hdmi] hdmi_used = 1 @@ -539,34 +596,23 @@ hdmi_cts_compatibility = 0 ;pwm config ;---------------------------------------------------------------------------------- [pwm0] -pwm_used = 0 +pwm_used = 1 pwm_positive = port:PD22<2><0> [pwm0_suspend] pwm_positive = port:PD22<7><0> -[spwm0] -s_pwm_used = 1 +[pwm16] +s_pwm0_used = 0 pwm_positive = port:PL10<2><0> -[spwm0_suspend] +[pwm16_suspend] pwm_positive = port:PL10<7><0> - -;----------------------------------------------------------------- -;advert_disp - 1: can used app to change bootlogo, 0:not used -;auto_hpd - 1:need hotplud for hdmi/tv; 0:don't hotplud for lcd -;output_type - 0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga (as default config in homlet) -;hdmi_channel - the display channel for hdmi (as default config in homlet) -;cvbs_channel - the display channel for cvbs (as default config in homlet) -;hdmi_mode - as default config for output of hdmi in homlet -;cvbs_mode - as default config for output of tv in homlet. 11:PAL; 14:NTSC -;hdmi_mode_check - disable/enable the function of checking hdmi mode, 0 is disable, 1 is enable -;----------------------------------------------------------------- [boot_disp] output_disp = 0 -output_type = 3 -output_mode = 5 +output_type = 1 +output_mode = 4 ;-------------------------------------------------------------------------------- ;csi (COMS Sensor Interface) configuration @@ -593,63 +639,64 @@ output_mode = 5 ;-------------------------------------------------------------------------------- [csi0] -csi0_used = 1 -csi0_sensor_list = 1 -csi0_pck = port:PE00<2> -csi0_mck = port:PE01<0><0><1><0> -csi0_hsync = port:PE02<2> -csi0_vsync = port:PE03<2> -csi0_d0 = port:PE04<2> -csi0_d1 = port:PE05<2> -csi0_d2 = port:PE06<2> -csi0_d3 = port:PE07<2> -csi0_d4 = port:PE08<2> -csi0_d5 = port:PE09<2> -csi0_d6 = port:PE10<2> -csi0_d7 = port:PE11<2> -csi0_sck = port:PE12<2> -csi0_sda = port:PE13<2> +csi0_used = 1 +csi0_sensor_list = 0 +csi0_pck = port:PE00<2> +csi0_mck = port:PE01<2> +csi0_hsync = port:PE02<2> +csi0_vsync = port:PE03<2> +csi0_d0 = port:PE04<2> +csi0_d1 = port:PE05<2> +csi0_d2 = port:PE06<2> +csi0_d3 = port:PE07<2> +csi0_d4 = port:PE08<2> +csi0_d5 = port:PE09<2> +csi0_d6 = port:PE10<2> +csi0_d7 = port:PE11<2> +csi0_sck = port:PE12<2> +csi0_sda = port:PE13<2> [csi0/csi0_dev0] csi0_dev0_used = 1 -csi0_dev0_mname = "ov5640" +csi0_dev0_mname = "gc2145" csi0_dev0_twi_addr = 0x78 csi0_dev0_pos = "rear" csi0_dev0_isp_used = 1 csi0_dev0_fmt = 0 csi0_dev0_stby_mode = 0 -csi0_dev0_vflip = 1 -csi0_dev0_hflip = 1 -csi0_dev0_iovdd = "avdd-csi" +csi0_dev0_vflip = 0 +csi0_dev0_hflip = 0 +csi0_dev0_iovdd = "iovdd-csi" csi0_dev0_iovdd_vol = 2800000 csi0_dev0_avdd = "avdd-csi" csi0_dev0_avdd_vol = 2800000 csi0_dev0_dvdd = "dvdd-csi-18" csi0_dev0_dvdd_vol = 1500000 -csi0_dev0_afvdd = "avdd-csi" +csi0_dev0_afvdd = "afvcc-csi" csi0_dev0_afvdd_vol = 2800000 +;csi0_dev0_power_en = port:PB04<1><0><1><0> csi0_dev0_power_en = -csi0_dev0_reset = port:PE16<0><0><1><0> -csi0_dev0_pwdn = port:PE17<0><0><1><0> +csi0_dev0_reset = port:PE14<1><0><1><0> +csi0_dev0_pwdn = port:PE15<1><0><1><0> csi0_dev0_flash_used = 0 csi0_dev0_flash_type = 2 csi0_dev0_flash_en = csi0_dev0_flash_mode = -csi0_dev0_flvdd = "" -csi0_dev0_flvdd_vol = +csi0_dev0_flvdd = "" +csi0_dev0_flvdd_vol = csi0_dev0_af_pwdn = -csi0_dev0_act_used = 1 -csi0_dev0_act_name = "dw9714_act" +csi0_dev0_act_used = 0 +csi0_dev0_act_name = "ad5820_act" csi0_dev0_act_slave = 0x18 [csi0/csi0_dev1] -csi0_dev1_used = 0 -csi0_dev1_mname = "gc0328c" +csi0_dev1_used = 1 +csi0_dev1_mname = "gc0312" csi0_dev1_twi_addr = 0x42 csi0_dev1_pos = "front" csi0_dev1_isp_used = 1 csi0_dev1_fmt = 0 -csi0_dev1_stby_mode = 1 +csi0_dev1_stby_mode = 0 csi0_dev1_vflip = 0 csi0_dev1_hflip = 0 csi0_dev1_iovdd = "iovdd-csi" @@ -657,18 +704,18 @@ csi0_dev1_iovdd_vol = 2800000 csi0_dev1_avdd = "avdd-csi" csi0_dev1_avdd_vol = 2800000 csi0_dev1_dvdd = "dvdd-csi-18" -csi0_dev1_dvdd_vol = 1800000 -csi0_dev1_afvdd = "" -csi0_dev1_afvdd_vol = +csi0_dev1_dvdd_vol = 1500000 +csi0_dev1_afvdd = "afvcc-csi" +csi0_dev1_afvdd_vol = 2800000 csi0_dev1_power_en = -csi0_dev1_reset = -csi0_dev1_pwdn = +csi0_dev1_reset = port:PE16<1><0><1><0> +csi0_dev1_pwdn = port:PE17<1><0><1><0> csi0_dev1_flash_used = 0 csi0_dev1_flash_type = 2 csi0_dev1_flash_en = csi0_dev1_flash_mode = -csi0_dev1_flvdd = "vdd-csi-led" -csi0_dev1_flvdd_vol = 3300000 +csi0_dev1_flvdd = "" +csi0_dev1_flvdd_vol = csi0_dev1_af_pwdn = csi0_dev1_act_used = 0 csi0_dev1_act_name = "ad5820_act" @@ -701,18 +748,18 @@ di_used = 1 ; non-removable:if you use as main memory,you should set it,for example eMMC | ; bus-width: card bus width, 1-1bit, 4-4bit, 8-8bit | ; sunxi-power-save-mode: if use sdio card,should not set it | -; vmmc:regulator for card/emmc power | +; vmmc:regulator for card/emmc power | ; vqmmc:regulator for card/emmc io power | ; vdmmc:regulator for card detect pin pull up power | ; other: GPIO Mapping configuration | ; ------------------------------------------------------------------------------| ; Note: | -; | -; | -; | -; | -; | -; | +; | +; | +; | +; | +; | +; | ;-------------------------------------------------------------------------------- [sdc0] @@ -725,8 +772,8 @@ sdc0_cmd = port:PF03<2><1><2> sdc0_d3 = port:PF04<2><1><2> sdc0_d2 = port:PF05<2><1><2> cd-gpios = port:PF06<0><1><2> -sunxi-power-save-mode = -sunxi-dis-signal-vol-sw = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = vmmc="vcc-sdcv" vqmmc="vcc-sdcvq33" vdmmc="vcc-sdcvd" @@ -768,8 +815,8 @@ sdc2_d6 = port:PC14<3><1><3> sdc2_d7 = port:PC15<3><1><3> sdc2_emmc_rst = port:PC16<3><1><3> cd-gpios = -sunxi-power-save-mode = -sunxi-dis-signal-vol-sw = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = mmc-ddr-1_8v = mmc-hs200-1_8v = mmc-hs400-1_8v = @@ -820,22 +867,23 @@ smc_sck = smc_sda = ;-------------------------------- -;[usbc0]:控制器0的配置。 -;usb_used:USB使能标志。置1,表示系统中USB模块可用,置0,则表示系统USB禁用。 -;usb_port_type:USB端口的使用情况。 0:device only;1:host only;2:OTG -;usb_detect_type:USB端口的检查方式。0:不做检测;1:vbus/id检查;2:id/dpdm检查 -;usb_id_gpio:USB ID pin脚配置。具体请参考gpio配置说明。 -;usb_det_vbus_gpio:USB DET_VBUS pin脚配置。具体请参考gpio配置说明。 -;usb_drv_vbus_gpio:USB DRY_VBUS pin脚配置。具体请参考gpio配置说明。 -;usb_det_vbus_gpio: "axp_ctrl",表示axp 提供 +;[usbc0]: usbc0 configuration. +;usb_used: usb controller enable. 0-disable, 1-enable. +;usb_port_type: usb mode. 0-device, 1-host, 2-otg. +;usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect. +;usb_detect_mode: usb otg switch has two config. 0-thread scan, 1-id gpio interrupt. +;usb_id_gpio: usb id detect IO. +;usb_det_vbus_gpio: USB DET_VBUS has two config. (1)gpio pin; (2)"axp_ctrl", use axp intf. +;usb_drv_vbus_gpio: USB DRY_VBUS has two config. (1)gpio pin; (2)"axp_ctrl", use axp intf. ;-------------------------------- ;-------------------------------- -;--- USB0控制标志 +;--- USB0 CONFIG ;-------------------------------- [usbc0] usbc0_used = 1 usb_port_type = 2 usb_detect_type = 1 +usb_detect_mode = 0 usb_id_gpio = port:PH09<0><1> usb_det_vbus_gpio = "axp_ctrl" usb_drv_vbus_gpio = port:power3<1><0><0> @@ -849,11 +897,11 @@ usb_serial_number = "20080411" rndis_wceis = 1 ;-------------------------------- -;--- USB1控制标志 +;--- USB1 CONFIG ;-------------------------------- [usbc1] -usbc1_used = 1 -usb_drv_vbus_gpio = +usbc1_used = 0 +usb_drv_vbus_gpio = port:PB06<1><0><0> usb_host_init_state = 1 usb_regulator_io = "nocare" usb_wakeup_suspend = 0 @@ -881,10 +929,10 @@ sn_filename = "ULI/factory/snum.txt" ;-------------------------------------------------------------------------------- [gsensor] compatible = "allwinner,sun50i-gsensor-para" -gsensor_used = 0 +gsensor_used = 1 gsensor_twi_id = 1 -gsensor_twi_addr = 0x1d -gsensor_vcc_io = "vcc-io" +gsensor_twi_addr = 0x18 +gsensor_vcc_io = "vcc-io2" gsensor_vcc_io_val = 3300 gsensor_int1 = port:PH05<6><1> gsensor_int2 = port:PH06<6><1> @@ -896,7 +944,7 @@ gsensor_int2 = port:PH06<6><1> ;-------------------------------------------------------------------------------- [gsensor_list] compatible = "allwinner,sun50i-gsensor-list-para" -gsensor_list__used = 1 +gsensor_list_used = 1 lsm9ds0_acc_mag = 0 bma250 = 1 mma8452 = 0 @@ -912,6 +960,7 @@ mxc622x = 0 fxos8700 = 0 lsm303d = 0 sc7a30 = 0 +mir3da = 1 ;-------------------------------------------------------------------------------- ;wlan configuration @@ -924,10 +973,11 @@ sc7a30 = 0 ;wlan_hostwake: wlan to wake-up host ;-------------------------------------------------------------------------------- [wlan] +compatible = "allwinner,sunxi-wlan" wlan_used = 1 wlan_busnum = 1 -;clocks = -wlan_power = "vcc-wifi" +clocks = +wlan_power = wlan_io_regulator = "vcc-wifi-io" wlan_regon = port:PL02<1><0> wlan_hostwake = port:PL03<6><0> @@ -936,14 +986,15 @@ wlan_hostwake = port:PL03<6><0> ;bluetooth configuration ;bt_used: 0- no used, 1- used ;clocks: external low power clock input (32.768KHz) -;bt_power: input supply voltage +;bt_power: input supply voltage ;bt_io_regulator: bluetooth I/O voltage ;bt_rst_n: power up/down internal regulators used by BT section ;-------------------------------------------------------------------------------- [bt] +compatible = "allwinner,sunxi-bt" bt_used = 1 -;clocks = -bt_power = "vcc-wifi" +clocks = +bt_power = bt_io_regulator = "vcc-wifi-io" bt_rst_n = port:PL04<1><0> @@ -955,6 +1006,7 @@ bt_rst_n = port:PL04<1><0> ;bt_hostwake: bt device wake-up host ;-------------------------------------------------------------------------------- [btlpm] +compatible = "allwinner,sunxi-btlpm" btlpm_used = 1 uart_index = 1 bt_wake = port:PL06<1><1> @@ -1063,12 +1115,12 @@ daudio2_used = 1 [sndhdmi] sndhdmi_used = 1 ;-------------------------------------------------------------------------------- -;allwinner,pcm_lrck_period :16/32/64/128/256 +;allwinner,pcm_lrck_period :16/32/64/128/256 ;allwinner,pcm_lrckr_period :no use -;allwinner,slot_width_select :16bits/20bits/24bits/32bits -;allwinner,pcm_lsb_first :0: msb first; 1: lsb first -;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law -;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,slot_width_select :16bits/20bits/24bits/32bits +;allwinner,pcm_lsb_first :0: msb first; 1: lsb first +;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law ;allwinner,daudio_master :1: SND_SOC_DAIFMT_CBM_CFM(codec clk & FRM master) use ; 2: SND_SOC_DAIFMT_CBS_CFM(codec clk slave & FRM master) not use ; 3: SND_SOC_DAIFMT_CBM_CFS(codec clk master & frame slave) not use @@ -1143,9 +1195,9 @@ daudio1_used = 0 ;allwinner,dachpf_cfg : 1:use adchpf 0:no use ;allwinner,aif2config : 1:use aif2 0:no use ;allwinner,aif3config : 1:use aif3 0:no use -;allwinner,hp_detect_case :0:low 1:high +;allwinner,hp_detect_case :0:low 1:high ;-------------------------------------------------------------------------------- -; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 +; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 ; codec_used = 0x1,if register the sound card audiocodec. ;--------------------------------------------------------------------------------- [sndcodec] @@ -1153,7 +1205,7 @@ sndcodec_used = 0x1 aif2fmt = 0x3 aif3fmt = 0x3 aif2master = 0x1 -hp_detect_case = 0x1 +hp_detect_case = 0x0 ;------------------------------------------------------------------------------ [i2s] i2s_used = 0x1 @@ -1161,10 +1213,11 @@ i2s_used = 0x1 [codec] codec_used = 0x1 headphonevol = 0x38 -spkervol = 0x1d +spkervol = 0x18 earpiecevol = 0x1e -maingain = 0x4 +maingain = 0x7 headsetmicgain = 0x4 +adcinputgain = 0x7 adcagc_cfg = 0x0 adcdrc_cfg = 0x0 adchpf_cfg = 0x1 @@ -1176,107 +1229,59 @@ aif1_lrlk_div = 0x40 aif2_lrlk_div = 0x40 pa_sleep_time = 0x0a dac_digital_vol = 0x9898 -gpio-spk = port:PD14<1><0><0> +gpio-spk = port:PH07<2><1> ;---------------------------------------------------------------------------------- ;ir --- infra remote configuration ;---------------------------------------------------------------------------------- [s_cir0] -s_cir0_used = 1 -ir_protocol_used = 1 -ir_addr_cnt = 15 -ir_power_key_code0 = 0x57 -ir_addr_code0 = 0x9f00 -ir_power_key_code1 = 0x1a -ir_addr_code1 = 0xfb04 -ir_power_key_code2 = 0x14 -ir_addr_code2 = 0x7F80 -ir_power_key_code3 = 0x15 -ir_addr_code3 = 0x7F80 -ir_power_key_code4 = 0x0b -ir_addr_code4 = 0xF708 -ir_power_key_code5 = 0x03 -ir_addr_code5 = 0x00EF -ir_power_key_code6 = 0x9f -ir_addr_code6 = 0x4CB3 -ir_power_key_code7 = 0x0a -ir_addr_code7 = 0x7748 -ir_power_key_code8 = 0x45 -ir_addr_code8 = 0xbd02 -ir_power_key_code9 = 0x4d -ir_addr_code9 = 0xde21 -ir_power_key_code10 = 0x18 -ir_addr_code10 = 0xfe01 -ir_power_key_code11 = 0x57 -ir_addr_code11 = 0xff00 -ir_power_key_code12 = 0x4d -ir_addr_code12 = 0xff40 -ir_power_key_code13 = 0x88 -ir_addr_code13 = 0xdd22 -ir_power_key_code14 = 0x0a -ir_addr_code14 = 0x4040 +s_cir0_used = 0 +ir_power_key_code = 0x0 +ir_addr_code = 0x0 -;------------------------------------------------------------------------------- -;userspace gpio interface for android -;---------------------------------------------------------------------------------- -[gpio_para] -compatible = "allwinner,sunxi-init-gpio" -gpio_used = 1 -gpio_num = 30 -gpio_pin_1 = port:PH3<1><0> -gpio_pin_2 = port:PH2<1><0> -gpio_pin_3 = port:PH6<1><0> -gpio_pin_4 = port:PH7<1><0> -gpio_pin_5 = port:PH10<1><0> -gpio_pin_6 = port:PH11<1><0> -gpio_pin_7 = port:PD2<1><0> -gpio_pin_8 = port:PD3<1><0> -gpio_pin_9 = port:PD1<1><0> -gpio_pin_10 = port:PC4<1><0> -gpio_pin_11 = port:PC7<1><0> -gpio_pin_12 = port:PB5<1><0> -gpio_pin_13 = port:PB4<1><0> -gpio_pin_14 = port:PB6<1><0> -gpio_pin_15 = port:PL12<1><0> -gpio_pin_16 = port:PB0<1><0> -gpio_pin_17 = port:PB1<1><0> -gpio_pin_18 = port:PB3<1><0> -gpio_pin_19 = port:PB2<1><0> -gpio_pin_20 = port:PD4<1><0> -gpio_pin_21 = port:PC0<1><0> -gpio_pin_22 = port:PD0<1><0> -gpio_pin_23 = port:PC2<1><0> -gpio_pin_24 = port:PC3<1><0> -gpio_pin_25 = port:PB7<1><0> -gpio_pin_26 = port:PL9<1><0> -gpio_pin_27 = port:PL7<1><0> -gpio_pin_28 = port:PL8<1><0> -gpio_pin_29 = port:PE14<1><1> -gpio_pin_30 = port:PE15<1><1> - - - -;------------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------------------------------- +;compatible ---pmu0 name, support:axp803 ;used ---0:not used,1:used ;pmu_id ---0:axp19x,1:axp209,2:axp22x,3:axp806,4:axp808,5:axp809,6:axp803,7:axp813 -;pmu_twi_addr ---slave address -;pmu_twi_id ---i2c bus number (0 TWI0, 1 TWI2, 2 TWI3) -;pmu_irq_id ---irq number (0 irq0,1 irq1) +;reg ---pmu0 twi slave address +;pmu_vbusen_func ---N_VBUSEN function select,0:as an output,1:as an input +;pmu_reset ---when power key press longer than 16s, PMU reset or not.0:not reset 1:reset +;pmu_irq_wakeup ---press irq wakeup or not when sleep or power down.0:not wakeup 1:wakeup +;pmu_hot_shutdown ---when PMU over temperature protect or not;0:disable 1:enable +;pmu_inshort ---ACIN and VBUS inshort or not by software;0:auto detect 1:inshort +;-------------------------------------------------------------------------------------------------------- +[pmu0] +compatible = "axp803" +used = 1 +pmu_id = 6 +pmu_vbusen_func = 0 +pmu_reset = 0 +pmu_irq_wakeup = 1 +pmu_hot_shutdown = 1 +pmu_inshort = 0 + +;-------------------------------------------------------------------------------------------------------- ;pmu_chg_ic_temp ---intelligence charge pmu temperature. when it is 0, this function is closed. +;compatible ---charger0 name, support:axp803-charger ;pmu_battery_rdc ---battery initial resistance ;pmu_battery_cap ---battery capability,mAh -;pmu_runtime_chgcur ---set initial charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ -;pmu_suspend_chgcur ---set suspend charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ -;pmu_shutdown_chgcur ---set shutdown charging current limite,mA,200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_runtime_chgcur ---set initial charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ +;pmu_suspend_chgcur ---set suspend charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ +;pmu_shutdown_chgcur ---set shutdown charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ ;pmu_init_chgvol ---set initial charing target voltage,mV,4100/4220/4200/4240 ;pmu_ac_vol ---set usb-ac limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite -;pmu_ac_cur ---set usb-ac limited current level,mA,500/900, 0 - not limite +;pmu_ac_cur ---set usb-ac limited current level,mA,1500/2000/2500/3000/3500/4000, 0 - not limite ;pmu_usbpc_vol ---set usb-pc limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite ;pmu_usbpc_cur ---set usb-pc limited current level,mA,500/900, 0 - not limite ;pmu_battery_warning_level1 ---low power warning high level,5%-20%,1%/step ;pmu_battery_warning_level2 ---low power warning low level,0%-15%,1%/step ;pmu_chgled_func ---CHGKED pin control, 0:controlled by pmu,1:controlled by Charger ;pmu_chgled_type ---CHGLED Type select when pmu_chgled_func=0,0:Type A, 1:type B +;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff +;pmu_ocv_en ---charge by ocv, 1:enable, must be enabled +;pmu_cou_en ---charge by cou, 0:disable, 1:enable +;pmu_update_min_time ---min time for battery capatity percentage update,second, 0/5/10/20/30/60/120/164 +;pmu_init_bc_en ---set cur by bc1.2 0:disable 1:enable ;pmu_bat_para1 ---battery indication at 3.13V ;pmu_bat_para2 ---battery indication at 3.27V ;pmu_bat_para3 ---battery indication at 3.34V @@ -1330,39 +1335,30 @@ gpio_pin_30 = port:PE15<1><1> ;pmu_bat_temp_para14 ---battery temp 60 voltage ;pmu_bat_temp_para15 ---battery temp 70 voltage ;pmu_bat_temp_para16 ---battery temp 80 voltage -;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 -;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart -;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown -;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 -;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 -;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff ;-------------------------------------------------------------------------------------------------------- -;-------------------------------------------------------------------------------------------------------- -;pmu0 is axp81x -;-------------------------------------------------------------------------------------------------------- -[pmu0] -used = 1 -pmu_id = 6 -pmu_twi_addr = 0x34 -pmu_twi_id = 1 -pmu_irq_id = 64 -pmu_IRQ_wakeup = 1 - +[charger0] +compatible = "axp803-charger" pmu_chg_ic_temp = 0 pmu_battery_rdc = 125 -pmu_battery_cap = 4000 -pmu_runtime_chgcur = 800 -pmu_suspend_chgcur = 1500 -pmu_shutdown_chgcur = 1500 -pmu_init_chgvol = 4200 +pmu_battery_cap = 3700 +pmu_runtime_chgcur = 1300 +pmu_suspend_chgcur = 1300 +pmu_shutdown_chgcur = 1300 +pmu_init_chgvol = 4350 pmu_ac_vol = 4000 pmu_ac_cur = 3500 pmu_usbpc_vol = 4400 pmu_usbpc_cur = 500 pmu_battery_warning_level1 = 15 pmu_battery_warning_level2 = 0 -pmu_chgled_func = 0 +pmu_chgled_func = 1 pmu_chgled_type = 0 +power_start = 0 +pmu_ocv_en = 1 +pmu_cou_en = 1 +pmu_update_min_time = 30 +pmu_init_bc_en = 0 +;pmu_init_chgend_rate = 10 pmu_bat_para1 = 0 pmu_bat_para2 = 0 @@ -1370,34 +1366,34 @@ pmu_bat_para3 = 0 pmu_bat_para4 = 0 pmu_bat_para5 = 0 pmu_bat_para6 = 0 -pmu_bat_para7 = 0 +pmu_bat_para7 = 1 pmu_bat_para8 = 1 pmu_bat_para9 = 2 pmu_bat_para10 = 3 -pmu_bat_para11 = 7 -pmu_bat_para12 = 12 -pmu_bat_para13 = 20 -pmu_bat_para14 = 32 -pmu_bat_para15 = 43 -pmu_bat_para16 = 46 -pmu_bat_para17 = 50 -pmu_bat_para18 = 55 -pmu_bat_para19 = 58 -pmu_bat_para20 = 64 -pmu_bat_para21 = 70 -pmu_bat_para22 = 74 -pmu_bat_para23 = 79 -pmu_bat_para24 = 84 -pmu_bat_para25 = 90 -pmu_bat_para26 = 95 -pmu_bat_para27 = 98 -pmu_bat_para28 = 100 -pmu_bat_para29 = 100 -pmu_bat_para30 = 100 -pmu_bat_para31 = 100 +pmu_bat_para11 = 6 +pmu_bat_para12 = 9 +pmu_bat_para13 = 19 +pmu_bat_para14 = 31 +pmu_bat_para15 = 41 +pmu_bat_para16 = 44 +pmu_bat_para17 = 48 +pmu_bat_para18 = 52 +pmu_bat_para19 = 55 +pmu_bat_para20 = 59 +pmu_bat_para21 = 64 +pmu_bat_para22 = 69 +pmu_bat_para23 = 72 +pmu_bat_para24 = 75 +pmu_bat_para25 = 78 +pmu_bat_para26 = 81 +pmu_bat_para27 = 83 +pmu_bat_para28 = 85 +pmu_bat_para29 = 89 +pmu_bat_para30 = 92 +pmu_bat_para31 = 97 pmu_bat_para32 = 100 -pmu_bat_temp_enable = 0 +pmu_bat_temp_enable = 1 pmu_bat_charge_ltf = 2261 pmu_bat_charge_htf = 388 pmu_bat_shutdown_ltf = 3200 @@ -1419,49 +1415,65 @@ pmu_bat_temp_para14 = 242 pmu_bat_temp_para15 = 179 pmu_bat_temp_para16 = 134 -pmu_powkey_off_time = 4000 +;-------------------------------------------------------------------------------------------------------- +;compatible ---powerkey0 name, support:axp803-powerkey +;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 +;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart +;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown +;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 +;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 +;-------------------------------------------------------------------------------------------------------- +[powerkey0] +compatible = "axp803-powerkey" +pmu_powkey_off_time = 6000 pmu_powkey_off_func = 0 pmu_powkey_off_en = 1 pmu_powkey_long_time = 1500 pmu_powkey_on_time = 1000 -power_start = 0 ;-------------------------------------------------------------------------------------------------------- -;pmu0 is axp81x -;regulator tree +;compatible ---regulator0 name, support:axp803-regulator +;regulator_count ---pmu ldo count, changed with different pmu +;regulator(1~regulator_count) ---ldo details ;-------------------------------------------------------------------------------------------------------- -[pmu0_regu] +[regulator0] +compatible = "axp803-regulator" regulator_count = 23 -regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd" -regulator2 = "axp81x_dcdc2 none vdd-cpua" -regulator3 = "axp81x_dcdc3 none" -regulator4 = "axp81x_dcdc4 none" -regulator5 = "axp81x_dcdc5 none vcc-dram" -regulator6 = "axp81x_dcdc6 none vdd-sys" -regulator7 = "axp81x_dcdc7 none" -regulator8 = "axp81x_rtc none" -regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi " -regulator10 = "axp81x_aldo2 none vcc-pl" -regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll" -regulator12 = "axp81x_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-lcd" -regulator13 = "axp81x_dldo2 none vcc-wifi" -regulator14 = "axp81x_dldo3 none avdd-csi" -regulator15 = "axp81x_dldo4 none vcc-wifi-io vcc-pg" -regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" -regulator17 = "axp81x_eldo2 none vcc-mipi vcc-lcd-0" -regulator18 = "axp81x_eldo3 none dvdd-csi-18" -regulator19 = "axp81x_fldo1 none vcc-hsic-12" -regulator20 = "axp81x_fldo2 none vdd-cpus"; -regulator21 = "axp81x_gpio0ldo none vcc-ctp" -regulator22 = "axp81x_gpio1ldo none " -regulator23 = "axp81x_dc1sw none vcc-wifi-8089 vcc-gmac-33 vcc-pd" +regulator1 = "axp803_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd" +regulator2 = "axp803_dcdc2 none vdd-cpua" +regulator3 = "axp803_dcdc3 none" +regulator4 = "axp803_dcdc4 none" +regulator5 = "axp803_dcdc5 none vcc-dram" +regulator6 = "axp803_dcdc6 none vdd-sys vdd-gpu" +regulator7 = "axp803_dcdc7 none" +regulator8 = "axp803_rtc none" +regulator9 = "axp803_aldo1 none vdd-csi-led afvcc-csi iovdd-csi " +regulator10 = "axp803_aldo2 none vcc-pl" +regulator11 = "axp803_aldo3 none vcc-avcc vcc-pll" +regulator12 = "axp803_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-io2" +regulator13 = "axp803_dldo2 none vcc-lcd" +regulator14 = "axp803_dldo3 none avdd-csi" +regulator15 = "axp803_dldo4 none vcc-wifi-io vcc-pg" +regulator16 = "axp803_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" +regulator17 = "axp803_eldo2 none vcc-mipi vcc-lcd-0" +regulator18 = "axp803_eldo3 none dvdd-csi-18" +regulator19 = "axp803_fldo1 none vcc-hsic-12" +regulator20 = "axp803_fldo2 none vdd-cpus"; +regulator21 = "axp803_gpio0ldo none vcc-ctp" +regulator22 = "axp803_gpio1ldo none " +regulator23 = "axp803_dc1sw none vcc-wifi-8089" +;-------------------------------------------------------------------------------------------------------- +;compatible ---axp_gpio0 name, support:axp803-gpio +;-------------------------------------------------------------------------------------------------------- +[axp_gpio0] +compatible = "axp803-gpio" ;---------------------------------------------------------------------------------- ;recovery and fastboot key ;---------------------------------------------------------------------------------- [recovery_key] -key_max = 0xc -key_min = 0xa +key_min = 0x3 +key_max = 0x5 ;---------------------------------------------------------------------------------- [fastboot_key] key_max = 0x6 @@ -1487,6 +1499,9 @@ key_min = 0x4 ;---------------------------------------------------------------------------------- [dvfs_table] ;extremity_freq = 1344000000 +vf_table_count = 2 + +[vf_table1] max_freq = 1152000000 min_freq = 480000000 @@ -1515,6 +1530,35 @@ lv7_volt = 1040 lv8_freq = 0 lv8_volt = 1040 +[vf_table2] +max_freq = 1152000000 +min_freq = 480000000 + +lv_count = 8 +lv1_freq = 1152000000 +lv1_volt = 1260 + +lv2_freq = 1104000000 +lv2_volt = 1200 + +lv3_freq = 1008000000 +lv3_volt = 1140 + +lv4_freq = 816000000 +lv4_volt = 1060 + +lv5_freq = 648000000 +lv5_volt = 1000 + +lv6_freq = 0 +lv6_volt = 1000 + +lv7_freq = 0 +lv7_volt = 1000 + +lv8_freq = 0 +lv8_volt = 1000 + ;---------------------------------------------------------------------------------- ;s_uart0 config parameters ;s_uart0_used --s_uart0 whether used for arisc debugging @@ -1558,21 +1602,47 @@ Vdevice_0 = port:PB01<4><1><2> Vdevice_1 = port:PB02<4><1><2> ;---------------------------------------------------------------------------------- -;mali400 parameters -;normal_freq : the normal frequency of gpu -;scene_ctrl_status: scene control status, if this is enabled, android layer can ask -; gpu driver to change frequency in certain scene +;gpu parameters +;regulator_id : the regulator id GPU used. +;dvfs_status : dvfs status, if this is enabled, DVFS will work. ;temp_ctrl_status : temperature control status, if this is enabled, the gpu frequency -; will drop down if gpu's temperature is too high +; will drop down if the temperature of gpu is too high. +;scene_ctrl_status: scene control status, if this is enabled, android layer can ask +; gpu driver to change frequency in certain scene. +;max_level : maximum level, which is used when thermal system does not restrict +; GPU power consumption. +;begin_level : the corresponding frequency and voltage will be used during GPU +; initialization. +;lv_freq : frequency in MHz of certain level. +;lv_volt : voltage in mV of certain level. ;---------------------------------------------------------------------------------- -[gpu_mali400_0] -normal_freq = 456 +[gpu] +regulator_id = "vdd-gpu" +dvfs_status = 0 +temp_ctrl_status = 0 scene_ctrl_status = 0 -temp_ctrl_status = 1 + +max_level = 3 +begin_level = 3 + +lv0_freq = 144 +lv0_volt = 1100 + +lv1_freq = 264 +lv1_volt = 1100 + +lv2_freq = 384 +lv2_volt = 1100 + +lv3_freq = 456 +lv3_volt = 1100 +;---------------------------------------------------------------------------------- +;dram_region_mbytes : Widevine L1 set 64Mbyte,Widevine L3 set 0Mbyte to save ram +;drm_region_mbytes : Widevine L1 set 64Mbyte,Widevine L3 set 0Mbyte to save ram ;---------------------------------------------------------------------------------- [secure] -dram_region_mbytes = 64 -drm_region_mbytes = 64 +dram_region_mbytes = 0 +drm_region_mbytes = 0 drm_region_start_mbytes = 0 ;---------------------------------------------------------------------------------- diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_config_linux-4.9.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_config_linux-4.9.fex index 9f11fc7daa..c22db67858 100644 --- a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_config_linux-4.9.fex +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_config_linux-4.9.fex @@ -16,7 +16,7 @@ machine = "bpi-m64" [platform] eraseflag = 1 next_work = 3 -debug_mode = 0 +debug_mode = 1 ;--------------------------------------------------------------------------------------------------------- ; dragonboard_test default is 0,only in dragonboard card boot mode must be set 1 @@ -42,20 +42,21 @@ dragonboard_test = 0 [power_sply] dcdc1_vol = 1003300 -dcdc2_vol = 1001100 +dcdc2_vol = 1001200 dcdc6_vol = 1001100 -aldo1_vol = 1002800 -aldo2_vol = 1003300 +dcdc5_vol = 1001360 +aldo1_vol = 2800 +aldo2_vol = 1001800 aldo3_vol = 1003000 -dldo1_vol = 1003300 -dldo2_vol = 1003300 -dldo3_vol = 1002800 -dldo4_vol = 1003300 +dldo1_vol = 3300 +dldo2_vol = 1800 +dldo3_vol = 2800 +dldo4_vol = 3300 eldo1_vol = 1001800 eldo2_vol = 1800 -eldo3_vol = 1001500 +eldo3_vol = 1800 fldo2_vol = 1001100 -gpio0_vol = 1003300 +gpio0_vol = 3300 [card_boot] logical_start = 40960 @@ -141,17 +142,17 @@ dram_mr3 = 0x2 dram_tpr0 = 0x004A2195 dram_tpr1 = 0x02424190 dram_tpr2 = 0x0008B060 -dram_tpr3 = 0x050005dc +dram_tpr3 = 0x04b005dc dram_tpr4 = 0x0 dram_tpr5 = 0x0 dram_tpr6 = 0x0 -dram_tpr7 = 0x2a066198 +dram_tpr7 = 0x0 dram_tpr8 = 0x0 dram_tpr9 = 0x0 dram_tpr10 = 0x8808 -dram_tpr11 = 0x0 -dram_tpr12 = 0x55550000 -dram_tpr13 = 0x04002900 +dram_tpr11 = 0x20250000 +dram_tpr12 = 0x0 +dram_tpr13 = 0x04000800 ;---------------------------------------------------------------------------------- ;os life cycle para configuration @@ -162,43 +163,46 @@ dram_tpr13 = 0x04002900 ;------------------------------------------------------------------------------; ; 配置选项: ; ; gmac_used --- 1: gmac used, 0: not used ; -; gmac_powerx -- A[:B] A: axp channel, B: voltage value ; -; phy-mode -- rgmii, rmii, mii ; -; tx-delay -- transmit clock delay: 0~7 ; -; rx-delay -- receive clock delay: 0~31 ; ;------------------------------------------------------------------------------; -; MII RGMII MII RGMII MII RGMII ; -;PD02~05 * * PD15 * PD22 * * ; -; PD06 * * PD16 PD23 * * ; -; PD07 * * PD17 PD24 ; -; PD08 PD18 * * PD25 ; -; PD09 PD19 * * PD26 ; -; PD10 * PD20 * PD26 ; -;PD11~14 * * PD21 * * PD28 ; +; MII GMII RGMII MII GMII RGMII MII GMII RGMII ; +;PA00~03 * * * PA10 * * PA20 * * * ; +; PA04 * PA11~14 * * * PA21 * * ; +; PA05 * PA15 * PA22 * * ; +; PA06 * PA16 * PA23 * * ; +; PA07 * PA17 * PA24 * * ; +; PA08 * * PA18 * PA25 * * ; +; PA09 * * * PA19 * * * PA26~27 * * * ; ;------------------------------------------------------------------------------; -[gmac0] -gmac0_used = 1 -phy-mode = "rgmii" -gmac_rxd3 = port:PD08<4><3> -gmac_rxd2 = port:PD09<4><3> -gmac_rxd1 = port:PD10<4><3> -gmac_rxd0 = port:PD11<4><3> -gmac_rxclk = port:PD12<4><3> -gmac_rxdv = port:PD13<4><3> -gmac_rxerr = port:PD14<4><3> -gmac_txd3 = port:PD15<4><3> -gmac_txd2 = port:PD16<4><3> -gmac_txd1 = port:PD17<4><3> -gmac_txd0 = port:PD18<4><3> -gmac_txclk = port:PD19<4><3> -gmac_txen = port:PD20<4><3> -gmac_clkin = port:PD21<4><3> -gmac_mdc = port:PD22<4><3> -gmac_mdio = port:PD23<4><3> -gmac_power1 = "vcc-gmac-33" -gmac_power2 = -tx-delay = 0 -rx-delay = 0 +[gmac_para] +gmac_used = 0 +gmac_txd0 = port:PA00<2> +gmac_txd1 = port:PA01<2> +gmac_txd2 = port:PA02<2> +gmac_txd3 = port:PA03<2> +gmac_txd4 = port:PA04<2> +gmac_txd5 = port:PA05<2> +gmac_txd6 = port:PA06<2> +gmac_txd7 = port:PA07<2> +gmac_txclk = port:PA08<2> +gmac_txen = port:PA09<2> +gmac_gtxclk = port:PA10<2> +gmac_rxd0 = port:PA11<2> +gmac_rxd1 = port:PA12<2> +gmac_rxd2 = port:PA13<2> +gmac_rxd3 = port:PA14<2> +gmac_rxd4 = port:PA15<2> +gmac_rxd5 = port:PA16<2> +gmac_rxd6 = port:PA17<2> +gmac_rxd7 = port:PA18<2> +gmac_rxdv = port:PA19<2> +gmac_rxclk = port:PA20<2> +gmac_txerr = port:PA21<2> +gmac_rxerr = port:PA22<2> +gmac_col = port:PA23<2> +gmac_crs = port:PA24<2> +gmac_clkin = port:PA25<2> +gmac_mdc = port:PA26<2> +gmac_mdio = port:PA27<2> ;---------------------------------------------------------------------------------- ;i2c configuration @@ -207,17 +211,31 @@ rx-delay = 0 twi0_used = 1 twi0_scl = port:PH0<2> twi0_sda = port:PH1<2> +twi_regulator = "vcc-io2" + +[twi0_suspend] +twi0_scl = port:PH0<7> +twi0_sda = port:PH1<7> [twi1] -twi1_used = 0 +twi1_used = 1 twi1_scl = port:PH2<2> twi1_sda = port:PH3<2> +twi_regulator = "vcc-io2" + +[twi1_suspend] +twi1_scl = port:PH2<7> +twi1_sda = port:PH3<7> [twi2] twi2_used = 0 twi2_scl = port:PE14<3> twi2_sda = port:PE15<3> +[twi2_suspend] +twi2_scl = port:PE14<7> +twi2_sda = port:PE15<7> + ;---------------------------------------------------------------------------------- ;TWI device configuration ;compatible --- device name @@ -238,7 +256,10 @@ uart0_port = 0 uart0_type = 2 uart0_tx = port:PB8<4><1> uart0_rx = port:PB9<4><1> -uart0_regulator = "vcc-uartx" + +[uart0_suspend] +uart0_tx = port:PB8<7><1> +uart0_rx = port:PB9<7><1> [uart1] uart1_used = 1 @@ -248,7 +269,12 @@ uart1_tx = port:PG6<2><1> uart1_rx = port:PG7<2><1> uart1_rts = port:PG8<2><1> uart1_cts = port:PG9<2><1> -uart1_regulator = "vcc-uartx" + +[uart1_suspend] +uart1_tx = port:PG6<7><1> +uart1_rx = port:PG7<7><1> +uart1_rts = port:PG8<7><1> +uart1_cts = port:PG9<7><1> [uart2] uart2_used = 0 @@ -258,7 +284,12 @@ uart2_tx = port:PB0<2><1> uart2_rx = port:PB1<2><1> uart2_rts = port:PB2<2><1> uart2_cts = port:PB3<2><1> -uart2_regulator = "vcc-uartx" + +[uart2_suspend] +uart2_tx = port:PB0<7><1> +uart2_rx = port:PB1<7><1> +uart2_rts = port:PB2<7><1> +uart2_cts = port:PB3<7><1> [uart3] uart3_used = 0 @@ -268,7 +299,12 @@ uart3_tx = port:PH4<2><1> uart3_rx = port:PH5<2><1> uart3_rts = port:PH6<2><1> uart3_cts = port:PH7<2><1> -uart3_regulator = "vcc-uartx" + +[uart3_suspend] +uart3_tx = port:PH4<7><1> +uart3_rx = port:PH5<7><1> +uart3_rts = port:PH6<7><1> +uart3_cts = port:PH7<7><1> [uart4] uart4_used = 0 @@ -278,7 +314,12 @@ uart4_tx = port:PD2<3><1> uart4_rx = port:PD3<3><1> uart4_rts = port:PD4<3><1> uart4_cts = port:PD5<3><1> -uart4_regulator = "vcc-uartx" + +[uart4_suspend] +uart4_tx = port:PD2<7><1> +uart4_rx = port:PD3<7><1> +uart4_rts = port:PD4<7><1> +uart4_cts = port:PD5<7><1> ;---------------------------------------------------------------------------------- ;SPI controller configuration @@ -292,6 +333,12 @@ spi0_sclk = port:PC2<4> spi0_mosi = port:PC0<4> spi0_miso = port:PC1<4> +[spi0_suspend] +spi0_cs0 = port:PC3<7><1> +spi0_sclk = port:PC2<7> +spi0_mosi = port:PC0<7> +spi0_miso = port:PC1<7> + [spi1] spi1_used = 0 spi1_cs_number = 1 @@ -301,6 +348,12 @@ spi1_sclk = port:PD1<4> spi1_mosi = port:PD2<4> spi1_miso = port:PD3<4> +[spi1_suspend] +spi1_cs0 = port:PD0<7><1> +spi1_sclk = port:PD1<7> +spi1_mosi = port:PD2<7> +spi1_miso = port:PD3<7> + ;---------------------------------------------------------------------------------- ;SPI device configuration ;compatible --- device name @@ -335,13 +388,14 @@ rtp_exchange_x_y_flag = 0 ;notice --- tp_int_port & tp_io_port use the same port ;---------------------------------------------------------------------------------- [ctp] -compatible = "allwinner,sun50i-ctp-para" +compatible = "allwinner,sun50i-ctp-para" ctp_used = 1 -ctp_name = "ft5x_ts" +ctp_name = "ft5x_ts" +;ctp_name = "gsl1680e_801YDT" ctp_twi_id = 0 ctp_twi_addr = 0x38 ctp_screen_max_x = 800 -ctp_screen_max_y = 480 +ctp_screen_max_y = 1280 ctp_revert_x_flag = 0 ctp_revert_y_flag = 0 ctp_exchange_x_y_flag = 0 @@ -358,15 +412,15 @@ ctp_power_io = ;Module name postposition 1 said detection, 0 means no detection. ;-------------------------------------------------------------------------------- [ctp_list] -compatible = "allwinner,sun50i-ctp-list" -ctp_list_used = 1 -gslX680new = 0 +compatible = "allwinner,sun50i-ctp-list" +ctp_list_used = 1 +ft5x16_ts = 1 +gslX680new = 1 gt9xx_ts = 0 -gt9xxnew_ts = 0 -gt82x = 0 -zet622x = 0 -aw5306_ts = 0 -ft5x = 1 +gt9xxnew_ts = 1 +gt82x = 1 +zet622x = 1 +aw5306_ts = 1 ;---------------------------------------------------------------------------------- ;touch key configuration @@ -385,7 +439,7 @@ motor_used = 0 motor_shake = port:power3<1><1> ;---------------------------------------------------------------------------------- -; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 +; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 ;---------------------------------------------------------------------------------- [nand0_para] nand0_dragonboard = 0 @@ -412,8 +466,8 @@ nand0_ndqs = port:PC16<2><0><1> nand0_ce2 = port:PC17<2><1><1> nand0_ce3 = port:PC18<2><1><1> -nand0_regulator1 = "vcc-nand" -nand0_regulator2 = "none" +nand0_regulator1 = "vcc-nand" +nand0_regulator2 = "none" nand0_cache_level = 0x55aaaa55 nand0_flush_cache_num = 0x55aaaa55 nand0_capacity_level = 0x55aaaa55 @@ -438,11 +492,11 @@ nand0_p3 = 0x55aaaa55 disp_init_enable = 1 disp_mode = 0 -screen0_output_type = 3 -screen0_output_mode = 5 +screen0_output_type = 1 +screen0_output_mode = 4 screen1_output_type = 3 -screen1_output_mode = 5 +screen1_output_mode = 4 fb0_format = 0 fb0_width = 0 @@ -485,30 +539,28 @@ fb1_height = 0 ;---------------------------------------------------------------------------------- [lcd0] lcd_used = 1 -lcd_driver_name = "S070WV20_MIPI_RGB" -lcd_bl_0_percent = 0 -lcd_bl_40_percent = 23 -lcd_bl_100_percent = 100 - -lcd_backlight = 180 +lcd_driver_name = "WilliamLcd" +;lcd_model_name= "LT080B21BA94" +lcd_backlight = 50 lcd_if = 4 lcd_x = 800 -lcd_y = 480 -lcd_width = 86 -lcd_height = 154 -lcd_dclk_freq = 30 +lcd_y = 1280 +lcd_width = 108 +lcd_height = 172 +lcd_dclk_freq = 96 lcd_pwm_used = 1 -lcd_pwm_ch = 16 -lcd_pwm_freq = 50000 +lcd_pwm_ch = 0 +lcd_pwm_freq = 10000 +lcd_bl_0_percent = 10 lcd_pwm_pol = 1 lcd_pwm_max_limit = 255 -lcd_hbp = 88 -lcd_ht = 928 -lcd_hspw = 48 -lcd_vbp = 32 -lcd_vt = 525 -lcd_vspw = 3 +lcd_hbp = 36 +lcd_ht = 1200 +lcd_hspw = 20 +lcd_vbp = 15 +lcd_vt = 1330 +lcd_vspw = 5 lcd_lvds_if = 0 lcd_lvds_colordepth = 0 lcd_lvds_mode = 0 @@ -523,16 +575,17 @@ lcd_gamma_en = 0 lcd_bright_curve_en = 0 lcd_cmap_en = 0 -lcd_bl_en = port:PD5<1><0><2><1> -lcd_bl_en_power = "none" -lcd_power = "vcc-lcd" -lcd_power1 = "vcc-dsi-33" -;lcd_power2 = "vcc-pd" -;lcd_fix_power = "vcc-dsi-33" +lcd_gpio_0 = port:PD24<1><0><1> + +;power enable +lcd_gpio_1 = port:PD21<1><0><1> +lcd_bl_en = port:PD23<1><0><1> + +lcd_power = "vcc-mipi" +lcd_power1 = "vcc-lcd" +lcd_fix_power = "vcc-dsi-33" lcd_pin_power = "vcc-pd" -lcd_gpio_0 = port:PD6<1><0><2><1> -lcd_gpio_1 = port:PD7<1><0><2><1> -;lcd_io_regulator1 = "vcc-pd" + [hdmi] hdmi_used = 1 @@ -544,34 +597,23 @@ hdmi_cts_compatibility = 0 ;pwm config ;---------------------------------------------------------------------------------- [pwm0] -pwm_used = 0 +pwm_used = 1 pwm_positive = port:PD22<2><0> [pwm0_suspend] pwm_positive = port:PD22<7><0> -[spwm0] -s_pwm_used = 1 +[pwm16] +s_pwm0_used = 0 pwm_positive = port:PL10<2><0> -[spwm0_suspend] +[pwm16_suspend] pwm_positive = port:PL10<7><0> - -;----------------------------------------------------------------- -;advert_disp - 1: can used app to change bootlogo, 0:not used -;auto_hpd - 1:need hotplud for hdmi/tv; 0:don't hotplud for lcd -;output_type - 0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga (as default config in homlet) -;hdmi_channel - the display channel for hdmi (as default config in homlet) -;cvbs_channel - the display channel for cvbs (as default config in homlet) -;hdmi_mode - as default config for output of hdmi in homlet -;cvbs_mode - as default config for output of tv in homlet. 11:PAL; 14:NTSC -;hdmi_mode_check - disable/enable the function of checking hdmi mode, 0 is disable, 1 is enable -;----------------------------------------------------------------- [boot_disp] output_disp = 0 -output_type = 3 -output_mode = 5 +output_type = 1 +output_mode = 4 ;-------------------------------------------------------------------------------- ;csi (COMS Sensor Interface) configuration @@ -598,63 +640,64 @@ output_mode = 5 ;-------------------------------------------------------------------------------- [csi0] -csi0_used = 1 -csi0_sensor_list = 1 -csi0_pck = port:PE00<2> -csi0_mck = port:PE01<0><0><1><0> -csi0_hsync = port:PE02<2> -csi0_vsync = port:PE03<2> -csi0_d0 = port:PE04<2> -csi0_d1 = port:PE05<2> -csi0_d2 = port:PE06<2> -csi0_d3 = port:PE07<2> -csi0_d4 = port:PE08<2> -csi0_d5 = port:PE09<2> -csi0_d6 = port:PE10<2> -csi0_d7 = port:PE11<2> -csi0_sck = port:PE12<2> -csi0_sda = port:PE13<2> +csi0_used = 1 +csi0_sensor_list = 0 +csi0_pck = port:PE00<2> +csi0_mck = port:PE01<2> +csi0_hsync = port:PE02<2> +csi0_vsync = port:PE03<2> +csi0_d0 = port:PE04<2> +csi0_d1 = port:PE05<2> +csi0_d2 = port:PE06<2> +csi0_d3 = port:PE07<2> +csi0_d4 = port:PE08<2> +csi0_d5 = port:PE09<2> +csi0_d6 = port:PE10<2> +csi0_d7 = port:PE11<2> +csi0_sck = port:PE12<2> +csi0_sda = port:PE13<2> [csi0/csi0_dev0] csi0_dev0_used = 1 -csi0_dev0_mname = "ov5640" +csi0_dev0_mname = "gc2145" csi0_dev0_twi_addr = 0x78 csi0_dev0_pos = "rear" csi0_dev0_isp_used = 1 csi0_dev0_fmt = 0 csi0_dev0_stby_mode = 0 -csi0_dev0_vflip = 1 -csi0_dev0_hflip = 1 -csi0_dev0_iovdd = "avdd-csi" +csi0_dev0_vflip = 0 +csi0_dev0_hflip = 0 +csi0_dev0_iovdd = "iovdd-csi" csi0_dev0_iovdd_vol = 2800000 csi0_dev0_avdd = "avdd-csi" csi0_dev0_avdd_vol = 2800000 csi0_dev0_dvdd = "dvdd-csi-18" csi0_dev0_dvdd_vol = 1500000 -csi0_dev0_afvdd = "avdd-csi" +csi0_dev0_afvdd = "afvcc-csi" csi0_dev0_afvdd_vol = 2800000 +;csi0_dev0_power_en = port:PB04<1><0><1><0> csi0_dev0_power_en = -csi0_dev0_reset = port:PE16<0><0><1><0> -csi0_dev0_pwdn = port:PE17<0><0><1><0> +csi0_dev0_reset = port:PE14<1><0><1><0> +csi0_dev0_pwdn = port:PE15<1><0><1><0> csi0_dev0_flash_used = 0 csi0_dev0_flash_type = 2 csi0_dev0_flash_en = csi0_dev0_flash_mode = -csi0_dev0_flvdd = "" -csi0_dev0_flvdd_vol = +csi0_dev0_flvdd = "" +csi0_dev0_flvdd_vol = csi0_dev0_af_pwdn = -csi0_dev0_act_used = 1 -csi0_dev0_act_name = "dw9714_act" +csi0_dev0_act_used = 0 +csi0_dev0_act_name = "ad5820_act" csi0_dev0_act_slave = 0x18 [csi0/csi0_dev1] -csi0_dev1_used = 0 -csi0_dev1_mname = "gc0328c" +csi0_dev1_used = 1 +csi0_dev1_mname = "gc0312" csi0_dev1_twi_addr = 0x42 csi0_dev1_pos = "front" csi0_dev1_isp_used = 1 csi0_dev1_fmt = 0 -csi0_dev1_stby_mode = 1 +csi0_dev1_stby_mode = 0 csi0_dev1_vflip = 0 csi0_dev1_hflip = 0 csi0_dev1_iovdd = "iovdd-csi" @@ -662,18 +705,18 @@ csi0_dev1_iovdd_vol = 2800000 csi0_dev1_avdd = "avdd-csi" csi0_dev1_avdd_vol = 2800000 csi0_dev1_dvdd = "dvdd-csi-18" -csi0_dev1_dvdd_vol = 1800000 -csi0_dev1_afvdd = "" -csi0_dev1_afvdd_vol = +csi0_dev1_dvdd_vol = 1500000 +csi0_dev1_afvdd = "afvcc-csi" +csi0_dev1_afvdd_vol = 2800000 csi0_dev1_power_en = -csi0_dev1_reset = -csi0_dev1_pwdn = +csi0_dev1_reset = port:PE16<1><0><1><0> +csi0_dev1_pwdn = port:PE17<1><0><1><0> csi0_dev1_flash_used = 0 csi0_dev1_flash_type = 2 csi0_dev1_flash_en = csi0_dev1_flash_mode = -csi0_dev1_flvdd = "vdd-csi-led" -csi0_dev1_flvdd_vol = 3300000 +csi0_dev1_flvdd = "" +csi0_dev1_flvdd_vol = csi0_dev1_af_pwdn = csi0_dev1_act_used = 0 csi0_dev1_act_name = "ad5820_act" @@ -706,18 +749,18 @@ di_used = 1 ; non-removable:if you use as main memory,you should set it,for example eMMC | ; bus-width: card bus width, 1-1bit, 4-4bit, 8-8bit | ; sunxi-power-save-mode: if use sdio card,should not set it | -; vmmc:regulator for card/emmc power | +; vmmc:regulator for card/emmc power | ; vqmmc:regulator for card/emmc io power | ; vdmmc:regulator for card detect pin pull up power | ; other: GPIO Mapping configuration | ; ------------------------------------------------------------------------------| ; Note: | -; | -; | -; | -; | -; | -; | +; | +; | +; | +; | +; | +; | ;-------------------------------------------------------------------------------- [sdc0] @@ -730,8 +773,8 @@ sdc0_cmd = port:PF03<2><1><2> sdc0_d3 = port:PF04<2><1><2> sdc0_d2 = port:PF05<2><1><2> cd-gpios = port:PF06<0><1><2> -sunxi-power-save-mode = -sunxi-dis-signal-vol-sw = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = vmmc="vcc-sdcv" vqmmc="vcc-sdcvq33" vdmmc="vcc-sdcvd" @@ -773,8 +816,8 @@ sdc2_d6 = port:PC14<3><1><3> sdc2_d7 = port:PC15<3><1><3> sdc2_emmc_rst = port:PC16<3><1><3> cd-gpios = -sunxi-power-save-mode = -sunxi-dis-signal-vol-sw = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = mmc-ddr-1_8v = mmc-hs200-1_8v = mmc-hs400-1_8v = @@ -825,25 +868,26 @@ smc_sck = smc_sda = ;-------------------------------- -;[usbc0]:控制器0的配置。 -;usb_used:USB使能标志。置1,表示系统中USB模块可用,置0,则表示系统USB禁用。 -;usb_port_type:USB端口的使用情况。 0:device only;1:host only;2:OTG -;usb_detect_type:USB端口的检查方式。0:不做检测;1:vbus/id检查;2:id/dpdm检查 -;usb_id_gpio:USB ID pin脚配置。具体请参考gpio配置说明。 -;usb_det_vbus_gpio:USB DET_VBUS pin脚配置。具体请参考gpio配置说明。 -;usb_drv_vbus_gpio:USB DRY_VBUS pin脚配置。具体请参考gpio配置说明。 -;usb_det_vbus_gpio: "axp_ctrl",表示axp 提供 +;[usbc0]: usbc0 configuration. +;usb_used: usb controller enable. 0-disable, 1-enable. +;usb_port_type: usb mode. 0-device, 1-host, 2-otg. +;usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect. +;usb_detect_mode: usb otg switch has two config. 0-thread scan, 1-id gpio interrupt. +;usb_id_gpio: usb id detect IO. +;usb_det_vbus_gpio: USB DET_VBUS has two config. (1)gpio pin; (2)"axp_ctrl", use axp intf. +;usb_drv_vbus_gpio: USB DRY_VBUS has two config. (1)gpio pin; (2)"axp_ctrl", use axp intf. ;-------------------------------- ;-------------------------------- -;--- USB0控制标志 +;--- USB0 CONFIG ;-------------------------------- [usbc0] usbc0_used = 1 usb_port_type = 2 usb_detect_type = 1 +usb_detect_mode = 0 usb_id_gpio = port:PH09<0><1> usb_det_vbus_gpio = "axp_ctrl" -usb_drv_vbus_gpio = port:power3<1><0><0> +usb_drv_vbus_gpio = "axp_ctrl" usb_host_init_state = 0 usb_regulator_io = "nocare" usb_wakeup_suspend = 0 @@ -854,11 +898,11 @@ usb_serial_number = "20080411" rndis_wceis = 1 ;-------------------------------- -;--- USB1控制标志 +;--- USB1 CONFIG ;-------------------------------- [usbc1] -usbc1_used = 1 -usb_drv_vbus_gpio = +usbc1_used = 0 +usb_drv_vbus_gpio = port:PB06<1><0><0> usb_host_init_state = 1 usb_regulator_io = "nocare" usb_wakeup_suspend = 0 @@ -886,10 +930,10 @@ sn_filename = "ULI/factory/snum.txt" ;-------------------------------------------------------------------------------- [gsensor] compatible = "allwinner,sun50i-gsensor-para" -gsensor_used = 0 +gsensor_used = 1 gsensor_twi_id = 1 -gsensor_twi_addr = 0x1d -gsensor_vcc_io = "vcc-io" +gsensor_twi_addr = 0x18 +gsensor_vcc_io = "vcc-io2" gsensor_vcc_io_val = 3300 gsensor_int1 = port:PH05<6><1> gsensor_int2 = port:PH06<6><1> @@ -901,7 +945,7 @@ gsensor_int2 = port:PH06<6><1> ;-------------------------------------------------------------------------------- [gsensor_list] compatible = "allwinner,sun50i-gsensor-list-para" -gsensor_list__used = 1 +gsensor_list_used = 1 lsm9ds0_acc_mag = 0 bma250 = 1 mma8452 = 0 @@ -917,6 +961,7 @@ mxc622x = 0 fxos8700 = 0 lsm303d = 0 sc7a30 = 0 +mir3da = 1 ;-------------------------------------------------------------------------------- ;wlan configuration @@ -929,9 +974,10 @@ sc7a30 = 0 ;wlan_hostwake: wlan to wake-up host ;-------------------------------------------------------------------------------- [wlan] +compatible = "allwinner,sunxi-wlan" wlan_used = 1 wlan_busnum = 1 -;clocks = +clocks = wlan_power = "vcc-wifi" wlan_io_regulator = "vcc-wifi-io" wlan_regon = port:PL02<1><0> @@ -941,13 +987,14 @@ wlan_hostwake = port:PL03<6><0> ;bluetooth configuration ;bt_used: 0- no used, 1- used ;clocks: external low power clock input (32.768KHz) -;bt_power: input supply voltage +;bt_power: input supply voltage ;bt_io_regulator: bluetooth I/O voltage ;bt_rst_n: power up/down internal regulators used by BT section ;-------------------------------------------------------------------------------- [bt] +compatible = "allwinner,sunxi-bt" bt_used = 1 -;clocks = +clocks = bt_power = "vcc-wifi" bt_io_regulator = "vcc-wifi-io" bt_rst_n = port:PL04<1><0> @@ -960,6 +1007,7 @@ bt_rst_n = port:PL04<1><0> ;bt_hostwake: bt device wake-up host ;-------------------------------------------------------------------------------- [btlpm] +compatible = "allwinner,sunxi-btlpm" btlpm_used = 1 uart_index = 1 bt_wake = port:PL06<1><1> @@ -1068,12 +1116,12 @@ daudio2_used = 1 [sndhdmi] sndhdmi_used = 1 ;-------------------------------------------------------------------------------- -;allwinner,pcm_lrck_period :16/32/64/128/256 +;allwinner,pcm_lrck_period :16/32/64/128/256 ;allwinner,pcm_lrckr_period :no use -;allwinner,slot_width_select :16bits/20bits/24bits/32bits -;allwinner,pcm_lsb_first :0: msb first; 1: lsb first -;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law -;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,slot_width_select :16bits/20bits/24bits/32bits +;allwinner,pcm_lsb_first :0: msb first; 1: lsb first +;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law ;allwinner,daudio_master :1: SND_SOC_DAIFMT_CBM_CFM(codec clk & FRM master) use ; 2: SND_SOC_DAIFMT_CBS_CFM(codec clk slave & FRM master) not use ; 3: SND_SOC_DAIFMT_CBM_CFS(codec clk master & frame slave) not use @@ -1148,9 +1196,9 @@ daudio1_used = 0 ;allwinner,dachpf_cfg : 1:use adchpf 0:no use ;allwinner,aif2config : 1:use aif2 0:no use ;allwinner,aif3config : 1:use aif3 0:no use -;allwinner,hp_detect_case :0:low 1:high +;allwinner,hp_detect_case :0:low 1:high ;-------------------------------------------------------------------------------- -; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 +; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 ; codec_used = 0x1,if register the sound card audiocodec. ;--------------------------------------------------------------------------------- [sndcodec] @@ -1158,7 +1206,7 @@ sndcodec_used = 0x1 aif2fmt = 0x3 aif3fmt = 0x3 aif2master = 0x1 -hp_detect_case = 0x1 +hp_detect_case = 0x0 ;------------------------------------------------------------------------------ [i2s] i2s_used = 0x1 @@ -1166,10 +1214,11 @@ i2s_used = 0x1 [codec] codec_used = 0x1 headphonevol = 0x38 -spkervol = 0x1d +spkervol = 0x18 earpiecevol = 0x1e -maingain = 0x4 +maingain = 0x7 headsetmicgain = 0x4 +adcinputgain = 0x7 adcagc_cfg = 0x0 adcdrc_cfg = 0x0 adchpf_cfg = 0x1 @@ -1180,108 +1229,60 @@ aif3config = 0x0 aif1_lrlk_div = 0x40 aif2_lrlk_div = 0x40 pa_sleep_time = 0x0a -dac_digital_vol = 0x9898 -gpio-spk = port:PD14<1><0><0> +dac_digital_vol = 0xa0a0 +gpio-spk = port:PH07<2><1> ;---------------------------------------------------------------------------------- ;ir --- infra remote configuration ;---------------------------------------------------------------------------------- [s_cir0] -s_cir0_used = 1 -ir_protocol_used = 1 -ir_addr_cnt = 15 -ir_power_key_code0 = 0x57 -ir_addr_code0 = 0x9f00 -ir_power_key_code1 = 0x1a -ir_addr_code1 = 0xfb04 -ir_power_key_code2 = 0x14 -ir_addr_code2 = 0x7F80 -ir_power_key_code3 = 0x15 -ir_addr_code3 = 0x7F80 -ir_power_key_code4 = 0x0b -ir_addr_code4 = 0xF708 -ir_power_key_code5 = 0x03 -ir_addr_code5 = 0x00EF -ir_power_key_code6 = 0x9f -ir_addr_code6 = 0x4CB3 -ir_power_key_code7 = 0x0a -ir_addr_code7 = 0x7748 -ir_power_key_code8 = 0x45 -ir_addr_code8 = 0xbd02 -ir_power_key_code9 = 0x4d -ir_addr_code9 = 0xde21 -ir_power_key_code10 = 0x18 -ir_addr_code10 = 0xfe01 -ir_power_key_code11 = 0x57 -ir_addr_code11 = 0xff00 -ir_power_key_code12 = 0x4d -ir_addr_code12 = 0xff40 -ir_power_key_code13 = 0x88 -ir_addr_code13 = 0xdd22 -ir_power_key_code14 = 0x0a -ir_addr_code14 = 0x4040 +s_cir0_used = 0 +ir_power_key_code = 0x0 +ir_addr_code = 0x0 -;------------------------------------------------------------------------------- -;userspace gpio interface for android -;---------------------------------------------------------------------------------- -[gpio_para] -compatible = "allwinner,sunxi-init-gpio" -gpio_used = 1 -gpio_num = 30 -gpio_pin_1 = port:PH3<1><0> -gpio_pin_2 = port:PH2<1><0> -gpio_pin_3 = port:PH6<1><0> -gpio_pin_4 = port:PH7<1><0> -gpio_pin_5 = port:PH10<1><0> -gpio_pin_6 = port:PH11<1><0> -gpio_pin_7 = port:PD2<1><0> -gpio_pin_8 = port:PD3<1><0> -gpio_pin_9 = port:PD1<1><0> -gpio_pin_10 = port:PC4<1><0> -gpio_pin_11 = port:PC7<1><0> -gpio_pin_12 = port:PB5<1><0> -gpio_pin_13 = port:PB4<1><0> -gpio_pin_14 = port:PB6<1><0> -gpio_pin_15 = port:PL12<1><0> -gpio_pin_16 = port:PB0<1><0> -gpio_pin_17 = port:PB1<1><0> -gpio_pin_18 = port:PB3<1><0> -gpio_pin_19 = port:PB2<1><0> -gpio_pin_20 = port:PD4<1><0> -gpio_pin_21 = port:PC0<1><0> -gpio_pin_22 = port:PD0<1><0> -gpio_pin_23 = port:PC2<1><0> -gpio_pin_24 = port:PC3<1><0> -gpio_pin_25 = port:PB7<1><0> -gpio_pin_26 = port:PL9<1><0> -gpio_pin_27 = port:PL7<1><0> -gpio_pin_28 = port:PL8<1><0> -gpio_pin_29 = port:PE14<1><1> -gpio_pin_30 = port:PE15<1><1> - - - -;------------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------------------------------- +;compatible ---pmu0 name, support:axp803 ;used ---0:not used,1:used ;pmu_id ---0:axp19x,1:axp209,2:axp22x,3:axp806,4:axp808,5:axp809,6:axp803,7:axp813 -;pmu_twi_addr ---slave address -;pmu_twi_id ---i2c bus number (0 TWI0, 1 TWI2, 2 TWI3) -;pmu_irq_id ---irq number (0 irq0,1 irq1) +;reg ---pmu0 twi slave address +;pmu_vbusen_func ---N_VBUSEN function select,0:as an output,1:as an input +;pmu_reset ---when power key press longer than 16s, PMU reset or not.0:not reset 1:reset +;pmu_irq_wakeup ---press irq wakeup or not when sleep or power down.0:not wakeup 1:wakeup +;pmu_hot_shutdown ---when PMU over temperature protect or not;0:disable 1:enable +;pmu_inshort ---ACIN and VBUS inshort or not by software;0:auto detect 1:inshort +;-------------------------------------------------------------------------------------------------------- +[pmu0] +compatible = "axp803" +used = 1 +pmu_id = 6 +pmu_vbusen_func = 0 +pmu_reset = 0 +pmu_irq_wakeup = 1 +pmu_hot_shutdown = 1 +pmu_inshort = 0 + +;-------------------------------------------------------------------------------------------------------- ;pmu_chg_ic_temp ---intelligence charge pmu temperature. when it is 0, this function is closed. +;compatible ---charger0 name, support:axp803-charger ;pmu_battery_rdc ---battery initial resistance ;pmu_battery_cap ---battery capability,mAh -;pmu_runtime_chgcur ---set initial charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ -;pmu_suspend_chgcur ---set suspend charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ -;pmu_shutdown_chgcur ---set shutdown charging current limite,mA,200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_runtime_chgcur ---set initial charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ +;pmu_suspend_chgcur ---set suspend charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ +;pmu_shutdown_chgcur ---set shutdown charging current limite,mA, 300/450/600/750/900/1050/1200/1350/1500/1650/1800/1950/ ;pmu_init_chgvol ---set initial charing target voltage,mV,4100/4220/4200/4240 ;pmu_ac_vol ---set usb-ac limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite -;pmu_ac_cur ---set usb-ac limited current level,mA,500/900, 0 - not limite +;pmu_ac_cur ---set usb-ac limited current level,mA,1500/2000/2500/3000/3500/4000, 0 - not limite ;pmu_usbpc_vol ---set usb-pc limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite ;pmu_usbpc_cur ---set usb-pc limited current level,mA,500/900, 0 - not limite ;pmu_battery_warning_level1 ---low power warning high level,5%-20%,1%/step ;pmu_battery_warning_level2 ---low power warning low level,0%-15%,1%/step ;pmu_chgled_func ---CHGKED pin control, 0:controlled by pmu,1:controlled by Charger ;pmu_chgled_type ---CHGLED Type select when pmu_chgled_func=0,0:Type A, 1:type B +;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff +;pmu_ocv_en ---charge by ocv, 1:enable, must be enabled +;pmu_cou_en ---charge by cou, 0:disable, 1:enable +;pmu_update_min_time ---min time for battery capatity percentage update,second, 0/5/10/20/30/60/120/164 +;pmu_init_bc_en ---set cur by bc1.2 0:disable 1:enable ;pmu_bat_para1 ---battery indication at 3.13V ;pmu_bat_para2 ---battery indication at 3.27V ;pmu_bat_para3 ---battery indication at 3.34V @@ -1335,39 +1336,30 @@ gpio_pin_30 = port:PE15<1><1> ;pmu_bat_temp_para14 ---battery temp 60 voltage ;pmu_bat_temp_para15 ---battery temp 70 voltage ;pmu_bat_temp_para16 ---battery temp 80 voltage -;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 -;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart -;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown -;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 -;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 -;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff ;-------------------------------------------------------------------------------------------------------- -;-------------------------------------------------------------------------------------------------------- -;pmu0 is axp81x -;-------------------------------------------------------------------------------------------------------- -[pmu0] -used = 1 -pmu_id = 6 -pmu_twi_addr = 0x34 -pmu_twi_id = 1 -pmu_irq_id = 64 -pmu_IRQ_wakeup = 1 - +[charger0] +compatible = "axp803-charger" pmu_chg_ic_temp = 0 pmu_battery_rdc = 125 -pmu_battery_cap = 4000 +pmu_battery_cap = 3700 pmu_runtime_chgcur = 800 -pmu_suspend_chgcur = 1500 -pmu_shutdown_chgcur = 1500 -pmu_init_chgvol = 4200 +pmu_suspend_chgcur = 1300 +pmu_shutdown_chgcur = 1300 +pmu_init_chgvol = 4350 pmu_ac_vol = 4000 pmu_ac_cur = 3500 pmu_usbpc_vol = 4400 pmu_usbpc_cur = 500 pmu_battery_warning_level1 = 15 pmu_battery_warning_level2 = 0 -pmu_chgled_func = 0 +pmu_chgled_func = 1 pmu_chgled_type = 0 +power_start = 0 +pmu_ocv_en = 1 +pmu_cou_en = 1 +pmu_update_min_time = 30 +pmu_init_bc_en = 0 +;pmu_init_chgend_rate = 10 pmu_bat_para1 = 0 pmu_bat_para2 = 0 @@ -1375,34 +1367,34 @@ pmu_bat_para3 = 0 pmu_bat_para4 = 0 pmu_bat_para5 = 0 pmu_bat_para6 = 0 -pmu_bat_para7 = 0 +pmu_bat_para7 = 1 pmu_bat_para8 = 1 pmu_bat_para9 = 2 pmu_bat_para10 = 3 -pmu_bat_para11 = 7 -pmu_bat_para12 = 12 -pmu_bat_para13 = 20 -pmu_bat_para14 = 32 -pmu_bat_para15 = 43 -pmu_bat_para16 = 46 -pmu_bat_para17 = 50 -pmu_bat_para18 = 55 -pmu_bat_para19 = 58 -pmu_bat_para20 = 64 -pmu_bat_para21 = 70 -pmu_bat_para22 = 74 -pmu_bat_para23 = 79 -pmu_bat_para24 = 84 -pmu_bat_para25 = 90 -pmu_bat_para26 = 95 -pmu_bat_para27 = 98 -pmu_bat_para28 = 100 -pmu_bat_para29 = 100 -pmu_bat_para30 = 100 -pmu_bat_para31 = 100 +pmu_bat_para11 = 6 +pmu_bat_para12 = 9 +pmu_bat_para13 = 19 +pmu_bat_para14 = 31 +pmu_bat_para15 = 41 +pmu_bat_para16 = 44 +pmu_bat_para17 = 48 +pmu_bat_para18 = 52 +pmu_bat_para19 = 55 +pmu_bat_para20 = 59 +pmu_bat_para21 = 64 +pmu_bat_para22 = 69 +pmu_bat_para23 = 72 +pmu_bat_para24 = 75 +pmu_bat_para25 = 78 +pmu_bat_para26 = 81 +pmu_bat_para27 = 83 +pmu_bat_para28 = 85 +pmu_bat_para29 = 89 +pmu_bat_para30 = 92 +pmu_bat_para31 = 97 pmu_bat_para32 = 100 -pmu_bat_temp_enable = 0 +pmu_bat_temp_enable = 1 pmu_bat_charge_ltf = 2261 pmu_bat_charge_htf = 388 pmu_bat_shutdown_ltf = 3200 @@ -1424,49 +1416,65 @@ pmu_bat_temp_para14 = 242 pmu_bat_temp_para15 = 179 pmu_bat_temp_para16 = 134 -pmu_powkey_off_time = 4000 +;-------------------------------------------------------------------------------------------------------- +;compatible ---powerkey0 name, support:axp803-powerkey +;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 +;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart +;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown +;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 +;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 +;-------------------------------------------------------------------------------------------------------- +[powerkey0] +compatible = "axp803-powerkey" +pmu_powkey_off_time = 6000 pmu_powkey_off_func = 0 pmu_powkey_off_en = 1 pmu_powkey_long_time = 1500 pmu_powkey_on_time = 1000 -power_start = 0 ;-------------------------------------------------------------------------------------------------------- -;pmu0 is axp81x -;regulator tree +;compatible ---regulator0 name, support:axp803-regulator +;regulator_count ---pmu ldo count, changed with different pmu +;regulator(1~regulator_count) ---ldo details ;-------------------------------------------------------------------------------------------------------- -[pmu0_regu] +[regulator0] +compatible = "axp803-regulator" regulator_count = 23 -regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd vcc-uartx" -regulator2 = "axp81x_dcdc2 none vdd-cpua" -regulator3 = "axp81x_dcdc3 none" -regulator4 = "axp81x_dcdc4 none" -regulator5 = "axp81x_dcdc5 none vcc-dram" -regulator6 = "axp81x_dcdc6 none vdd-sys" -regulator7 = "axp81x_dcdc7 none" -regulator8 = "axp81x_rtc none" -regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi " -regulator10 = "axp81x_aldo2 none vcc-pl" -regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll" -regulator12 = "axp81x_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-lcd" -regulator13 = "axp81x_dldo2 none vcc-wifi" -regulator14 = "axp81x_dldo3 none avdd-csi" -regulator15 = "axp81x_dldo4 none vcc-wifi-io vcc-pg" -regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" -regulator17 = "axp81x_eldo2 none vcc-mipi vcc-lcd-0" -regulator18 = "axp81x_eldo3 none dvdd-csi-18" -regulator19 = "axp81x_fldo1 none vcc-hsic-12" -regulator20 = "axp81x_fldo2 none vdd-cpus"; -regulator21 = "axp81x_gpio0ldo none vcc-ctp" -regulator22 = "axp81x_gpio1ldo none " -regulator23 = "axp81x_dc1sw none vcc-wifi-8089 vcc-gmac-33 vcc-pd" +regulator1 = "axp803_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd vcc-wifi" +regulator2 = "axp803_dcdc2 none vdd-cpua" +regulator3 = "axp803_dcdc3 none" +regulator4 = "axp803_dcdc4 none" +regulator5 = "axp803_dcdc5 none vcc-dram" +regulator6 = "axp803_dcdc6 none vdd-sys vdd-gpu" +regulator7 = "axp803_dcdc7 none" +regulator8 = "axp803_rtc none" +regulator9 = "axp803_aldo1 none vdd-csi-led afvcc-csi iovdd-csi " +regulator10 = "axp803_aldo2 none vcc-pl" +regulator11 = "axp803_aldo3 none vcc-avcc vcc-pll" +regulator12 = "axp803_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-io2" +regulator13 = "axp803_dldo2 none vcc-lcd" +regulator14 = "axp803_dldo3 none avdd-csi" +regulator15 = "axp803_dldo4 none vcc-wifi-io vcc-pg" +regulator16 = "axp803_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" +regulator17 = "axp803_eldo2 none vcc-mipi vcc-lcd-0" +regulator18 = "axp803_eldo3 none dvdd-csi-18" +regulator19 = "axp803_fldo1 none vcc-hsic-12" +regulator20 = "axp803_fldo2 none vdd-cpus"; +regulator21 = "axp803_gpio0ldo none vcc-ctp" +regulator22 = "axp803_gpio1ldo none " +regulator23 = "axp803_dc1sw none" +;-------------------------------------------------------------------------------------------------------- +;compatible ---axp_gpio0 name, support:axp803-gpio +;-------------------------------------------------------------------------------------------------------- +[axp_gpio0] +compatible = "axp803-gpio" ;---------------------------------------------------------------------------------- ;recovery and fastboot key ;---------------------------------------------------------------------------------- [recovery_key] -key_max = 0xc -key_min = 0xa +key_min = 0x3 +key_max = 0x5 ;---------------------------------------------------------------------------------- [fastboot_key] key_max = 0x6 @@ -1492,6 +1500,9 @@ key_min = 0x4 ;---------------------------------------------------------------------------------- [dvfs_table] ;extremity_freq = 1344000000 +vf_table_count = 2 + +[vf_table1] max_freq = 1152000000 min_freq = 480000000 @@ -1520,6 +1531,35 @@ lv7_volt = 1040 lv8_freq = 0 lv8_volt = 1040 +[vf_table2] +max_freq = 1152000000 +min_freq = 480000000 + +lv_count = 8 +lv1_freq = 1152000000 +lv1_volt = 1260 + +lv2_freq = 1104000000 +lv2_volt = 1200 + +lv3_freq = 1008000000 +lv3_volt = 1140 + +lv4_freq = 816000000 +lv4_volt = 1060 + +lv5_freq = 648000000 +lv5_volt = 1000 + +lv6_freq = 0 +lv6_volt = 1000 + +lv7_freq = 0 +lv7_volt = 1000 + +lv8_freq = 0 +lv8_volt = 1000 + ;---------------------------------------------------------------------------------- ;s_uart0 config parameters ;s_uart0_used --s_uart0 whether used for arisc debugging @@ -1563,21 +1603,47 @@ Vdevice_0 = port:PB01<4><1><2> Vdevice_1 = port:PB02<4><1><2> ;---------------------------------------------------------------------------------- -;mali400 parameters -;normal_freq : the normal frequency of gpu -;scene_ctrl_status: scene control status, if this is enabled, android layer can ask -; gpu driver to change frequency in certain scene +;gpu parameters +;regulator_id : the regulator id GPU used. +;dvfs_status : dvfs status, if this is enabled, DVFS will work. ;temp_ctrl_status : temperature control status, if this is enabled, the gpu frequency -; will drop down if gpu's temperature is too high +; will drop down if the temperature of gpu is too high. +;scene_ctrl_status: scene control status, if this is enabled, android layer can ask +; gpu driver to change frequency in certain scene. +;max_level : maximum level, which is used when thermal system does not restrict +; GPU power consumption. +;begin_level : the corresponding frequency and voltage will be used during GPU +; initialization. +;lv_freq : frequency in MHz of certain level. +;lv_volt : voltage in mV of certain level. ;---------------------------------------------------------------------------------- -[gpu_mali400_0] -normal_freq = 456 +[gpu] +regulator_id = "vdd-gpu" +dvfs_status = 0 +temp_ctrl_status = 0 scene_ctrl_status = 0 -temp_ctrl_status = 1 + +max_level = 3 +begin_level = 3 + +lv0_freq = 144 +lv0_volt = 1100 + +lv1_freq = 264 +lv1_volt = 1100 + +lv2_freq = 384 +lv2_volt = 1100 + +lv3_freq = 456 +lv3_volt = 1100 +;---------------------------------------------------------------------------------- +;dram_region_mbytes : Widevine L1 set 64Mbyte,Widevine L3 set 0Mbyte to save ram +;drm_region_mbytes : Widevine L1 set 64Mbyte,Widevine L3 set 0Mbyte to save ram ;---------------------------------------------------------------------------------- [secure] -dram_region_mbytes = 64 -drm_region_mbytes = 64 +dram_region_mbytes = 0 +drm_region_mbytes = 0 drm_region_start_mbytes = 0 ;---------------------------------------------------------------------------------- diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_partition.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_partition.fex index 8b00c838f2..2e1d7a6efe 100644 --- a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_partition.fex +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/sys_partition.fex @@ -1,18 +1,18 @@ -;--------------------------------------------------------------------------------------------------------- +;--------------------------------------------------------------------------------------------------- ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 -;--------------------------------------------------------------------------------------------------------- +;--------------------------------------------------------------------------------------------------- -;-------------------------------------------------------------------------------------------------- +;--------------------------------------------------------------------------------------------------- ; 固件下载参数配置 -;-------------------------------------------------------------------------------------------------- -;**************************************************** +;--------------------------------------------------------------------------------------------------- +;*************************************************************************************************** ; mbr的大小, 以Kbyte为单位 -;**************************************************** +;*************************************************************************************************** [mbr] size = 16384 -;******************************************************************************************************** +;*************************************************************************************************** ; 分区配置 ; ; @@ -23,14 +23,14 @@ size = 16384 ; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 ; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 ; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 -; = ? ; //私有用法 +; user_type = ? ; //私有用法 ; verify = 1 ; //要求量产完成后校验是否正确 ; ; 注:1、name唯一, 不允许同名 ; 2、name最大12个字符 ; 3、size = 0, 将创建一个无大小的空分区 ; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 -;******************************************************************************************************** +;*************************************************************************************************** [partition_start] ;------------------------------>mmcblk0p2/nanda @@ -50,7 +50,7 @@ size = 16384 ;------------------------------>mmcblk0p6/nandc [partition] name = boot - size = 32768 + size = 65536 downloadfile = "boot.fex" user_type = 0x8000 @@ -61,60 +61,74 @@ size = 16384 downloadfile = "system.fex" user_type = 0x8000 -;------------------------------>mmcblk0p8/nande -;[partition] -; name = data -; size = 2097152 -; user_type = 0x8000 -; -;------------------------------>mmcblk0p9/nandf +;------------------------------> +[partition] + name = vendor + size = 614400 + downloadfile = "vendor.fex" + user_type = 0x8000 + +;------------------------------> [partition] name = misc size = 32768 user_type = 0x8000 -;------------------------------>mmcblk0p10/nandg +;------------------------------> [partition] name = recovery size = 65536 downloadfile = "recovery.fex" user_type = 0x8000 -;------------------------------>mmcblk0p11/nandh +;------------------------------> [partition] name = cache - size = 1572864 + size = 1048576 user_type = 0x8000 -;------------------------------nandi, store encryptable +;------------------------------>store encryptable [partition] - name = metadata - size = 32768 - user_type = 0x8000 -;------------------------------>nandj, data image private + name = metadata + size = 32768 + user_type = 0x8000 + +;------------------------------>data image private [partition] name = private size = 32768 ro = 0 user_type = 0x8000 -;------------------------------>nandk, save kernel panic log +;------------------------------>frp [partition] - name = klog - size = 32768 + name = frp + size = 1024 + ro = 0 user_type = 0x8000 + keydata = 0x8000 -;------------------------------>nandl, save android log +;------------------------------>empty [partition] - name = alog - size = 131072 + name = empty + size = 31744 ro = 0 user_type = 0x8000 -;------------------------------>nandm, UDISK +;------------------------------>device tree overlay +[partition] + name = dto + size = 32768 + user_type = 0x8000 + +;------------------------------>media_data +[partition] + name = media_data + size = 32768 + user_type = 0x8000 + +;------------------------------>UDISK [partition] name = UDISK - downloadfile = "diskfs.fex" - ;verify = 0 user_type = 0x8100 diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/test_config.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/test_config.fex index 2971e62f17..7bbd0349a6 100644 --- a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/test_config.fex +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/test_config.fex @@ -42,9 +42,9 @@ activated = 1 program = "memtester.sh" category = 0 run_type = 1 -dram_size = 1024 +dram_size = 1024 test_size = 8 -platform = "a64" +platform = "sun50iw1p1" [rtc] display_name= "时钟" @@ -54,10 +54,8 @@ category = 0 run_type = 1 ;------------------------------------------------------------------------------- -; module_path -; The full path of wifi module file. -; module_args -; The arguments of wifi module. +; module_path: The full path of wifi module file +; module_args: The arguments of wifi module (brcm module need this arg) ;------------------------------------------------------------------------------- [wifi] display_name= "网络" @@ -66,8 +64,8 @@ program = "wifitester.sh" category = 0 run_type = 1 module_count= 1 -module_path = "/system/vendor/modules/bcmdhd.ko" -module_args = "nvram_path=/system/vendor/modules/nvram_ap6335.txt" +module_path = "/system/vendor/modules/8723cs.ko" +module_args = ;------------------------------------------------------------------------------- ; module_path @@ -79,7 +77,7 @@ module_args = "nvram_path=/system/vendor/modules/nvram_ap6335.txt" display_name= "重力感应器" activated = 1 program = "gsensortester.sh" -category = 0f +category = 0 run_type = 1 module_count= 1 module1_path= "/system/vendor/modules/bma250.ko" @@ -93,7 +91,7 @@ device_name = "bma250" ;------------------------------------------------------------------------------- [gyro] display_name= "陀螺仪" -activated = 1 +activated = 0 program = "gyrotester.sh" category = 0 run_type = 1 @@ -109,12 +107,12 @@ device_name = "lsm9ds0_gyr" ;------------------------------------------------------------------------------- [compass] display_name= "指南针" -activated = 1 +activated = 0 program = "compasstester.sh" category = 0 run_type = 1 module_count= 1 -module1_path= +module1_path= device_name = "lsm9ds0_mag" ;------------------------------------------------------------------------------- @@ -123,7 +121,7 @@ device_name = "lsm9ds0_mag" ;------------------------------------------------------------------------------- [nand] display_name= "闪存" -activated = 1 +activated = 0 program = "nandtester.sh" category = 0 run_type = 1 @@ -132,12 +130,20 @@ test_size = 16 [emmc] display_name= "emmc闪存" -activated = 0 +activated = 1 program = "emmctester.sh" category = 0 run_type = 1 test_size = 128 +;------------------------------------------------------------------------------- +; dst_bt: The destination bt device to search when run test (not essential) +; module_path: The full path of bt module file (brcm module need this arg) +; device_node: The AP's hardware communication port to bt module +; baud_rate: The baud_rate of bt module when run test (not essential) +; bt_vnd: The bt module vendor, support broadcom/realtek +; rtk_bt_chip: The bt chip name (rtk module need this arg) +;------------------------------------------------------------------------------- [bluetooth] display_name= "蓝牙" activated = 1 @@ -146,17 +152,18 @@ test_time = 3 category = 0 dst_bt = ":" run_type = 1 -module_path = "/system/vendor/modules/bcm4339a0.hcd" +module_path = device_node = "/dev/ttyS1" -baud_rate = 1500000 +baud_rate = +bt_vnd = "realtek" +rtk_bt_chip = "rtl8723cs_xx" [mmc] -display_name= "SD卡" +display_name= "SDCard" activated = 1 program = "mmctester.sh" category = 1 run_type = 1 -nr = 1 [udisk] display_name= "U盘" @@ -191,10 +198,10 @@ run_type = 1 ; samplerate ; The samplerate of sound file. ; support_mode -; 0 : 480I -; 1 : 576I -; 2 : 480P -; 3 : 576P +; 0 : 480I +; 1 : 576I +; 2 : 480P +; 3 : 576P ; 4 : 720P 50HZ ; 5 : 720P 60HZ ; 6 : 1080I 50HZ @@ -213,7 +220,7 @@ sound_file = "/dragonboard/data/test48000.pcm" samplerate = 48000 support_mode= 2 module_count= 1 -module1_path= "/system/vendor/modules/hdcp.ko" +module1_path= "/system/vendor/modules/hdmi.ko" ;------------------------------------------------------------------------------- ; module_path ; The full path of key module file. @@ -224,6 +231,7 @@ activated = 1 program = "keytester" category = 1 run_type = 1 +module_path = "/system/vendor/modules/sunxi-keyboard.ko" ;------------------------------------------------------------------------------- ; module_path @@ -270,9 +278,9 @@ samplerate = 48000 mic1_used = 1 mic2_used = 0 mic1_gain = 1 -mic2_gain = 1 -mic1_threshold =16383 -mic2_threshold =16383 +mic2_gain = 1 +mic1_threshold =8191 +mic2_threshold =8191 ;------------------------------------------------------------------------------- ; type ; 0: rtp @@ -283,8 +291,8 @@ mic2_threshold =16383 [tp] display_name= "触摸" type = 1 -module_path = "/system/vendor/modules/gt82x.ko" -device_name = "gt82x" +module_path = "/system/vendor/modules/ft5x16_ts.ko" +device_name = "ft5x_ts" ;------------------------------------------------------------------------------- ; module_count @@ -295,17 +303,17 @@ device_name = "gt82x" [camera] activated = 1 module_count= 8 -module1_path= "/system/vendor/modules/videobuf-core.ko" -module2_path= "/system/vendor/modules/videobuf-dma-contig.ko" -module3_path= "/system/vendor/modules/cci.ko" -module4_path= "/system/vendor/modules/vfe_os.ko" -module5_path= "/system/vendor/modules/vfe_subdev.ko" -module6_path= "/system/vendor/modules/hi253.ko" -module7_path= "/system/vendor/modules/ov8858_4lane.ko" +module1_path= "/system/vendor/modules/videobuf2-core.ko" +module2_path= "/system/vendor/modules/videobuf2-memops.ko" +module3_path= "/system/vendor/modules/videobuf2-v4l2.ko" +module4_path= "/system/vendor/modules/videobuf2-dma-contig.ko" +module5_path= "/system/vendor/modules/vfe_io.ko" +module6_path= "/system/vendor/modules/gc0328c.ko" +module7_path= "/system/vendor/modules/gc2145.ko" module8_path= "/system/vendor/modules/vfe_v4l2.ko" dev_cnt = 2 csi_cnt = 1 -fps = 15 +fps = 10 ;------------------------------------------------------------------------------- ; manual_menu_name diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64/warnings.bmp b/lichee/tools/pack/chips/sun50iw1p1/configs/m64/warnings.bmp new file mode 100755 index 0000000000000000000000000000000000000000..816cd3a1cf73c34cc8ddcdf89085499f840ecb9d GIT binary patch literal 4096054 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 z01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY z48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k zzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u z01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY z48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k zzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u z01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY z48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k zzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u z01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY z48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k zzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u z01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY z48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;k zzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u01UtY48Q;kzyJ)u z01UtY4E(=#>3{?P002PH|JUsZbb}5!;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- T4mjX|0}eRgfCCOV;K2Go=iC`h literal 0 HcmV?d00001 diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config.fex new file mode 100644 index 0000000000..ee24445ac3 --- /dev/null +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config.fex @@ -0,0 +1,1578 @@ +;A64 PAD application +;--------------------------------------------------------------------------------------------------------- +; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 +; 描述gpio的形式:Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态> +;--------------------------------------------------------------------------------------------------------- + +[product] +version = "100" +machine = "bpi-m64" + +;--------------------------------------------------------------------------------------------------------- +; eraseflag - 1 erase data partition, 0 - do not erase data partition +; next_work - action after burn, 0x0 by config, 0x1 normal, 0x2 reboot, 0x3 shutdown,0x4 reupdate ,0x5 boot +; debug_mode = 0 : do not print any message,debug_mode = 1 ,print debug message +;--------------------------------------------------------------------------------------------------------- +[platform] +eraseflag = 1 +next_work = 3 +debug_mode = 0 + +;--------------------------------------------------------------------------------------------------------- +; dragonboard_test default is 0,only in dragonboard card boot mode must be set 1 +; If you modified dragonboard_test flag,before you pack imgage, you must be build kernel again. +;--------------------------------------------------------------------------------------------------------- +[target] +boot_clock = 1008 +storage_type = -1 +burn_key = 1 +dragonboard_test = 0 + +;---------------------------------------------------------------------------------- +; system configuration +; ? +;dcdc1_vol ---set dcdc1 voltage,mV,1600-3400,100mV/step +;dcdc2_vol ---set dcdc2 voltage,mV,600-1540,20mV/step +;dcdc3_vol ---set dcdc3 voltage,mV,600-1860,20mV/step +;dcdc4_vol ---set dcdc4 voltage,mV,600-1540,20mV/step +;dcdc5_vol ---set dcdc5 voltage,mV,1000-2550,50mV/step +;aldo2_vol ---set aldo2 voltage,mV,700-3300,100mV/step +;aldo3_vol ---set aldo3 voltage,mV,700-3300,100mV/step +;---------------------------------------------------------------------------------- + +[power_sply] +dcdc1_vol = 1003300 +dcdc2_vol = 1001100 +dcdc6_vol = 1001100 +aldo1_vol = 1002800 +aldo2_vol = 1003300 +aldo3_vol = 1003000 +dldo1_vol = 1003300 +dldo2_vol = 1003300 +dldo3_vol = 1002800 +dldo4_vol = 1003300 +eldo1_vol = 1001800 +eldo2_vol = 1800 +eldo3_vol = 1001500 +fldo2_vol = 1001100 +gpio0_vol = 1003300 + +[card_boot] +logical_start = 40960 +sprite_gpio0 = + +;--------------------------------------------------------------------------------------------------------- +; if 1 == standby_mode, then support super standby; +; else, support normal standby. +;--------------------------------------------------------------------------------------------------------- +[pm_para] +standby_mode = 1 + +[card0_boot_para] +card_ctrl = 0 +card_high_speed = 1 +card_line = 4 +sdc_d1 = port:PF0<2><1><2> +sdc_d0 = port:PF1<2><1><2> +sdc_clk = port:PF2<2><1><2> +sdc_cmd = port:PF3<2><1><2> +sdc_d3 = port:PF4<2><1><2> +sdc_d2 = port:PF5<2><1><2> + +[card2_boot_para] +;sdc_io_1v8 = 1 +card_ctrl = 2 +card_high_speed = 1 +card_line = 8 +sdc_ds = port:PC1<3><1><3> +sdc_clk = port:PC5<3><1><3> +sdc_cmd = port:PC6<3><1><3> +sdc_d0 = port:PC8<3><1><3> +sdc_d1 = port:PC9<3><1><3> +sdc_d2 = port:PC10<3><1><3> +sdc_d3 = port:PC11<3><1><3> +sdc_d4 = port:PC12<3><1><3> +sdc_d5 = port:PC13<3><1><3> +sdc_d6 = port:PC14<3><1><3> +sdc_d7 = port:PC15<3><1><3> +sdc_emmc_rst = port:PC16<3><1><3> +sdc_ex_dly_used = 2 + +[twi_para] +twi_port = 0 +twi_scl = port:PH0<2> +twi_sda = port:PH1<2> + +[uart_para] +uart_debug_port = 0 +uart_debug_tx = port:PB8<4><1> +uart_debug_rx = port:PB9<4><1> + +[jtag_para] +jtag_enable = 1 +jtag_ms = port:PB0<4> +jtag_ck = port:PB1<4> +jtag_do = port:PB2<4> +jtag_di = port:PB3<4> + +[clock] +pll4 = 300 +pll6 = 600 +pll8 = 360 +pll9 = 297 +pll10 = 264 + +;***************************************************************************** +;sdram configuration +; +;***************************************************************************** +[dram_para] + +dram_clk = 672 +dram_type = 3 +dram_zq = 0x3b3bbb +dram_odt_en = 0x1 +dram_para1 = 0x10E410E4 +dram_para2 = 0x1000 +dram_mr0 = 0x1840 +dram_mr1 = 0x40 +dram_mr2 = 0x18 +dram_mr3 = 0x2 +dram_tpr0 = 0x004A2195 +dram_tpr1 = 0x02424190 +dram_tpr2 = 0x0008B060 +dram_tpr3 = 0x050005dc +dram_tpr4 = 0x0 +dram_tpr5 = 0x0 +dram_tpr6 = 0x0 +dram_tpr7 = 0x2a066198 +dram_tpr8 = 0x0 +dram_tpr9 = 0x0 +dram_tpr10 = 0x8808 +dram_tpr11 = 0x0 +dram_tpr12 = 0x55550000 +dram_tpr13 = 0x04002900 + +;---------------------------------------------------------------------------------- +;os life cycle para configuration +;---------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------; +; 10/100/100Mbps Ethernet MAC Controller Configure ; +;------------------------------------------------------------------------------; +; 配置选项: ; +; gmac_used --- 1: gmac used, 0: not used ; +; gmac_powerx -- A[:B] A: axp channel, B: voltage value ; +; phy-mode -- rgmii, rmii, mii ; +; tx-delay -- transmit clock delay: 0~7 ; +; rx-delay -- receive clock delay: 0~31 ; +;------------------------------------------------------------------------------; +; MII RGMII MII RGMII MII RGMII ; +;PD02~05 * * PD15 * PD22 * * ; +; PD06 * * PD16 PD23 * * ; +; PD07 * * PD17 PD24 ; +; PD08 PD18 * * PD25 ; +; PD09 PD19 * * PD26 ; +; PD10 * PD20 * PD26 ; +;PD11~14 * * PD21 * * PD28 ; +;------------------------------------------------------------------------------; +[gmac0] +gmac0_used = 1 +phy-mode = "rgmii" +gmac_rxd3 = port:PD08<4><3> +gmac_rxd2 = port:PD09<4><3> +gmac_rxd1 = port:PD10<4><3> +gmac_rxd0 = port:PD11<4><3> +gmac_rxclk = port:PD12<4><3> +gmac_rxdv = port:PD13<4><3> +gmac_rxerr = port:PD14<4><3> +gmac_txd3 = port:PD15<4><3> +gmac_txd2 = port:PD16<4><3> +gmac_txd1 = port:PD17<4><3> +gmac_txd0 = port:PD18<4><3> +gmac_txclk = port:PD19<4><3> +gmac_txen = port:PD20<4><3> +gmac_clkin = port:PD21<4><3> +gmac_mdc = port:PD22<4><3> +gmac_mdio = port:PD23<4><3> +gmac_power1 = "vcc-gmac-33" +gmac_power2 = +tx-delay = 0 +rx-delay = 0 + +;---------------------------------------------------------------------------------- +;i2c configuration +;---------------------------------------------------------------------------------- +[twi0] +twi0_used = 1 +twi0_scl = port:PH0<2> +twi0_sda = port:PH1<2> + +[twi1] +twi1_used = 0 +twi1_scl = port:PH2<2> +twi1_sda = port:PH3<2> + +[twi2] +twi2_used = 0 +twi2_scl = port:PE14<3> +twi2_sda = port:PE15<3> + +;---------------------------------------------------------------------------------- +;TWI device configuration +;compatible --- device name +;reg --- device address +;---------------------------------------------------------------------------------- +;[twi0/twi_board0] +;compatible = +;reg = + +;---------------------------------------------------------------------------------- +;uart configuration +;uart_port --- x (/dev/ttySx, x=0,1,2,...) +;uart_type --- 2 (2 wire), 4 (4 wire), 8 (8 wire, full function) +;---------------------------------------------------------------------------------- +[uart0] +uart0_used = 1 +uart0_port = 0 +uart0_type = 2 +uart0_tx = port:PB8<4><1> +uart0_rx = port:PB9<4><1> + +[uart1] +uart1_used = 1 +uart1_port = 1 +uart1_type = 4 +uart1_tx = port:PG6<2><1> +uart1_rx = port:PG7<2><1> +uart1_rts = port:PG8<2><1> +uart1_cts = port:PG9<2><1> + +[uart2] +uart2_used = 0 +uart2_port = 2 +uart2_type = 4 +uart2_tx = port:PB0<2><1> +uart2_rx = port:PB1<2><1> +uart2_rts = port:PB2<2><1> +uart2_cts = port:PB3<2><1> + +[uart3] +uart3_used = 0 +uart3_port = 3 +uart3_type = 4 +uart3_tx = port:PH4<2><1> +uart3_rx = port:PH5<2><1> +uart3_rts = port:PH6<2><1> +uart3_cts = port:PH7<2><1> + +[uart4] +uart4_used = 0 +uart4_port = 4 +uart4_type = 4 +uart4_tx = port:PD2<3><1> +uart4_rx = port:PD3<3><1> +uart4_rts = port:PD4<3><1> +uart4_cts = port:PD5<3><1> + +;---------------------------------------------------------------------------------- +;SPI controller configuration +;---------------------------------------------------------------------------------- +[spi0] +spi0_used = 0 +spi0_cs_number = 1 +spi0_cs_bitmap = 1 +spi0_cs0 = port:PC3<4><1> +spi0_sclk = port:PC2<4> +spi0_mosi = port:PC0<4> +spi0_miso = port:PC1<4> + +[spi1] +spi1_used = 0 +spi1_cs_number = 1 +spi1_cs_bitmap = 1 +spi1_cs0 = port:PD0<4><1> +spi1_sclk = port:PD1<4> +spi1_mosi = port:PD2<4> +spi1_miso = port:PD3<4> + +;---------------------------------------------------------------------------------- +;SPI device configuration +;compatible --- device name +;spi-max-frequency --- work frequency +;reg --- chip select +;optional properties: spi-cpha, spi-cpol, spi-cs-high +;---------------------------------------------------------------------------------- +;[spi0/spi_board0] +;compatible = +;spi-max-frequency = +;reg = +;spi-cpha +;spi-cpol +;spi-cs-high + +;---------------------------------------------------------------------------------- +;resistance tp configuration +;---------------------------------------------------------------------------------- +[rtp_para] +rtp_used = 0 +rtp_screen_size = 5 +rtp_regidity_level = 5 +rtp_press_threshold_enable = 0 +rtp_press_threshold = 0x1f40 +rtp_sensitive_level = 0xf +rtp_exchange_x_y_flag = 0 + +;---------------------------------------------------------------------------------- +;capacitor tp configuration +;external int function +;wakeup output function +;notice --- tp_int_port & tp_io_port use the same port +;---------------------------------------------------------------------------------- +[ctp] +compatible = "allwinner,sun50i-ctp-para" +ctp_used = 1 +ctp_name = "ft5x_ts" +ctp_twi_id = 0 +ctp_twi_addr = 0x38 +ctp_screen_max_x = 800 +ctp_screen_max_y = 480 +ctp_revert_x_flag = 0 +ctp_revert_y_flag = 0 +ctp_exchange_x_y_flag = 0 + +ctp_int_port = port:PH04<6> +ctp_wakeup = port:PH08<1><1> +ctp_power_ldo = "vcc-ctp" +ctp_power_ldo_vol = 3300 +ctp_power_io = + +;-------------------------------------------------------------------------------- +; CTP automatic detection configuration +;ctp_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[ctp_list] +compatible = "allwinner,sun50i-ctp-list" +ctp_list_used = 1 +gslX680new = 0 +gt9xx_ts = 0 +gt9xxnew_ts = 0 +gt82x = 0 +zet622x = 0 +aw5306_ts = 0 +ft5x = 1 + +;---------------------------------------------------------------------------------- +;touch key configuration +;---------------------------------------------------------------------------------- +[tkey_para] +tkey_used = 0 +tkey_twi_id = +tkey_twi_addr = +tkey_int = + +;---------------------------------------------------------------------------------- +;motor configuration +;---------------------------------------------------------------------------------- +[motor_para] +motor_used = 0 +motor_shake = port:power3<1><1> + +;---------------------------------------------------------------------------------- +; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 +;---------------------------------------------------------------------------------- +[nand0_para] +nand0_dragonboard = 0 +nand0_support_2ch = 0 + +nand0_used = 1 +nand0_we = port:PC00<2><0><1> +nand0_ale = port:PC01<2><0><1> +nand0_cle = port:PC02<2><0><1> +nand0_ce1 = port:PC03<2><1><1> +nand0_ce0 = port:PC04<2><1><1> +nand0_nre = port:PC05<2><0><1> +nand0_rb0 = port:PC06<2><1><1> +nand0_rb1 = port:PC07<2><1><1> +nand0_d0 = port:PC08<2><0><1> +nand0_d1 = port:PC09<2><0><1> +nand0_d2 = port:PC10<2><0><1> +nand0_d3 = port:PC11<2><0><1> +nand0_d4 = port:PC12<2><0><1> +nand0_d5 = port:PC13<2><0><1> +nand0_d6 = port:PC14<2><0><1> +nand0_d7 = port:PC15<2><0><1> +nand0_ndqs = port:PC16<2><0><1> +nand0_ce2 = port:PC17<2><1><1> +nand0_ce3 = port:PC18<2><1><1> + +nand0_regulator1 = "vcc-nand" +nand0_regulator2 = "none" +nand0_cache_level = 0x55aaaa55 +nand0_flush_cache_num = 0x55aaaa55 +nand0_capacity_level = 0x55aaaa55 +nand0_id_number_ctl = 0x55aaaa55 +nand0_print_level = 0x55aaaa55 +nand0_p0 = 0x55aaaa55 +nand0_p1 = 0x55aaaa55 +nand0_p2 = 0x55aaaa55 +nand0_p3 = 0x55aaaa55 + +;---------------------------------------------------------------------------------- +;disp init configuration +; +;disp_mode (0:screen0) +;screenx_output_type (0:none; 1:lcd; 3:hdmi;) +;screenx_output_mode (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50) +; (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60) +;fbx format (0:ARGB 1:ABGR 2:RGBA 3:BGRA 5:RGB565 8:RGB888 12:ARGB4444 16:ARGB1555 18:RGBA5551) +;fbx_width,fbx_height (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0) +;---------------------------------------------------------------------------------- +[disp] +disp_init_enable = 1 +disp_mode = 0 + +screen0_output_type = 3 +screen0_output_mode = 5 + +screen1_output_type = 3 +screen1_output_mode = 5 + +fb0_format = 0 +fb0_width = 0 +fb0_height = 0 + +fb1_format = 0 +fb1_width = 0 +fb1_height = 0 + +;---------------------------------------------------------------------------------- +;lcd0 configuration + +;lcd_if: 0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp +;lcd_backlight lcd init backlight +;lcd_x: lcd horizontal resolution +;lcd_y: lcd vertical resolution +;lcd_width: width of lcd in mm +;lcd_height: height of lcd in mm +;lcd_dclk_freq: in MHZ unit +;lcd_pwm_freq: in HZ unit +;lcd_pwm_pol: lcd backlight PWM polarity +;lcd_pwm_max_limit lcd backlight PWM max limit(<=255) +;lcd_hbp: hsync back porch +;lcd_ht: hsync total cycle +;lcd_vbp: vsync back porch +;lcd_vt: vysnc total cycle +;lcd_hspw: hsync plus width +;lcd_vspw: vysnc plus width +;lcd_lvds_if: 0:single link; 1:dual link +;lcd_lvds_colordepth: 0:8bit; 1:6bit +;lcd_lvds_mode: 0:NS mode; 1:JEIDA mode +;lcd_frm: 0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither +;lcd_hv_clk_phase lcd hv panel lock phase, 0:0 degree; 1:90 degree; 2: 180 degree; 3: 270 degree +;lcd_hv_sync_polarity lcd hv panel sync signals polarity +; 0:vsync active low, hsync active low; 1:vsync active high, hsync active low +; 2:vsync active low, hsync active high; 3:vsync active high, hsync active high +;lcd_gamma_en lcd gamma correction enable +;lcd_bright_curve_en lcd bright curve correction enable +;lcd_cmap_en lcd color map function enable +;---------------------------------------------------------------------------------- +[lcd0] +lcd_used = 1 +lcd_driver_name = "S070WV20_MIPI_RGB" + +lcd_bl_0_percent = 0 +lcd_bl_40_percent = 23 +lcd_bl_100_percent = 100 + +lcd_backlight = 180 +lcd_if = 4 +lcd_x = 800 +lcd_y = 480 +lcd_width = 86 +lcd_height = 154 +lcd_dclk_freq = 30 +lcd_pwm_used = 1 +lcd_pwm_ch = 16 +lcd_pwm_freq = 50000 +lcd_pwm_pol = 1 +lcd_pwm_max_limit = 255 +lcd_hbp = 88 +lcd_ht = 928 +lcd_hspw = 48 +lcd_vbp = 32 +lcd_vt = 525 +lcd_vspw = 3 +lcd_lvds_if = 0 +lcd_lvds_colordepth = 0 +lcd_lvds_mode = 0 +lcd_frm = 0 +lcd_hv_clk_phase = 0 +lcd_hv_sync_polarity= 0 +lcd_dsi_if = 0 +lcd_dsi_lane = 4 +lcd_dsi_format = 0 +lcd_dsi_te = 0 +lcd_gamma_en = 0 +lcd_bright_curve_en = 0 +lcd_cmap_en = 0 + +lcd_bl_en = port:PD5<1><0><2><1> +lcd_bl_en_power = "none" +lcd_power = "vcc-lcd" +lcd_power1 = "vcc-dsi-33" +;lcd_power2 = "vcc-pd" +;lcd_fix_power = "vcc-dsi-33" +lcd_pin_power = "vcc-pd" +lcd_gpio_0 = port:PD6<1><0><2><1> +lcd_gpio_1 = port:PD7<1><0><2><1> +;lcd_io_regulator1 = "vcc-pd" + +[hdmi] +hdmi_used = 1 +hdmi_power = "vcc-hdmi-33" +hdmi_hdcp_enable = 0 +hdmi_cts_compatibility = 0 + +;---------------------------------------------------------------------------------- +;pwm config +;---------------------------------------------------------------------------------- +[pwm0] +pwm_used = 0 +pwm_positive = port:PD22<2><0> + +[pwm0_suspend] +pwm_positive = port:PD22<7><0> + +[spwm0] +s_pwm_used = 1 +pwm_positive = port:PL10<2><0> + +[spwm0_suspend] +pwm_positive = port:PL10<7><0> + + +;----------------------------------------------------------------- +;advert_disp - 1: can used app to change bootlogo, 0:not used +;auto_hpd - 1:need hotplud for hdmi/tv; 0:don't hotplud for lcd +;output_type - 0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga (as default config in homlet) +;hdmi_channel - the display channel for hdmi (as default config in homlet) +;cvbs_channel - the display channel for cvbs (as default config in homlet) +;hdmi_mode - as default config for output of hdmi in homlet +;cvbs_mode - as default config for output of tv in homlet. 11:PAL; 14:NTSC +;hdmi_mode_check - disable/enable the function of checking hdmi mode, 0 is disable, 1 is enable +;----------------------------------------------------------------- +[boot_disp] +output_disp = 0 +output_type = 3 +output_mode = 5 + +;-------------------------------------------------------------------------------- +;csi (COMS Sensor Interface) configuration +;csi(x)_dev(x)_used: 0:disable 1:enable +;csi(x)_dev(x)_isp_used 0:not use isp 1:use isp +;csi(x)_dev(x)_fmt: 0:yuv 1:bayer raw rgb +;csi(x)_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby +;csi(x)_dev(x)_vflip: flip in vertical direction 0:disable 1:enable +;csi(x)_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable +;csi(x)_dev(x)_iovdd: camera module io power handle string, pmu power supply +;csi(x)_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply +;csi(x)_dev(x)_avdd: camera module analog power handle string, pmu power supply +;csi(x)_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply +;csi(x)_dev(x)_dvdd: camera module core power handle string, pmu power supply +;csi(x)_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply +;csi(x)_dev(x)_afvdd: camera module vcm power handle string, pmu power supply +;csi(x)_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply +;fill voltage in uV, e.g. iovdd = 2.8V, csix_iovdd_vol = 2800000 +;fill handle string as below: +;axp22_eldo3 +;axp22_dldo4 +;axp22_eldo2 +;fill handle string "" when not using any pmu power supply +;-------------------------------------------------------------------------------- + +[csi0] +csi0_used = 1 +csi0_sensor_list = 1 +csi0_pck = port:PE00<2> +csi0_mck = port:PE01<0><0><1><0> +csi0_hsync = port:PE02<2> +csi0_vsync = port:PE03<2> +csi0_d0 = port:PE04<2> +csi0_d1 = port:PE05<2> +csi0_d2 = port:PE06<2> +csi0_d3 = port:PE07<2> +csi0_d4 = port:PE08<2> +csi0_d5 = port:PE09<2> +csi0_d6 = port:PE10<2> +csi0_d7 = port:PE11<2> +csi0_sck = port:PE12<2> +csi0_sda = port:PE13<2> + +[csi0/csi0_dev0] +csi0_dev0_used = 1 +csi0_dev0_mname = "ov5640" +csi0_dev0_twi_addr = 0x78 +csi0_dev0_pos = "rear" +csi0_dev0_isp_used = 1 +csi0_dev0_fmt = 0 +csi0_dev0_stby_mode = 0 +csi0_dev0_vflip = 1 +csi0_dev0_hflip = 1 +csi0_dev0_iovdd = "avdd-csi" +csi0_dev0_iovdd_vol = 2800000 +csi0_dev0_avdd = "avdd-csi" +csi0_dev0_avdd_vol = 2800000 +csi0_dev0_dvdd = "dvdd-csi-18" +csi0_dev0_dvdd_vol = 1500000 +csi0_dev0_afvdd = "avdd-csi" +csi0_dev0_afvdd_vol = 2800000 +csi0_dev0_power_en = +csi0_dev0_reset = port:PE16<0><0><1><0> +csi0_dev0_pwdn = port:PE17<0><0><1><0> +csi0_dev0_flash_used = 0 +csi0_dev0_flash_type = 2 +csi0_dev0_flash_en = +csi0_dev0_flash_mode = +csi0_dev0_flvdd = "" +csi0_dev0_flvdd_vol = +csi0_dev0_af_pwdn = +csi0_dev0_act_used = 1 +csi0_dev0_act_name = "dw9714_act" +csi0_dev0_act_slave = 0x18 + +[csi0/csi0_dev1] +csi0_dev1_used = 0 +csi0_dev1_mname = "gc0328c" +csi0_dev1_twi_addr = 0x42 +csi0_dev1_pos = "front" +csi0_dev1_isp_used = 1 +csi0_dev1_fmt = 0 +csi0_dev1_stby_mode = 1 +csi0_dev1_vflip = 0 +csi0_dev1_hflip = 0 +csi0_dev1_iovdd = "iovdd-csi" +csi0_dev1_iovdd_vol = 2800000 +csi0_dev1_avdd = "avdd-csi" +csi0_dev1_avdd_vol = 2800000 +csi0_dev1_dvdd = "dvdd-csi-18" +csi0_dev1_dvdd_vol = 1800000 +csi0_dev1_afvdd = "" +csi0_dev1_afvdd_vol = +csi0_dev1_power_en = +csi0_dev1_reset = +csi0_dev1_pwdn = +csi0_dev1_flash_used = 0 +csi0_dev1_flash_type = 2 +csi0_dev1_flash_en = +csi0_dev1_flash_mode = +csi0_dev1_flvdd = "vdd-csi-led" +csi0_dev1_flvdd_vol = 3300000 +csi0_dev1_af_pwdn = +csi0_dev1_act_used = 0 +csi0_dev1_act_name = "ad5820_act" +csi0_dev1_act_slave = 0x18 + +;-------------------------------------------------------------------------------- +;tv configuration +; +;-------------------------------------------------------------------------------- +[tvout_para] +tvout_used = +tvout_channel_num = +tv_en = + +[tvin_para] +tvin_used = +tvin_channel_num = + +; ------------------------------------------------------------------------------| +; de-interlace configuration +;-------------------------------------------------------------------------------- +[di] +di_used = 1 + +;-------------------------------------------------------------------------------- +; SDMMC PINS MAPPING | +; ------------------------------------------------------------------------------| +; Config Guide | +; sdc_used: 1-enable card, 0-disable card | +; non-removable:if you use as main memory,you should set it,for example eMMC | +; bus-width: card bus width, 1-1bit, 4-4bit, 8-8bit | +; sunxi-power-save-mode: if use sdio card,should not set it | +; vmmc:regulator for card/emmc power | +; vqmmc:regulator for card/emmc io power | +; vdmmc:regulator for card detect pin pull up power | +; other: GPIO Mapping configuration | +; ------------------------------------------------------------------------------| +; Note: | +; | +; | +; | +; | +; | +; | +;-------------------------------------------------------------------------------- + +[sdc0] +sdc0_used = 1 +bus-width = 4 +sdc0_d1 = port:PF00<2><1><2> +sdc0_d0 = port:PF01<2><1><2> +sdc0_clk = port:PF02<2><1><2> +sdc0_cmd = port:PF03<2><1><2> +sdc0_d3 = port:PF04<2><1><2> +sdc0_d2 = port:PF05<2><1><2> +cd-gpios = port:PF06<0><1><2> +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = +vmmc="vcc-sdcv" +vqmmc="vcc-sdcvq33" +vdmmc="vcc-sdcvd" + + +[sdc1] +sdc1_used = 1 +bus-width = 4 +sdc1_clk = port:PG00<2><1><3> +sdc1_cmd = port:PG01<2><1><3> +sdc1_d0 = port:PG02<2><1><3> +sdc1_d1 = port:PG03<2><1><3> +sdc1_d2 = port:PG04<2><1><3> +sdc1_d3 = port:PG05<2><1><3> +;sunxi-power-save-mode = +sd-uhs-sdr50 = +sd-uhs-ddr50 = +sd-uhs-sdr104 = +cap-sdio-irq = +keep-power-in-suspend = +ignore-pm-notify = +max-frequency = 150000000 + + +[sdc2] +sdc2_used = 1 +non-removable = +bus-width = 8 +sdc2_ds = port:PC01<3><1><3> +sdc2_clk = port:PC05<3><1><3> +sdc2_cmd = port:PC06<3><1><3> +sdc2_d0 = port:PC08<3><1><3> +sdc2_d1 = port:PC09<3><1><3> +sdc2_d2 = port:PC10<3><1><3> +sdc2_d3 = port:PC11<3><1><3> +sdc2_d4 = port:PC12<3><1><3> +sdc2_d5 = port:PC13<3><1><3> +sdc2_d6 = port:PC14<3><1><3> +sdc2_d7 = port:PC15<3><1><3> +sdc2_emmc_rst = port:PC16<3><1><3> +cd-gpios = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = +mmc-ddr-1_8v = +mmc-hs200-1_8v = +mmc-hs400-1_8v = +max-frequency = 100000000 +sdc_tm4_sm0_freq0 = 0 +sdc_tm4_sm0_freq1 = 0 +sdc_tm4_sm1_freq0 = 0x00000000 +sdc_tm4_sm1_freq1 = 0 +sdc_tm4_sm2_freq0 = 0x00000000 +sdc_tm4_sm2_freq1 = 0 +sdc_tm4_sm3_freq0 = 0x05000000 +sdc_tm4_sm3_freq1 = 0x00000405 +sdc_tm4_sm4_freq0 = 0x00050000 +sdc_tm4_sm4_freq1 = 0x00000408 +vmmc="vcc-emmcv" +;vqmmc="vcc-emmcvq33" +vqmmc="vcc-emmcvq18" +vdmmc="none" + + +;[mmc3] +;mmc3_used = 0 +;mmc3_detmode = 2 +;mmc3_buswidth = 4 +;mmc3_clk = port:PA10<2><1><2> +;mmc3_cmd = port:PA09<2><1><2> +;mmc3_d0 = port:PA11<2><1><2> +;mmc3_d1 = port:PA12<2><1><2> +;mmc3_d2 = port:PA13<2><1><2> +;mmc3_d3 = port:PA14<2><1><2> +;mmc3_det = +;mmc3_use_wp = 0 +;mmc3_wp = +;mmc3_isio = 0 +;mmc3_regulator = "none" + +; ------------------------------------------------------------------------------| +; sim card configuration +;-------------------------------------------------------------------------------- +[smc] +smc_used = +smc_rst = +smc_vppen = +smc_vppp = +smc_det = +smc_vccen = +smc_sck = +smc_sda = + +;-------------------------------- +;[usbc0]:控制器0的配置。 +;usb_used:USB使能标志。置1,表示系统中USB模块可用,置0,则表示系统USB禁用。 +;usb_port_type:USB端口的使用情况。 0:device only;1:host only;2:OTG +;usb_detect_type:USB端口的检查方式。0:不做检测;1:vbus/id检查;2:id/dpdm检查 +;usb_id_gpio:USB ID pin脚配置。具体请参考gpio配置说明。 +;usb_det_vbus_gpio:USB DET_VBUS pin脚配置。具体请参考gpio配置说明。 +;usb_drv_vbus_gpio:USB DRY_VBUS pin脚配置。具体请参考gpio配置说明。 +;usb_det_vbus_gpio: "axp_ctrl",表示axp 提供 +;-------------------------------- +;-------------------------------- +;--- USB0控制标志 +;-------------------------------- +[usbc0] +usbc0_used = 1 +usb_port_type = 2 +usb_detect_type = 1 +usb_id_gpio = port:PH09<0><1> +usb_det_vbus_gpio = "axp_ctrl" +usb_drv_vbus_gpio = port:power3<1><0><0> +usb_host_init_state = 0 +usb_regulator_io = "nocare" +usb_wakeup_suspend = 0 +;--- USB Device +usb_luns = 3 +usb_serial_unique = 1 +usb_serial_number = "20080411" +rndis_wceis = 1 + +;-------------------------------- +;--- USB1控制标志 +;-------------------------------- +[usbc1] +usbc1_used = 1 +usb_drv_vbus_gpio = +usb_host_init_state = 1 +usb_regulator_io = "nocare" +usb_wakeup_suspend = 0 +;--- HSIC config +usb_hsic_used = 0 +usb_hsic_regulator_io = "vcc-hsic-12" +;--- Marvell 4G HSIC +usb_hsic_ctrl = 0 +usb_hsic_rdy_gpio = +;--- SMSC usb3503 HSIC HUB +usb_hsic_usb3503_flag = 0 +usb_hsic_hub_connect_gpio = +usb_hsic_int_n_gpio = +usb_hsic_reset_n_gpio = + +;-------------------------------- +;--- 序列号标志 +;-------------------------------- +[serial_feature] +sn_filename = "ULI/factory/snum.txt" + +;-------------------------------------------------------------------------------- +; G sensor configuration +; gs_twi_id --- TWI ID for controlling Gsensor (0: TWI0, 1: TWI1, 2: TWI2) +;-------------------------------------------------------------------------------- +[gsensor] +compatible = "allwinner,sun50i-gsensor-para" +gsensor_used = 0 +gsensor_twi_id = 1 +gsensor_twi_addr = 0x1d +gsensor_vcc_io = "vcc-io" +gsensor_vcc_io_val = 3300 +gsensor_int1 = port:PH05<6><1> +gsensor_int2 = port:PH06<6><1> + +;-------------------------------------------------------------------------------- +; G sensor automatic detection configuration +;gsensor_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[gsensor_list] +compatible = "allwinner,sun50i-gsensor-list-para" +gsensor_list__used = 1 +lsm9ds0_acc_mag = 0 +bma250 = 1 +mma8452 = 0 +mma7660 = 0 +mma865x = 0 +afa750 = 0 +lis3de_acc = 0 +lis3dh_acc = 0 +kxtik = 0 +dmard10 = 0 +dmard06 = 0 +mxc622x = 0 +fxos8700 = 0 +lsm303d = 0 +sc7a30 = 0 + +;-------------------------------------------------------------------------------- +;wlan configuration +;wlan_used: 0-not use, 1- use +;wlan_busnum: sdio/usb index +;clocks: external low power clock input (32.768KHz) +;wlan_power: input supply voltage +;wlan_io_regulator: wlan/sdio I/O voltage +;wlan_regon: power up/down internal regulators used by wifi section +;wlan_hostwake: wlan to wake-up host +;-------------------------------------------------------------------------------- +[wlan] +wlan_used = 1 +wlan_busnum = 1 +;clocks = +wlan_power = "vcc-wifi" +wlan_io_regulator = "vcc-wifi-io" +wlan_regon = port:PL02<1><0> +wlan_hostwake = port:PL03<6><0> + +;-------------------------------------------------------------------------------- +;bluetooth configuration +;bt_used: 0- no used, 1- used +;clocks: external low power clock input (32.768KHz) +;bt_power: input supply voltage +;bt_io_regulator: bluetooth I/O voltage +;bt_rst_n: power up/down internal regulators used by BT section +;-------------------------------------------------------------------------------- +[bt] +bt_used = 1 +;clocks = +bt_power = "vcc-wifi" +bt_io_regulator = "vcc-wifi-io" +bt_rst_n = port:PL04<1><0> + +;-------------------------------------------------------------------------------- +;bluetooth lpm configuration +;btlpm_used: 0- no used, 1- used +;uart_index: 0- uart0, 1- uart1, 2- uart2 +;bt_wake: host wake-up bluetooth device +;bt_hostwake: bt device wake-up host +;-------------------------------------------------------------------------------- +[btlpm] +btlpm_used = 1 +uart_index = 1 +bt_wake = port:PL06<1><1> +bt_hostwake = port:PL05<6><0> + +;-------------------------------------------------------------------------------- +;3G configuration +;-------------------------------------------------------------------------------- +[3g_para] +3g_used = 0 +3g_usbc_num = 2 +3g_uart_num = 0 +bb_vbat = port:PL03<1><0> +bb_host_wake = port:PM00<1><0> +bb_on = port:PM01<1><0> +bb_pwr_on = port:PM03<1><0> +bb_wake = port:PM04<1><0> +bb_rf_dis = port:PM05<1><0> +bb_rst = port:PM06<1><0> +3g_int = + +;-------------------------------------------------------------------------------- +;gyroscope +;-------------------------------------------------------------------------------- +[gyroscopesensor] +compatible ="allwinner,sun50i-gyr_sensors-para" +gyroscopesensor_used = 0 +gy_twi_id = 2 +gy_twi_addr = 0x6a +gy_int1 = port:PA10<6><1> +gy_int2 = + +;-------------------------------------------------------------------------------- +; Gyro automatic detection configuration +;gy_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[gy_list] +compatible ="allwinner,sun50i-gyr_sensors-list-para" +gy_list_used = 0 +lsm9ds0_gyr = 1 +l3gd20_gyr = 0 +bmg160_gyr = 1 + + +;-------------------------------------------------------------------------------- +;light sensor +;-------------------------------------------------------------------------------- +[lightsensor] +compatible ="allwinner,sun50i-lsensors-para" +lightsensor_used =0 +ls_twi_id = 2 +ls_twi_addr = 0x23 +ls_int = port:PA12<6><1> + +;-------------------------------------------------------------------------------- +; lsensor automatic detection configuration +;ls_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[ls_list] +compatible ="allwinner,sun50i-lsensors-list-para" +ls_list_used =0 +ltr_501als = 1 +jsa1212 = 0 +jsa1127 = 1 +stk3x1x = 0 + +;-------------------------------------------------------------------------------- +;compass +;-------------------------------------------------------------------------------- +[compasssensor] +compatible ="allwinner,sun50i-compass-para" +compasssensor_used = 0 +compass_twi_id = 2 +compass_twi_addr = 0x0d +compass_int = port:PA11<6><1> + + +;-------------------------------------------------------------------------------- +; compass sensor automatic detection configuration +;compass_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[compass_list] +compatible ="allwinner,sun50i-compass-list-para" +compass_list_used = 0 +lsm9ds0 = 1 +lsm303d = 0 +;akm8963 = 1 + +;-------------------------------------------------------------------------------- +; NOTE :Make sure spdif_used = 0x1,spdifmach_used = 0x1, +; if register the sound card spdif. +;-------------------------------------------------------------------------------- +[spdif] +spdif_used = 0 +[sndspdif] +sndspdif_used = 0 +;---------------------------------------------------------------------------------- +; NOTE :Make sure daudio2_used = 0x1,sndhdmi_used = 0x1, +; if register the sound card hdmi. +;--------------------------------------------------------------------------------- +[daudio2] +daudio2_used = 1 +[sndhdmi] +sndhdmi_used = 1 +;-------------------------------------------------------------------------------- +;allwinner,pcm_lrck_period :16/32/64/128/256 +;allwinner,pcm_lrckr_period :no use +;allwinner,slot_width_select :16bits/20bits/24bits/32bits +;allwinner,pcm_lsb_first :0: msb first; 1: lsb first +;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,daudio_master :1: SND_SOC_DAIFMT_CBM_CFM(codec clk & FRM master) use +; 2: SND_SOC_DAIFMT_CBS_CFM(codec clk slave & FRM master) not use +; 3: SND_SOC_DAIFMT_CBM_CFS(codec clk master & frame slave) not use +; 4: SND_SOC_DAIFMT_CBS_CFS(codec clk & FRM slave) use +;allwinner,audio_format: 1:SND_SOC_DAIFMT_I2S(standard i2s format). use +; 2:SND_SOC_DAIFMT_RIGHT_J(right justfied format). +; 3:SND_SOC_DAIFMT_LEFT_J(left justfied format) +; 4:SND_SOC_DAIFMT_DSP_A(pcm. MSB is available on 2nd BCLK rising edge after LRC rising edge). use +; 5:SND_SOC_DAIFMT_DSP_B(pcm. MSB is available on 1nd BCLK rising edge after LRC rising edge) +;allwinner,signal_inversion:1:SND_SOC_DAIFMT_NB_NF(normal bit clock + frame) use +; 2:SND_SOC_DAIFMT_NB_IF(normal BCLK + inv FRM) +; 3:SND_SOC_DAIFMT_IB_NF(invert BCLK + nor FRM) use +; 4:SND_SOC_DAIFMT_IB_IF(invert BCLK + FRM) +;allwinner,frametype :0: long frame = 2 clock width; 1: short frame +;allwinner,tdm_config :0:pcm 1:i2s +;allwinner,daudio_regulator : regulator name +;allwinner,daudio0_used :0:not use 1:use +;-------------------------------------------------------------------------------- +; NOTE :Make sure snddaudio0_used = 0x1,daudio1_used = 0x1, +; if register the sound card DAUDIO1. +;-------------------------------------------------------------------------------- +[snddaudio0] +snddaudio0_used = 0 +;----------------------------------------------------------------------------- +[daudio0] +pcm_lrck_period = 0x20 +;pcm_lrckr_period = 0x01 +slot_width_select = 0x20 +;pcm_lsb_first = 0x0 +;tx_data_mode = 0x0 +;rx_data_mode = 0x0 +daudio_master = 0x04 +audio_format = 0x01 +signal_inversion = 0x01 +frametype = 0x0 +tdm_config = 0x01 +daudio_regulator = +daudio0_used = 0 + +;------------------------------------------------------------------------------- +; NOTE :Make sure snddaudio1_used = 0x1,daudio0_used = 0x1, +; if register the sound card DAUDIO0. +;-------------------------------------------------------------------------------- +[snddaudio1] +snddaudio1_used = 0 +;----------------------------------------------------------------------------- +[daudio1] +pcm_lrck_period = 0x20 +;pcm_lrckr_period = 0x01 +slot_width_select = 0x20 +;pcm_lsb_first = 0x0 +;tx_data_mode = 0x0 +;rx_data_mode = 0x0 +daudio_master = 0x04 +audio_format = 0x01 +signal_inversion = 0x01 +frametype = 0x0 +tdm_config = 0x01 +daudio_regulator = +daudio1_used = 0 + +;-------------------------------------------------------------------------------------- +;allwinner,headphonevol :headphone volume:0x0--0x3f 0db--(-62db) 1db/step +;allwinner,spkervol : speaker volume:0x0--0x1f 0db-(-43.5db) 1.5db/step +;allwinner,earpiecevol : earpiece volume:0x0--0x1f 0db-(-43.5db) 1.5db/step +;allwinner,maingain : mainmic gain:0x0---0x7 0x0-0db 0x1:24db 3db/step +;allwinner,headsetmicgain : headphonemic gain:0x0---0x7 0x0-0db 0x1:24db 3db/step +;allwinner,adcagc_cfg : 1:use adcagc 0:no use +;allwinner,adcdrc_cfg : 1:use adcdrc 0:no use +;allwinner,adchpf_cfg : 1:use adchpf 0:no use +;allwinner,dacdrc_cfg : 1:use adcdrc 0:no use +;allwinner,dachpf_cfg : 1:use adchpf 0:no use +;allwinner,aif2config : 1:use aif2 0:no use +;allwinner,aif3config : 1:use aif3 0:no use +;allwinner,hp_detect_case :0:low 1:high +;-------------------------------------------------------------------------------- +; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 +; codec_used = 0x1,if register the sound card audiocodec. +;--------------------------------------------------------------------------------- +[sndcodec] +sndcodec_used = 0x1 +aif2fmt = 0x3 +aif3fmt = 0x3 +aif2master = 0x1 +hp_detect_case = 0x1 +;------------------------------------------------------------------------------ +[i2s] +i2s_used = 0x1 +;------------------------------------------------------------------------------- +[codec] +codec_used = 0x1 +headphonevol = 0x38 +spkervol = 0x1d +earpiecevol = 0x1e +maingain = 0x4 +headsetmicgain = 0x4 +adcagc_cfg = 0x0 +adcdrc_cfg = 0x0 +adchpf_cfg = 0x1 +dacdrc_cfg = 0x0 +dachpf_cfg = 0x0 +aif2config = 0x0 +aif3config = 0x0 +aif1_lrlk_div = 0x40 +aif2_lrlk_div = 0x40 +pa_sleep_time = 0x0a +dac_digital_vol = 0x9898 +gpio-spk = port:PD14<1><0><0> + +;---------------------------------------------------------------------------------- +;ir --- infra remote configuration +;---------------------------------------------------------------------------------- +[s_cir0] +s_cir0_used = 1 +ir_protocol_used = 1 +ir_addr_cnt = 15 +ir_power_key_code0 = 0x57 +ir_addr_code0 = 0x9f00 +ir_power_key_code1 = 0x1a +ir_addr_code1 = 0xfb04 +ir_power_key_code2 = 0x14 +ir_addr_code2 = 0x7F80 +ir_power_key_code3 = 0x15 +ir_addr_code3 = 0x7F80 +ir_power_key_code4 = 0x0b +ir_addr_code4 = 0xF708 +ir_power_key_code5 = 0x03 +ir_addr_code5 = 0x00EF +ir_power_key_code6 = 0x9f +ir_addr_code6 = 0x4CB3 +ir_power_key_code7 = 0x0a +ir_addr_code7 = 0x7748 +ir_power_key_code8 = 0x45 +ir_addr_code8 = 0xbd02 +ir_power_key_code9 = 0x4d +ir_addr_code9 = 0xde21 +ir_power_key_code10 = 0x18 +ir_addr_code10 = 0xfe01 +ir_power_key_code11 = 0x57 +ir_addr_code11 = 0xff00 +ir_power_key_code12 = 0x4d +ir_addr_code12 = 0xff40 +ir_power_key_code13 = 0x88 +ir_addr_code13 = 0xdd22 +ir_power_key_code14 = 0x0a +ir_addr_code14 = 0x4040 + +;------------------------------------------------------------------------------- +;userspace gpio interface for android +;---------------------------------------------------------------------------------- +[gpio_para] +compatible = "allwinner,sunxi-init-gpio" +gpio_used = 1 +gpio_num = 30 +gpio_pin_1 = port:PH3<1><0> +gpio_pin_2 = port:PH2<1><0> +gpio_pin_3 = port:PH6<1><0> +gpio_pin_4 = port:PH7<1><0> +gpio_pin_5 = port:PH10<1><0> +gpio_pin_6 = port:PH11<1><0> +gpio_pin_7 = port:PD2<1><0> +gpio_pin_8 = port:PD3<1><0> +gpio_pin_9 = port:PD1<1><0> +gpio_pin_10 = port:PC4<1><0> +gpio_pin_11 = port:PC7<1><0> +gpio_pin_12 = port:PB5<1><0> +gpio_pin_13 = port:PB4<1><0> +gpio_pin_14 = port:PB6<1><0> +gpio_pin_15 = port:PL12<1><0> +gpio_pin_16 = port:PB0<1><0> +gpio_pin_17 = port:PB1<1><0> +gpio_pin_18 = port:PB3<1><0> +gpio_pin_19 = port:PB2<1><0> +gpio_pin_20 = port:PD4<1><0> +gpio_pin_21 = port:PC0<1><0> +gpio_pin_22 = port:PD0<1><0> +gpio_pin_23 = port:PC2<1><0> +gpio_pin_24 = port:PC3<1><0> +gpio_pin_25 = port:PB7<1><0> +gpio_pin_26 = port:PL9<1><0> +gpio_pin_27 = port:PL7<1><0> +gpio_pin_28 = port:PL8<1><0> +gpio_pin_29 = port:PE14<1><1> +gpio_pin_30 = port:PE15<1><1> + + + +;------------------------------------------------------------------------------------- +;used ---0:not used,1:used +;pmu_id ---0:axp19x,1:axp209,2:axp22x,3:axp806,4:axp808,5:axp809,6:axp803,7:axp813 +;pmu_twi_addr ---slave address +;pmu_twi_id ---i2c bus number (0 TWI0, 1 TWI2, 2 TWI3) +;pmu_irq_id ---irq number (0 irq0,1 irq1) +;pmu_chg_ic_temp ---intelligence charge pmu temperature. when it is 0, this function is closed. +;pmu_battery_rdc ---battery initial resistance +;pmu_battery_cap ---battery capability,mAh +;pmu_runtime_chgcur ---set initial charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_suspend_chgcur ---set suspend charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_shutdown_chgcur ---set shutdown charging current limite,mA,200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_init_chgvol ---set initial charing target voltage,mV,4100/4220/4200/4240 +;pmu_ac_vol ---set usb-ac limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite +;pmu_ac_cur ---set usb-ac limited current level,mA,500/900, 0 - not limite +;pmu_usbpc_vol ---set usb-pc limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite +;pmu_usbpc_cur ---set usb-pc limited current level,mA,500/900, 0 - not limite +;pmu_battery_warning_level1 ---low power warning high level,5%-20%,1%/step +;pmu_battery_warning_level2 ---low power warning low level,0%-15%,1%/step +;pmu_chgled_func ---CHGKED pin control, 0:controlled by pmu,1:controlled by Charger +;pmu_chgled_type ---CHGLED Type select when pmu_chgled_func=0,0:Type A, 1:type B +;pmu_bat_para1 ---battery indication at 3.13V +;pmu_bat_para2 ---battery indication at 3.27V +;pmu_bat_para3 ---battery indication at 3.34V +;pmu_bat_para4 ---battery indication at 3.41V +;pmu_bat_para5 ---battery indication at 3.48V +;pmu_bat_para6 ---battery indication at 3.52V +;pmu_bat_para7 ---battery indication at 3.55V +;pmu_bat_para8 ---battery indication at 3.57V +;pmu_bat_para9 ---battery indication at 3.59V +;pmu_bat_para10 ---battery indication at 3.61V +;pmu_bat_para11 ---battery indication at 3.63V +;pmu_bat_para12 ---battery indication at 3.64V +;pmu_bat_para13 ---battery indication at 3.66V +;pmu_bat_para14 ---battery indication at 3.7V +;pmu_bat_para15 ---battery indication at 3.73V +;pmu_bat_para16 ---battery indication at 3.77V +;pmu_bat_para17 ---battery indication at 3.78V +;pmu_bat_para18 ---battery indication at 3.8V +;pmu_bat_para19 ---battery indication at 3.82V +;pmu_bat_para20 ---battery indication at 3.84V +;pmu_bat_para21 ---battery indication at 3.85V +;pmu_bat_para22 ---battery indication at 3.87V +;pmu_bat_para23 ---battery indication at 3.91V +;pmu_bat_para24 ---battery indication at 3.94V +;pmu_bat_para25 ---battery indication at 3.98V +;pmu_bat_para26 ---battery indication at 4.01V +;pmu_bat_para27 ---battery indication at 4.05V +;pmu_bat_para28 ---battery indication at 4.08V +;pmu_bat_para29 ---battery indication at 4.1V +;pmu_bat_para30 ---battery indication at 4.12V +;pmu_bat_para31 ---battery indication at 4.14V +;pmu_bat_para32 ---battery indication at 4.15V +;pmu_bat_temp_enable ---battery temp detect enable +;pmu_bat_charge_ltf ---charge battery temp low threshold voltage +;pmu_bat_charge_htf ---charge battery temp high threshold voltage +;pmu_bat_shutdown_ltf ---shutdown battery temp low threshold voltage +;pmu_bat_shutdown_htf ---shutdown battery temp high threshold voltage +;pmu_bat_temp_para1 ---battery temp -25 voltage +;pmu_bat_temp_para2 ---battery temp -15 voltage +;pmu_bat_temp_para3 ---battery temp -10 voltage +;pmu_bat_temp_para4 ---battery temp -5 voltage +;pmu_bat_temp_para5 ---battery temp 0 voltage +;pmu_bat_temp_para6 ---battery temp 5 voltage +;pmu_bat_temp_para7 ---battery temp 10 voltage +;pmu_bat_temp_para8 ---battery temp 20 voltage +;pmu_bat_temp_para9 ---battery temp 30 voltage +;pmu_bat_temp_para10 ---battery temp 40 voltage +;pmu_bat_temp_para11 ---battery temp 45 voltage +;pmu_bat_temp_para12 ---battery temp 50 voltage +;pmu_bat_temp_para13 ---battery temp 55 voltage +;pmu_bat_temp_para14 ---battery temp 60 voltage +;pmu_bat_temp_para15 ---battery temp 70 voltage +;pmu_bat_temp_para16 ---battery temp 80 voltage +;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 +;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart +;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown +;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 +;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 +;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff +;-------------------------------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------------------------------- +;pmu0 is axp81x +;-------------------------------------------------------------------------------------------------------- +[pmu0] +used = 1 +pmu_id = 6 +pmu_twi_addr = 0x34 +pmu_twi_id = 1 +pmu_irq_id = 64 +pmu_IRQ_wakeup = 1 + +pmu_chg_ic_temp = 0 +pmu_battery_rdc = 125 +pmu_battery_cap = 4000 +pmu_runtime_chgcur = 800 +pmu_suspend_chgcur = 1500 +pmu_shutdown_chgcur = 1500 +pmu_init_chgvol = 4200 +pmu_ac_vol = 4000 +pmu_ac_cur = 3500 +pmu_usbpc_vol = 4400 +pmu_usbpc_cur = 500 +pmu_battery_warning_level1 = 15 +pmu_battery_warning_level2 = 0 +pmu_chgled_func = 0 +pmu_chgled_type = 0 + +pmu_bat_para1 = 0 +pmu_bat_para2 = 0 +pmu_bat_para3 = 0 +pmu_bat_para4 = 0 +pmu_bat_para5 = 0 +pmu_bat_para6 = 0 +pmu_bat_para7 = 0 +pmu_bat_para8 = 1 +pmu_bat_para9 = 2 +pmu_bat_para10 = 3 +pmu_bat_para11 = 7 +pmu_bat_para12 = 12 +pmu_bat_para13 = 20 +pmu_bat_para14 = 32 +pmu_bat_para15 = 43 +pmu_bat_para16 = 46 +pmu_bat_para17 = 50 +pmu_bat_para18 = 55 +pmu_bat_para19 = 58 +pmu_bat_para20 = 64 +pmu_bat_para21 = 70 +pmu_bat_para22 = 74 +pmu_bat_para23 = 79 +pmu_bat_para24 = 84 +pmu_bat_para25 = 90 +pmu_bat_para26 = 95 +pmu_bat_para27 = 98 +pmu_bat_para28 = 100 +pmu_bat_para29 = 100 +pmu_bat_para30 = 100 +pmu_bat_para31 = 100 +pmu_bat_para32 = 100 + +pmu_bat_temp_enable = 0 +pmu_bat_charge_ltf = 2261 +pmu_bat_charge_htf = 388 +pmu_bat_shutdown_ltf = 3200 +pmu_bat_shutdown_htf = 237 +pmu_bat_temp_para1 = 7466 +pmu_bat_temp_para2 = 4480 +pmu_bat_temp_para3 = 3518 +pmu_bat_temp_para4 = 2786 +pmu_bat_temp_para5 = 2223 +pmu_bat_temp_para6 = 1788 +pmu_bat_temp_para7 = 1448 +pmu_bat_temp_para8 = 969 +pmu_bat_temp_para9 = 664 +pmu_bat_temp_para10 = 466 +pmu_bat_temp_para11 = 393 +pmu_bat_temp_para12 = 333 +pmu_bat_temp_para13 = 283 +pmu_bat_temp_para14 = 242 +pmu_bat_temp_para15 = 179 +pmu_bat_temp_para16 = 134 + +pmu_powkey_off_time = 4000 +pmu_powkey_off_func = 0 +pmu_powkey_off_en = 1 +pmu_powkey_long_time = 1500 +pmu_powkey_on_time = 1000 +power_start = 0 + +;-------------------------------------------------------------------------------------------------------- +;pmu0 is axp81x +;regulator tree +;-------------------------------------------------------------------------------------------------------- +[pmu0_regu] +regulator_count = 23 +regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd" +regulator2 = "axp81x_dcdc2 none vdd-cpua" +regulator3 = "axp81x_dcdc3 none" +regulator4 = "axp81x_dcdc4 none" +regulator5 = "axp81x_dcdc5 none vcc-dram" +regulator6 = "axp81x_dcdc6 none vdd-sys" +regulator7 = "axp81x_dcdc7 none" +regulator8 = "axp81x_rtc none" +regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi " +regulator10 = "axp81x_aldo2 none vcc-pl" +regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll" +regulator12 = "axp81x_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-lcd" +regulator13 = "axp81x_dldo2 none vcc-wifi" +regulator14 = "axp81x_dldo3 none avdd-csi" +regulator15 = "axp81x_dldo4 none vcc-wifi-io vcc-pg" +regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" +regulator17 = "axp81x_eldo2 none vcc-mipi vcc-lcd-0" +regulator18 = "axp81x_eldo3 none dvdd-csi-18" +regulator19 = "axp81x_fldo1 none vcc-hsic-12" +regulator20 = "axp81x_fldo2 none vdd-cpus"; +regulator21 = "axp81x_gpio0ldo none vcc-ctp" +regulator22 = "axp81x_gpio1ldo none " +regulator23 = "axp81x_dc1sw none vcc-wifi-8089 vcc-gmac-33 vcc-pd" + +;---------------------------------------------------------------------------------- +;recovery and fastboot key +;---------------------------------------------------------------------------------- +[recovery_key] +key_max = 0xc +key_min = 0xa +;---------------------------------------------------------------------------------- +[fastboot_key] +key_max = 0x6 +key_min = 0x4 + +;---------------------------------------------------------------------------------- +; dvfs voltage-frequency table configuration +; +; max_freq: cpu maximum frequency, based on Hz +; min_freq: cpu minimum frequency, based on Hz +; +; lv_count: count of lv_freq/lv_volt, must be < 16 +; +; lv1: core vdd is 1.30v if cpu frequency is (1104Mhz, 1152Mhz] +; lv2: core vdd is 1.26v if cpu frequency is (1008Mhz, 1104Mhz] +; lv3: core vdd is 1.20v if cpu frequency is (816Mhz, 1008Mhz] +; lv4: core vdd is 1.10v if cpu frequency is (648Mhz, 816Mhz] +; lv5: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv6: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv7: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv8: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; +;---------------------------------------------------------------------------------- +[dvfs_table] +;extremity_freq = 1344000000 +max_freq = 1152000000 +min_freq = 480000000 + +lv_count = 8 +lv1_freq = 1152000000 +lv1_volt = 1300 + +lv2_freq = 1104000000 +lv2_volt = 1260 + +lv3_freq = 1008000000 +lv3_volt = 1200 + +lv4_freq = 816000000 +lv4_volt = 1100 + +lv5_freq = 648000000 +lv5_volt = 1040 + +lv6_freq = 0 +lv6_volt = 1040 + +lv7_freq = 0 +lv7_volt = 1040 + +lv8_freq = 0 +lv8_volt = 1040 + +;---------------------------------------------------------------------------------- +;s_uart0 config parameters +;s_uart0_used --s_uart0 whether used for arisc debugging +; +;---------------------------------------------------------------------------------- +[s_uart0] +s_uart0_used = 1 +s_uart0_tx = port:PL02<2> +s_uart0_rx = port:PL03<2> + +;---------------------------------------------------------------------------------- +;s_rsb0 config parameters +;s_rsb0_used --s_rsb0 whether used for arisc +; +;---------------------------------------------------------------------------------- +[s_rsb0] +s_rsb0_used = 1 +s_rsb0_sck = port:PL00<2><1><2> +s_rsb0_sda = port:PL01<2><1><2> + +;---------------------------------------------------------------------------------- +;s_jtag0 config parameters +;s_jtag0_used --s_jtag0 whether used for arisc +; +;---------------------------------------------------------------------------------- +[s_jtag0] +s_jtag0_used = 0 +s_jtag0_tms = port:PL04<2><1><2> +s_jtag0_tck = port:PL05<2><1><2> +s_jtag0_tdo = port:PL06<2><1><2> +s_jtag0_tdi = port:PL07<2><1><2> + +;---------------------------------------------------------------------------------- +;virtual device +;virtual device for pinctrl testing +;device have pin PA1 PA2 +;---------------------------------------------------------------------------------- +[Vdevice] +Vdevice_used = 1 +Vdevice_0 = port:PB01<4><1><2> +Vdevice_1 = port:PB02<4><1><2> + +;---------------------------------------------------------------------------------- +;mali400 parameters +;normal_freq : the normal frequency of gpu +;scene_ctrl_status: scene control status, if this is enabled, android layer can ask +; gpu driver to change frequency in certain scene +;temp_ctrl_status : temperature control status, if this is enabled, the gpu frequency +; will drop down if gpu's temperature is too high +;---------------------------------------------------------------------------------- +[gpu_mali400_0] +normal_freq = 456 +scene_ctrl_status = 0 +temp_ctrl_status = 1 + +;---------------------------------------------------------------------------------- +[secure] +dram_region_mbytes = 64 +drm_region_mbytes = 64 +drm_region_start_mbytes = 0 +;---------------------------------------------------------------------------------- diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config_linux-4.9.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config_linux-4.9.fex new file mode 100644 index 0000000000..9f11fc7daa --- /dev/null +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_config_linux-4.9.fex @@ -0,0 +1,1583 @@ +;A64 PAD application +;--------------------------------------------------------------------------------------------------------- +; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 +; 描述gpio的形式:Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态> +;--------------------------------------------------------------------------------------------------------- + +[product] +version = "100" +machine = "bpi-m64" + +;--------------------------------------------------------------------------------------------------------- +; eraseflag - 1 erase data partition, 0 - do not erase data partition +; next_work - action after burn, 0x0 by config, 0x1 normal, 0x2 reboot, 0x3 shutdown,0x4 reupdate ,0x5 boot +; debug_mode = 0 : do not print any message,debug_mode = 1 ,print debug message +;--------------------------------------------------------------------------------------------------------- +[platform] +eraseflag = 1 +next_work = 3 +debug_mode = 0 + +;--------------------------------------------------------------------------------------------------------- +; dragonboard_test default is 0,only in dragonboard card boot mode must be set 1 +; If you modified dragonboard_test flag,before you pack imgage, you must be build kernel again. +;--------------------------------------------------------------------------------------------------------- +[target] +boot_clock = 1008 +storage_type = -1 +burn_key = 1 +dragonboard_test = 0 + +;---------------------------------------------------------------------------------- +; system configuration +; ? +;dcdc1_vol ---set dcdc1 voltage,mV,1600-3400,100mV/step +;dcdc2_vol ---set dcdc2 voltage,mV,600-1540,20mV/step +;dcdc3_vol ---set dcdc3 voltage,mV,600-1860,20mV/step +;dcdc4_vol ---set dcdc4 voltage,mV,600-1540,20mV/step +;dcdc5_vol ---set dcdc5 voltage,mV,1000-2550,50mV/step +;aldo2_vol ---set aldo2 voltage,mV,700-3300,100mV/step +;aldo3_vol ---set aldo3 voltage,mV,700-3300,100mV/step +;---------------------------------------------------------------------------------- + +[power_sply] +dcdc1_vol = 1003300 +dcdc2_vol = 1001100 +dcdc6_vol = 1001100 +aldo1_vol = 1002800 +aldo2_vol = 1003300 +aldo3_vol = 1003000 +dldo1_vol = 1003300 +dldo2_vol = 1003300 +dldo3_vol = 1002800 +dldo4_vol = 1003300 +eldo1_vol = 1001800 +eldo2_vol = 1800 +eldo3_vol = 1001500 +fldo2_vol = 1001100 +gpio0_vol = 1003300 + +[card_boot] +logical_start = 40960 +sprite_gpio0 = + +;--------------------------------------------------------------------------------------------------------- +; if 1 == standby_mode, then support super standby; +; else, support normal standby. +;--------------------------------------------------------------------------------------------------------- +[pm_para] +standby_mode = 1 + +[card0_boot_para] +card_ctrl = 0 +card_high_speed = 1 +card_line = 4 +sdc_d1 = port:PF0<2><1><2> +sdc_d0 = port:PF1<2><1><2> +sdc_clk = port:PF2<2><1><2> +sdc_cmd = port:PF3<2><1><2> +sdc_d3 = port:PF4<2><1><2> +sdc_d2 = port:PF5<2><1><2> + +[card2_boot_para] +;sdc_io_1v8 = 1 +card_ctrl = 2 +card_high_speed = 1 +card_line = 8 +sdc_ds = port:PC1<3><1><3> +sdc_clk = port:PC5<3><1><3> +sdc_cmd = port:PC6<3><1><3> +sdc_d0 = port:PC8<3><1><3> +sdc_d1 = port:PC9<3><1><3> +sdc_d2 = port:PC10<3><1><3> +sdc_d3 = port:PC11<3><1><3> +sdc_d4 = port:PC12<3><1><3> +sdc_d5 = port:PC13<3><1><3> +sdc_d6 = port:PC14<3><1><3> +sdc_d7 = port:PC15<3><1><3> +sdc_emmc_rst = port:PC16<3><1><3> +sdc_ex_dly_used = 2 + +[twi_para] +twi_port = 0 +twi_scl = port:PH0<2> +twi_sda = port:PH1<2> + +[uart_para] +uart_debug_port = 0 +uart_debug_tx = port:PB8<4><1> +uart_debug_rx = port:PB9<4><1> + +[jtag_para] +jtag_enable = 1 +jtag_ms = port:PB0<4> +jtag_ck = port:PB1<4> +jtag_do = port:PB2<4> +jtag_di = port:PB3<4> + +[clock] +pll4 = 300 +pll6 = 600 +pll8 = 360 +pll9 = 297 +pll10 = 264 + +;***************************************************************************** +;sdram configuration +; +;***************************************************************************** +[dram_para] + +dram_clk = 672 +dram_type = 3 +dram_zq = 0x3b3bbb +dram_odt_en = 0x1 +dram_para1 = 0x10E410E4 +dram_para2 = 0x1000 +dram_mr0 = 0x1840 +dram_mr1 = 0x40 +dram_mr2 = 0x18 +dram_mr3 = 0x2 +dram_tpr0 = 0x004A2195 +dram_tpr1 = 0x02424190 +dram_tpr2 = 0x0008B060 +dram_tpr3 = 0x050005dc +dram_tpr4 = 0x0 +dram_tpr5 = 0x0 +dram_tpr6 = 0x0 +dram_tpr7 = 0x2a066198 +dram_tpr8 = 0x0 +dram_tpr9 = 0x0 +dram_tpr10 = 0x8808 +dram_tpr11 = 0x0 +dram_tpr12 = 0x55550000 +dram_tpr13 = 0x04002900 + +;---------------------------------------------------------------------------------- +;os life cycle para configuration +;---------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------; +; 10/100/100Mbps Ethernet MAC Controller Configure ; +;------------------------------------------------------------------------------; +; 配置选项: ; +; gmac_used --- 1: gmac used, 0: not used ; +; gmac_powerx -- A[:B] A: axp channel, B: voltage value ; +; phy-mode -- rgmii, rmii, mii ; +; tx-delay -- transmit clock delay: 0~7 ; +; rx-delay -- receive clock delay: 0~31 ; +;------------------------------------------------------------------------------; +; MII RGMII MII RGMII MII RGMII ; +;PD02~05 * * PD15 * PD22 * * ; +; PD06 * * PD16 PD23 * * ; +; PD07 * * PD17 PD24 ; +; PD08 PD18 * * PD25 ; +; PD09 PD19 * * PD26 ; +; PD10 * PD20 * PD26 ; +;PD11~14 * * PD21 * * PD28 ; +;------------------------------------------------------------------------------; +[gmac0] +gmac0_used = 1 +phy-mode = "rgmii" +gmac_rxd3 = port:PD08<4><3> +gmac_rxd2 = port:PD09<4><3> +gmac_rxd1 = port:PD10<4><3> +gmac_rxd0 = port:PD11<4><3> +gmac_rxclk = port:PD12<4><3> +gmac_rxdv = port:PD13<4><3> +gmac_rxerr = port:PD14<4><3> +gmac_txd3 = port:PD15<4><3> +gmac_txd2 = port:PD16<4><3> +gmac_txd1 = port:PD17<4><3> +gmac_txd0 = port:PD18<4><3> +gmac_txclk = port:PD19<4><3> +gmac_txen = port:PD20<4><3> +gmac_clkin = port:PD21<4><3> +gmac_mdc = port:PD22<4><3> +gmac_mdio = port:PD23<4><3> +gmac_power1 = "vcc-gmac-33" +gmac_power2 = +tx-delay = 0 +rx-delay = 0 + +;---------------------------------------------------------------------------------- +;i2c configuration +;---------------------------------------------------------------------------------- +[twi0] +twi0_used = 1 +twi0_scl = port:PH0<2> +twi0_sda = port:PH1<2> + +[twi1] +twi1_used = 0 +twi1_scl = port:PH2<2> +twi1_sda = port:PH3<2> + +[twi2] +twi2_used = 0 +twi2_scl = port:PE14<3> +twi2_sda = port:PE15<3> + +;---------------------------------------------------------------------------------- +;TWI device configuration +;compatible --- device name +;reg --- device address +;---------------------------------------------------------------------------------- +;[twi0/twi_board0] +;compatible = +;reg = + +;---------------------------------------------------------------------------------- +;uart configuration +;uart_port --- x (/dev/ttySx, x=0,1,2,...) +;uart_type --- 2 (2 wire), 4 (4 wire), 8 (8 wire, full function) +;---------------------------------------------------------------------------------- +[uart0] +uart0_used = 1 +uart0_port = 0 +uart0_type = 2 +uart0_tx = port:PB8<4><1> +uart0_rx = port:PB9<4><1> +uart0_regulator = "vcc-uartx" + +[uart1] +uart1_used = 1 +uart1_port = 1 +uart1_type = 4 +uart1_tx = port:PG6<2><1> +uart1_rx = port:PG7<2><1> +uart1_rts = port:PG8<2><1> +uart1_cts = port:PG9<2><1> +uart1_regulator = "vcc-uartx" + +[uart2] +uart2_used = 0 +uart2_port = 2 +uart2_type = 4 +uart2_tx = port:PB0<2><1> +uart2_rx = port:PB1<2><1> +uart2_rts = port:PB2<2><1> +uart2_cts = port:PB3<2><1> +uart2_regulator = "vcc-uartx" + +[uart3] +uart3_used = 0 +uart3_port = 3 +uart3_type = 4 +uart3_tx = port:PH4<2><1> +uart3_rx = port:PH5<2><1> +uart3_rts = port:PH6<2><1> +uart3_cts = port:PH7<2><1> +uart3_regulator = "vcc-uartx" + +[uart4] +uart4_used = 0 +uart4_port = 4 +uart4_type = 4 +uart4_tx = port:PD2<3><1> +uart4_rx = port:PD3<3><1> +uart4_rts = port:PD4<3><1> +uart4_cts = port:PD5<3><1> +uart4_regulator = "vcc-uartx" + +;---------------------------------------------------------------------------------- +;SPI controller configuration +;---------------------------------------------------------------------------------- +[spi0] +spi0_used = 0 +spi0_cs_number = 1 +spi0_cs_bitmap = 1 +spi0_cs0 = port:PC3<4><1> +spi0_sclk = port:PC2<4> +spi0_mosi = port:PC0<4> +spi0_miso = port:PC1<4> + +[spi1] +spi1_used = 0 +spi1_cs_number = 1 +spi1_cs_bitmap = 1 +spi1_cs0 = port:PD0<4><1> +spi1_sclk = port:PD1<4> +spi1_mosi = port:PD2<4> +spi1_miso = port:PD3<4> + +;---------------------------------------------------------------------------------- +;SPI device configuration +;compatible --- device name +;spi-max-frequency --- work frequency +;reg --- chip select +;optional properties: spi-cpha, spi-cpol, spi-cs-high +;---------------------------------------------------------------------------------- +;[spi0/spi_board0] +;compatible = +;spi-max-frequency = +;reg = +;spi-cpha +;spi-cpol +;spi-cs-high + +;---------------------------------------------------------------------------------- +;resistance tp configuration +;---------------------------------------------------------------------------------- +[rtp_para] +rtp_used = 0 +rtp_screen_size = 5 +rtp_regidity_level = 5 +rtp_press_threshold_enable = 0 +rtp_press_threshold = 0x1f40 +rtp_sensitive_level = 0xf +rtp_exchange_x_y_flag = 0 + +;---------------------------------------------------------------------------------- +;capacitor tp configuration +;external int function +;wakeup output function +;notice --- tp_int_port & tp_io_port use the same port +;---------------------------------------------------------------------------------- +[ctp] +compatible = "allwinner,sun50i-ctp-para" +ctp_used = 1 +ctp_name = "ft5x_ts" +ctp_twi_id = 0 +ctp_twi_addr = 0x38 +ctp_screen_max_x = 800 +ctp_screen_max_y = 480 +ctp_revert_x_flag = 0 +ctp_revert_y_flag = 0 +ctp_exchange_x_y_flag = 0 + +ctp_int_port = port:PH04<6> +ctp_wakeup = port:PH08<1><1> +ctp_power_ldo = "vcc-ctp" +ctp_power_ldo_vol = 3300 +ctp_power_io = + +;-------------------------------------------------------------------------------- +; CTP automatic detection configuration +;ctp_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[ctp_list] +compatible = "allwinner,sun50i-ctp-list" +ctp_list_used = 1 +gslX680new = 0 +gt9xx_ts = 0 +gt9xxnew_ts = 0 +gt82x = 0 +zet622x = 0 +aw5306_ts = 0 +ft5x = 1 + +;---------------------------------------------------------------------------------- +;touch key configuration +;---------------------------------------------------------------------------------- +[tkey_para] +tkey_used = 0 +tkey_twi_id = +tkey_twi_addr = +tkey_int = + +;---------------------------------------------------------------------------------- +;motor configuration +;---------------------------------------------------------------------------------- +[motor_para] +motor_used = 0 +motor_shake = port:power3<1><1> + +;---------------------------------------------------------------------------------- +; nand0_dragonboard default is 0,only in dragonboard card boot mode must be set 1 +;---------------------------------------------------------------------------------- +[nand0_para] +nand0_dragonboard = 0 +nand0_support_2ch = 0 + +nand0_used = 1 +nand0_we = port:PC00<2><0><1> +nand0_ale = port:PC01<2><0><1> +nand0_cle = port:PC02<2><0><1> +nand0_ce1 = port:PC03<2><1><1> +nand0_ce0 = port:PC04<2><1><1> +nand0_nre = port:PC05<2><0><1> +nand0_rb0 = port:PC06<2><1><1> +nand0_rb1 = port:PC07<2><1><1> +nand0_d0 = port:PC08<2><0><1> +nand0_d1 = port:PC09<2><0><1> +nand0_d2 = port:PC10<2><0><1> +nand0_d3 = port:PC11<2><0><1> +nand0_d4 = port:PC12<2><0><1> +nand0_d5 = port:PC13<2><0><1> +nand0_d6 = port:PC14<2><0><1> +nand0_d7 = port:PC15<2><0><1> +nand0_ndqs = port:PC16<2><0><1> +nand0_ce2 = port:PC17<2><1><1> +nand0_ce3 = port:PC18<2><1><1> + +nand0_regulator1 = "vcc-nand" +nand0_regulator2 = "none" +nand0_cache_level = 0x55aaaa55 +nand0_flush_cache_num = 0x55aaaa55 +nand0_capacity_level = 0x55aaaa55 +nand0_id_number_ctl = 0x55aaaa55 +nand0_print_level = 0x55aaaa55 +nand0_p0 = 0x55aaaa55 +nand0_p1 = 0x55aaaa55 +nand0_p2 = 0x55aaaa55 +nand0_p3 = 0x55aaaa55 + +;---------------------------------------------------------------------------------- +;disp init configuration +; +;disp_mode (0:screen0) +;screenx_output_type (0:none; 1:lcd; 3:hdmi;) +;screenx_output_mode (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50) +; (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60) +;fbx format (0:ARGB 1:ABGR 2:RGBA 3:BGRA 5:RGB565 8:RGB888 12:ARGB4444 16:ARGB1555 18:RGBA5551) +;fbx_width,fbx_height (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0) +;---------------------------------------------------------------------------------- +[disp] +disp_init_enable = 1 +disp_mode = 0 + +screen0_output_type = 3 +screen0_output_mode = 5 + +screen1_output_type = 3 +screen1_output_mode = 5 + +fb0_format = 0 +fb0_width = 0 +fb0_height = 0 + +fb1_format = 0 +fb1_width = 0 +fb1_height = 0 + +;---------------------------------------------------------------------------------- +;lcd0 configuration + +;lcd_if: 0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp +;lcd_backlight lcd init backlight +;lcd_x: lcd horizontal resolution +;lcd_y: lcd vertical resolution +;lcd_width: width of lcd in mm +;lcd_height: height of lcd in mm +;lcd_dclk_freq: in MHZ unit +;lcd_pwm_freq: in HZ unit +;lcd_pwm_pol: lcd backlight PWM polarity +;lcd_pwm_max_limit lcd backlight PWM max limit(<=255) +;lcd_hbp: hsync back porch +;lcd_ht: hsync total cycle +;lcd_vbp: vsync back porch +;lcd_vt: vysnc total cycle +;lcd_hspw: hsync plus width +;lcd_vspw: vysnc plus width +;lcd_lvds_if: 0:single link; 1:dual link +;lcd_lvds_colordepth: 0:8bit; 1:6bit +;lcd_lvds_mode: 0:NS mode; 1:JEIDA mode +;lcd_frm: 0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither +;lcd_hv_clk_phase lcd hv panel lock phase, 0:0 degree; 1:90 degree; 2: 180 degree; 3: 270 degree +;lcd_hv_sync_polarity lcd hv panel sync signals polarity +; 0:vsync active low, hsync active low; 1:vsync active high, hsync active low +; 2:vsync active low, hsync active high; 3:vsync active high, hsync active high +;lcd_gamma_en lcd gamma correction enable +;lcd_bright_curve_en lcd bright curve correction enable +;lcd_cmap_en lcd color map function enable +;---------------------------------------------------------------------------------- +[lcd0] +lcd_used = 1 +lcd_driver_name = "S070WV20_MIPI_RGB" + +lcd_bl_0_percent = 0 +lcd_bl_40_percent = 23 +lcd_bl_100_percent = 100 + +lcd_backlight = 180 +lcd_if = 4 +lcd_x = 800 +lcd_y = 480 +lcd_width = 86 +lcd_height = 154 +lcd_dclk_freq = 30 +lcd_pwm_used = 1 +lcd_pwm_ch = 16 +lcd_pwm_freq = 50000 +lcd_pwm_pol = 1 +lcd_pwm_max_limit = 255 +lcd_hbp = 88 +lcd_ht = 928 +lcd_hspw = 48 +lcd_vbp = 32 +lcd_vt = 525 +lcd_vspw = 3 +lcd_lvds_if = 0 +lcd_lvds_colordepth = 0 +lcd_lvds_mode = 0 +lcd_frm = 0 +lcd_hv_clk_phase = 0 +lcd_hv_sync_polarity= 0 +lcd_dsi_if = 0 +lcd_dsi_lane = 4 +lcd_dsi_format = 0 +lcd_dsi_te = 0 +lcd_gamma_en = 0 +lcd_bright_curve_en = 0 +lcd_cmap_en = 0 + +lcd_bl_en = port:PD5<1><0><2><1> +lcd_bl_en_power = "none" +lcd_power = "vcc-lcd" +lcd_power1 = "vcc-dsi-33" +;lcd_power2 = "vcc-pd" +;lcd_fix_power = "vcc-dsi-33" +lcd_pin_power = "vcc-pd" +lcd_gpio_0 = port:PD6<1><0><2><1> +lcd_gpio_1 = port:PD7<1><0><2><1> +;lcd_io_regulator1 = "vcc-pd" + +[hdmi] +hdmi_used = 1 +hdmi_power = "vcc-hdmi-33" +hdmi_hdcp_enable = 0 +hdmi_cts_compatibility = 0 + +;---------------------------------------------------------------------------------- +;pwm config +;---------------------------------------------------------------------------------- +[pwm0] +pwm_used = 0 +pwm_positive = port:PD22<2><0> + +[pwm0_suspend] +pwm_positive = port:PD22<7><0> + +[spwm0] +s_pwm_used = 1 +pwm_positive = port:PL10<2><0> + +[spwm0_suspend] +pwm_positive = port:PL10<7><0> + + +;----------------------------------------------------------------- +;advert_disp - 1: can used app to change bootlogo, 0:not used +;auto_hpd - 1:need hotplud for hdmi/tv; 0:don't hotplud for lcd +;output_type - 0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga (as default config in homlet) +;hdmi_channel - the display channel for hdmi (as default config in homlet) +;cvbs_channel - the display channel for cvbs (as default config in homlet) +;hdmi_mode - as default config for output of hdmi in homlet +;cvbs_mode - as default config for output of tv in homlet. 11:PAL; 14:NTSC +;hdmi_mode_check - disable/enable the function of checking hdmi mode, 0 is disable, 1 is enable +;----------------------------------------------------------------- +[boot_disp] +output_disp = 0 +output_type = 3 +output_mode = 5 + +;-------------------------------------------------------------------------------- +;csi (COMS Sensor Interface) configuration +;csi(x)_dev(x)_used: 0:disable 1:enable +;csi(x)_dev(x)_isp_used 0:not use isp 1:use isp +;csi(x)_dev(x)_fmt: 0:yuv 1:bayer raw rgb +;csi(x)_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby +;csi(x)_dev(x)_vflip: flip in vertical direction 0:disable 1:enable +;csi(x)_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable +;csi(x)_dev(x)_iovdd: camera module io power handle string, pmu power supply +;csi(x)_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply +;csi(x)_dev(x)_avdd: camera module analog power handle string, pmu power supply +;csi(x)_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply +;csi(x)_dev(x)_dvdd: camera module core power handle string, pmu power supply +;csi(x)_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply +;csi(x)_dev(x)_afvdd: camera module vcm power handle string, pmu power supply +;csi(x)_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply +;fill voltage in uV, e.g. iovdd = 2.8V, csix_iovdd_vol = 2800000 +;fill handle string as below: +;axp22_eldo3 +;axp22_dldo4 +;axp22_eldo2 +;fill handle string "" when not using any pmu power supply +;-------------------------------------------------------------------------------- + +[csi0] +csi0_used = 1 +csi0_sensor_list = 1 +csi0_pck = port:PE00<2> +csi0_mck = port:PE01<0><0><1><0> +csi0_hsync = port:PE02<2> +csi0_vsync = port:PE03<2> +csi0_d0 = port:PE04<2> +csi0_d1 = port:PE05<2> +csi0_d2 = port:PE06<2> +csi0_d3 = port:PE07<2> +csi0_d4 = port:PE08<2> +csi0_d5 = port:PE09<2> +csi0_d6 = port:PE10<2> +csi0_d7 = port:PE11<2> +csi0_sck = port:PE12<2> +csi0_sda = port:PE13<2> + +[csi0/csi0_dev0] +csi0_dev0_used = 1 +csi0_dev0_mname = "ov5640" +csi0_dev0_twi_addr = 0x78 +csi0_dev0_pos = "rear" +csi0_dev0_isp_used = 1 +csi0_dev0_fmt = 0 +csi0_dev0_stby_mode = 0 +csi0_dev0_vflip = 1 +csi0_dev0_hflip = 1 +csi0_dev0_iovdd = "avdd-csi" +csi0_dev0_iovdd_vol = 2800000 +csi0_dev0_avdd = "avdd-csi" +csi0_dev0_avdd_vol = 2800000 +csi0_dev0_dvdd = "dvdd-csi-18" +csi0_dev0_dvdd_vol = 1500000 +csi0_dev0_afvdd = "avdd-csi" +csi0_dev0_afvdd_vol = 2800000 +csi0_dev0_power_en = +csi0_dev0_reset = port:PE16<0><0><1><0> +csi0_dev0_pwdn = port:PE17<0><0><1><0> +csi0_dev0_flash_used = 0 +csi0_dev0_flash_type = 2 +csi0_dev0_flash_en = +csi0_dev0_flash_mode = +csi0_dev0_flvdd = "" +csi0_dev0_flvdd_vol = +csi0_dev0_af_pwdn = +csi0_dev0_act_used = 1 +csi0_dev0_act_name = "dw9714_act" +csi0_dev0_act_slave = 0x18 + +[csi0/csi0_dev1] +csi0_dev1_used = 0 +csi0_dev1_mname = "gc0328c" +csi0_dev1_twi_addr = 0x42 +csi0_dev1_pos = "front" +csi0_dev1_isp_used = 1 +csi0_dev1_fmt = 0 +csi0_dev1_stby_mode = 1 +csi0_dev1_vflip = 0 +csi0_dev1_hflip = 0 +csi0_dev1_iovdd = "iovdd-csi" +csi0_dev1_iovdd_vol = 2800000 +csi0_dev1_avdd = "avdd-csi" +csi0_dev1_avdd_vol = 2800000 +csi0_dev1_dvdd = "dvdd-csi-18" +csi0_dev1_dvdd_vol = 1800000 +csi0_dev1_afvdd = "" +csi0_dev1_afvdd_vol = +csi0_dev1_power_en = +csi0_dev1_reset = +csi0_dev1_pwdn = +csi0_dev1_flash_used = 0 +csi0_dev1_flash_type = 2 +csi0_dev1_flash_en = +csi0_dev1_flash_mode = +csi0_dev1_flvdd = "vdd-csi-led" +csi0_dev1_flvdd_vol = 3300000 +csi0_dev1_af_pwdn = +csi0_dev1_act_used = 0 +csi0_dev1_act_name = "ad5820_act" +csi0_dev1_act_slave = 0x18 + +;-------------------------------------------------------------------------------- +;tv configuration +; +;-------------------------------------------------------------------------------- +[tvout_para] +tvout_used = +tvout_channel_num = +tv_en = + +[tvin_para] +tvin_used = +tvin_channel_num = + +; ------------------------------------------------------------------------------| +; de-interlace configuration +;-------------------------------------------------------------------------------- +[di] +di_used = 1 + +;-------------------------------------------------------------------------------- +; SDMMC PINS MAPPING | +; ------------------------------------------------------------------------------| +; Config Guide | +; sdc_used: 1-enable card, 0-disable card | +; non-removable:if you use as main memory,you should set it,for example eMMC | +; bus-width: card bus width, 1-1bit, 4-4bit, 8-8bit | +; sunxi-power-save-mode: if use sdio card,should not set it | +; vmmc:regulator for card/emmc power | +; vqmmc:regulator for card/emmc io power | +; vdmmc:regulator for card detect pin pull up power | +; other: GPIO Mapping configuration | +; ------------------------------------------------------------------------------| +; Note: | +; | +; | +; | +; | +; | +; | +;-------------------------------------------------------------------------------- + +[sdc0] +sdc0_used = 1 +bus-width = 4 +sdc0_d1 = port:PF00<2><1><2> +sdc0_d0 = port:PF01<2><1><2> +sdc0_clk = port:PF02<2><1><2> +sdc0_cmd = port:PF03<2><1><2> +sdc0_d3 = port:PF04<2><1><2> +sdc0_d2 = port:PF05<2><1><2> +cd-gpios = port:PF06<0><1><2> +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = +vmmc="vcc-sdcv" +vqmmc="vcc-sdcvq33" +vdmmc="vcc-sdcvd" + + +[sdc1] +sdc1_used = 1 +bus-width = 4 +sdc1_clk = port:PG00<2><1><3> +sdc1_cmd = port:PG01<2><1><3> +sdc1_d0 = port:PG02<2><1><3> +sdc1_d1 = port:PG03<2><1><3> +sdc1_d2 = port:PG04<2><1><3> +sdc1_d3 = port:PG05<2><1><3> +;sunxi-power-save-mode = +sd-uhs-sdr50 = +sd-uhs-ddr50 = +sd-uhs-sdr104 = +cap-sdio-irq = +keep-power-in-suspend = +ignore-pm-notify = +max-frequency = 150000000 + + +[sdc2] +sdc2_used = 1 +non-removable = +bus-width = 8 +sdc2_ds = port:PC01<3><1><3> +sdc2_clk = port:PC05<3><1><3> +sdc2_cmd = port:PC06<3><1><3> +sdc2_d0 = port:PC08<3><1><3> +sdc2_d1 = port:PC09<3><1><3> +sdc2_d2 = port:PC10<3><1><3> +sdc2_d3 = port:PC11<3><1><3> +sdc2_d4 = port:PC12<3><1><3> +sdc2_d5 = port:PC13<3><1><3> +sdc2_d6 = port:PC14<3><1><3> +sdc2_d7 = port:PC15<3><1><3> +sdc2_emmc_rst = port:PC16<3><1><3> +cd-gpios = +sunxi-power-save-mode = +sunxi-dis-signal-vol-sw = +mmc-ddr-1_8v = +mmc-hs200-1_8v = +mmc-hs400-1_8v = +max-frequency = 100000000 +sdc_tm4_sm0_freq0 = 0 +sdc_tm4_sm0_freq1 = 0 +sdc_tm4_sm1_freq0 = 0x00000000 +sdc_tm4_sm1_freq1 = 0 +sdc_tm4_sm2_freq0 = 0x00000000 +sdc_tm4_sm2_freq1 = 0 +sdc_tm4_sm3_freq0 = 0x05000000 +sdc_tm4_sm3_freq1 = 0x00000405 +sdc_tm4_sm4_freq0 = 0x00050000 +sdc_tm4_sm4_freq1 = 0x00000408 +vmmc="vcc-emmcv" +;vqmmc="vcc-emmcvq33" +vqmmc="vcc-emmcvq18" +vdmmc="none" + + +;[mmc3] +;mmc3_used = 0 +;mmc3_detmode = 2 +;mmc3_buswidth = 4 +;mmc3_clk = port:PA10<2><1><2> +;mmc3_cmd = port:PA09<2><1><2> +;mmc3_d0 = port:PA11<2><1><2> +;mmc3_d1 = port:PA12<2><1><2> +;mmc3_d2 = port:PA13<2><1><2> +;mmc3_d3 = port:PA14<2><1><2> +;mmc3_det = +;mmc3_use_wp = 0 +;mmc3_wp = +;mmc3_isio = 0 +;mmc3_regulator = "none" + +; ------------------------------------------------------------------------------| +; sim card configuration +;-------------------------------------------------------------------------------- +[smc] +smc_used = +smc_rst = +smc_vppen = +smc_vppp = +smc_det = +smc_vccen = +smc_sck = +smc_sda = + +;-------------------------------- +;[usbc0]:控制器0的配置。 +;usb_used:USB使能标志。置1,表示系统中USB模块可用,置0,则表示系统USB禁用。 +;usb_port_type:USB端口的使用情况。 0:device only;1:host only;2:OTG +;usb_detect_type:USB端口的检查方式。0:不做检测;1:vbus/id检查;2:id/dpdm检查 +;usb_id_gpio:USB ID pin脚配置。具体请参考gpio配置说明。 +;usb_det_vbus_gpio:USB DET_VBUS pin脚配置。具体请参考gpio配置说明。 +;usb_drv_vbus_gpio:USB DRY_VBUS pin脚配置。具体请参考gpio配置说明。 +;usb_det_vbus_gpio: "axp_ctrl",表示axp 提供 +;-------------------------------- +;-------------------------------- +;--- USB0控制标志 +;-------------------------------- +[usbc0] +usbc0_used = 1 +usb_port_type = 2 +usb_detect_type = 1 +usb_id_gpio = port:PH09<0><1> +usb_det_vbus_gpio = "axp_ctrl" +usb_drv_vbus_gpio = port:power3<1><0><0> +usb_host_init_state = 0 +usb_regulator_io = "nocare" +usb_wakeup_suspend = 0 +;--- USB Device +usb_luns = 3 +usb_serial_unique = 1 +usb_serial_number = "20080411" +rndis_wceis = 1 + +;-------------------------------- +;--- USB1控制标志 +;-------------------------------- +[usbc1] +usbc1_used = 1 +usb_drv_vbus_gpio = +usb_host_init_state = 1 +usb_regulator_io = "nocare" +usb_wakeup_suspend = 0 +;--- HSIC config +usb_hsic_used = 0 +usb_hsic_regulator_io = "vcc-hsic-12" +;--- Marvell 4G HSIC +usb_hsic_ctrl = 0 +usb_hsic_rdy_gpio = +;--- SMSC usb3503 HSIC HUB +usb_hsic_usb3503_flag = 0 +usb_hsic_hub_connect_gpio = +usb_hsic_int_n_gpio = +usb_hsic_reset_n_gpio = + +;-------------------------------- +;--- 序列号标志 +;-------------------------------- +[serial_feature] +sn_filename = "ULI/factory/snum.txt" + +;-------------------------------------------------------------------------------- +; G sensor configuration +; gs_twi_id --- TWI ID for controlling Gsensor (0: TWI0, 1: TWI1, 2: TWI2) +;-------------------------------------------------------------------------------- +[gsensor] +compatible = "allwinner,sun50i-gsensor-para" +gsensor_used = 0 +gsensor_twi_id = 1 +gsensor_twi_addr = 0x1d +gsensor_vcc_io = "vcc-io" +gsensor_vcc_io_val = 3300 +gsensor_int1 = port:PH05<6><1> +gsensor_int2 = port:PH06<6><1> + +;-------------------------------------------------------------------------------- +; G sensor automatic detection configuration +;gsensor_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[gsensor_list] +compatible = "allwinner,sun50i-gsensor-list-para" +gsensor_list__used = 1 +lsm9ds0_acc_mag = 0 +bma250 = 1 +mma8452 = 0 +mma7660 = 0 +mma865x = 0 +afa750 = 0 +lis3de_acc = 0 +lis3dh_acc = 0 +kxtik = 0 +dmard10 = 0 +dmard06 = 0 +mxc622x = 0 +fxos8700 = 0 +lsm303d = 0 +sc7a30 = 0 + +;-------------------------------------------------------------------------------- +;wlan configuration +;wlan_used: 0-not use, 1- use +;wlan_busnum: sdio/usb index +;clocks: external low power clock input (32.768KHz) +;wlan_power: input supply voltage +;wlan_io_regulator: wlan/sdio I/O voltage +;wlan_regon: power up/down internal regulators used by wifi section +;wlan_hostwake: wlan to wake-up host +;-------------------------------------------------------------------------------- +[wlan] +wlan_used = 1 +wlan_busnum = 1 +;clocks = +wlan_power = "vcc-wifi" +wlan_io_regulator = "vcc-wifi-io" +wlan_regon = port:PL02<1><0> +wlan_hostwake = port:PL03<6><0> + +;-------------------------------------------------------------------------------- +;bluetooth configuration +;bt_used: 0- no used, 1- used +;clocks: external low power clock input (32.768KHz) +;bt_power: input supply voltage +;bt_io_regulator: bluetooth I/O voltage +;bt_rst_n: power up/down internal regulators used by BT section +;-------------------------------------------------------------------------------- +[bt] +bt_used = 1 +;clocks = +bt_power = "vcc-wifi" +bt_io_regulator = "vcc-wifi-io" +bt_rst_n = port:PL04<1><0> + +;-------------------------------------------------------------------------------- +;bluetooth lpm configuration +;btlpm_used: 0- no used, 1- used +;uart_index: 0- uart0, 1- uart1, 2- uart2 +;bt_wake: host wake-up bluetooth device +;bt_hostwake: bt device wake-up host +;-------------------------------------------------------------------------------- +[btlpm] +btlpm_used = 1 +uart_index = 1 +bt_wake = port:PL06<1><1> +bt_hostwake = port:PL05<6><0> + +;-------------------------------------------------------------------------------- +;3G configuration +;-------------------------------------------------------------------------------- +[3g_para] +3g_used = 0 +3g_usbc_num = 2 +3g_uart_num = 0 +bb_vbat = port:PL03<1><0> +bb_host_wake = port:PM00<1><0> +bb_on = port:PM01<1><0> +bb_pwr_on = port:PM03<1><0> +bb_wake = port:PM04<1><0> +bb_rf_dis = port:PM05<1><0> +bb_rst = port:PM06<1><0> +3g_int = + +;-------------------------------------------------------------------------------- +;gyroscope +;-------------------------------------------------------------------------------- +[gyroscopesensor] +compatible ="allwinner,sun50i-gyr_sensors-para" +gyroscopesensor_used = 0 +gy_twi_id = 2 +gy_twi_addr = 0x6a +gy_int1 = port:PA10<6><1> +gy_int2 = + +;-------------------------------------------------------------------------------- +; Gyro automatic detection configuration +;gy_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[gy_list] +compatible ="allwinner,sun50i-gyr_sensors-list-para" +gy_list_used = 0 +lsm9ds0_gyr = 1 +l3gd20_gyr = 0 +bmg160_gyr = 1 + + +;-------------------------------------------------------------------------------- +;light sensor +;-------------------------------------------------------------------------------- +[lightsensor] +compatible ="allwinner,sun50i-lsensors-para" +lightsensor_used =0 +ls_twi_id = 2 +ls_twi_addr = 0x23 +ls_int = port:PA12<6><1> + +;-------------------------------------------------------------------------------- +; lsensor automatic detection configuration +;ls_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[ls_list] +compatible ="allwinner,sun50i-lsensors-list-para" +ls_list_used =0 +ltr_501als = 1 +jsa1212 = 0 +jsa1127 = 1 +stk3x1x = 0 + +;-------------------------------------------------------------------------------- +;compass +;-------------------------------------------------------------------------------- +[compasssensor] +compatible ="allwinner,sun50i-compass-para" +compasssensor_used = 0 +compass_twi_id = 2 +compass_twi_addr = 0x0d +compass_int = port:PA11<6><1> + + +;-------------------------------------------------------------------------------- +; compass sensor automatic detection configuration +;compass_detect_used --- Whether startup automatic inspection function. 1:used,0:unused +;Module name postposition 1 said detection, 0 means no detection. +;-------------------------------------------------------------------------------- +[compass_list] +compatible ="allwinner,sun50i-compass-list-para" +compass_list_used = 0 +lsm9ds0 = 1 +lsm303d = 0 +;akm8963 = 1 + +;-------------------------------------------------------------------------------- +; NOTE :Make sure spdif_used = 0x1,spdifmach_used = 0x1, +; if register the sound card spdif. +;-------------------------------------------------------------------------------- +[spdif] +spdif_used = 0 +[sndspdif] +sndspdif_used = 0 +;---------------------------------------------------------------------------------- +; NOTE :Make sure daudio2_used = 0x1,sndhdmi_used = 0x1, +; if register the sound card hdmi. +;--------------------------------------------------------------------------------- +[daudio2] +daudio2_used = 1 +[sndhdmi] +sndhdmi_used = 1 +;-------------------------------------------------------------------------------- +;allwinner,pcm_lrck_period :16/32/64/128/256 +;allwinner,pcm_lrckr_period :no use +;allwinner,slot_width_select :16bits/20bits/24bits/32bits +;allwinner,pcm_lsb_first :0: msb first; 1: lsb first +;allwinner,tx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,rx_data_mode :0: 16bit linear PCM; 1: 8bit linear PCM; 2: 8bit u-law; 3: 8bit a-law +;allwinner,daudio_master :1: SND_SOC_DAIFMT_CBM_CFM(codec clk & FRM master) use +; 2: SND_SOC_DAIFMT_CBS_CFM(codec clk slave & FRM master) not use +; 3: SND_SOC_DAIFMT_CBM_CFS(codec clk master & frame slave) not use +; 4: SND_SOC_DAIFMT_CBS_CFS(codec clk & FRM slave) use +;allwinner,audio_format: 1:SND_SOC_DAIFMT_I2S(standard i2s format). use +; 2:SND_SOC_DAIFMT_RIGHT_J(right justfied format). +; 3:SND_SOC_DAIFMT_LEFT_J(left justfied format) +; 4:SND_SOC_DAIFMT_DSP_A(pcm. MSB is available on 2nd BCLK rising edge after LRC rising edge). use +; 5:SND_SOC_DAIFMT_DSP_B(pcm. MSB is available on 1nd BCLK rising edge after LRC rising edge) +;allwinner,signal_inversion:1:SND_SOC_DAIFMT_NB_NF(normal bit clock + frame) use +; 2:SND_SOC_DAIFMT_NB_IF(normal BCLK + inv FRM) +; 3:SND_SOC_DAIFMT_IB_NF(invert BCLK + nor FRM) use +; 4:SND_SOC_DAIFMT_IB_IF(invert BCLK + FRM) +;allwinner,frametype :0: long frame = 2 clock width; 1: short frame +;allwinner,tdm_config :0:pcm 1:i2s +;allwinner,daudio_regulator : regulator name +;allwinner,daudio0_used :0:not use 1:use +;-------------------------------------------------------------------------------- +; NOTE :Make sure snddaudio0_used = 0x1,daudio1_used = 0x1, +; if register the sound card DAUDIO1. +;-------------------------------------------------------------------------------- +[snddaudio0] +snddaudio0_used = 0 +;----------------------------------------------------------------------------- +[daudio0] +pcm_lrck_period = 0x20 +;pcm_lrckr_period = 0x01 +slot_width_select = 0x20 +;pcm_lsb_first = 0x0 +;tx_data_mode = 0x0 +;rx_data_mode = 0x0 +daudio_master = 0x04 +audio_format = 0x01 +signal_inversion = 0x01 +frametype = 0x0 +tdm_config = 0x01 +daudio_regulator = +daudio0_used = 0 + +;------------------------------------------------------------------------------- +; NOTE :Make sure snddaudio1_used = 0x1,daudio0_used = 0x1, +; if register the sound card DAUDIO0. +;-------------------------------------------------------------------------------- +[snddaudio1] +snddaudio1_used = 0 +;----------------------------------------------------------------------------- +[daudio1] +pcm_lrck_period = 0x20 +;pcm_lrckr_period = 0x01 +slot_width_select = 0x20 +;pcm_lsb_first = 0x0 +;tx_data_mode = 0x0 +;rx_data_mode = 0x0 +daudio_master = 0x04 +audio_format = 0x01 +signal_inversion = 0x01 +frametype = 0x0 +tdm_config = 0x01 +daudio_regulator = +daudio1_used = 0 + +;-------------------------------------------------------------------------------------- +;allwinner,headphonevol :headphone volume:0x0--0x3f 0db--(-62db) 1db/step +;allwinner,spkervol : speaker volume:0x0--0x1f 0db-(-43.5db) 1.5db/step +;allwinner,earpiecevol : earpiece volume:0x0--0x1f 0db-(-43.5db) 1.5db/step +;allwinner,maingain : mainmic gain:0x0---0x7 0x0-0db 0x1:24db 3db/step +;allwinner,headsetmicgain : headphonemic gain:0x0---0x7 0x0-0db 0x1:24db 3db/step +;allwinner,adcagc_cfg : 1:use adcagc 0:no use +;allwinner,adcdrc_cfg : 1:use adcdrc 0:no use +;allwinner,adchpf_cfg : 1:use adchpf 0:no use +;allwinner,dacdrc_cfg : 1:use adcdrc 0:no use +;allwinner,dachpf_cfg : 1:use adchpf 0:no use +;allwinner,aif2config : 1:use aif2 0:no use +;allwinner,aif3config : 1:use aif3 0:no use +;allwinner,hp_detect_case :0:low 1:high +;-------------------------------------------------------------------------------- +; NOTE :Make sure sndcodec_used = 0x1,i2s_used = 0x1 +; codec_used = 0x1,if register the sound card audiocodec. +;--------------------------------------------------------------------------------- +[sndcodec] +sndcodec_used = 0x1 +aif2fmt = 0x3 +aif3fmt = 0x3 +aif2master = 0x1 +hp_detect_case = 0x1 +;------------------------------------------------------------------------------ +[i2s] +i2s_used = 0x1 +;------------------------------------------------------------------------------- +[codec] +codec_used = 0x1 +headphonevol = 0x38 +spkervol = 0x1d +earpiecevol = 0x1e +maingain = 0x4 +headsetmicgain = 0x4 +adcagc_cfg = 0x0 +adcdrc_cfg = 0x0 +adchpf_cfg = 0x1 +dacdrc_cfg = 0x0 +dachpf_cfg = 0x0 +aif2config = 0x0 +aif3config = 0x0 +aif1_lrlk_div = 0x40 +aif2_lrlk_div = 0x40 +pa_sleep_time = 0x0a +dac_digital_vol = 0x9898 +gpio-spk = port:PD14<1><0><0> + +;---------------------------------------------------------------------------------- +;ir --- infra remote configuration +;---------------------------------------------------------------------------------- +[s_cir0] +s_cir0_used = 1 +ir_protocol_used = 1 +ir_addr_cnt = 15 +ir_power_key_code0 = 0x57 +ir_addr_code0 = 0x9f00 +ir_power_key_code1 = 0x1a +ir_addr_code1 = 0xfb04 +ir_power_key_code2 = 0x14 +ir_addr_code2 = 0x7F80 +ir_power_key_code3 = 0x15 +ir_addr_code3 = 0x7F80 +ir_power_key_code4 = 0x0b +ir_addr_code4 = 0xF708 +ir_power_key_code5 = 0x03 +ir_addr_code5 = 0x00EF +ir_power_key_code6 = 0x9f +ir_addr_code6 = 0x4CB3 +ir_power_key_code7 = 0x0a +ir_addr_code7 = 0x7748 +ir_power_key_code8 = 0x45 +ir_addr_code8 = 0xbd02 +ir_power_key_code9 = 0x4d +ir_addr_code9 = 0xde21 +ir_power_key_code10 = 0x18 +ir_addr_code10 = 0xfe01 +ir_power_key_code11 = 0x57 +ir_addr_code11 = 0xff00 +ir_power_key_code12 = 0x4d +ir_addr_code12 = 0xff40 +ir_power_key_code13 = 0x88 +ir_addr_code13 = 0xdd22 +ir_power_key_code14 = 0x0a +ir_addr_code14 = 0x4040 + +;------------------------------------------------------------------------------- +;userspace gpio interface for android +;---------------------------------------------------------------------------------- +[gpio_para] +compatible = "allwinner,sunxi-init-gpio" +gpio_used = 1 +gpio_num = 30 +gpio_pin_1 = port:PH3<1><0> +gpio_pin_2 = port:PH2<1><0> +gpio_pin_3 = port:PH6<1><0> +gpio_pin_4 = port:PH7<1><0> +gpio_pin_5 = port:PH10<1><0> +gpio_pin_6 = port:PH11<1><0> +gpio_pin_7 = port:PD2<1><0> +gpio_pin_8 = port:PD3<1><0> +gpio_pin_9 = port:PD1<1><0> +gpio_pin_10 = port:PC4<1><0> +gpio_pin_11 = port:PC7<1><0> +gpio_pin_12 = port:PB5<1><0> +gpio_pin_13 = port:PB4<1><0> +gpio_pin_14 = port:PB6<1><0> +gpio_pin_15 = port:PL12<1><0> +gpio_pin_16 = port:PB0<1><0> +gpio_pin_17 = port:PB1<1><0> +gpio_pin_18 = port:PB3<1><0> +gpio_pin_19 = port:PB2<1><0> +gpio_pin_20 = port:PD4<1><0> +gpio_pin_21 = port:PC0<1><0> +gpio_pin_22 = port:PD0<1><0> +gpio_pin_23 = port:PC2<1><0> +gpio_pin_24 = port:PC3<1><0> +gpio_pin_25 = port:PB7<1><0> +gpio_pin_26 = port:PL9<1><0> +gpio_pin_27 = port:PL7<1><0> +gpio_pin_28 = port:PL8<1><0> +gpio_pin_29 = port:PE14<1><1> +gpio_pin_30 = port:PE15<1><1> + + + +;------------------------------------------------------------------------------------- +;used ---0:not used,1:used +;pmu_id ---0:axp19x,1:axp209,2:axp22x,3:axp806,4:axp808,5:axp809,6:axp803,7:axp813 +;pmu_twi_addr ---slave address +;pmu_twi_id ---i2c bus number (0 TWI0, 1 TWI2, 2 TWI3) +;pmu_irq_id ---irq number (0 irq0,1 irq1) +;pmu_chg_ic_temp ---intelligence charge pmu temperature. when it is 0, this function is closed. +;pmu_battery_rdc ---battery initial resistance +;pmu_battery_cap ---battery capability,mAh +;pmu_runtime_chgcur ---set initial charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_suspend_chgcur ---set suspend charging current limite,mA, 200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_shutdown_chgcur ---set shutdown charging current limite,mA,200/400/600/800/1000/1200/1400/1600/1800...3000/ +;pmu_init_chgvol ---set initial charing target voltage,mV,4100/4220/4200/4240 +;pmu_ac_vol ---set usb-ac limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite +;pmu_ac_cur ---set usb-ac limited current level,mA,500/900, 0 - not limite +;pmu_usbpc_vol ---set usb-pc limited voltage level,mV,4000/4100/4200/4300/4400/4500/4600/4700,0 - not limite +;pmu_usbpc_cur ---set usb-pc limited current level,mA,500/900, 0 - not limite +;pmu_battery_warning_level1 ---low power warning high level,5%-20%,1%/step +;pmu_battery_warning_level2 ---low power warning low level,0%-15%,1%/step +;pmu_chgled_func ---CHGKED pin control, 0:controlled by pmu,1:controlled by Charger +;pmu_chgled_type ---CHGLED Type select when pmu_chgled_func=0,0:Type A, 1:type B +;pmu_bat_para1 ---battery indication at 3.13V +;pmu_bat_para2 ---battery indication at 3.27V +;pmu_bat_para3 ---battery indication at 3.34V +;pmu_bat_para4 ---battery indication at 3.41V +;pmu_bat_para5 ---battery indication at 3.48V +;pmu_bat_para6 ---battery indication at 3.52V +;pmu_bat_para7 ---battery indication at 3.55V +;pmu_bat_para8 ---battery indication at 3.57V +;pmu_bat_para9 ---battery indication at 3.59V +;pmu_bat_para10 ---battery indication at 3.61V +;pmu_bat_para11 ---battery indication at 3.63V +;pmu_bat_para12 ---battery indication at 3.64V +;pmu_bat_para13 ---battery indication at 3.66V +;pmu_bat_para14 ---battery indication at 3.7V +;pmu_bat_para15 ---battery indication at 3.73V +;pmu_bat_para16 ---battery indication at 3.77V +;pmu_bat_para17 ---battery indication at 3.78V +;pmu_bat_para18 ---battery indication at 3.8V +;pmu_bat_para19 ---battery indication at 3.82V +;pmu_bat_para20 ---battery indication at 3.84V +;pmu_bat_para21 ---battery indication at 3.85V +;pmu_bat_para22 ---battery indication at 3.87V +;pmu_bat_para23 ---battery indication at 3.91V +;pmu_bat_para24 ---battery indication at 3.94V +;pmu_bat_para25 ---battery indication at 3.98V +;pmu_bat_para26 ---battery indication at 4.01V +;pmu_bat_para27 ---battery indication at 4.05V +;pmu_bat_para28 ---battery indication at 4.08V +;pmu_bat_para29 ---battery indication at 4.1V +;pmu_bat_para30 ---battery indication at 4.12V +;pmu_bat_para31 ---battery indication at 4.14V +;pmu_bat_para32 ---battery indication at 4.15V +;pmu_bat_temp_enable ---battery temp detect enable +;pmu_bat_charge_ltf ---charge battery temp low threshold voltage +;pmu_bat_charge_htf ---charge battery temp high threshold voltage +;pmu_bat_shutdown_ltf ---shutdown battery temp low threshold voltage +;pmu_bat_shutdown_htf ---shutdown battery temp high threshold voltage +;pmu_bat_temp_para1 ---battery temp -25 voltage +;pmu_bat_temp_para2 ---battery temp -15 voltage +;pmu_bat_temp_para3 ---battery temp -10 voltage +;pmu_bat_temp_para4 ---battery temp -5 voltage +;pmu_bat_temp_para5 ---battery temp 0 voltage +;pmu_bat_temp_para6 ---battery temp 5 voltage +;pmu_bat_temp_para7 ---battery temp 10 voltage +;pmu_bat_temp_para8 ---battery temp 20 voltage +;pmu_bat_temp_para9 ---battery temp 30 voltage +;pmu_bat_temp_para10 ---battery temp 40 voltage +;pmu_bat_temp_para11 ---battery temp 45 voltage +;pmu_bat_temp_para12 ---battery temp 50 voltage +;pmu_bat_temp_para13 ---battery temp 55 voltage +;pmu_bat_temp_para14 ---battery temp 60 voltage +;pmu_bat_temp_para15 ---battery temp 70 voltage +;pmu_bat_temp_para16 ---battery temp 80 voltage +;pmu_powkey_off_time ---set pek off time,ms, 4000/6000/8000/10000 +;pmu_powkey_off_func ---set pek off func, 0:shutdown,1:restart +;pmu_powkey_off_en ---set pek offlevel powerdown or not, 0:not powerdown,1:powerdown +;pmu_powkey_long_time ---set pek pek long irq time,ms,1000/1500/2000/2500 +;pmu_powkey_on_time ---set pek on time,ms,128/1000/2000/3000 +;power_start ---when system is in charging, shutdown is power off or resart;0:restart 1:poweroff +;-------------------------------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------------------------------- +;pmu0 is axp81x +;-------------------------------------------------------------------------------------------------------- +[pmu0] +used = 1 +pmu_id = 6 +pmu_twi_addr = 0x34 +pmu_twi_id = 1 +pmu_irq_id = 64 +pmu_IRQ_wakeup = 1 + +pmu_chg_ic_temp = 0 +pmu_battery_rdc = 125 +pmu_battery_cap = 4000 +pmu_runtime_chgcur = 800 +pmu_suspend_chgcur = 1500 +pmu_shutdown_chgcur = 1500 +pmu_init_chgvol = 4200 +pmu_ac_vol = 4000 +pmu_ac_cur = 3500 +pmu_usbpc_vol = 4400 +pmu_usbpc_cur = 500 +pmu_battery_warning_level1 = 15 +pmu_battery_warning_level2 = 0 +pmu_chgled_func = 0 +pmu_chgled_type = 0 + +pmu_bat_para1 = 0 +pmu_bat_para2 = 0 +pmu_bat_para3 = 0 +pmu_bat_para4 = 0 +pmu_bat_para5 = 0 +pmu_bat_para6 = 0 +pmu_bat_para7 = 0 +pmu_bat_para8 = 1 +pmu_bat_para9 = 2 +pmu_bat_para10 = 3 +pmu_bat_para11 = 7 +pmu_bat_para12 = 12 +pmu_bat_para13 = 20 +pmu_bat_para14 = 32 +pmu_bat_para15 = 43 +pmu_bat_para16 = 46 +pmu_bat_para17 = 50 +pmu_bat_para18 = 55 +pmu_bat_para19 = 58 +pmu_bat_para20 = 64 +pmu_bat_para21 = 70 +pmu_bat_para22 = 74 +pmu_bat_para23 = 79 +pmu_bat_para24 = 84 +pmu_bat_para25 = 90 +pmu_bat_para26 = 95 +pmu_bat_para27 = 98 +pmu_bat_para28 = 100 +pmu_bat_para29 = 100 +pmu_bat_para30 = 100 +pmu_bat_para31 = 100 +pmu_bat_para32 = 100 + +pmu_bat_temp_enable = 0 +pmu_bat_charge_ltf = 2261 +pmu_bat_charge_htf = 388 +pmu_bat_shutdown_ltf = 3200 +pmu_bat_shutdown_htf = 237 +pmu_bat_temp_para1 = 7466 +pmu_bat_temp_para2 = 4480 +pmu_bat_temp_para3 = 3518 +pmu_bat_temp_para4 = 2786 +pmu_bat_temp_para5 = 2223 +pmu_bat_temp_para6 = 1788 +pmu_bat_temp_para7 = 1448 +pmu_bat_temp_para8 = 969 +pmu_bat_temp_para9 = 664 +pmu_bat_temp_para10 = 466 +pmu_bat_temp_para11 = 393 +pmu_bat_temp_para12 = 333 +pmu_bat_temp_para13 = 283 +pmu_bat_temp_para14 = 242 +pmu_bat_temp_para15 = 179 +pmu_bat_temp_para16 = 134 + +pmu_powkey_off_time = 4000 +pmu_powkey_off_func = 0 +pmu_powkey_off_en = 1 +pmu_powkey_long_time = 1500 +pmu_powkey_on_time = 1000 +power_start = 0 + +;-------------------------------------------------------------------------------------------------------- +;pmu0 is axp81x +;regulator tree +;-------------------------------------------------------------------------------------------------------- +[pmu0_regu] +regulator_count = 23 +regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-emmcv vcc-emmcvq33 vcc-sdcvq33 vcc-sdcv vcc-sdcvd vcc-uartx" +regulator2 = "axp81x_dcdc2 none vdd-cpua" +regulator3 = "axp81x_dcdc3 none" +regulator4 = "axp81x_dcdc4 none" +regulator5 = "axp81x_dcdc5 none vcc-dram" +regulator6 = "axp81x_dcdc6 none vdd-sys" +regulator7 = "axp81x_dcdc7 none" +regulator8 = "axp81x_rtc none" +regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi " +regulator10 = "axp81x_aldo2 none vcc-pl" +regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll" +regulator12 = "axp81x_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-lcd" +regulator13 = "axp81x_dldo2 none vcc-wifi" +regulator14 = "axp81x_dldo3 none avdd-csi" +regulator15 = "axp81x_dldo4 none vcc-wifi-io vcc-pg" +regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-emmcvq18" +regulator17 = "axp81x_eldo2 none vcc-mipi vcc-lcd-0" +regulator18 = "axp81x_eldo3 none dvdd-csi-18" +regulator19 = "axp81x_fldo1 none vcc-hsic-12" +regulator20 = "axp81x_fldo2 none vdd-cpus"; +regulator21 = "axp81x_gpio0ldo none vcc-ctp" +regulator22 = "axp81x_gpio1ldo none " +regulator23 = "axp81x_dc1sw none vcc-wifi-8089 vcc-gmac-33 vcc-pd" + +;---------------------------------------------------------------------------------- +;recovery and fastboot key +;---------------------------------------------------------------------------------- +[recovery_key] +key_max = 0xc +key_min = 0xa +;---------------------------------------------------------------------------------- +[fastboot_key] +key_max = 0x6 +key_min = 0x4 + +;---------------------------------------------------------------------------------- +; dvfs voltage-frequency table configuration +; +; max_freq: cpu maximum frequency, based on Hz +; min_freq: cpu minimum frequency, based on Hz +; +; lv_count: count of lv_freq/lv_volt, must be < 16 +; +; lv1: core vdd is 1.30v if cpu frequency is (1104Mhz, 1152Mhz] +; lv2: core vdd is 1.26v if cpu frequency is (1008Mhz, 1104Mhz] +; lv3: core vdd is 1.20v if cpu frequency is (816Mhz, 1008Mhz] +; lv4: core vdd is 1.10v if cpu frequency is (648Mhz, 816Mhz] +; lv5: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv6: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv7: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; lv8: core vdd is 1.04v if cpu frequency is (480Mhz, 648Mhz] +; +;---------------------------------------------------------------------------------- +[dvfs_table] +;extremity_freq = 1344000000 +max_freq = 1152000000 +min_freq = 480000000 + +lv_count = 8 +lv1_freq = 1152000000 +lv1_volt = 1300 + +lv2_freq = 1104000000 +lv2_volt = 1260 + +lv3_freq = 1008000000 +lv3_volt = 1200 + +lv4_freq = 816000000 +lv4_volt = 1100 + +lv5_freq = 648000000 +lv5_volt = 1040 + +lv6_freq = 0 +lv6_volt = 1040 + +lv7_freq = 0 +lv7_volt = 1040 + +lv8_freq = 0 +lv8_volt = 1040 + +;---------------------------------------------------------------------------------- +;s_uart0 config parameters +;s_uart0_used --s_uart0 whether used for arisc debugging +; +;---------------------------------------------------------------------------------- +[s_uart0] +s_uart0_used = 1 +s_uart0_tx = port:PL02<2> +s_uart0_rx = port:PL03<2> + +;---------------------------------------------------------------------------------- +;s_rsb0 config parameters +;s_rsb0_used --s_rsb0 whether used for arisc +; +;---------------------------------------------------------------------------------- +[s_rsb0] +s_rsb0_used = 1 +s_rsb0_sck = port:PL00<2><1><2> +s_rsb0_sda = port:PL01<2><1><2> + +;---------------------------------------------------------------------------------- +;s_jtag0 config parameters +;s_jtag0_used --s_jtag0 whether used for arisc +; +;---------------------------------------------------------------------------------- +[s_jtag0] +s_jtag0_used = 0 +s_jtag0_tms = port:PL04<2><1><2> +s_jtag0_tck = port:PL05<2><1><2> +s_jtag0_tdo = port:PL06<2><1><2> +s_jtag0_tdi = port:PL07<2><1><2> + +;---------------------------------------------------------------------------------- +;virtual device +;virtual device for pinctrl testing +;device have pin PA1 PA2 +;---------------------------------------------------------------------------------- +[Vdevice] +Vdevice_used = 1 +Vdevice_0 = port:PB01<4><1><2> +Vdevice_1 = port:PB02<4><1><2> + +;---------------------------------------------------------------------------------- +;mali400 parameters +;normal_freq : the normal frequency of gpu +;scene_ctrl_status: scene control status, if this is enabled, android layer can ask +; gpu driver to change frequency in certain scene +;temp_ctrl_status : temperature control status, if this is enabled, the gpu frequency +; will drop down if gpu's temperature is too high +;---------------------------------------------------------------------------------- +[gpu_mali400_0] +normal_freq = 456 +scene_ctrl_status = 0 +temp_ctrl_status = 1 + +;---------------------------------------------------------------------------------- +[secure] +dram_region_mbytes = 64 +drm_region_mbytes = 64 +drm_region_start_mbytes = 0 +;---------------------------------------------------------------------------------- diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_partition.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_partition.fex new file mode 100644 index 0000000000..8b00c838f2 --- /dev/null +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/sys_partition.fex @@ -0,0 +1,120 @@ +;--------------------------------------------------------------------------------------------------------- +; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 +;--------------------------------------------------------------------------------------------------------- + + +;-------------------------------------------------------------------------------------------------- +; 固件下载参数配置 +;-------------------------------------------------------------------------------------------------- +;**************************************************** +; mbr的大小, 以Kbyte为单位 +;**************************************************** +[mbr] +size = 16384 + +;******************************************************************************************************** +; 分区配置 +; +; +; partition 定义范例: +; [partition] ; //表示是一个分区 +; name = USERFS2 ; //分区名称 +; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T +; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 +; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 +; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 +; = ? ; //私有用法 +; verify = 1 ; //要求量产完成后校验是否正确 +; +; 注:1、name唯一, 不允许同名 +; 2、name最大12个字符 +; 3、size = 0, 将创建一个无大小的空分区 +; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 +;******************************************************************************************************** +[partition_start] + +;------------------------------>mmcblk0p2/nanda +[partition] + name = bootloader + size = 65536 + downloadfile = "boot-resource.fex" + user_type = 0x8000 + +;------------------------------>mmcblk0p5/nandb +[partition] + name = env + size = 32768 + downloadfile = "env.fex" + user_type = 0x8000 + +;------------------------------>mmcblk0p6/nandc +[partition] + name = boot + size = 32768 + downloadfile = "boot.fex" + user_type = 0x8000 + +;------------------------------>mmcblk0p7/nandd +[partition] + name = system + size = 3145728 + downloadfile = "system.fex" + user_type = 0x8000 + +;------------------------------>mmcblk0p8/nande +;[partition] +; name = data +; size = 2097152 +; user_type = 0x8000 +; +;------------------------------>mmcblk0p9/nandf +[partition] + name = misc + size = 32768 + user_type = 0x8000 + +;------------------------------>mmcblk0p10/nandg +[partition] + name = recovery + size = 65536 + downloadfile = "recovery.fex" + user_type = 0x8000 + +;------------------------------>mmcblk0p11/nandh +[partition] + name = cache + size = 1572864 + user_type = 0x8000 + +;------------------------------nandi, store encryptable +[partition] + name = metadata + size = 32768 + user_type = 0x8000 +;------------------------------>nandj, data image private +[partition] + name = private + size = 32768 + ro = 0 + user_type = 0x8000 + +;------------------------------>nandk, save kernel panic log +[partition] + name = klog + size = 32768 + user_type = 0x8000 + +;------------------------------>nandl, save android log +[partition] + name = alog + size = 131072 + ro = 0 + user_type = 0x8000 + +;------------------------------>nandm, UDISK +[partition] + name = UDISK + downloadfile = "diskfs.fex" + ;verify = 0 + user_type = 0x8100 + diff --git a/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/test_config.fex b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/test_config.fex new file mode 100644 index 0000000000..2971e62f17 --- /dev/null +++ b/lichee/tools/pack/chips/sun50iw1p1/configs/m64_old/test_config.fex @@ -0,0 +1,379 @@ +;------------------------------------------------------------------------------- +; 测试模块配置示例 +; +; [example] +; display_name= "Example" +; activated = 1 +; program = "example.sh" +; category = 0 +; run_type = 1 +; +; display_name +; 显示到界面的名称,字符串类型,如果需要显示双引号,可以使用以下语法: +; display_name= string:"Example" +; 区别在于后者会显示"string:"后面所有的字符,包括空格和制表符。该项能够容纳 +; 64个英文字符,32个中文字符。如果display_name为空,测试程序不会运行。 +; +; activated +; 0: 不测试该模块 +; 1: 测试该模块 +; +; program +; 模块的测试程序,该项能够容纳16个英文字符。 +; +; category +; 0: 自动化测试模块 +; 1: 手动测试模块 +; +; run_type +; 0: 等待当前模块的测试程序执行完毕再运行下一个模块的测试程序 +; 1: 不等待当前模块的测试程序执行完毕 +; 一般为了提高整体的测试速度,对于耗时较长的测试程序建议填0,反之填1;注意,当 +; category = 1,即手动测试模块时,该项无效。 +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; test_size +; unit: MB +;------------------------------------------------------------------------------- +[dram] +display_name= "内存" +activated = 1 +program = "memtester.sh" +category = 0 +run_type = 1 +dram_size = 1024 +test_size = 8 +platform = "a64" + +[rtc] +display_name= "时钟" +activated = 1 +program = "rtctester.sh" +category = 0 +run_type = 1 + +;------------------------------------------------------------------------------- +; module_path +; The full path of wifi module file. +; module_args +; The arguments of wifi module. +;------------------------------------------------------------------------------- +[wifi] +display_name= "网络" +activated = 1 +program = "wifitester.sh" +category = 0 +run_type = 1 +module_count= 1 +module_path = "/system/vendor/modules/bcmdhd.ko" +module_args = "nvram_path=/system/vendor/modules/nvram_ap6335.txt" + +;------------------------------------------------------------------------------- +; module_path +; The full path of g-sensor module file. +; device_name +; The name of g-sensor device. +;------------------------------------------------------------------------------- +[gsensor] +display_name= "重力感应器" +activated = 1 +program = "gsensortester.sh" +category = 0f +run_type = 1 +module_count= 1 +module1_path= "/system/vendor/modules/bma250.ko" +device_name = "bma250" + +;------------------------------------------------------------------------------- +; module_path +; The full path of gyro module file. +; device_name +; The name of gyro device. +;------------------------------------------------------------------------------- +[gyro] +display_name= "陀螺仪" +activated = 1 +program = "gyrotester.sh" +category = 0 +run_type = 1 +module_count= 1 +module1_path= "/system/vendor/modules/lsm9ds0_gyr.ko" +device_name = "lsm9ds0_gyr" + +;------------------------------------------------------------------------------- +; module_path +; The full path of e-compass module file. +; device_name +; The name of e-compass device. +;------------------------------------------------------------------------------- +[compass] +display_name= "指南针" +activated = 1 +program = "compasstester.sh" +category = 0 +run_type = 1 +module_count= 1 +module1_path= +device_name = "lsm9ds0_mag" + +;------------------------------------------------------------------------------- +; test_size +; Test size for nand read and write test. +;------------------------------------------------------------------------------- +[nand] +display_name= "闪存" +activated = 1 +program = "nandtester.sh" +category = 0 +run_type = 1 +module_path= "/system/vendor/modules/nand.ko" +test_size = 16 + +[emmc] +display_name= "emmc闪存" +activated = 0 +program = "emmctester.sh" +category = 0 +run_type = 1 +test_size = 128 + +[bluetooth] +display_name= "蓝牙" +activated = 1 +program = "bttester.sh" +test_time = 3 +category = 0 +dst_bt = ":" +run_type = 1 +module_path = "/system/vendor/modules/bcm4339a0.hcd" +device_node = "/dev/ttyS1" +baud_rate = 1500000 + +[mmc] +display_name= "SD卡" +activated = 1 +program = "mmctester.sh" +category = 1 +run_type = 1 +nr = 1 + +[udisk] +display_name= "U盘" +activated = 1 +program = "udisktester.sh" +category = 1 +run_type = 1 + +[Usb_HOST1] +display_name= "USB主机1" +activated = 0 +program = "host1tester.sh" +category = 1 +run_type = 1 + +[Usb_HOST2] +display_name= "USB主机2" +activated = 0 +program = "host2tester.sh" +category = 1 +run_type = 1 + +[Usb_OTG] +display_name= "USB_OTG" +activated = 0 +program = "otgtester.sh" +category = 1 +run_type = 1 +;------------------------------------------------------------------------------- +; sound_file +; The full path of sound file. +; samplerate +; The samplerate of sound file. +; support_mode +; 0 : 480I +; 1 : 576I +; 2 : 480P +; 3 : 576P +; 4 : 720P 50HZ +; 5 : 720P 60HZ +; 6 : 1080I 50HZ +; 7 : 1080I 60HZ +; 8 : 1080P 24HZ +; 9 : 1080P 50HZ +; 10: 1080P 60HZ +;------------------------------------------------------------------------------- +[hdmi] +display_name= "HDMI" +activated = 0 +program = "hdmitester.sh" +category = 1 +run_type = 1 +sound_file = "/dragonboard/data/test48000.pcm" +samplerate = 48000 +support_mode= 2 +module_count= 1 +module1_path= "/system/vendor/modules/hdcp.ko" +;------------------------------------------------------------------------------- +; module_path +; The full path of key module file. +;------------------------------------------------------------------------------- +[key] +display_name= "按键" +activated = 1 +program = "keytester" +category = 1 +run_type = 1 + +;------------------------------------------------------------------------------- +; module_path +; The full path of ir module file. +;------------------------------------------------------------------------------- +[ir] +display_name= "红外" +activated = 0 +program = "irtester" +category = 1 +run_type = 1 +module_path = "/system/vendor/modules/sunxi-ir-rx.ko" + +;------------------------------------------------------------------------------- +; delay +; delay ? second before recording +; volume: +; the output volume,range from 0 to 63 +; music_playtime: +; music playback time in secend before recording +; sound_file: +; the sound_file you want to play +; samplerate: +; the sound file samplerate +; micx_gain: +; input gain for mic1 or mic2 +; 0:0db,1:35db;2:38db;3:41db +; micx_used: +; the mic you want to test +; micx_threshold: +; the mic data threshold.the test will be pass when the capture data above this value +;------------------------------------------------------------------------------------ +[mic] +display_name= "录音耳机" +activated = 1 +program = "mictester" +category = 1 +run_type = 1 +delay = 3 +volume = 40 +music_playtime =10 +music_file = "/dragonboard/data/test48000.pcm" +samplerate = 48000 +mic1_used = 1 +mic2_used = 0 +mic1_gain = 1 +mic2_gain = 1 +mic1_threshold =16383 +mic2_threshold =16383 +;------------------------------------------------------------------------------- +; type +; 0: rtp +; 1: ctp +; module_path +; The full path of tp module. +;------------------------------------------------------------------------------- +[tp] +display_name= "触摸" +type = 1 +module_path = "/system/vendor/modules/gt82x.ko" +device_name = "gt82x" + +;------------------------------------------------------------------------------- +; module_count +; The number of module need to be insmod. +; modulex_path +; 'x' is the index of module, starts from 0. +;------------------------------------------------------------------------------- +[camera] +activated = 1 +module_count= 8 +module1_path= "/system/vendor/modules/videobuf-core.ko" +module2_path= "/system/vendor/modules/videobuf-dma-contig.ko" +module3_path= "/system/vendor/modules/cci.ko" +module4_path= "/system/vendor/modules/vfe_os.ko" +module5_path= "/system/vendor/modules/vfe_subdev.ko" +module6_path= "/system/vendor/modules/hi253.ko" +module7_path= "/system/vendor/modules/ov8858_4lane.ko" +module8_path= "/system/vendor/modules/vfe_v4l2.ko" +dev_cnt = 2 +csi_cnt = 1 +fps = 15 + +;------------------------------------------------------------------------------- +; manual_menu_name +; manual test case menu name, 32bytes. +; auto_menu_name +; auto test case menu name, 32bytes. +; clear_button_name +; clear screen button name, 8bytes. +; font_size +; test case font display size, valid value: 20pixel(default), 24pixel. +; +; Color Index +; 0: White +; 1: Yellow +; 2: Green +; 3: Cyan +; 4: Magenta +; 5: Red +; 6: Blue +; 7: Black +; 8: Beauty +; menu_bgcolor +; The background color index of test case category menu. +; menu_fgcolor +; The foreground color index of test case category menu. +; item_init_bgcolor +; The background color index of test case item init status. +; item_init_fgcolor +; The foreground color index of test case item init status. +; item_ok_bgcolor +; The background color index of test case item OK status. +; item_ok_fgcolor +; The foreground color index of test case item OK status. +; item_fail_bgcolor +; The background color index of test case item fail status. +; item_fail_fgcolor +; The foreground color index of test case item fail status. +; +; pass_str +; The string display after test case display_name when test OK. +; fail_str +; The string display after test case display_name when test Fail. +;------------------------------------------------------------------------------- +[df_view] +tv_scale_factor = 95 +manual_menu_name = "手动测试项" +auto_menu_name = "自动测试项" +clear_button_name = "清屏" +wifi_menu_name = "wifi热点列表" +font_size = 20 +menu_bgcolor = 1 +menu_fgcolor = 7 + +item_init_bgcolor = 7 +item_init_fgcolor = 0 +item_ok_bgcolor = 7 +item_ok_fgcolor = 6 +item_fail_bgcolor = 7 +item_fail_fgcolor = 5 +tp_draw_color = 0 + +;item_init_bgcolor = 0 +;item_init_fgcolor = 7 +;item_ok_bgcolor = 0 +;item_ok_fgcolor = 6 +;item_fail_bgcolor = 0 +;item_fail_fgcolor = 5 +;tp_draw_color = 7 + +pass_str = "通过" +fail_str = "失败"