From f989009df7e18e990ef3dc356b798faf6d5b6546 Mon Sep 17 00:00:00 2001 From: Marijan Limov <marijan.limov@gmail.com> Date: Thu, 3 Feb 2022 20:27:33 +0100 Subject: [PATCH] beryllium: Fix Focaltech touchscreen --- beryllium/DSDT.AML | Bin 256839 -> 258709 bytes beryllium/Dsdt.asl | 2 +- beryllium/audio_bus.asl | 1 + beryllium/dsdt_common.asl | 5 +- beryllium/focaltech.asl | 141 ++++++++++++++++++++++++++++++ beryllium/focaltech_resources.asl | 141 ++++++++++++++++++++++++++++++ beryllium/pep.asl | 2 +- 7 files changed, 288 insertions(+), 4 deletions(-) create mode 100644 beryllium/focaltech.asl create mode 100644 beryllium/focaltech_resources.asl diff --git a/beryllium/DSDT.AML b/beryllium/DSDT.AML index 2c3b9939c04052e078cc4e371a2bced4ca3244ce..ec21eea86ad9502a7d98f52a9bbad7630c71644f 100644 GIT binary patch delta 2411 zcmbW3e{54#6vxlKukY>ct#93KOS_J3eH$S#-Il$Ibtpg9z1OlryOy;O5Zq%F!%zbw zK!|^65fT#&CN>S+5QA=H#Q29Xi-!8+55)N6FQX>9V1!MQ%^36_O_09~-uJqeZnn|* z$GUsZ=X}pS=f3;yd0);r&M!D5J*lV8|G@!%J1ec^POaITUHdf-dFkK+-i`-c^z{Yo z%iZV2`eY)qes7PF955n&Es+0W0m~?R?~<U`Cw0wF6W4JQ*%FEOipF3>m$z&2n15X$ zkZVOsCJ+G8*b&i@XlPmxTw0Bx4JSby9@r6X3<}ayFV_Ns{!=0}0Gt&7q2B=DoWhI< zTG=1;p6~#8VHGof0()5!J?2uD3ql~8E&wH$7t36phbii~hWRGJ&?8B3)f&lE5T+!@ zp40t8a6mV*f3=*sit<+x@_&cVy+QAMk2-CybRb*aJ%jqh=4h6e_0Z0U76RE?*(?`` zo~fnRTk+~lEbNsNEM_WXBtt0x;^h|SY%F7@jRtoE;See#Xc=iPX(U`7aTQR;S{fu< z1-6Lz>PV=LYN{i#3}wv1%F?ebW6Mxob!4xO<m#xNp-lM(m*wH8E^DZc8ml8x8MUWE zAUT(@m_sa{0m((Pw^1jZzJ*k;`iK!MoK;d^IvF-3t)k!FM4h#&N$sZ|>dw71*xgld zHm8838d#<v8gDDDvBK1^Eh=7nyrrUItH_rW?*Fl3f0^F%psL+ft0G#xu(+c2ZXnWA zI_E$-u&hPn+BP6fSU#9e8^;c$(|%)geEgV^e(qV2Fdh96H)kp#(GJ}zV(&_z6p&3i zOA&pxiV>OY_FaCdjQbZ^C(A^%@4JHSOc!=7DTrByY^4n7Y!g-lc0Fi@KR2CQL5(iN zH+=eQUAYsYb4}P+?)A+j%r~;MNc=%4R{JtH_mlgvRWu2gxpB1pGu*ZqjsAWbyWL@X z@hMw-E^*`uc2H>R8Qg|AdNhbvh!Tc^aW0Qr5XxPj_B2Qskqr+{6x;h5<ffyWv8Nfc zGNVF~6{6Zm7pt4TIf}jB#pgD*-+F9_bQgDoPQHa*?xmQ;+9KA-x|vW*8%S=_jOA1` z7E8p3Q|!Xz>@aZ=>h5Ri=6zPS9LsibU@Hu25G!g>tf6DKkU~$+AP=%xnYLjDs)Yl| zjN(C_d~6oI|6~5=k8yY{H`EiP**kcIzB-Q+Xo$|v<FWtP{^mc=-+h;xU$d!Un=27Y z^t$SziP$cfiY9hxqWR<0oQTAUZE5>RB{daDL=t7)x}WJ$A9f-io&5-Vumbd}o2YB6 zy3V=^`cJMbyvdH@ZQ<lm-7g$*7xrvRA`%BuD@cmjDS<3;Q-;Wpz|(+){jG&~01^-X z)Y6|6?ACm&gCf{-I@WGxSm@&6R4Uo`n7W>|@4?}ntbGUd;ZiHtLkUvPnU$NpIHIYK z($zP(4trmr`<e!za~C)dD-K=5&P+@)^kmF-IV7=2DWkWMLvZQB7?|UUK{039oKnNR zKj$_a9M}<hhksAnc(!l$a#XMcDvV!z#`IPvx=m*lF0ZzLpMgUr@K4xH;73y|Ha97l z|KQ5x!xL+mxyMk^xEy=>_}GyHikXQLK5;mG{LqoZ3j1P#J?fOCOrk4A6@B3bw-0Tk v6CZF&Tg%8ukNL3>+&K^(*V$(ao12w~qk6Av6FrjW+Fg}=^64MA`NqEirCt~D delta 1430 zcmaJ>TWAwm7(SOYre`y@GpVL=%XX-!QLr|ml0{rMnM*pF$xJe-RZ@&=b$b!Cf(QyF z>aws8OHsz%1H0~;UHTySq@uygqqisZLA+A!gS&!4^+9}D5YNf9(o5EX1M`39`@io$ z|D1n*`KRI5g9f5HYCiQE19bBQ`4S&H|ILZ$U3Uci@q_5Ah(4IVk4A#D?-5*%)5me; z<Rcgl(A+B+si0Tzx2N@u>Q_DOMJHLL*)hDJRnl9alx*<{s<y>YG$8b_z4pAL#DJtV z5c=n06suoXOaK@Jxfb`sruKN;i~d~+AejfGFcR`<(@fch1tj7pVaRYi7aykOF&s8} z0e}EV^AU4QC$<5}2MLlEP8X^7lU^n=n{`{#zL+PdPCk*>0KxQd6h-NG<8ZaVS`nac z@1Q1MnCa8~cTfm3CpyF+|1jX5l~Xs69>r>Vf@a^L?NpgSHdN`!3Dl1^H`5OjD2qBn zH2Vg%27}P+kz*TQUpNW{SaIK?hu2Gnn$Z<CQ0z2RA+yzvb#%l)ps27Yq1eV0;`fqm zrz=@xixF~;sQE}@B*N-|h*jeUM;7@(6jZxytX9^5pJl$sDy=^36cMnPy>9d<DZ}aj zhe{y8{2eh$mT)?pOFuB3US->#VFzch8|QPE!jX(_TLAzIN0;`j!u+Oin1ir{CK28R zwruv*HP{riEh__tAdjkn4u${^c(wXx{I~v(zh28<pX;xiDV_W4-IM-0^JjtQ&w|XN zqUxBwA;H{zpnu;knbjk6MBcf(Z(uJd#LDSrw_gmA#_R82{vH4INA<L{CnH}HddutG zK`=Y7WXjntEw_y)wzvauS~pk=^g<hH8Wk~YD5vV&L4szdo3f+jZL3?$nU<<?k+8dG zmPm$+a2(VSFO{u&cM#Up)w`!eH_Q~}&EcXo^kzbyHOroE&Aa(2yOb>QFF$qGTIn0v z!SUPzHO<ahrmXDS`~5&4JNc-%kc3XP#v^AgZ$A6im3#8RpH_@xC<g45p^5?_)xqFq zAfP6@bg@oN>S_AlbDX5VU&F^MgBS6OWeW<&zK!sIl{b;5)7i~NlAgPPLhj?bU^BnC z-YgnQZ0+P!YIX;G_zbtLlfB!=x2C2Kc@y|)`i5s*(9s;LgpNJOJG>gMj^iidN3Pyu Ab^rhX diff --git a/beryllium/Dsdt.asl b/beryllium/Dsdt.asl index c3024f3..41f0140 100644 --- a/beryllium/Dsdt.asl +++ b/beryllium/Dsdt.asl @@ -22,7 +22,7 @@ DefinitionBlock("DSDT.AML", "DSDT", 0x02, "QCOMM ", "SDM850 ", 3) // // Touch // - Include("cust_touch.asl") + Include("focaltech.asl") // // Buttons diff --git a/beryllium/audio_bus.asl b/beryllium/audio_bus.asl index d0c74f9..7dbff2e 100644 --- a/beryllium/audio_bus.asl +++ b/beryllium/audio_bus.asl @@ -44,6 +44,7 @@ Device (ADCM) Name (_DEP, Package() { \_SB_.SPI9, + \_SB_.I2C6 }) Method (_CRS, 0x0, NotSerialized) diff --git a/beryllium/dsdt_common.asl b/beryllium/dsdt_common.asl index 7cb6338..ba08adb 100644 --- a/beryllium/dsdt_common.asl +++ b/beryllium/dsdt_common.asl @@ -27,12 +27,13 @@ Name (TCML, 0x01400000) // Holds TrEE Carveout Memory Length //Audio Drivers Include("audio.asl") +Include("audio_bus.asl") // // Storage - UFS/SD // Include("../Common/ufs.asl") - // Include("../Common/sdc.asl") // No SD support on polaris + Include("../Common/sdc.asl") // // ASL Bridge Device @@ -143,6 +144,6 @@ Include("pmic_batt.asl") // Include("../Common/qgpi.asl") -Include("nfc.asl") +//Include("nfc.asl") Include("../Common/sar_manager.asl") diff --git a/beryllium/focaltech.asl b/beryllium/focaltech.asl new file mode 100644 index 0000000..8390051 --- /dev/null +++ b/beryllium/focaltech.asl @@ -0,0 +1,141 @@ +Include ("focaltech_resources.asl") + +Device (TSC1) +{ + Name (_HID, "FTTS8719") // _HID: Hardware ID + //Name (_HID, "TEST3330") // _HID: Hardware ID + Name (_HRV, One) // _HRV: Hardware Revision + Name (_ADR, Zero) // _ADR: Address + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x03) // _DEP: Dependencies + { + PEP0, + GIO0, + IC15 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.IC15", + 0x00, ResourceConsumer, , Exclusive, + ) + GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullUp, 0x0000, + "\\_SB.GIO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001F + } + }) + Return (RBUF) /* \_SB_.TSC1._CRS.RBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + While (One) + { + Name (_T_0, Buffer (One) // _T_x: Emitted by ASL Compiler, x=0-9, A-Z + { + 0x00 // . + }) + CopyObject (ToBuffer (Arg0), _T_0) /* \_SB_.TSC1._DSM._T_0 */ + If ((_T_0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) + { + While (One) + { + Name (_T_1, Zero) // _T_x: Emitted by ASL Compiler, x=0-9, A-Z + _T_1 = ToInteger (Arg2) + If ((_T_1 == Zero)) + { + While (One) + { + Name (_T_2, Zero) // _T_x: Emitted by ASL Compiler, x=0-9, A-Z + _T_2 = ToInteger (Arg1) + If ((_T_2 == One)) + { + Return (Buffer (One) + { + 0x03 // . + }) + } + Else + { + Return (Buffer (One) + { + 0x00 // . + }) + } + + Break + } + } + ElseIf ((_T_1 == One)) + { + Debug = "Method _DSM Function HID" + Return (0x20) + } + Else + { + } + + Break + } + } + Else + { + Return (Buffer (One) + { + 0x00 // . + }) + } + + Break + } + } + + Name (PGID, Buffer (0x0A) + { + "\\_SB.TSC1" + }) + Name (DBUF, Buffer (DBFL){}) + CreateByteField (DBUF, Zero, STAT) + CreateByteField (DBUF, 0x02, DVAL) + CreateField (DBUF, 0x18, 0xA0, DEID) + Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State + { + Return (0x03) + } + + Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State + { + Return (0x03) + } + + Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State + { + Return (0x03) + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + DEID = Buffer (ESNL){} + DVAL = Zero + DEID = PGID /* \_SB_.TSC1.PGID */ + If (^^ABD.AVBL) + { + ^^PEP0.FLD0 = DBUF /* \_SB_.TSC1.DBUF */ + } + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + DEID = Buffer (ESNL){} + DVAL = 0x03 + DEID = PGID /* \_SB_.TSC1.PGID */ + If (^^ABD.AVBL) + { + ^^PEP0.FLD0 = DBUF /* \_SB_.TSC1.DBUF */ + } + } +} \ No newline at end of file diff --git a/beryllium/focaltech_resources.asl b/beryllium/focaltech_resources.asl new file mode 100644 index 0000000..335daf3 --- /dev/null +++ b/beryllium/focaltech_resources.asl @@ -0,0 +1,141 @@ +Scope (PEP0) + { + Method (LPMX, 0, NotSerialized) + { + Return (LPXC) /* \_SB_.PEP0.LPXC */ + } + + Name (LPXC, Package (0x01) + { + Package (0x04) + { + "DEVICE", + "\\_SB.TSC1", + Package (0x08) + { + "DSTATE", + Zero, + Package (0x02) + { + "TLMMGPIO", + Package (0x06) + { + 0x1F, + Zero, + Zero, + Zero, + 0x03, + Zero + } + }, + + Package (0x02) + { + "TLMMGPIO", + Package (0x06) + { + 0x20, + Zero, + Zero, + One, + Zero, + Zero + } + }, + + Package (0x02) + { + "PMICVREGVOTE", + Package (0x06) + { + "PPP_RESOURCE_ID_LDO14_A", + One, + 0x001B7740, + One, + 0x07, + Zero + } + }, + + Package (0x02) + { + "DELAY", + Package (0x01) + { + 0x03E8 + } + }, + + Package (0x02) + { + "TLMMGPIO", + Package (0x06) + { + 0x20, + One, + Zero, + One, + Zero, + Zero + } + }, + + Package (0x02) + { + "DELAY", + Package (0x01) + { + 0x4E20 + } + } + }, + + Package (0x05) + { + "DSTATE", + 0x03, + Package (0x02) + { + "PMICVREGVOTE", + Package (0x06) + { + "PPP_RESOURCE_ID_LDO14_A", + One, + Zero, + Zero, + 0x05, + Zero + } + }, + + Package (0x02) + { + "TLMMGPIO", + Package (0x06) + { + 0x20, + Zero, + Zero, + Zero, + One, + Zero + } + }, + + Package (0x02) + { + "TLMMGPIO", + Package (0x06) + { + 0x1F, + Zero, + Zero, + Zero, + One, + Zero + } + } + } + } + }) + } \ No newline at end of file diff --git a/beryllium/pep.asl b/beryllium/pep.asl index de49c9d..42beb38 100644 --- a/beryllium/pep.asl +++ b/beryllium/pep.asl @@ -9,4 +9,4 @@ Include("../Common/pep_common.asl") Include("cust_camera_resources.asl") //Include("nfc_resources.asl") //NFC -Include("cust_touch_resources.asl") +//Include("cust_touch_resources.asl") -- 2.49.0