summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorSubrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>2018-05-10 00:34:53 -0400
committerBjorn Helgaas <helgaas@kernel.org>2018-05-30 10:33:55 -0500
commit92f9ccca4c08802504be8bd7528641eaacf47474 (patch)
tree66edc7adb9f20fb11022c8841a6302ba5be71cab /Documentation
parent60cc43fc888428bb2f18f08997432d426a243338 (diff)
downloadlinux-92f9ccca4c08802504be8bd7528641eaacf47474.tar.gz
linux-92f9ccca4c08802504be8bd7528641eaacf47474.tar.bz2
linux-92f9ccca4c08802504be8bd7528641eaacf47474.zip
PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver DT bindings
Add DT bindings for the Mobiveil PCIe Host Bridge IP driver and update the vendor prefixes file. Signed-off-by: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/pci/mobiveil-pcie.txt73
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt1
2 files changed, 74 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pci/mobiveil-pcie.txt b/Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
new file mode 100644
index 000000000000..65038aa642e5
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
@@ -0,0 +1,73 @@
+* Mobiveil AXI PCIe Root Port Bridge DT description
+
+Mobiveil's GPEX 4.0 is a PCIe Gen4 root port bridge IP. This configurable IP
+has up to 8 outbound and inbound windows for the address translation.
+
+Required properties:
+- #address-cells: Address representation for root ports, set to <3>
+- #size-cells: Size representation for root ports, set to <2>
+- #interrupt-cells: specifies the number of cells needed to encode an
+ interrupt source. The value must be 1.
+- compatible: Should contain "mbvl,gpex40-pcie"
+- reg: Should contain PCIe registers location and length
+ "config_axi_slave": PCIe controller registers
+ "csr_axi_slave" : Bridge config registers
+ "gpio_slave" : GPIO registers to control slot power
+ "apb_csr" : MSI registers
+
+- device_type: must be "pci"
+- apio-wins : number of requested apio outbound windows
+ default 2 outbound windows are configured -
+ 1. Config window
+ 2. Memory window
+- ppio-wins : number of requested ppio inbound windows
+ default 1 inbound memory window is configured.
+- bus-range: PCI bus numbers covered
+- interrupt-controller: identifies the node as an interrupt controller
+- #interrupt-cells: specifies the number of cells needed to encode an
+ interrupt source. The value must be 1.
+- interrupt-parent : phandle to the interrupt controller that
+ it is attached to, it should be set to gic to point to
+ ARM's Generic Interrupt Controller node in system DT.
+- interrupts: The interrupt line of the PCIe controller
+ last cell of this field is set to 4 to
+ denote it as IRQ_TYPE_LEVEL_HIGH type interrupt.
+- interrupt-map-mask,
+ interrupt-map: standard PCI properties to define the mapping of the
+ PCI interface to interrupt numbers.
+- ranges: ranges for the PCI memory regions (I/O space region is not
+ supported by hardware)
+ Please refer to the standard PCI bus binding document for a more
+ detailed explanation
+
+
+Example:
+++++++++
+ pcie0: pcie@a0000000 {
+ #address-cells = <3>;
+ #size-cells = <2>;
+ compatible = "mbvl,gpex40-pcie";
+ reg = <0xa0000000 0x00001000>,
+ <0xb0000000 0x00010000>,
+ <0xff000000 0x00200000>,
+ <0xb0010000 0x00001000>;
+ reg-names = "config_axi_slave",
+ "csr_axi_slave",
+ "gpio_slave",
+ "apb_csr";
+ device_type = "pci";
+ apio-wins = <2>;
+ ppio-wins = <1>;
+ bus-range = <0x00000000 0x000000ff>;
+ interrupt-controller;
+ interrupt-parent = <&gic>;
+ #interrupt-cells = <1>;
+ interrupts = < 0 89 4 >;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 0 &pci_express 0>,
+ <0 0 0 1 &pci_express 1>,
+ <0 0 0 2 &pci_express 2>,
+ <0 0 0 3 &pci_express 3>;
+ ranges = < 0x83000000 0 0x00000000 0xa8000000 0 0x8000000>;
+
+ };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index b5f978a4cac6..1b7e7c36fda1 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -203,6 +203,7 @@ lwn Liebherr-Werk Nenzing GmbH
macnica Macnica Americas
marvell Marvell Technology Group Ltd.
maxim Maxim Integrated Products
+mbvl Mobiveil Inc.
mcube mCube
meas Measurement Specialties
mediatek MediaTek Inc.
<o퐀h#={Ssp;YߎFǫ`Z?\~^xcU+#]bJiEp2{&z۶6T/~M-w]җajz{/Ҙ,ܚ*TPXEO9U|NIu k )]+/f;ŗLӴ z)r#Y5=t~ 3iy1M4oN7 92M)0mI+/n$AC !uc z|hy2=S|A*ZXI/ܒSh=fO߄)ZXR=+3D\~^3~6LGx1.X©:1k쿷_]6_ɝ6o<T'oG$V`avB jXR[׭/8!Vzdaϑz]/wѷd=PI̜{=(5-?K0=ģi+%-h;FkC-q:/ w1hr+'aHVHs^ /i]8 ]UGdQ!EM c[Xz1!H7x)σX]-IMo~B3+nŸYH!*O{<#.R,+fMUME5r0'}k[-sY.`uyT9TKĬ厭YK›ݝvB-`VA'FrLoRڽý.VϗN"dt{d9rXuy~9OSޢ\?pp(4c!L`;fϖH]׿$KXb< sEE9mŗKp{6W/z U}cޏЄ:w۟/f{?++CɣB=;9G٥>bAPO =w@.L=3Z2|c \"V?l>D{a;|G/##S))&%T" {Iql/i._}^>bg.~I;'y!هnI]1$tRYbp/#PbP-csfDk"ٷeԱ4dA*~ubj=kH뻟;19/<2g -W8:{ّp|5/c䇮QJo7WIpx. )oY!WKR.Ofsf|Ug?ZgߔnmnJ ݀YV3+1̺kFC+0` wqC3^ՔhѬsCπUԕ}ɼEh6UOƪup$m!'`Iy jf𐈂 E fKB (9l7pB|M5ݹ_/ m?~6b/WGd犜=` DϮDjYC;>plzd||s585wJ֙΀;~:υUlɕ8Ԩ!J^䞚ڙT6!3~@N^w[uSh l@v{Sya*wJ:;e+ڌjhVn%.5&yyKm sx)l P2}Bs(ϣOH15?C [9,*⺪K{=OXWUuGg/t{@(FxQͻu2\E\4r)J6C}Ϩd;.?-ve`G Cp|9pw#߫4xͫP`yyhaN\\O%@9sƈ' !b/gzeEbA;GuT"(8}[Q '!۫G>,ʡjuR(FƸsn?o7Q=3mO%D9*.|ոtͣWnW5xø koNh4j|sT+)h:F\@A>m[h(x+%W$l#N5<ه|R:CnuSmMF x-:ѿnIAG_BWvXh&s/=*' S u7., g 3w?v\p翎LYV.b뛞= O*AkjVh0uZH4OLic `v|9+Ϋ6jSHi^鈳nG`-A~(fØM8ѣ[l[C3T +΅Yc,Vg%_HnPSCp-$=}h:CB&I7K+;s|r*JW`T:#4I: plpSg5-UiKj :ϙmupSS3e㦻aMB͛vK=ְr[ߜxoMՉ$oWW!2Bjf#}vbR+%kٵփ\ۆ-\j}K]ElPY _y\9qV JVX@10 ]i4sy/BAjFL@<prob}_nx;skƻT@g[uH>׷K }JVbBxPSKL53޾ l^RSk(@HvŽ7?.\n+g-ѩWBr*S`kľ$- e.0K _[37tIŨb#ϡTE5: EΨ{֜_eu?8JDx3WaDoq}_nΗ0"K O0s{J^F3CeB\^P 4?(Z0A1~ءJ_gk: ”WXo6Ў<6ARD41}.Δ+EG\ uN0}u^ }?2`e]Tljf&F6#z::tV9bί^k=5dB@kc!rV2^~sMZZ[D:/$ "wZ" ݞhlItV:N+ww-Àt,/}$&4 ˄A u[ルwThfѿ Ϳ/xDZ+E4Cx꼳[S;;ŭ(4_[6DwŹ1d mw FuK l>{BZNnDP`9zak$DU'V_kFcWu g w& R!V6H`9nM *eIܛH*#܂Bukzђ2;/ q `flyF%ch~겻 [φIKpLqs|]bhPU7*I$_7dyJή&#cU/KAت^t^5adPu炮 M4-`"6H]a g CBCزJrS5+>tZь5o,*Dk^vy=X^-+aRqpkštA@p&; sں`6&]7U;Rvh8o:,װJ%Aq:>Mq$Kj< F$GoM_ VEVsKri]WE~1B ^]:.Khf)%]f:H1@A)^u;veDkWf~<3AL{l|/Ӹrl= "UpG'+36>g_3Yh''5=*tcoEiw;^#|1zWUpxaPƝ Ig'En ~U4)^FV/xsnG X,xp# J3[ܷKV22ttuŚkTJ @eHj5@? `4ZPP*"R-|iSiTr/ޮQ1!U3 v_[?F3Z{ gcA{Ȭ$q&4RDDkE|0>a|24Y"-:lYCܒ$Jg^\2ugϊMV &7a9eV3nQ:'+t_cNg;i|^-nH;)DTb r%{;FU$5$L]tԓ>>n%k<zrt"ۜB ,=_L?-,kZ G+8 B5{R| jN∃T 2At-@gW퇪PbS*js7C^h[(4<]M+`\ixTL)_x*N1h#db ͞+^Ue,Va;ǩCx{FtuQN)-X qۆ[\ < s&˿XK{0:jYT`J:_b@u4X978D)B9 ~+bY.D Y OdyP_VbH%'xx"sfrm(kz1A6, N ie0sf 7X$mv9cnLhwayޛi-[pmƟrrsAdCAMGN vk-^aRq߃=]tz OxƔȡJqhF\,K)v zّ,vXۥ:Jف.K~oUa@#[1]ݸS[LAnC窪](]ڰPM Qhp\>I% {x@"\MU* ߓ BQNZ+"{S#"}6(Jf:0W¦GcL睈{gT='m5XЯ?r Zhr s-}_][S=Wό5XwH];1j• ,tg5._ BW=տU'\EgϏ#E|۰OˀhP1PzԔe 5JZ.wUL_6$~]vV>?o2hw0" y/WߋWm|yɃff161A`{Hcm=`x"]q?%䫓/N p {aWh-pAVapCH0hn6K]lȋcُ$Ӕ4nE))c;WO5k v}[:>PK( ry:o)PӶG "Xpx~@sIK$ @#_-wFK͇5>m.F8LJC)6ҏp= ?IAͻ;@a'nÑzpdDQd4['mࣚ,S4-0"o`pb{Wn-6:qfA#1P6Y%UR8s3/;Ϝ\0aWa `AAٞ{ JX5~ArOwc wn@5TsmGF;#YB&h$#Req鑝6lcn1/b$7?%D]>pH`-XDcPbe*^ j4|c,9gNwk+5] j˺iłRO(J"Aт bV;9˟S*6@6P=Nj jv L+m1ukNE ЋxRi"J @'e0p] gzעHO $Q4zf<(jZ7 񼾐#`Ⰳu؇Xw[3Kafj%%Gd.>e-GE@W[ NcЀf"rOr0V(X81RbOZbQIbѪ4<62[" 27}RZC׭v nRi.ވ'Dz$LV9ś&S,@Blxe>9rҹӷ|+B[$/4)}zÔ خբHFр?qcphh#_>oGoLCv@ 6C;,S@x{ɡ$^ʁ"*Q҇1yM֜2v5MJb\aoƧ`O"RKkpq7`0cim cYP]2Z yN#A4mcM@C{xKe8/AA?Pdΰ\P [mKipE: +k=Yh5haV"@8| U?k'|Gc9\`<+P4*qZ#x6gpȋ{ȞL@XB;MEem>U/A"&^+sM6՜z A`0ca`E/al g Gy.]ƓaH'v8Pu,KSA&gԎfgmqt(DpO -2PO5p~mO>u{kKړˀէ}בΝ>6ؚ9 t;{X txG#c w~=7'9>iq2"9Ā2B"*^:iXuVv#DHq~:a!4>[TX ݃h"6)/$`iv}KH" sm!Ԑо=1 A(؜Cp``TZ EGl%N(} ^VQKN0TTL` ϸ-nѩ"Ht<b_05^{yZ(laL9TCl=bhg-4ԙ1/2`c,PҠ?5dH8KDd8t/eZ7M='U #ט-`v%!C0ʼn@+Z%ᦿ6\l!o!o?Q6'x/e6+cBH}MZC 9|QmsxdNDWLb i" *4Hb Hȇ"fD}#! T6 ٳNUf%r ilX-&i}|lN`_|7U|aʄ.on~|Xoe&V jW]:* ӄ_[-<`6y;g;lsJ%/]3>9x#ƊamfBn>y޺2^x.H/QybY{ToM9]FHaL-Ŝ Aq"3G.Fq-}OVOfZwuՃTqՒj( yaFf7%%d( J6XTT%lVڮt.KVѥR<*lj(zhM㥒pǚV]]XЉsi*003ڪ(~eqrP&>h%EҀtJZ= 0r oKC @,s{l0+Tp\ddA0ajg;cd#ΆQm]䠽"9L#n>Wr>=_# e➚AТ}:|e-Vؓ@\9E9P̼ZuB9RT m•oN`XDCtp02J́b1C+m@ ae+ [&_ .ˬ-}1Owwny>m*є=! @Ϥ xƁ8qfiͥ${*冷3?54@VJ& H;.IXњ4o ڰ%& t=ݹD%W~zs,m$I .K {2kJBꊋ1s.wu4ZS%ef@d=}p a~ /@zFV o q0%+E  p$Dy8q X`Iݠ4 { y nApI-蟫Ɗ=0h0ʷf? 6A\п+5bx]9"T¥EA<9ר.@H]Hv+B^8iWR.?>j=.H,ЗZja@E klGO#'HI"&a#&arl$/rǕAtЫoOɪY9ay}wg;Д˥_7cPLPZ~{BK̰ |Kgu(jbeP˰X, @1+{o<5ʪlqYHaDn{9B)R HTTWZK#]xw2SR·[e*¯rOBCk➱t N Nd^\'α.cm/ӛT-]*7'}:Ƣp[,2;~m.:\;{99^i= S7%r   '2^T ZxiڣbY5~`ճk15/;äYt܈C芓 MrSto ah\ l.R̈́k.s`MxsAA ߠ Yipb()p'.#]) қ35;XL0}ݖ+hy,̝XKJ>p>(T!OG{rbMT#ŒŝCs:ؙ=~}H=P}q.Pom-0|!)~$ωz5)_4X=Yn/ 1R%Z(TSaX_a\QLe7er$v.҃Zκ92`_(E2b`G.eͼU{,W4ʸ U:Eg*Z83ᮓSn 7N$j@`Gl`gC ^ vY,Y.62 ȗtv^#U}U\|z?|OM{#յшm}__ѪL\=W0{,?'YRiAw'$tfȵ\ _ /p vwDt,z꽾G,b3D#Ƹ1BHd{T'ݺ& ~tq*>Lܬϕdg hׁa}jOCxdsk uj{${$3ᅯtKߒ}xV⏥x?l9l=Cqo5G~T\񝀛Ya#bz/ Y_٬lu*1^a%xu{GxOWugUXȗhI dN5s*P8躰!0p}I73ɞ0xR< 8f/qt;axՁSS:4Ck8:,$,q'^^h5M1n[&9m(D4n/k06'Y2 {({=R jETLf  w ('o8Xc5< BRcW-;gpn2rp&.҈Y q(7iBA+ Yt4Tt Us_쉳OCIծw[P+{c9n6dW|eM p?@,-U(qf?n($$BFC${U]1v0t˺6CWLaudg6vN2;@v-Sl~XAȿ=&T~3\PaTWsh]."UI ”W(Eh X$& @ 5j $1k )@l]LHPHܲ`HeN\`H 6P4K@oqm[tuRSG:oh\$8U;"]UaPr^$h"!@ɑCG&b48jtH "f?#䜹 ,?zV? K Q*%1+ޢHJzatwgVut_mģXHs,N@,w˯&MQ9I]策.(6\vGsQB!b2%l>mqӶ׳9`R/&dD,ތS@2)~BSFe}]WCեc[:VŌV65J YzA -'9OKnō;VGMd=,]P0Oy5uz\z{؂TBn?Өh8+l̸SR!8qAg~\X8U& Q~$UD[6 NXXXLɏODzݙ&=i]*<(Fo*L@Ր`u=BPz{5Cz16Cm㴂 8>L.0['j ֒1uP@u|◶MC#Qnܣd`CC>18xuKQFٞC[ˏp-8y#^G&*qB%[o,\Rd}QWZ61tOw+u>u 4Θ@Y;@վˇ/#˥CbFLž .>" Bw8<~`pPKhJ Ml C9 _o_qdNJ+ۿ5̄  e Q,;b"| aM@xu.<|PwQ7\'eaG6Њ"ɠ|:n l3{ŁF.$F6|&}z"@ˋ!C6eyx WPfI|Pi,aKFt`!>_fL/ RwedRX;xeÝNNC~\=_<˖jjF$- 588鷉!bD{bD"'uAË( F"lrxsFߌOG h~p[^).Aa˺t϶j-PU0{ 2X8i>}'0-U\<*r   0rYM]NWYϲDZfg]jutpE;6ghubsloқ'SYJUo 5~"v;it0uË( 诡!ЁkB';^ y~ O+=Px(%X=8H ސ&I)e!fZr?!p)FXUg)c&k.7V|[ϭ5饯H{Ge*܇7R#lȦ bn|jڅnB?#N7C&M`Cuk"7qKB"Z%_~]Ywb>>Gž =1²d';xظ1!trN Azev魄7>3uYs xD9"@at 7y7<|\@Zv<{Ӆa<{ kwX-{Œ@(EAP)t|'n&¿nϽ8@ ?j4#}}?n<L !SLlY_:HH @,k[ (亦C_ (*(( bz`uu15TzekA儒y(Z,gj0Groj[ "NM""v( x!N.\V{%7X\0YMjp[<7ճ_mH7\@-B\Wx~Zt'<GC9:\YAgE ">} )K,he,+xuAql$j=ۺ7i'x0d8針Gr.Xi}UϘh"N/I# Z9" 4xJFu01v2!9yh

