board: ti: am335x: Fix scale_vcore for beaglebones
authorLokesh Vutla <lokeshvutla@ti.com>
Sat, 10 Jun 2017 07:52:56 +0000 (13:22 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 12 Jun 2017 12:38:48 +0000 (08:38 -0400)
commit 0650798824 ("board: am335x: Introduce scale_vcores")
updated voltages of each board based on efuse. It updated
beagle bone specific voltages under the condition board_is_bone().
But this is true only for BeagleBoneWhite. Due to which voltages
are not configured for BBB, BBW as wrong device is being probed.

So create a common function board_is_beaglebonex() which includes
am335x based beagle family. Use this for updating voltages.

Also remove extra if condition for selecting voltages which is
done later using a switch case and match usb current limit as
before the commit 0650798824.

Fixes: 0650798824 ("board: am335x: Introduce scale_vcores")
Reported-by: Emmanuel Vadot <manu@bidouilliste.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
board/ti/am335x/board.c
board/ti/am335x/board.h

index b5c4ed70b8f3e40ce10d94d63de06ed51bb2ea29..0a16529b5f810d0a3dff9b0798454f414b5b3ba4 100644 (file)
@@ -344,14 +344,6 @@ static void scale_vcores_bone(int freq)
        if (board_is_bone_lt())
                freq = MPUPLL_M_1000;
 
-       if (freq == MPUPLL_M_1000) {
-               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1800MA;
-               mpu_vdd = TPS65217_DCDC_VOLT_SEL_1325MV;
-       } else {
-               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1300MA;
-               mpu_vdd = TPS65217_DCDC_VOLT_SEL_1275MV;
-       }
-
        switch (freq) {
        case MPUPLL_M_1000:
                mpu_vdd = TPS65217_DCDC_VOLT_SEL_1325MV;
@@ -359,15 +351,16 @@ static void scale_vcores_bone(int freq)
                break;
        case MPUPLL_M_800:
                mpu_vdd = TPS65217_DCDC_VOLT_SEL_1275MV;
-               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1800MA;
+               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1300MA;
                break;
        case MPUPLL_M_720:
                mpu_vdd = TPS65217_DCDC_VOLT_SEL_1200MV;
-               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1800MA;
+               usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1300MA;
                break;
        case MPUPLL_M_600:
        case MPUPLL_M_500:
        case MPUPLL_M_300:
+       default:
                mpu_vdd = TPS65217_DCDC_VOLT_SEL_1100MV;
                usb_cur_lim = TPS65217_USB_INPUT_CUR_LIMIT_1300MA;
                break;
@@ -470,7 +463,7 @@ void scale_vcores(void)
        gpi2c_init();
        freq = am335x_get_efuse_mpu_max_freq(cdev);
 
-       if (board_is_bone())
+       if (board_is_beaglebonex())
                scale_vcores_bone(freq);
        else
                scale_vcores_generic(freq);
index 48c139a817d52cca651bdf6720426c2f94af48dd..e13fcff02a0251f1a3ddf2834e6d628bd38e7896 100644 (file)
@@ -39,6 +39,11 @@ static inline int board_is_bbg1(void)
        return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
 }
 
+static inline int board_is_beaglebonex(void)
+{
+       return board_is_bone() || board_is_bone_lt() || board_is_bbg1();
+}
+
 static inline int board_is_evm_sk(void)
 {
        return board_ti_is("A335X_SK");