From 1868e369d38405557ed1597533dd7d3f4a1dca65 Mon Sep 17 00:00:00 2001 From: Venkat Chimata Date: Fri, 21 Mar 2025 10:49:47 +0530 Subject: [PATCH] WIFI-14489: Adding Edgecore OAP103 to the list of supported APs 1. Integrated WiFi boarddata 2. Integrated LEDs 3. sysupgrade changes are integrated 4. Network ports are enumerated 5. A new profile is added under profiles Signed-off-by: Venkat Chimata --- .github/workflows/build-dev.yml | 2 +- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-edgecore-oap103.bin.IPQ8074 | Bin 0 -> 131072 bytes .../ipq807x/base-files/etc/board.d/01_leds | 1 + .../ipq807x/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 2 + .../base-files/lib/upgrade/platform.sh | 2 + .../boot/dts/qcom/qcom-ipq807x-oap103.dts | 736 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk | 9 + profiles/edgecore_oap103.yml | 15 + 10 files changed, 769 insertions(+), 1 deletion(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-edgecore-oap103.bin.IPQ8074 create mode 100644 feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-oap103.dts create mode 100644 profiles/edgecore_oap103.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 253b40049..a8389b705 100755 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap7110c-341x', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] + target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap7110c-341x', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] steps: - uses: actions/checkout@v3 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 4a3389852..fb1c93778 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -39,6 +39,7 @@ ALLWIFIBOARDS:= \ sercomm-wallaby \ edgecore-eap102 \ edgecore-oap102 \ + edgecore-oap103 \ edgecore-eap104 \ liteon-wpx8324 \ indio-um-310ax-v1 \ @@ -400,6 +401,7 @@ $(eval $(call generate-ath11k-wifi-package,wallys-dr6018-v4,Wallys DR6018 V4)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap101,EdgeCore EAP101)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap102,Edgecore EAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-oap102,Edgecore OAP102)) +$(eval $(call generate-ath11k-wifi-package,edgecore-oap103,Edgecore OAP103)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap104,Edgecore EAP104)) $(eval $(call generate-ath11k-wifi-package,liteon-wpx8324,Liteon WPX8324)) $(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-edgecore-oap103.bin.IPQ8074 b/feeds/ipq807x_v5.4/ath11k-wifi/board-edgecore-oap103.bin.IPQ8074 new file mode 100644 index 0000000000000000000000000000000000000000..7a01c6b726c3d7f0d160df76bb156a6c5602a5ce GIT binary patch literal 131072 zcmeHw33yb;mG0@=t=57-LTYUww029vc03rfN@5X0NT3CwT|$6ZY_JVj24rK5*}*Jg zm9Vj6JA`-}f1Ve|aU6f|^OiX4B%bl)&17uPOqLmEVkgc#PwY1@nJ+KA|G&3y_Z0~D z)q=33sy?^7{9f*;b%M-7VqFK|wEK+y3@vPzUM zj&@$HFkJX_N^}oOt`;BtD%b6nJ%24fdE+1UygUD2bj=ZwsjjiPj#Pr z^!yXgJoo&IFTeV&@BZ+uOGeZc5f#Z06%`f1PZ!_axGu@p57^QV9iY1kDCK?$1W>R%y!Yl)>%{fRU`_BTHzCMiuJ!QhO95+9g#_|i=*IWF%yj5yK>xQk^nZr-zv^#4>tBKP&k%8shyL$F>)(rz@lPn@b$=NL4GzZS zgM$>C9Iy{)Lkct)D>-X$K|;&9DQEqg^{lrybJ{U`O$LjrK=Q#Tcf7gHJ-& zAFu2tvj2c{ixE?jB{ABC=8=im*IB%J5O zb1tL)zH*R`anSt%`VdcBrY*r1!^uH^?SLF`KHK0R6Sf@i2POxm9SoF%PeXG^I~X($ zFdq}>Pw3O&Q*}GA;nQ>uUh(@xlY;_`K@vFZ4+j{-zS@C|@<2Nnra_9W~@&2Zu? zZD;2k%DyXMm6;;)(9^3PntM3Aqi1=`FDviF<8_?{C@Z~cmDqDE!Of*KH1Qf zf5^MdvpQHu_hT!L&)MbMm~3gw1CKUz&fMwUoMb8Q$d^}j7aquJ?^#}BSHVGVM}noi zhaO*beD;0WwU;o^0waIMlPe6JKmOmcKLm zj-=LLzQbr=;hwCG33whd!$VKBbP{H{UW3I0K*F zH$}2u6iGXS=jz)<5^F``a6U8+XJpYfdX)1W5${VlFMSB-BO7tf1bq+AIb#!0hAVUd zIo}h>eqJQ~6!bSkzXAFI2VeE#o3CD_H*yb;QcJ>m zU_Pa6!Z=_)#=)M(CBhC|p~r#q*$e%QbN=~UhjxI+Sm@iC&$=Ca?Gihf+YdYF^4q~O zgNN7&s6R4v`}6+Aumg^xZU-$G2lk)y`FEkmLH7rkkGdVej*_U4anR?pjlaA2-Ua`# zW!k|+jAJ79vg6?o$I_1eJ9PcJKYIgqZ~^UyKS_o^^1vVI{>;YToeXc__XijU-5vlkY@FeE*K4Tp8b;Sey{|G&fToCvniX;SY2>c-7($R-pe}7i{_iz5dtz{s{g=-=ENqX@@rU zC#D^Ezl(8r3FCnIl!AR;VjbEs4doxsU_L(xJAfS~)%yKj`aHbV2AoX6YbA<3iWecL;KC~ zi~2vI*Oh=BaG!|zsQZI~*a7!xv;+8c?o;gU(*pZ_t3G(p^=&+F_|X3BZ(ib03Zb6{ zJHl9m3fyPu&t2fr+$Zw6H-_{1*P(f&9qIG&Nz1wbzpVRp8{^Qc9ni0HU9j=}q`u`VSwKz|POGf+Q#d#Dhw1I))X%t!sX3w9g>UoytVcN%nm zfccmXeRDqc<+)GSf5Y$x`uPF<(G0Y`FY5~TiL`@#=zk0R!BoG#&F=@%7A`wSstJ~3 z!>!7I?Ero7ejWWdgZ(nj50b0#9TWN!_+=ZzsQXm?{NYkNNbjQ^df>nf>tkb~Z)1Je?TGrUe=q7c?Fjru z+4zoEz#qH`e}Hl5@!aOOCp&iF{WkPpfc`0P=sySIe&6nMUk>zjJAgl$i06eq+ksjC zY1EH(Nq_ES`@w^q_D{w*_%I){FrU)EV@fmZfcpdb<@asa0msp_g9H9?fWH3RW@8+B ztShu5%;&!N1N|KAb<6&Sb_{1C@zt(+;U*~?^29bgF`O|W#>q;N?2f7_#9JAmL(l8(ObpiGB zTzbq0HtgVC|2_};lMca-S703JPvS5RHun3u7JaTOJO_$L{dUhUde{NhHS-*adu%)B zp#eL z-^TOCy{RQ-+Y@F-r^BLo4eQwq5fPTF%cJKuJ*#PX|()Br|2|RE{zkpU?U@z_0833-D*>xijF`xvs#Dcz(dY7qabk>_~4v{lNueUDNFt z>q=}a+HYfjWBP-T1FbTQXaK3=;5{9Ib{d7sT$E4l^u-e z;kDg4We2vY8qpb*9gOJVwcR;o2ezpi(HWH;jOgLD-8p3kwy7G?8I>K3=;5{9Ib{d7 zsT$E4l^u-e;kDg4We2vY8qpb*9gOJVwcR;o2ezpi(HTuUIQ_+zqxtvwZs+%8&2ayL z>TUBj=CvkQm?Rrv>Kbc{FXX~DVc3)faGBXALo6?tBPR!oryOX~IHpA}2 z%eLRVA)_&7u9+fo`ee)Qf;+vd;!A^R$IsO7opINMCjOS*3@6Vv>@VoZTAPgTznS6m zk>&T!+Td+UwCJ8X*|KZqX77rmN;8+pfg{a33pZykPpS&0J^1*F&9LiW zb;tb8c`H*ax{sY)vwL29-l_yk9S?V{*jsQ{&Kmyq#|)>sR~;vYg1Nh($ZkQ`yO0v*Jl#r}dVIcwuB<96uu@&ozXyleQoGc$A^ZrVO`eO6eX}-auSm4;viDrg;pz8etWUuA;LNb+(6YOWHmBEH`8#yD;oh0I zWi?yv@6qnI{d2bFt>wRYVTQA3R~{_r@UG$St<7-oaP9Uvo3fjeEcSftOvB#%t==^r z%UE`uSV0?FX&v7q-AxB(Zp&K3-+P+j&;xb%%vhhEmp1`JhgmR zJ~^<|aq?)(y>sr!YO>DX&aS3?Gq+@|PO#YSk>d^b&)Af?BEeEecX!*tIUT-r{QkKa zP90@`z0FCM_H`d!a#!K)_`lXHX*-UuJ~+1{_g1U!i4%?Y!$+*L+W0ZpA9bzcLH;n$ zd+_(jS-mZ5t(DA>NkCmVLpyfbs9m8-o+R_rR+oU@X@3o*l^$Jg9H zcVlj=b#9&LYB?}_n{S~;L^u^En^ZoxdyZnJW_5A$v6hP+iCi?93A zv6c50-j>^(Vp%`BkF@Tcy~WpN^BZpeI6|T#vPh1#G zJ9fPJ{`}2ZE3E$D(4m&?b2er-C0l&r(L+rgGjH)VT6GVcXxUr16~5ilzQd=M@5|o; z-)U*zm(Hx&JNK@<)zuqslWc$lt-vx}7t?eWJx59DShv?)(kejmeg=Jo!NLJ#%i$ zX-c-NABRu1?#stmTDdygy?j4xZH?8|P8@B-x`4IYQr@|vYj(_mKNvqh*p@SUm$w(J z_Eo1?=EttXHQVR6XEb^&x~C2=zh~C^tcE0u?VdfnVmsR0BkjQPwtaM75AUvhQ&kHT1BwB~ zfMP%~pcqgLCC&f%N{u_r{tWRmuKX8 zd0F0&AIRJCj{HJCkc;~31Ef5ITy4;gkY8N(`-=1Hit_MZCLwrzUaLq8@;f4U2knoI z>!tCzd6TcZh!CO+IuH2Yjr!Dwx6u#t^^UxP9_~TEL-k?uQh?UyT~{)dg&pZ%(9>pb_w^RNE!vvWOWeXRYX~QaBjlhnopcqgLT*iPor?2!mtmeAkcd0fTK73g5 z;P=y4vO_a{SoKNSBX$zQd*5K%-IYFvZU2;Q4lmnO``F9&E-FDWpcqgLCR)Um$zy$ou2JeR)ruN=Wx2tIsECgdAcE_S4I2czNi=4b1 zbk_RbzrH6XP|y0_zj9Jjsb_ufUpbnlIrXXG)SN*py!tWCje0Sr8paeCX6VoaEduqz zHnhm0?QeU>V*w-k3>)+5HWqmA-wuz(}<*)vtjw5XyGc{j1Bs zz(-J(V26RLJBou>x}ClZWuC$7nJQ_Z3=HMCtGb340|T`!r9XHK3@^)3tsP1R2G7b= zNdskID92sZHM|%YsBH~1oDSn)S)i*ZA<7QT=Oe%(#gYP0hZ>O}&x) z8J&`pWcIJGaZ_(3e`@e!xbW5PXcw*sM1UFay=N!xIdRX4drsVgkK;GMdz+`jB~5cj z#{|Dmj{b$Cf8pp~IQlol-!C5u&a?>hH}E}n#E1AhvP02FYaJC$ufEmW%2To73hPd5 z=lR|io{aRoz{)dt@wCiLzca~5?|*zG`y%zZX;EF_igzpJ!-uz#I?$@k2^QH-E&b(ko z#jBsXUjCk*o{s5wrT1$+Q-@#u#tz8(9_Hr$=d<63Uq7#Pi=*_d!Ij>xb?Zh>{Q(D} zB8q`g!obLxy{adQ0mZ;jF)&Kpqw1z&Ai%&-%`H`rVn8u4au{%H(J^kEzv}D72(DiEUppNXE)AZ-8h4F;|$h~ zGg$WsKZ9-gkx0uU#^u!m&Q$$jsAg?!8ei_X;A?1Vj!HIPLsOqwOJEbCB7?$!$*cNQ z4D^SAK{3KnUPym+17D+Wdh1HI1{m8uv}3@8Q^1BwB~fMQ_q7#JnnD%H(V!oWCj zMX;+EpO5xvu65FWLndD{u-<{u$;fT zc=@Zh@}HJkysqolmKbxNrDp!z1^u@%o=u{dvm8-tVbY#eiZ!F`yVw3@8Q^1BwB~fMP%~pcojb z48;1s4=_^ur~0KBPz)#r6a$I@#lV#r7%v;IeDf;YiIX}9i*3^08T8V3YlDBheKp#7 zHOh?l@8>eAdZ+be|KA>T@_WysQWXP=0mXn~Krx^g7^Vz(#FfgXyJV&mEu!R|7x{za zN>LMqD1!GYC`8fHA`5jPij{mRs-+Nlm~$b8s9OVCOd(2@-%3#_g(yQdNl^`j=w?|U zMU@ny1nMfQ&!h3b7VL=Ops8BwX1(g({`OH~IAzH}Vmr{rp@m>*ys6u`x z3(x?gw{6T>Md7`5%vnkyYH;G-A_~zq+$%4m5N!u4uA~s{1lz?$6r#f@v%Hx?)Cp9) zh?19wae!XkLJIGlllP^#f;pYp9_R z?QsAtrVzc3`pRl3MDf}xDMls6XnqIxikm6C_amYf3enp@3(F})e-GPQSVDT0$Z604*$`5M_X~(lQE>mpKlQHTyW-j^kn6r%aiTT((H zI^|d(OO{fIPB;!rc?*T8+mS2fB^07Z9G^;g4Tb1&)KK0?A$ks|qJcv66qu-3Kp}dT z_i8CbFA*)K5WP%PMMf)YeMD4DA^Mm-s-h5m!h0nYqECrxDMWv8%#g|=3eg65=*mh8kxToPR25N( zqP2gMs%i>REY^pr3JOsiSBokNQ7Z2hQ;4q9wn$YAg=mJhT&hYbL<_ZisjQ|D-KcGq zs>KwdeCpLxh~{b?QniRew171%r4R|w(n<=^60KgU%PB;Q!C7@9g=nev?^0bvA!^Wm zE7heGq9&qd3Q;Rj35BRln=9326rv5NueyRlw2`QeLUcEJR9!u2mOULnVdxonKFeYBx!35ryb~XzxpH6@}<| z=+)Fxh+c#B)Rt0+5?N*wh3IvnathJ6h!#_bzNh6%OA&?W?{TlBmO}JCbJkFZPRS0b zD5ns8z4PSDlVfCJ&qNru8~5tzAwTO6dX$QJFJQ z>T4-PB^ppAg{Z}uDfP`1qE@t}zJ)^M#fUZ3Q;1eNv!tPfLi7gu*HA^F*ROHrOT%J{ zUJ86qLn(!5BW+?4h3Foj<`N3gkHKe4BZcU&!)K5(vhG%t4dKKw={2eUFyk}%(r;ipnC zvnOavWTI9M4_+ga;72Egl}MV_AZcMmlIC6@>G0ke+6u|kR!WvuCRwgx$qHX3+1gS( zBP^;Y6AIZ3|-$_i^f67el_cBZSL}rJ5D*3K$k~^kD3c|KXVc1qY zSL~1pVfckT4xvZ>wI=eJ$UI4d(HSvMAm-I$FW|0`#+Z?hvEbb#e?E_%@8QV5ieyZa zha+F`$DWOR4Y4FVml-h+o+>{(+!((r-YBm^k7XkJQ}O@mPn+u5=c&d_z!QcZV+)KJ zTWZAEQX|HnNgA=ZKn(dbBMrKG%;+1_^m_ewV*?r}#h-?H5&MbfyxvPA#ya*Pts1?I z@W(uXSX>~M7KpLUh6Y<|#F7Jd$*!4Z#@OaS9eRvyw$!GlvGoywe4=ehSd(~OSh5l0 z$QUu!Yu+_uEYC<|KTHiXhP(dqg87V+t5AoL#@Iw%w<^(S--$t4diwl&TgBaT!m$)X;D8-CnC#t8h6eC96^@%@1K8}JB zBO6AHHe|$Tb!M98k8z}#=F#VZahD~pPy9K`8;3DkpZJNtM@Gyj`4ij?#*hyhOrw<; zF9V)dRaE zJUMfjk%9NE?Tr=94L(eD;r%cfmppa0kwokgw^bkOH?UvBxF4Q8)9)-%9`28y;5F~- z*d4?U4QoH!)1Ws9`oJu|(Zr|^_f37Xem|aq{~X;ZQK{Ga`#VJoV-0kgdfZsTIAP9c`k{Hn>?onPW3IeVpm-5 zlAhRC>Bne|CS(1%S-xIgYFY!aZb27-)I8whlwj?T7e(y^C0=!k#hsKiECLvinN;5I~)#8t7zKL zdH%&$-!c z!a%CDn-9|?rAw+GiUGxdVn8vV7*Gr-1{4E|0mXn~Krx^gPz)#r6a$I@#eiZ!F`yVw z3@8Q^1BwB~fMP%~pcqgLC; + #size-cells = <0x2>; + model = "Edgecore OAP103"; + compatible = "edgecore,oap103", "qcom,ipq807x-ac02", "qcom,ipq807x"; + qcom,msm-id = <0x178 0x0>; + interrupt-parent = <&intc>; + + aliases { + serial0 = &blsp1_uart5; + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet1 = "/soc/dp5"; + ethernet0 = "/soc/dp6"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + stdout-path = "serial0"; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + mcu-enable { + gpio-export,name = "mcu-enable"; + gpio-export,output = <0>; + gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; + }; + + usb-hub-enable { + gpio-export,name = "usb-hub-enable"; + gpio-export,output = <1>; + gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; + }; + + usb-rear-power { + gpio-export,name = "usb-rear-power"; + gpio-export,output = <1>; + gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>; + }; + + usb-side-power { + gpio-export,name = "usb-side-power"; + gpio-export,output = <1>; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; + }; + }; + + soc { + pinctrl@1000000 { + pinctrl-0 = <&mcu_rst &mcu_rsv &usb_rear_pwr &usb_side_pwr &usb_hub_rst>; + pinctrl-names = "default"; + + mcu_rst: mcu_rst_pins { + pins = "gpio54"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-low; + }; + + mcu_rsv: mcu_rsv_pins { + pins = "gpio56"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + + usb_rear_pwr: usb_rear_pwr_pins { + pins = "gpio29"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + usb_side_pwr: usb_side_pwr_pins { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + usb_hub_rst: usb_hub_rst_pins { + pins = "gpio55"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio66"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio33"; + function = "gpio"; + bias-pull-up; + }; + mux_3 { + pins = "gpio44"; + function = "gpio"; + bias-pull-up; + }; + }; + led_pins: led_pins { + led_2g { + pins = "gpio42"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_5g { + pins = "gpio43"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + }; + + serial@78b3000 { + status = "ok"; + }; + + spi@78b5000 { + status = "ok"; + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + + m25p80@0 { + compatible = "n25q128a11"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <50000000>; + }; + }; + + dma@7984000 { + status = "ok"; + }; + + nand@79b0000 { + status = "ok"; + + nand@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + }; + }; + + qusb@79000 { + status = "ok"; + }; + + ssphy@78000 { + status = "ok"; + }; + + usb3@8A00000 { + status = "ok"; + }; + + usb3@8C00000 { + status = "ok"; + }; + + qusb@59000 { + status = "ok"; + }; + + ssphy@58000 { + status = "ok"; + }; + + usb3@8C00000 { + status = "ok"; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + status = "ok"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + mdio: mdio@90000 { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1 &tlmm 44 1>; + phy0: ethernet-phy@0 { + reg = <0>; + }; + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <24>; + }; + phy5: ethernet-phy@5 { + reg = <28>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x3e>; /* lan port bitmap */ + switch_wan_bmp = <0x40>; /* wan port bitmap */ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ + bm_tick_mode = <0>; /* bm tick mode */ + tm_tick_mode = <0>; /* tm tick mode */ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + port@4 { + port_id = <5>; + phy_address = <24>; + port_mac_sel = "QGMAC_PORT"; + }; + port@5 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; + port_scheduler_resource { + port@0 { + port_id = <0>; + ucast_queue = <0 143>; + mcast_queue = <256 271>; + l0sp = <0 35>; + l0cdrr = <0 47>; + l0edrr = <0 47>; + l1cdrr = <0 7>; + l1edrr = <0 7>; + }; + port@1 { + port_id = <1>; + ucast_queue = <144 159>; + mcast_queue = <272 275>; + l0sp = <36 39>; + l0cdrr = <48 63>; + l0edrr = <48 63>; + l1cdrr = <8 11>; + l1edrr = <8 11>; + }; + port@2 { + port_id = <2>; + ucast_queue = <160 175>; + mcast_queue = <276 279>; + l0sp = <40 43>; + l0cdrr = <64 79>; + l0edrr = <64 79>; + l1cdrr = <12 15>; + l1edrr = <12 15>; + }; + port@3 { + port_id = <3>; + ucast_queue = <176 191>; + mcast_queue = <280 283>; + l0sp = <44 47>; + l0cdrr = <80 95>; + l0edrr = <80 95>; + l1cdrr = <16 19>; + l1edrr = <16 19>; + }; + port@4 { + port_id = <4>; + ucast_queue = <192 207>; + mcast_queue = <284 287>; + l0sp = <48 51>; + l0cdrr = <96 111>; + l0edrr = <96 111>; + l1cdrr = <20 23>; + l1edrr = <20 23>; + }; + port@5 { + port_id = <5>; + ucast_queue = <208 223>; + mcast_queue = <288 291>; + l0sp = <52 55>; + l0cdrr = <112 127>; + l0edrr = <112 127>; + l1cdrr = <24 27>; + l1edrr = <24 27>; + }; + port@6 { + port_id = <6>; + ucast_queue = <224 239>; + mcast_queue = <292 295>; + l0sp = <56 59>; + l0cdrr = <128 143>; + l0edrr = <128 143>; + l1cdrr = <28 31>; + l1edrr = <28 31>; + }; + port@7 { + port_id = <7>; + ucast_queue = <240 255>; + mcast_queue = <296 299>; + l0sp = <60 63>; + l0cdrr = <144 159>; + l0edrr = <144 159>; + l1cdrr = <32 35>; + l1edrr = <32 35>; + }; + }; + port_scheduler_config { + port@0 { + port_id = <0>; + l1scheduler { + group@0 { + sp = <0 1>; /*L0 SPs*/ + /*cpri cdrr epri edrr*/ + cfg = <0 0 0 0>; + }; + }; + l0scheduler { + group@0 { + /*unicast queues*/ + ucast_queue = <0 4 8>; + /*multicast queues*/ + mcast_queue = <256 260>; + /*sp cpri cdrr epri edrr*/ + cfg = <0 0 0 0 0>; + }; + group@1 { + ucast_queue = <1 5 9>; + mcast_queue = <257 261>; + cfg = <0 1 1 1 1>; + }; + group@2 { + ucast_queue = <2 6 10>; + mcast_queue = <258 262>; + cfg = <0 2 2 2 2>; + }; + group@3 { + ucast_queue = <3 7 11>; + mcast_queue = <259 263>; + cfg = <0 3 3 3 3>; + }; + }; + }; + port@1 { + port_id = <1>; + l1scheduler { + group@0 { + sp = <36>; + cfg = <0 8 0 8>; + }; + group@1 { + sp = <37>; + cfg = <1 9 1 9>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <144>; + ucast_loop_pri = <16>; + mcast_queue = <272>; + mcast_loop_pri = <4>; + cfg = <36 0 48 0 48>; + }; + }; + }; + port@2 { + port_id = <2>; + l1scheduler { + group@0 { + sp = <40>; + cfg = <0 12 0 12>; + }; + group@1 { + sp = <41>; + cfg = <1 13 1 13>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <160>; + ucast_loop_pri = <16>; + mcast_queue = <276>; + mcast_loop_pri = <4>; + cfg = <40 0 64 0 64>; + }; + }; + }; + port@3 { + port_id = <3>; + l1scheduler { + group@0 { + sp = <44>; + cfg = <0 16 0 16>; + }; + group@1 { + sp = <45>; + cfg = <1 17 1 17>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <176>; + ucast_loop_pri = <16>; + mcast_queue = <280>; + mcast_loop_pri = <4>; + cfg = <44 0 80 0 80>; + }; + }; + }; + port@4 { + port_id = <4>; + l1scheduler { + group@0 { + sp = <48>; + cfg = <0 20 0 20>; + }; + group@1 { + sp = <49>; + cfg = <1 21 1 21>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <192>; + ucast_loop_pri = <16>; + mcast_queue = <284>; + mcast_loop_pri = <4>; + cfg = <48 0 96 0 96>; + }; + }; + }; + port@5 { + port_id = <5>; + l1scheduler { + group@0 { + sp = <52>; + cfg = <0 24 0 24>; + }; + group@1 { + sp = <53>; + cfg = <1 25 1 25>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <208>; + ucast_loop_pri = <16>; + mcast_queue = <288>; + mcast_loop_pri = <4>; + cfg = <52 0 112 0 112>; + }; + }; + }; + port@6 { + port_id = <6>; + l1scheduler { + group@0 { + sp = <56>; + cfg = <0 28 0 28>; + }; + group@1 { + sp = <57>; + cfg = <1 29 1 29>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <224>; + ucast_loop_pri = <16>; + mcast_queue = <292>; + mcast_loop_pri = <4>; + cfg = <56 0 128 0 128>; + }; + }; + }; + port@7 { + port_id = <7>; + l1scheduler { + group@0 { + sp = <60>; + cfg = <0 32 0 32>; + }; + group@1 { + sp = <61>; + cfg = <1 33 1 33>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <240>; + ucast_loop_pri = <16>; + mcast_queue = <296>; + cfg = <60 0 144 0 144>; + }; + }; + }; + }; + }; + + dp6 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <6>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + phy-mode = "sgmii"; + }; + + dp5 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x3a001a00 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <24>; + phy-mode = "sgmii"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + + led_pwr { + label = "green:wan"; + gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "led_pwr"; + }; + + led_2g { + label = "green:wifi2"; + gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led_5g { + label = "green:wifi5"; + gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led_power: led_bt { + gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; + label = "green:power"; + default-state = "on"; + linux,default-trigger = "led_bt"; + }; + }; + nss-macsec0 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x18>; + mdiobus = <&mdio>; + }; + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio>; + }; + }; +}; + +&apc_cpr { + /* Same CPR configuration as OAK */ + compatible = "qcom,cpr4-ipq817x-apss-regulator"; + + thread@0 { + apc_vreg: regulator { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + qcom,cpr-fuse-corners = <2>; + qcom,cpr-corners = <3>; + qcom,cpr-speed-bin-corners = <3>; + qcom,cpr-corner-fmax-map = <1 3>; + + qcom,cpr-voltage-ceiling = + <840000 904000 944000>; + qcom,cpr-voltage-floor = + <592000 648000 712000>; + qcom,corner-frequencies = + <1017600000 1382400000 1382400000>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-0 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-1 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 20000 26000>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 7000>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-floor-to-ceiling-max-range = + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>; + }; + }; +}; + +&npu_cpr { + status = "disabled"; +}; + +&nss0 { + qcom,low-frequency = <187200000>; + qcom,mid-frequency = <748800000>; + qcom,max-frequency = <1497600000>; +}; + +&nss0 { + npu-supply = <&dummy_reg>; + mx-supply = <&dummy_reg>; +}; + +&wifi0 { + qcom,board_id = <0x92>; +}; + +&wifi1 { + qcom,board_id = <0x292>; +}; diff --git a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk index 3bc6fdd2a..fd13c422d 100644 --- a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk +++ b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk @@ -39,6 +39,15 @@ define Device/edgecore_oap102 endef TARGET_DEVICES += edgecore_oap102 +define Device/edgecore_oap103 + DEVICE_TITLE := Edgecore OAP103 + DEVICE_DTS := qcom-ipq807x-oap103 + DEVICE_DTS_CONFIG=config@ac02 + SUPPORTED_DEVICES := edgecore,oap103 edgecore,eap102 + DEVICE_PACKAGES := ath11k-wifi-edgecore-oap103 kmod-usb2 kmod-usb3 uboot-envtools +endef +TARGET_DEVICES += edgecore_oap103 + define Device/edgecore_eap106 DEVICE_TITLE := Edgecore EAP106 DEVICE_DTS := qcom-ipq807x-eap106 diff --git a/profiles/edgecore_oap103.yml b/profiles/edgecore_oap103.yml new file mode 100644 index 000000000..c9ba60578 --- /dev/null +++ b/profiles/edgecore_oap103.yml @@ -0,0 +1,15 @@ +--- +profile: edgecore_oap103 +target: ipq807x +subtarget: generic +description: Build image for the EdgeCore EAP103 +image: bin/targets/ipq807x/generic/openwrt-ipq807x-edgecore_oap103-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq807x +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=0