From: Li Ye-B37916 <b37916@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/4] imx: mx6: Set Pfuze mode to decrease power number for DSM
Date: Wed, 5 Nov 2014 17:34:50 +0800 [thread overview]
Message-ID: <5459EF3A.6080008@freescale.com> (raw)
In-Reply-To: <5458F755.7060008@samsung.com>
Hi Przemyslaw,
On 11/4/2014 11:57 PM, Przemyslaw Marczak wrote:
> Hello Ye Li,
>
> On 09/10/2014 11:08 AM, Ye.Li wrote:
>> Set all switches APS mode in normal and PFM mode in standby. So when
>> mx6 entering DSM mode, the power number can be decreased. There is
>> no impact for mx6 in run mode.
>>
>> Changes for boards:
>> -mx6 sabreauto
>> -mx6 sabresd
>> -mx6slevk
>> -mx6sxsabresd
>>
>> Signed-off-by: Ye.Li <B37916@freescale.com>
>> ---
>> board/freescale/mx6qsabreauto/mx6qsabreauto.c | 36 +++++++++++++++++++++++++
>> board/freescale/mx6sabresd/mx6sabresd.c | 36 +++++++++++++++++++++++++
>> board/freescale/mx6slevk/mx6slevk.c | 36 +++++++++++++++++++++++++
>> board/freescale/mx6sxsabresd/mx6sxsabresd.c | 36 +++++++++++++++++++++++++
>> 4 files changed, 144 insertions(+), 0 deletions(-)
>>
>> diff --git a/board/freescale/mx6qsabreauto/mx6qsabreauto.c b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
>> index 76b024b..9e79915 100644
>> --- a/board/freescale/mx6qsabreauto/mx6qsabreauto.c
>> +++ b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
>> @@ -263,6 +263,37 @@ int board_init(void)
>> return 0;
>> }
>>
>> +/* set all switches APS in normal and PFM mode in standby */
>
> I think that the "chip" is quite misleading.
> Just use chipid and check the real value instead of using it as bool.
> And the PF100 DEVICEID should be defined in pf100 header.
>
Accept. Will change it in next version.
>> +static int pfuze_setup_mode(struct pmic *p, int chip)
>> +{
>> + unsigned char offset, i, switch_num, value;
>> +
>> + if (!chip) {
>> + /* pfuze100 */
>> + switch_num = 6;
>> + offset = 0x31;
>> + } else {
>> + /* pfuze200 */
>> + switch_num = 4;
>> + offset = 0x38;
>> + }
>> +
>> + value = 0xc;
>
> If you change "magic" values (e.g. 0xc) with proper defines in pmic header, then it could be reused in the future and the code will be more readable.
>
Ok.
>> + if (pmic_reg_write(p, 0x23, value)) {
>> + printf("Set SW1AB mode error!\n");
>> + return -1;
>> + }
>> +
>> + for (i = 0; i < switch_num - 1; i++) {
>> + if (pmic_reg_write(p, offset + i * 7, value)) {
>> + printf("Set switch%x mode error!\n", offset);
>> + return -1;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>
> The function above is duplicated few times in each board code.
> Why not make it common and just one?
>
I already have made it as a common function in v4. The patch you reviewed seems not the latest one. I will address your other comments and send out v5.
>> +
>> static int pfuze_init(void)
>> {
>> struct pmic *p;
>> @@ -281,6 +312,11 @@ static int pfuze_init(void)
>> pmic_reg_read(p, PFUZE100_DEVICEID, ®);
>> printf("PMIC: PFUZE100 ID=0x%02x\n", reg);
>>
>> + if (pfuze_setup_mode(p, (reg & 0xf))) {
>> + printf("setup pfuze mode error!\n");
>> + return -1;
>> + }
>> +
>> /* Set SW1AB stanby volage to 0.975V */
>> pmic_reg_read(p, PFUZE100_SW1ABSTBY, ®);
>> reg &= ~0x3f;
>> diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
>> index 72d6562..810fe13 100644
>> --- a/board/freescale/mx6sabresd/mx6sabresd.c
>> +++ b/board/freescale/mx6sabresd/mx6sabresd.c
>> @@ -456,6 +456,37 @@ int board_init(void)
>> return 0;
>> }
>>
>> +/* set all switches APS in normal and PFM mode in standby */
>> +static int pfuze_setup_mode(struct pmic *p, int chip)
>> +{
>> + unsigned char offset, i, switch_num, value;
>> +
>> + if (!chip) {
>> + /* pfuze100 */
>> + switch_num = 6;
>> + offset = 0x31;
>> + } else {
>> + /* pfuze200 */
>> + switch_num = 4;
>> + offset = 0x38;
>> + }
>> +
>> + value = 0xc;
>> + if (pmic_reg_write(p, 0x23, value)) {
>> + printf("Set SW1AB mode error!\n");
>> + return -1;
>> + }
>> +
>> + for (i = 0; i < switch_num - 1; i++) {
>> + if (pmic_reg_write(p, offset + i * 7, value)) {
>> + printf("Set switch%x mode error!\n", offset);
>> + return -1;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static int pfuze_init(void)
>> {
>> struct pmic *p;
>> @@ -475,6 +506,11 @@ static int pfuze_init(void)
>> printf("PMIC: PFUZE%s ID=0x%02x\n",
>> ((reg & 0xf) == 0) ? "100" : "200", reg);
>>
>> + if (pfuze_setup_mode(p, (reg & 0xf))) {
>> + printf("setup pfuze mode error!\n");
>> + return -1;
>> + }
>> +
>> /* Increase VGEN3 from 2.5 to 2.8V */
>> pmic_reg_read(p, PFUZE100_VGEN3VOL, ®);
>> reg &= ~0xf;
>> diff --git a/board/freescale/mx6slevk/mx6slevk.c b/board/freescale/mx6slevk/mx6slevk.c
>> index 8b6a79c..fe5e37d 100644
>> --- a/board/freescale/mx6slevk/mx6slevk.c
>> +++ b/board/freescale/mx6slevk/mx6slevk.c
>> @@ -195,6 +195,37 @@ int board_init(void)
>> return 0;
>> }
>>
>> +/* set all switches APS in normal and PFM mode in standby */
>> +static int pfuze_setup_mode(struct pmic *p, int chip)
>> +{
>> + unsigned char offset, i, switch_num, value;
>> +
>> + if (!chip) {
>> + /* pfuze100 */
>> + switch_num = 6;
>> + offset = 0x31;
>> + } else {
>> + /* pfuze200 */
>> + switch_num = 4;
>> + offset = 0x38;
>> + }
>> +
>> + value = 0xc;
>> + if (pmic_reg_write(p, 0x23, value)) {
>> + printf("Set SW1AB mode error!\n");
>> + return -1;
>> + }
>> +
>> + for (i = 0; i < switch_num - 1; i++) {
>> + if (pmic_reg_write(p, offset + i * 7, value)) {
>> + printf("Set switch%x mode error!\n", offset);
>> + return -1;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static int pfuze_init(void)
>> {
>> struct pmic *p;
>> @@ -214,6 +245,11 @@ static int pfuze_init(void)
>> printf("PMIC: PFUZE%s ID=0x%02x\n",
>> ((reg & 0xf) == 0) ? "100" : "200", reg);
>>
>> + if (pfuze_setup_mode(p, (reg & 0xf))) {
>> + printf("setup pfuze mode error!\n");
>> + return -1;
>> + }
>> +
>> /* Set SW1AB stanby volage to 0.975V */
>> pmic_reg_read(p, PFUZE100_SW1ABSTBY, ®);
>> reg &= ~0x3f;
>> diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
>> index 80d2d99..d6a33cd 100644
>> --- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
>> +++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
>> @@ -170,6 +170,37 @@ struct i2c_pads_info i2c_pad_info1 = {
>> },
>> };
>>
>> +/* set all switches APS in normal and PFM mode in standby */
>> +static int pfuze_setup_mode(struct pmic *p, int chip)
>> +{
>> + unsigned char offset, i, switch_num, value;
>> +
>> + if (!chip) {
>> + /* pfuze100 */
>> + switch_num = 6;
>> + offset = 0x31;
>> + } else {
>> + /* pfuze200 */
>> + switch_num = 4;
>> + offset = 0x38;
>> + }
>> +
>> + value = 0xc;
>> + if (pmic_reg_write(p, 0x23, value)) {
>> + printf("Set SW1AB mode error!\n");
>> + return -1;
>> + }
>> +
>> + for (i = 0; i < switch_num - 1; i++) {
>> + if (pmic_reg_write(p, offset + i * 7, value)) {
>> + printf("Set switch%x mode error!\n", offset);
>> + return -1;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static int pfuze_init(void)
>> {
>> struct pmic *p;
>> @@ -188,6 +219,11 @@ static int pfuze_init(void)
>> pmic_reg_read(p, PFUZE100_DEVICEID, ®);
>> printf("PMIC: PFUZE100 ID=0x%02x\n", reg);
>>
>> + if (pfuze_setup_mode(p, (reg & 0xf))) {
>> + printf("setup pfuze mode error!\n");
>> + return -1;
>> + }
>> +
>> /* Set SW1AB standby voltage to 0.975V */
>> pmic_reg_read(p, PFUZE100_SW1ABSTBY, ®);
>> reg &= ~0x3f;
>>
>
> And as Fabio wrote, please return real error values or use errno instead of "-1".
>
Have fixed it in v4 patch.
> Best regards,
Best regards,
Ye Li
prev parent reply other threads:[~2014-11-05 9:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-10 9:08 [U-Boot] [PATCH 1/4] imx: mx6slevk: Add I2C1 support Ye.Li
2014-09-10 9:08 ` [U-Boot] [PATCH 2/4] imx: mx6slevk: Add PMIC Pfuze support Ye.Li
2014-10-30 10:36 ` Stefano Babic
2014-11-04 9:24 ` Li Ye-B37916
2014-11-04 9:37 ` Li Ye-B37916
2014-11-04 14:09 ` Przemyslaw Marczak
2014-11-05 8:28 ` Li Ye-B37916
2014-11-05 9:27 ` Przemyslaw Marczak
2014-11-04 15:56 ` Przemyslaw Marczak
2014-11-05 8:33 ` Li Ye-B37916
2014-11-05 9:41 ` Przemyslaw Marczak
2014-12-22 12:25 ` Fabio Estevam
2014-09-10 9:08 ` [U-Boot] [PATCH 3/4] imx: mx6sabresd: Add clear print for pfuze200 Ye.Li
2014-09-10 9:08 ` [U-Boot] [PATCH 4/4] imx: mx6: Set Pfuze mode to decrease power number for DSM Ye.Li
2014-09-10 12:14 ` Fabio Estevam
2014-11-04 15:57 ` Przemyslaw Marczak
2014-11-05 9:34 ` Li Ye-B37916 [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5459EF3A.6080008@freescale.com \
--to=b37916@freescale.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox