[PATCH next v3 5/6] power: rk8xx: properly print all supported PMICs name

Quentin Schulz quentin.schulz at cherry.de
Mon Jun 17 18:54:00 CEST 2024


Hi Dragan,

On 6/17/24 4:58 PM, Dragan Simic wrote:
> Hello Quentin,
> 
> On 2024-06-17 16:10, Quentin Schulz wrote:
>> On 6/6/24 10:45 AM, Quentin Schulz wrote:
>>> From: Quentin Schulz <quentin.schulz at cherry.de>
>>>
>>> The ID of the PMIC is stored in the 2 16b registers but the only part
>>> that matters right now is the 3 MSB, which make the 3 digits (in hex) of
>>> the part number.
>>>
>>> Right now, only RK808 was properly displayed, with this all currently
>>> supported PMICs should display the proper part number.
>>>
>>> Additionally, when the PMIC variant is not found, print that value
>>> instead of the masked unshifted value as all PMICs we support for now
>>> have their LSB ignored to represent the actual part number.
>>>
>>> Tested on RK806 (RK3588 Jaguar), RK808 (RK3399 Puma) and RK809 (PX30
>>> Ringneck).
>>>
>>> Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
>>> Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
>>> ---
>>>   drivers/power/pmic/rk8xx.c | 6 +++---
>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
>>> index 12ff26a0855..617bb511e4e 100644
>>> --- a/drivers/power/pmic/rk8xx.c
>>> +++ b/drivers/power/pmic/rk8xx.c
>>> @@ -6,6 +6,7 @@
>>>     #include <dm.h>
>>>   #include <dm/lists.h>
>>> +#include <bitfield.h>
>>>   #include <errno.h>
>>>   #include <log.h>
>>>   #include <linux/bitfield.h>
>>> @@ -277,10 +278,9 @@ static int rk8xx_probe(struct udevice *dev)
>>>           return ret;
>>>         priv->variant = ((msb << 8) | lsb) & RK8XX_ID_MSK;
>>> -    show_variant = priv->variant;
>>> +    show_variant = bitfield_extract_by_mask(priv->variant, 
>>> RK8XX_ID_MSK);
>>>       switch (priv->variant) {
>>>       case RK808_ID:
>>> -        show_variant = 0x808;    /* RK808 hardware ID is 0 */
>>
>> This line removal is actually incorrect, I should have left this in as
>> we cannot use the same logic as other PMICs for RK808 as it returns 0,
>> so 0 masked/shifted is still zero.
> 
> Thanks for catching this!  Moreover, I think we should skip reading
> the msb and lsb values entirely for the RK808, because its datasheet
> lists the default ID_MSB (0x17) and ID_LSB (0x18) registers as reserved,
> and provides no information about gathering the chip variant.
> 

We've been reading those registers on RK808 in our production lines for 
probably what's half a decade now, I think it's probably safe to use :)

Cheers,
Quentin


More information about the U-Boot mailing list