*6yuT Xg:rFDd -}~_dDZU.!yX ;Bb@sxWEiO'bj1O 0:$<:p͙`:~ 3+>Qg%?Ywe8c#扊Kˁ<" SjWQ~"lC ӎ=`IT'~}*ǫ)"=Q, ׊A@Bb . *ƍq 9Ek@ЗCЈA'"ĩa7mƳoZ  klp4Jsȍ%S<,:C#QF2`J+`4=xAI[ 98@x ˻Ňu>>KH:K8H1_L%!H?MìV>q [mЕx}+G˴5!%m!ݒU"h !󶠯Jy=Vn:)V~PJ ̚\GEAyU7+ W/((2Y\^j#'4H;`Wc=Ū,Z;`Qr˜I!3Gsh'8M' <k:PLG8BHpfr`NVeWYY"1 /tr'<r19RMU!09u2s¿r:TriA}${r,X\GSswslw@(IɪuϷNDr1hV!,Ҩ Z#{îP[pDmmpG>+޶zuSwY ɸ0e[MOS)~غg΢RJn-6l-B#AX4Kxz bTtI$TDs^:F1ꈏ$9\e~I50,~~<@Qc @Ì)zN H~×f|8T#An+U( ^b M ˠQ7 QvGlZ;5p>Df7n}? OK9NY\R{,"!!^&<~<ݧLEÕ&@oW_n^`}KUi/f,?LGylAi qrƆ}~@BC$I$dm{8lWگ7}k\X!# rr9g(cH x[uvn͟D@Q\Q*@C;P9ܠuK["WE>NgM0 zy"Z~wfҴA)B5m\`85^N̐dϤag-v G'1Ůš'X.<0sdq݂9-aZ߳B yXvy@x80#i^ƕY=$ )ffn%*LToM^%syK8&bSTplY kst`Lr@cTMwljf0?i|;E21po]☣WG͞haĮ@Eu5T8WcR[8cHEM[RC䲱!5Ciu6g94C0F2p|XQhfOTz'͉!r4m'>&\H#Sīd( vCgs'-7 P%ĊYCOg `-Ӈ8uh#*W)[ͽnvW==:PFPP 21ai%jGJ&"ZFUBSڏ lLa.&# ӹ PswQ>T| ?d͵?y׭oN@=bINXv_O-?\b*,K%d+Ƃ9@h{dsտ@'n{IЇ"98A XW`9<($S÷nh*]계uJ Gm˕҉iױ+[P 5/Ќ?X`s?EDqTN?OGlFUgNc~Xa:}Lpoh*O_vy͏WGVsݳQ8K =3gMbNJfU3xyTkM`9QҊn2j!槊x>oR;s`~ܽȡ^,^R^Q1P@fkE6AK4UT7qI뛚gք 6l N2"耸u&ZK!]oQ=e#8?*q }6" Tq,$Mn}&Z=vzTOZv kw> ;d% 0Xa"X;*#'f5u0D1N}e"RT c>c_L {HV7e' \ݔC27Z6.n4@!m+RU H Fx\:R/5{$7_K@qZ5-يQ5L-tCJh)>[ }H!fk׊:Dmz[`"t;M?Tt,%u{ٶ7p5sdGwYA9oL"UUf~,i\ml[hkpY?s{2m߿{)"0ѾA7!Қ3T4X~-w2&hisiJM﵊!2E!k#&"qOw#/prLh02cֵ!s-sLc…".ub8ֽ$5q8ӭtk{;d"d6{Azq52(nVHK8|i$QH֕i[@ #!?&U4 !AрV`v4ײNK$V~M˰Co ;LC=j4G"Q@N`$q 6QʺGMPa9G 0%O6=צΊrfdo`ȅ= %cjk[&!qt#fo|u\b0D(tBӂo;Tc5Q_u6(k^a,ܑ(-%f#HI<~o='y8 |m[ݗpA\G1ou}N*FC*It_+P#Ӿ^JAQI{Q@T̶\8J*yxKZ*: @Xտ~F ?Z`ҨD:b!q9}rg1c ۻqo B_)"D3\t4|ʈ¹>Ǯ4#R&pU:k4WA3k}I?NqÕcw֠N *NHҵ!QV!} |=3{.]T>2er >E QZw|Ȼ|h61! \*H@Q5T԰qe@ W-]~va`~  ~xlR$8D 5{ 4t+>ٺ`J 1t7lVԤ\U`PEULOGj_VX#沎fݶa8EZ]5 E a0 /g OY>s->-93?b"1EsΙK[%uaeՊŤ3sVEmNAVF0sA?k 6DdE-x62򕤄n'\SB>Ƹ<JHӷ'X*(|G{ahQ hswuojUX<^g0"D:Ba~e (-qurݖEvvB> _ٯ4(Z%8dS%@U |U6<^2{7|!%7;ho%T,whgGAʻコ (5'}hVN QhP+)]7 +X/\@ # .:E/ɶxKX,&M !xkulķ#ׄ KL y2;mm:SpBQB &ЈCYǯVa7G̯hʁL'ө^v˝MK]3`+]ܰ`NQ[Slv>cQmQ`Pv4YdžZ5+oSjBРqQyn]` S0^8 ;G&_ nueK7p_6s:ofˣ,h ha j[Tǒ Ƥ ˊ=eM@8q20sٸN;4K=,?;n!z ?ggI`QF+`6 FXqnpضa/̾{A7(;>Dg8cw$S);?fVCA0y]8ǿm`6o<dB8@LxOz Z9t;&{@g OJ8[7_rJDR E|E$дIjp3ug* t$⏹-ZZO@'dx@Ql; tf-sQH@:+qEm|9^[CfѾ13K) SĶ,3*;47 ^&Skwl+u<(sڸu1gU΂X%{nS5h U\3o9^249'=ψT[ÓwGgzqӑN @CHVq00i ȜTȼmlMY"69(Ͱau4v&Q$~\[&#*ÆCdTs\0YL=,I 3 ZNvGv&uvDX-lIԢ'aD'今w}MA& .$?! HB'tH0ϥC[!S@ u/ív5Vl}1#3KaA b%{)WmP%O\F 1U]G^ ӮD{k`!0e>>2(`˻aW"(c΢[8K-mA|}YE孠[m4 ހ^YZg2kuIi,:\'51O_n$b*i&4ъ` v{~Av#:lHra '׊]" F3`*F=ޭXoZ󶸡C-z4X79b ;zf A2T~k{^K3Du Ær&:yίVk6bXo]AਃIRB:8Qeb˃K\&t6 K w13yYTBNJ A8r'1a=ga?16Ե= X32B 89Pc 8d]%pSp8v(,)dtH&rAgZmo?LWذdȎ%flR 8H]`@Jg@TGطiDջ 1&2Ep{Ole/P*6 @՞dJ!( /md s>d @1#5 y4dݸEKkN#r! 8H:3wl}o}VvX+A :.f].¥^ߋSiF4(hRpc: ["!cbC&3yI fgQ\&:3ض1q:DC,&_݅Ƈ6TaDJ:je\xyP ñcP=&APox+h@EBkX}]O`_P 1K0Ib?[ttfbCΠoF;;p3oԚJ@(pw+xXe/Es9o吢S7>o GBj <^qCrܱu:Ge,T)(d$yU(ҝUFCC?\y sZ^b mD m[PpJ J{D(޶X]H^ayY6 V%^H 1ߩ{ɾ{tpŷuF55yQDk-k_dӒT+WIjBɚ &wˤ֮}s by0MIYZ ` ^Ly1~7/LAܧcb=|aYJ=ɗHF]H #E=egWp_۞?I;?Ka( TY 9kԢ:+{eEKŅ^v\,Ƴ  "EMPP~ & ;j2kk5}#FH2D4ץ@Cv? vsvxc$`~^~֕*u{k|KDFzl ^PMD/ C~Q:||SAa<1zS}\jZ'X|W0`Fg![9yY/GA#'YLo)8ʀ(&Va` *߶D=Xÿt*y8i-=}lu dzUWlϱ@(DY. PΛC WspqF5*Jǣqu .[T(\ҞöX9]V !D6R*C'J(WWv6 Gny D+f?Y:|iohg6wxC.I$y* '[75Utmٱe 2./PceuL$01n(D%y `l`2(NyW^C`sGaR?}<+ &vU;Q?H&YpݔBw#+Xzxy^~zf"mkӶfTD0:/o#^lk;4;w:eB6d3̠@mBďa.!>XdU<dNLar9 OW[ؼb9':oI̕(5o H8^#=?1kLBL!˅]@jBr'}BBg֌|el1fzŵec"! 3A?;s:C5^ա) ӳurA;L^[D+${v$_e1mP13yq`G 4 >4$YJ#O%ġ =7b<@ C˗Y?z" >[gv=CǍO3sՈ;ɗ9 qjM\hR@wq[2]9x#<~pN86r8$H[hHv"`Ɓc8Xـp̊$-#c\D! \T*F#uyJCv*S<.ٸ|QEY 9>xXvٞuU@!~mT'eEX3H}p ˈ"&Å&C97 ހ}ζ2VG.}Բ3+q5X2&Jo3My"p_ &;ܼCc'3xeY}lpB4F(q1Xh/;Eo!h^BLvR;',f[,G/XVGVƯlK~_UحzWaWG-O 4tHwj4OD 'V#tL.bb.Pjt1U@`ME@wr^"DHF&ch P7аږsǢ9%tSC'@ϳڇU(zKI1$>Ӏ{ix2]cdخ/FR3)q`Xs;QQ-ԈZ:dD}-2=#kj#?=u5﷔:" @!YR 5`0P&Z)~(J[w9}B,VdU}$zGR-c1X8#U9?u kF=d- /W ` 27-Z0öHO*^K8r_Oe?4GC7G'^rXGe kaJU[bt2 kxw_5;;;]'p+g! N:-N0ꖛQE@IBF \`+"1.>ֳ fD%҂);q>5xިA|͹Q5BpZ3\dssj̶ȧ q3jN. Pۨ9AiIuq4U ޺zkX3 pH!' M_:zy#" F|ḟzdQnvTe3q![U!S7T""P8UN;3:hf[܋_ۋ]1&pl07+CO[E:G»MU-Tw"q9 ^_Px8Q/B=a[0;LuU)r^kMXNDL) pD $ i̘wF^uqalۀuJiC49 [YG1R#VZp8wsλ7#)'tl]LjQrҘ8 ēc]^pu|BlrL[q{dIٞ%l4_/S;^g uc/#2@mT̀Wς+m}/\7x;:Da/GO*xrхiIp,wyQbLjr>o$estyHȨx0}:,>36ށy죚Z0N$>˔0O+7]`GNtdeASW-f-Qs5j1d&a}pZPR0{edQ_<|W v.C\b LxM]K'T(-c\M0|,$u_5 PW`N\Ќ8f[K?e@~F0XxG&p['I!_%1*1l3:<)t`$rTg})?ژM.Z+{PɅMI|B>2{pQGѤ'o#ӫL."w K*ٷ 2:X&ZsFoa ~N7JK@VAac?R(4|Xærgx@_R*B(`N-Aٙk>+FJ1c̆q&AJb@;5'_K0m>_ ~#RCt2=P(4r1e/\ݟ:oćш<>(SU) UI!cSUzw5Tk kQkPC+bjQѵ)}&cF|e(SdP33O{CvSV KNA˥QpeyV&޷=8}, n&;S(^.ۘf} MhA!A (C}ev\0yh`g-CBa!W luټKB7.9%X3˹p? P94U2R9n(BN‚=;XlDO.jhPȘpܓ܏}[(4;:Q3Pi2zg~Q/K#d۳~p]\''vZ{aU=]/w 96 Ӣd+R6nwi+1(2/s粧և)k4fF$Fߍwj+SưsO&BvNjΨ86EV,On'`qiu6f#~2PD/d1/.\3z$~p-K& &'DJ r$R!8P+w]oF)s(ɀh$ZZPde|]n4>ӂ "Xf ٮaWo$_ipS54&ydb1 ^8[3CEfL68QZv+ |&ǍM>vAcHvboKlZb9у}$6HQ` ca+jU[X"C<6~n`ID8j ]H(ʼݠNLI[A,sR/D}/J[UYc"T}o{.f*:¢xxhdS Q5 (J IN q: -m!X\< Bʤ }u}O#kpg|n~xR#Gg`ؼx#g 6\&*[H_2't`#b `ȸ[sug=ek.5C]xXE}-Dt>whB{xʩ"Ii!8+0I#m-c|/cvmBHn!Т>sTUr'?u`?nDg#V`TqUl2.RB5^kT|i0\I<=l`1$ar TŽn[L=⤭Qs W jIZW_B,e37ᑲUJkՖ&1$rZ_/xN>Yi:c/t>~ 80 U~e:vSș LzRq 3+ aU9%R3c˵n125/Š7k.ҿpeGLxX) k GyW9RoFۋd,Q{B5a`1QhQD*֌0?G8Oͭ:+õQY8spDxϙt×򌱬*]b6sޱ4J=32:&Q=nsunLseQLJUM)/; P]{S?wN3']JQ5Buڧ_B]HԄEd@K칶5TG0=͓ niG|=ytA5mrLt8l$u} 7F %#ٻgs"u@hGBkTE3P}1HRҳQCPwaTD-4rfqTDuD-]jdG~`M![5<@JA137̰+C'Z (~OV=|rO?}[=7#~1.s~GOz6>oH} &Vg9~8 /]PH$Q7J*c+dDmߗ˼:w шwEKΙH@窜xIH^Pj=祥:N\"\g+>5i!E!6{\8Nϲ,jWw~If[` ;th/ddѠ'^>C`ˣowvճM/΂30Gj|u/iήK[m;?lvN;`9rhCȨWja2 h}@)"CׁBR!p7 (vw+aU1#]C8]O.yCvE83:n9~f5}o?g)jy[-*y5^X%wH&8~U ?#ykzTrmqfI[|.( Xb)7o]鿨sCQc8hG X JD,@*hA@ !J@r@CBiXoێP h(hO]% QQ&z%$5tP,4Pj d)A|" u~_o>ϯxd7~d=+%Α\=pa0WC8TC<}wf+T^Ri5F xkyu-/w&P> ??h,?&KsǏI:5~/|KU ~J}^%_VZQ _M >/'?>`rHRH1 Zmи ~~fblg7g0?;@4F%ѡhà T TO2C cG]sGIWùr?+*b2u]k_x_ˎO^+T:Xy|||!{NKU>Pv9g~jP/LC!|HK@;_\/R;Js!2lZ5UO3pAoTc92/ް0Yʻ"ӕTߩݖV7Μ>dQcφ\}Zm_Ո׫*;ώlܽWV(ŝ⯔yS*8>hfeKe=t5:o'`40Q8 Vi]Sc>+Aحܐ9דj~foy=);eq%Tr-s NH}1^0t1s!U#\ewQST 0*:U9ztk$j0 mu#4>Ijr㗯a"pj½2; { WHze-q !t}h3s$$|!H⨥4ss,!CLx^}r'K v 639ecCb1=s`D){t}@7;Uޕ;F>:H[N`劰+,Q ^9o\, 9sRCDh̫󺧀`!ΫG cg7\@ż!|y wf8?V&GW{S#gey Z 'im? $o/Gl.{M_Pqww9F.0߅_嫟--!-rMCgl'2KE(J (x4Q1miid&(P)KK~贒{#1LA2R0U9IW12(=? &%Rj >`uA}/ty?iKUb7ɒOIGobq#?Aݤ7+3y8;ϡF+Ďwy>OTޣvC t~[P~ /]*{3W0L3lD߯49ۖ}#:QPt #ܔ_haPv$+,5bb?'NΡDAUj {wwY?*x= "p=ëp AGPy~lTw֠?H HIoD$,}߰tS&r܈M))xYOշkC; "U?=Y(?:%-"RP hPHGb1_T9b7y$JsY  'Vq oWCٸd.,k ! TO ؏ \/ALUu[!ufAޢh;)ozyБ`8F1-//vVG] e|qKVҷG^/w;@?UD']JmM[*-,YZl/pK }p>i`vtt _ drh&]xhW &Bp>hT! ĉzo?pGl_y qS"]| !`kWmRТG!H3Rݵ¿odvw8BxjK@:f%V4\{5h \"tqp!}7xk1o;ZƳ91uη3e|KAGp{|Z_*pqgcq5=~gM'Bц+9+:`S?ymu}vF4F(K֩U Z UȭX8+v%Xh[Xf P9ZBn tbXW9 |3%Q`_5*5;|fIS*[BؤlkrW7cUR6YvE5XwԌWX"(I|чl7cK$J8_)MdI!FLA[0I= \HE%ƾKS|t X_Ko,DR:۷R_pmu`JܸPMðH#Si8.*5Qi2ٯxtem,*A7GHzӨWR> *D󍿘T}XI9!{P5}5qS+Gw%l*y0{(}?@ 񥿷of ?Q{u*Ԫ[S_Q^RNvxT_\~(pB^S-iVBWJƧR:2kL1 r((!ӍlD~93  +ABbOD܎=t]X')"vA}#yN;&-p1kM6"o/(.%շQrerMj5 M _!M6%U4l p%zժiVe}fi'D1\ec9+[՛`mlo~ڼla8 ?_j&،pX=vp<} Au0'e\P'#MPgC @2{|ϵsqҼi'SK vZ2*/sKءnrM.ӄW R(4 -m&QFcYש{[ ,Ic3q]|%L/X"5d!r×C;DɎ'w&-GuX]7ᒵ Ou;E&S&ǘA!#&+÷>w(ݒt9F>*k^_I\dC`{M`NY:.ءV!'D꒼ryڞwF6Nk yGHvhWFk)T~h®MNLٖYP@d;;+Z\D팧ӕh)#/hV`úpMe6aWk|Zhlz8u%H` B@ fo &e˟hIO$|/#| IU[bH :eTc(i*7h//wq>Mz'ƒtǏS{>I [ # 5lhG%Ǎj}`K_3wksZqe\| qm^ |o ( #v|=3hwgnՈr ;qR( oڽ#o[üwݑ,4SsXSQ]it~d@; T8^{Yʢx"Uz|mPV\AH4}n@HA黲{L=mFp?*@9#='Y_݇HcsnTF!Bsv-O4^9ןngWwGes 5 5 @A2 fg羼@]-Er|@֪0ҷn'="lIhؙfk: :lo2GxM`E](`ZQo4k& 1NZĭa\D4zfE4tHjEX({Q%W~ۃ9Yʽj4/\+'XU=ށ,S,'1J!DU.~.N/Ǒ_^'#0ψCG:5,KU&c#7x[˚uy&M7[7|v<@FoҪ;,q]x l@+g[>:ޝς/uϴnD quu!9bp$,TvUEԬÛs\2E&c"ۙ vGoW{+uץumeLL3U.ء]^8T ,$T?Q,79yj ^KAD(_Ҳ&:v4xB6Ubv]V/@e[u=|p@4:o>v/I~IJPnћ6W6($II(_%Mqwd莐Bg<8 =kL5ȁ~W@Xe8Ȃbنp.}NS=Y@ ^K<8W F5Fe5=HW CS0Lɦ3&W|r8*@XGҢD뻍BƩ3T[lB`eDe,5 lt a N%4ҀP vw룯uk#:'Y]76vM;_)MX3risGz!7uoH|)0>p#>5}[񟞷93]H< ፷i{fT2ZDɣeRၫS hMgffֱ `Y{m&܃6GkNά̝s/$HQ+ź#xL#$s3vc9o'F^9MQdُ60K,= [@Xv gau"Ad qBC9sBHk4E!;+^;+!]hnD@q4@A˶V?{L-ٻ^PJsoK}Q'6,dWi}n>\v#GTVcks~ν5ŭz#uue&Z)-:BEv&ZlVuޡrpFpmÑN-k30epj+XCYKs +M-983D}BD{)߶ hK$E1|/O"MFP3C E9SEy ߋO^rʈEGTSgEw. s=z/n5J% OQ@~|ۯHOTچߨt }>hL+U6ȃmANjDIʠt_ .\Pꐖ7H;&F$ć҉հ{/XYӌd(ܿ,ݐ朗_xY{(gD*{_-6q$:,=vۇNj\ Ps^s 'tzR~#N͖[8J=o ˮ@u~$|?O@6h/o"bTAJT(pEud *~I?EDPrhOn H ݭ8O_nDV*ɽK/ڑJR y{l$tx5vG2;BDŽ x۷ 1J᫆bI7lz؄c(I$0IkP@ tޱ]MS;'I<A@I$tf\tP3aj ܄i\vY|ն}{_XxE`@ 4u_8}=$c\4u5{sqs\QCTCx;{g˷徯9ʾLT7O½k|z[7yv`G&ʅ4DCUXѣP Q8m "|:A0/-K_$wG% ATb9@ #TT0=~՘A#S_^A&:2 H:]G6c("م Η0 `Fa iBF"$a@:pTTF0b @I qhV"XI`+"h:F" B ){pphB) B)h$%a`h(!DDM>9oA'Zk YUyhE( .ad@=:>6]$[N Bp`Tk:m˲;:D3T#Alt( b:s-,L0}u^/䞼A)Zu2jqJ2BfNʴCė/Hhn 00L;V=fQUyf>'^DNs+ $+WrV2ɲBM7V,eTf戃VHLߴ2,gH"Ytə O eM҄dٝi⣣f0RoMIg<9\/p'H9f@;Dk 0RUKoOԝa􂓜T Ț\;:o﬌i%,Co3 $l&IneאHy ;dΕ^'Yܥ(;OGŋiT+ 6gpHu'C2 f}>GzrY!pi23xIGNR@;ݠ@W;g׶e8@x,b9 KU;q$Ǫ3~O_g϶x͡8{$^Rǥ Pܻ:MW<\ASz+sT-r!ݦJ!@.dH4$qЈR )B2 dB )*"&S.JO A-(4UUUUU&#QWUUQEQT"*B"*:¤>jSJfPbhjj&p@)& CUT,  -pX35Eo4? {B0  ^~ÖR=ap*c|@_=G` yfk͋ Tg $4 CRm$̄ߴP7ߏvɏ<';s) IΌzF1ZhWhT A Q_gop@ܲ@E; ^bbє]MXS* Qzr.]0oT0| 0 B'VEM|8TҜK@$, 34A0Icǟϱ3Wh [2k>-^ di ʴƯ] Lp!M}x;T( A)h0M .)p+D >kmTNUT艬:QjJҩ[vI:¥4}]7J4P='X라}@Z1AQզoIwo#[R)sx~Jfn'ZLOX!>; gjSF6wp 7QX=: o FY@Ĵ_Ԣy.–J:܃%3xTMEǝs("eT535n ~(oX{!ÈTorP_o z[&/#S;)2vxYj) ! uɮwJP2Ɵf f0I-x~pm aYxȍbW ?q}=?<|z/ s!䬵T}{W~g ƧFp5*R/ﭾ4܇гW_{*s?sDz_گ&꺡WaCj p6kn+S }Kx&uU4 iܸ8x~/n{~F9FgC~Jrt-ˆ6&y\g-m#qS?IuAxKֿmvW#Y5}_o~ܢd *"( G6&>LthIM-M<%nWG  =4G= ZR@e ڤ!{qHW#./):EU5]F%=JO`>79)d*kmI2 d4[D=}zҠ!(+5rvuq^1^p}_-z߷mfc (5T{6cxnޡj-3@#,aX9Y.Z_ek4(86G9@)ât:#]މI1 И Nڌe.!|adWgU$\lپ .(Yfds rp0H |<ɐ:;0ˎ )+/SiܦkP!Hrg_ A+ǰ그HQ=.NB^0k Y*Kz@ fgh,qD"O]| *IA< [Í;_qQgJLI1TZ↋;a:WŇ -,]6ʏK͟1  O,~ 5[׶{[J􍁻BM*5`?D1ޕƙSh,@s{]]zP!} G0U>CI܎߁_z?Ʊ6I])N2(FfoǬR0%L 4gM8[&{薪Ҷ OՓrkW$EضZX|[LTD Kqzwia=AEe!zxQx:M%(P8X3Pˣm/3BGg0Q]~YUQ{yqv\GoeJ[80oBb>].}ssByHfQJ yPDsG f0 k<ێYF% O"nz)rq #ˌ~¿m.?~߹x%p GC9[h|t!j'N-{hf,Ơ6?:ì͛<6k^B`bRIX#$}FՑv{i[=#<*8\|B1˃nQpo1#Nu^]3FRThpXv́~@d4-Z1r ~>8?Xx =FHR1q,B[=)1dnPAsZ Q"IQ$ u"`_eWn<4q `! w9-"iwyUW8G!OA@ C(3}!y{^G@3+4aW>i籼#_ ë%|tPq=BjCׄ6+;n0AH$,W#x$Uaa@Z֮XE8ZLİgC~~MktA(?"_LX j@S@zy_c>S6Fbzzl8hm(B[ކiݭXvk; W)[9L0zTinD;:y J zi]t?a >MaQ A@?^Mb& %/!ؒED'umCC&M,z  rX" xs6CUi|K,`f.w!UҺZɣ.}6m?U=yrm*M@B%T̰sO2<x7(&3qu}̢$9hxj%h _šzA5t" E(%\3ian@b*ڣN=%}gݡlFˮl6MH+#xoDbZY\ڕ?u-`kH[U m"8q25dڳr_`8 )H( %42sN@MjXv*P/kk9w CT_CkN