Project

General

Profile

Actions

Issue #2011

open

Find a public version of the MAX77693 datasheet / reference manual

Added by Denis 'GNUtoo' Carikli about 4 years ago. Updated almost 3 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
02/24/2020
Due date:
% Done:

0%

Estimated time:
Resolution:
Device:
Grant:
Type of work:
Communication (mails, contacting people, etc), Reverse engineering (no code nor documentation available), Unknown

Related issues

Related to Replicant - Issue #1926: Maxim Power Management ICs: find how much mA it can provide, and check if it's configurableNewDenis 'GNUtoo' Carikli05/06/2019

Actions
Actions #1

Updated by Denis 'GNUtoo' Carikli about 4 years ago

This is needed to at least understand better the USB OTG current limits

Actions #2

Updated by Denis 'GNUtoo' Carikli about 4 years ago

  • Subject changed from Find a public versin of the MAX77693 datasheet / reference manual to Find a public version of the MAX77693 datasheet / reference manual
Actions #3

Updated by Fil Lupin almost 4 years ago

Denis 'GNUtoo' Carikli wrote:

This is needed to at least understand better the USB OTG current limits

In addition to the Kurtis suggestion (https://datasheets.maximintegrated.com/en/ds/MAX774-MAX776.pdf), this doc https://datasheets.maximintegrated.com/en/ds/MAX77818.pdf does seems more complete and has perhaps similarities with what you search for?

Actions #4

Updated by Denis 'GNUtoo' Carikli almost 4 years ago

This looks like a power management IC that can be used on smartphones.

It also has battery gauge functionalities.

I've looked quickly at the datasheet and that chip has the limit documented through OTG_ILIM in the REVERSE BOOST section of page 14. It also emmits an interrupt when the current limit is attained.

What we could also do is try to find where is the OTG_ILIM register on that chip, and try to understand if the MAX77693 could possibly have something like that, and find its location.

What makes it tricky is that the bootloader could also potentially setup some of the registers, which means that if we ignore that some register that can change the current limit may exit, the information we could gain would specific to a set of devices only and might not always be applicable to all the devices having that chip.

Though if any bootloader has a command to change the limits, we could probably very easily find which register it changed.

If we manage to find such potential register, then we could try to find the over current interrupt as well and go to some hackerspace that has a current sink (and if it's supported by Sigrok we could even script it) in order to find the values. As we only need to do that once for that chip, it makes more sense to try to use one at a hackerspace.

Actions #5

Updated by Denis 'GNUtoo' Carikli almost 4 years ago

Page 68 (CHG_CNFG_02 Register Bit Description (0xB9)) we have the OTG_ILIM register for the MAX77818.

We now need to try to diff the 2 chips through all the infos we have.

I've not found any (upstream) drivers for the max77818 yet though. So maybe I missed it or maybe there are some in downstream kernels.

Actions #7

Updated by Kurtis Hanna almost 4 years ago

Found someone mention that they had access to the datasheet and asked them if they could provide us with a copy: https://github.com/freedesktop/drm-misc/commit/e8614292cd41971b54e60188d4e99abdc8695073#commitcomment-38213384

Actions #8

Updated by Fil Lupin almost 4 years ago

Seems not possible anymore :(

Actions #9

Updated by Jessica Fowlkes almost 4 years ago

  • File IMG_1586228913373.jpg added
Actions #10

Updated by Denis 'GNUtoo' Carikli almost 4 years ago

  • File deleted (IMG_1586228913373.jpg)
Actions #11

Updated by Denis 'GNUtoo' Carikli almost 4 years ago

For the record, I've deleted the image as it looked like a picture of a text message (about some life wounds) on a smartphone. The text had nothing to do with this bugreport. I also locked the associated account. The picture had very few metadata.

Actions #13

Updated by Kurtis Hanna over 3 years ago

It says "otg current limit 900mA" here: https://review.tizen.org/git/?p=platform/kernel/linux-3.10.git;a=blob;f=drivers/power/max77693_charger.c;h=058046fa7f230e805cec4c16befb1e53ecb3e947;hb=refs/heads/tizen

This comes from this commit that was written by a samsung employee: https://review.tizen.org/git/?p=platform/kernel/linux-3.10.git;a=commit;h=ff8bf393c78bbeadd92fab12584818623889c3c7

I'm assuming that if this is from Tizen/Samsung that they had access to the datasheet when writing this comment.

Actions #14

Updated by Kurtis Hanna over 3 years ago

I also found this datasheet with is closer in number to the Max77693 than the one posted above: https://datasheets.maximintegrated.com/en/ds/MAX77650-MAX77651.pdf

This document says that max776 is the "base part number" https://www.digikey.com/en/datasheets/maxim-integrated/maxim-integrated-partnumberbreakdown_ds

Actions #15

Updated by Denis 'GNUtoo' Carikli over 3 years ago

It says "otg current limit 900mA" here: https://github.com/code4rain/Tizen-Odroid-Kernel_3_10/blob/tizen/drivers/power/max77693_charger.c

Thanks, that's interesting.

That code handles battery charging, so I wonder what they mean by 'OTG' here.

It might mean the USB port that gets the current to charge the battery, or it might be interesting somehow as this is the same chip that also provides the ESAFEOUT1 supply (from the exynos4412-midas.dts in upstream Linux) which seems to provide the USB host power supply:

&exynos_usbphy {
        vbus-supply = <&esafeout1_reg>;
        status = "okay";
};

and:
max77693@66 {
        compatible = "maxim,max77693";
        [...]
        regulators {
                esafeout1_reg: ESAFEOUT1 {
                        regulator-name = "ESAFEOUT1";
                };
         [...]
}

I've also been thinking of another approach to approach this issue.

Often several chips are similar, so it might be possible to find the datasheet for a similar chip.

A way to confirm that the datasheet for another chip may partially work for the chip we use would be to look if the datasheet for the other chip and the driver for our chip matches.

The issue is that it's too much time consuming to do that for all chips, but I've forgotten that the kernel itself might already have that information.

For instance while grepping rapidly in the upstream Linux source code I saw that:

drivers/regulator/max77693-regulator.c:// This driver is based on max77686.c

So for instance it might be worth checking how similar are both drivers, though it's common to base your driver on another one even if the chips are very different. If they were that close they'd most probably share the same driver.

Another interesting thing to check would be to see if one of the various drivers in Linux for the max77693 also handles other chips (that may have a datasheet) or even if devices with another chip are using that driver.

Actions #16

Updated by Denis 'GNUtoo' Carikli over 3 years ago

I also found this datasheet with is closer in number to the Max77693 than the one posted above: https://datasheets.maximintegrated.com/en/ds/MAX77650-MAX77651.pdf

This document says that max776 is the "base part number" https://www.digikey.com/en/datasheets/maxim-integrated/maxim-integrated-partnumberbreakdown_ds

Interesting. I've started to look rapidly at that that datasheet and I already found interesting things in it.

It may be possible to use chips covered by that datasheet on smartphones as:
  • Some versions of that chip can produce 5V which is what is needed for USB power
  • It's meant for "Portable Devices" and other devices types

And it contain that text:

The MAX77650/MAX77651 provide highly-integrated bat-
tery charging and power supply solutions for low-power
wearable applications where size and efficiency are
critical. Both devices feature a SIMO buck-boost regulator
that provides three independently programmable power
rails from a single inductor to minimize total solution
size.

And then this text (slightly adapted):

Table 1. Regulator Summary:

REGULATOR NAME REGULATOR TOPOLOGY MAXIMUM I OUT (mA) V IN RANGE (V) MAX77650 V OUT RANGE/RESOLUTION MAX77651 V OUT RANGE/RESOLUTION
SSB0 SIMO Up to 3001 [...]
SSB1 SIMO Up to 3001 [...]
SSB2 SIMO Up to 3001 [...] 2.4 to 5.25V in 50mV steps
[...]

1 Shared capacity with other SBBx channels. See the SIMO Available Output Current section for more information.

So I wonder if the max77693 has a similar design with a "single inductor to minimize total solution size" or how much shared are its inductors, and how much that could affect the stability of USB WiFi adapters.

Actions #17

Updated by Kurtis Hanna over 3 years ago

This person seems to have tinkered a fair bit with the Max77693 code based on their commit history, so perhaps they have some decent content that we can re-purpose or maybe they could answer some questions we have: https://github.com/robcore/machinex/search?q=max77693&type=commits

Actions #18

Updated by Kurtis Hanna over 3 years ago

  • Related to Issue #1926: Maxim Power Management ICs: find how much mA it can provide, and check if it's configurable added
Actions #19

Updated by Kurtis Hanna over 3 years ago

It sounds like one of the maintainers at linux-samsung-soc has access to the datasheet based on this email: https://patchwork.kernel.org/project/linux-samsung-soc/patch/20201210212534.216197-15-krzk@kernel.org/

Actions #20

Updated by _I3^ RELATIVISM almost 3 years ago

  • Type of work Communication (mails, contacting people, etc), Reverse engineering (no code nor documentation available), Unknown added
Actions #21

Updated by Kurtis Hanna almost 3 years ago

Actions

Also available in: Atom PDF