]> git.sur5r.net Git - u-boot/commitdiff
Add support for BeagleBoard.org PocketBeagle
authorJason Kridner <jkridner@gmail.com>
Wed, 7 Mar 2018 10:40:41 +0000 (05:40 -0500)
committerTom Rini <trini@konsulko.com>
Fri, 6 Apr 2018 21:04:33 +0000 (17:04 -0400)
Texas Instruments AM3358 based low-cost board using Octavo Systems OSD3358 SIP
with built-in TPS65217 PMIC and 512MB DDR3. Board features small 35mm x
55mm size, high-speed USB OTG, microSD and 72 0.1" expansion header
pins with 2xSPI, 2xI2C, 2xUART, USB, 8xADC, up-to-44 GPIO, PRU pins and much more.

https://beagleboard.org/pocket

This was tested using the am335x_evm_usbspl_defconfig.

Note that MII pins are enabled despite not having Ethernet on this
board. This avoids an issue where otherwise many timeout errors would be
generated. See https://e2e.ti.com/support/arm/sitara_arm/f/791/t/298976
for some related discussion.

Signed-off-by: Jason Kridner <jdk@ti.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
board/ti/am335x/board.c
board/ti/am335x/board.h
board/ti/am335x/mux.c
include/configs/am335x_evm.h

index f8026572997e19e9c8d5933182e3c7ff1ed9fb9c..7f0fb5d2bad89716ca3d137dec75b26dda9a9871 100644 (file)
@@ -264,7 +264,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
 
        if (board_is_evm_sk())
                return &dpll_ddr3_303MHz[ind];
-       else if (board_is_bone_lt() || board_is_icev2())
+       else if (board_is_pb() || board_is_bone_lt() || board_is_icev2())
                return &dpll_ddr3_400MHz[ind];
        else if (board_is_evm_15_or_later())
                return &dpll_ddr3_303MHz[ind];
@@ -295,7 +295,7 @@ const struct dpll_params *get_dpll_mpu_params(void)
        if (bone_not_connected_to_ac_power())
                freq = MPUPLL_M_600;
 
-       if (board_is_bone_lt())
+       if (board_is_pb() || board_is_bone_lt())
                freq = MPUPLL_M_1000;
 
        switch (freq) {
@@ -341,7 +341,7 @@ static void scale_vcores_bone(int freq)
         * Override what we have detected since we know if we have
         * a Beaglebone Black it supports 1GHz.
         */
-       if (board_is_bone_lt())
+       if (board_is_pb() || board_is_bone_lt())
                freq = MPUPLL_M_1000;
 
        switch (freq) {
@@ -542,7 +542,7 @@ void sdram_init(void)
        if (board_is_evm_sk())
                config_ddr(303, &ioregs_evmsk, &ddr3_data,
                           &ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
-       else if (board_is_bone_lt())
+       else if (board_is_pb() || board_is_bone_lt())
                config_ddr(400, &ioregs_bonelt,
                           &ddr3_beagleblack_data,
                           &ddr3_beagleblack_cmd_ctrl_data,
@@ -941,6 +941,8 @@ int board_fit_config_name_match(const char *name)
                return 0;
        else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
                return 0;
+       else if (board_is_pb() && !strcmp(name, "am335x-pocketbeagle"))
+               return 0;
        else if (board_is_evm_sk() && !strcmp(name, "am335x-evmsk"))
                return 0;
        else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen"))
index e13fcff02a0251f1a3ddf2834e6d628bd38e7896..bab5b77f3436ad8c750c23f30d79926d8122611b 100644 (file)
@@ -34,6 +34,11 @@ static inline int board_is_bone_lt(void)
        return board_ti_is("A335BNLT");
 }
 
+static inline int board_is_pb(void)
+{
+       return board_ti_is("A335PBGL");
+}
+
 static inline int board_is_bbg1(void)
 {
        return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
@@ -41,7 +46,7 @@ static inline int board_is_bbg1(void)
 
 static inline int board_is_beaglebonex(void)
 {
-       return board_is_bone() || board_is_bone_lt() || board_is_bbg1();
+       return board_is_pb() || board_is_bone() || board_is_bone_lt() || board_is_bbg1();
 }
 
 static inline int board_is_evm_sk(void)
index ad85b3a19ac3c6c4483132d763678eb7fb1b1703..aa187605d091ef6053da2bdc00180bf1356d0130 100644 (file)
@@ -390,6 +390,9 @@ void enable_board_pin_mux(void)
 #else
                configure_module_pin_mux(mmc1_pin_mux);
 #endif
+       } else if (board_is_pb()) {
+               configure_module_pin_mux(mii1_pin_mux);
+               configure_module_pin_mux(mmc0_pin_mux);
        } else if (board_is_icev2()) {
                configure_module_pin_mux(mmc0_pin_mux);
                configure_module_pin_mux(gpio0_18_pin_mux);
index 158b7d4e8eb89a011555f965363153fa6b2ae3f4..8d45b6fadec2d6fbe6b083098726ead8dca8ca31 100644 (file)
                        "setenv fdtfile am335x-bone.dtb; fi; " \
                "if test $board_name = A335BNLT; then " \
                        "setenv fdtfile am335x-boneblack.dtb; fi; " \
+               "if test $board_name = A335PBGL; then " \
+                       "setenv fdtfile am335x-pocketbeagle.dtb; fi; " \
                "if test $board_name = BBBW; then " \
                        "setenv fdtfile am335x-boneblack-wireless.dtb; fi; " \
                "if test $board_name = BBG1; then " \