[U-Boot] [PATCH V2] i.MX6: mx6q_sabrelite: add SATA bindings

stefano babic sbabic at denx.de
Sat Mar 24 09:19:23 CET 2012


Am 24/03/2012 08:09, schrieb Dirk Behme:
> Hi Stefano,

Hi Dirk,

> 
> On 13.03.2012 17:59, Eric Nelson wrote:
>> Signed-off-by: Eric Nelson<eric.nelson at boundarydevices.com>
> 
> Should this patch go into your u-boot-imx.git -next?

mmhh...in patchworks this is marked as "Changes requested" - I do not
remember now why, but I have a couple of open questions rereading the
patch...

>> diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
>> b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
>> index 1d09a72..5915159 100644
>> --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
>> +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
>> @@ -23,6 +23,7 @@
>>   #include<common.h>
>>   #include<asm/io.h>
>>   #include<asm/arch/imx-regs.h>
>> +#include<asm/arch/ccm_regs.h>
>>   #include<asm/arch/mx6x_pins.h>
>>   #include<asm/arch/iomux-v3.h>
>>   #include<asm/errno.h>
>> @@ -267,6 +268,60 @@ int board_eth_init(bd_t *bis)
>>       return 0;
>>   }
>>
>> +#ifdef CONFIG_CMD_SATA
>> +
>> +int setup_sata(void)
>> +{
>> +    u32 reg = 0;
>> +    s32 timeout = 100000;
>> +    struct imx_ccm_reg *const imx_ccm
>> +        = (struct imx_ccm_reg *) CCM_BASE_ADDR;
>> +    struct iomuxc_base_regs *const iomuxc_regs
>> +        = (struct iomuxc_base_regs *) IOMUXC_BASE_ADDR;
>> +
>> +    /* Enable sata clock */
>> +    reg = readl(&imx_ccm->CCGR5); /* CCGR5 */
>> +    reg |= MXC_CCM_CCGR5_CG2_MASK;
>> +    writel(reg,&imx_ccm->CCGR5);
>> +
>> +    /* Enable PLLs */
>> +    reg = readl(&imx_ccm->analog_pll_enet);
>> +    reg&= ~BM_ANADIG_PLL_SYS_POWERDOWN;
>> +    writel(reg,&imx_ccm->analog_pll_enet);
>> +    reg |= BM_ANADIG_PLL_SYS_ENABLE;
>> +    while (timeout--) {
>> +        if (readl(&imx_ccm->analog_pll_enet)&  BM_ANADIG_PLL_SYS_LOCK)
>> +            break;
>> +    }
>> +    if (timeout<= 0)
>> +        return -1;
>> +    reg&= ~BM_ANADIG_PLL_SYS_BYPASS;
>> +    writel(reg,&imx_ccm->analog_pll_enet);
>> +    reg |= BM_ANADIG_PLL_ENET_ENABLE_SATA;
>> +    writel(reg,&imx_ccm->analog_pll_enet);

Is it all this part really board specific or mx6 specific ? I would like
to split this part into a common and a board specific parts, and making
the common part available for other boards.

>> +
>> +    /* Enable sata phy */
>> +    reg = readl(&iomuxc_regs->gpr[13])
>> +        &  (IOMUXC_GPR13_SDMA_STOP_REQ
>> +           |IOMUXC_GPR13_CAN2_STOP_REQ
>> +           |IOMUXC_GPR13_CAN1_STOP_REQ
>> +           |IOMUXC_GPR13_ENET_STOP_REQ);

Why do you need to touch CAN bits ?

Best regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list