Re: [PATCH v4 00/18] Add Qualcomm PMIC TPCM support

Bryan O'Donoghue
2023-03-31T13:52:28Z

On 31/03/2023 09:48, Luca Weiss wrote:
> Hi Bryan,
>
> On Fri Mar 24, 2023 at 4:28 PM CET, Bryan O'Donoghue wrote:
>> On 24/03/2023 15:10, Luca Weiss wrote:
>>> When plugging in the device with TCPM on into my PC (peripheral mode)
>>> then the USB device registers and unregisters every couple of seconds,
>>> never stays stable on. No messages in dmesg when this happens. This only
>>> happens with the USB-C plug in one direction, in the other it
>>> works reliable.
>>
>> Sounds like we need to do some SoC specific debug on orientation
>> switching in the PHY.
>
> I also know that the phone has a AW35743 chip in the USB path,
> controlled by DP_AUX_EN and DP_AUX_SEL gpios but I think this is only
> for displayport, right?
>

https://www.awinic.com/en/productDetail/AW35743CSR#product-details D+/D-
looks like USB 2.x ..

Your DP should go over TX1+/1 TX2+/- depending on orientation and # of
lanes in use.

https://www.allaboutcircuits.com/uploads/articles/Fig1m11292018.png

>>
>> I wonder how many lanes dp_opts->lanes says for your part ?
>
> Not sure.. Where is this configured?

Heh - now that I look my lane count == 0, a bug to be fixed..

Hmm, Luca can you test this change

- if (orientation == TYPEC_ORIENTATION_NONE) {
- if (qmp->init_count)
- ret = qmp_combo_dp_power_off(dp_phy);
- } else {
- if (!qmp->init_count)
- ret = qmp_combo_dp_power_on(dp_phy);
- }
+ if (orientation == TYPEC_ORIENTATION_NONE)
+ ret = qmp_combo_dp_power_off(dp_phy);
+ else
+ ret = qmp_combo_dp_power_on(dp_phy);

> But I also don't have DisplayPort over USB-C (video out) configured yet.
> Related question: does video out work on sm8250+pm8150b for you?

Nope - WIP. I see getting TCPM upstream and working as a first step,
then we look at introduction of the redriver, DP work, dt etc.

> [ 1722.130836] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc: misc 0x000000cb cc1 0x00000001 Ra cc2 0x00000002 Rd attached 1 cc=cc1
>
> - unplug -
>
> [ 1867.223052] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc: misc 0x00000042 cc1 0x00000000 Open cc2 0x00000000 Open attached 0 cc=cc1
> ==================================================================================
> USB unstable (device plug orientation 2):
> ==================================================================================
>
> [ 1894.263324] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc: misc 0x000000c9 cc1 0x00000002 Rd cc2 0x00000001 Ra attached 1 cc=cc2
> - unplug -
>
> [ 1907.264840] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc: misc 0x00000040 cc1 0x00000000 Open cc2 0x00000000 Open attached 0 cc=cc2

Normal, correct.

For reference on 8250

Attached orientation reverse / cc2

[ 77.719278] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: set_cc:
currsrc=2 Rp-3.0-330uA mode EN_SRC_ONLY debounce 1 attached 1 cc=cc2

Detached orientation (none)
[ 82.475667] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc:
misc 0x000000c0 cc1 0x00000000 Open cc2 0x00000000 Open attached 0 cc=cc2

Attached orientation normal / cc1
[ 82.485375] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500:
start_toggling: misc 0x00000040 attached 0 port_type 0 current cc 5 new 5
[ 85.247368] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: get_cc:
misc 0x000000cb cc1 0x00000001 Ra cc2 0x00000002 Rd attached 1 cc=cc1

Anyway I reckon that guard I have in the PHY code is wrong, would
appreciate a test.

---
bod