diff mbox

[U-Boot,V4] i.MX6: mx6q_sabrelite: add SATA bindings

Message ID 1335900246-10072-1-git-send-email-eric.nelson@boundarydevices.com
State Superseded
Delegated to: Stefano Babic
Headers show

Commit Message

Eric Nelson May 1, 2012, 7:24 p.m. UTC
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
V2 has been stripped of the board-independent changes and
uses clrsetbits_le32() instead of twiddling bits by hand.

V3 returns immediately from setup_sata() if enable_sata_clock()
returns an error.

V4 removes extra #include and addresses a style issue as discussed
on the ML.

 board/freescale/mx6qsabrelite/mx6qsabrelite.c |   31 +++++++++++++++++++++++++
 include/configs/mx6qsabrelite.h               |   13 ++++++++++
 2 files changed, 44 insertions(+), 0 deletions(-)

Comments

Marek Vasut May 1, 2012, 7:25 p.m. UTC | #1
Dear Eric Nelson,

> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
> ---
> V2 has been stripped of the board-independent changes and
> uses clrsetbits_le32() instead of twiddling bits by hand.
> 
> V3 returns immediately from setup_sata() if enable_sata_clock()
> returns an error.
> 
> V4 removes extra #include and addresses a style issue as discussed
> on the ML.

It's still there ;-)
> 
>  board/freescale/mx6qsabrelite/mx6qsabrelite.c |   31
> +++++++++++++++++++++++++ include/configs/mx6qsabrelite.h               | 
>  13 ++++++++++
>  2 files changed, 44 insertions(+), 0 deletions(-)
> 
> diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> b/board/freescale/mx6qsabrelite/mx6qsabrelite.c index 1d09a72..cdd2f15
> 100644
> --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
> @@ -25,6 +25,7 @@
>  #include <asm/arch/imx-regs.h>
>  #include <asm/arch/mx6x_pins.h>
>  #include <asm/arch/iomux-v3.h>
> +#include <asm/arch/clock.h>
>  #include <asm/errno.h>
>  #include <asm/gpio.h>
>  #include <mmc.h>
> @@ -267,6 +268,32 @@ int board_eth_init(bd_t *bis)
>  	return 0;
>  }
> 
> +#ifdef CONFIG_CMD_SATA
> +
> +int setup_sata(void)
> +{
> +	struct iomuxc_base_regs *const iomuxc_regs
> +		= (struct iomuxc_base_regs *) IOMUXC_BASE_ADDR;
> +	int ret = enable_sata_clock();
> +	if (ret)
> +		return ret;
> +
> +	clrsetbits_le32(&iomuxc_regs->gpr[13],
> +			IOMUXC_GPR13_SATA_MASK,
> +			IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
> +			|IOMUXC_GPR13_SATA_PHY_7_SATA2M
> +			|IOMUXC_GPR13_SATA_SPEED_3G
> +			|(3<<IOMUXC_GPR13_SATA_PHY_6_SHIFT)
> +			|IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
> +			|IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
> +			|IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
> +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
> +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
> +



> +	return 0 ; <---- here :-)



> +}
> +#endif
> +
>  int board_early_init_f(void)
>  {
>         setup_iomux_uart();
> @@ -283,6 +310,10 @@ int board_init(void)
>  	setup_spi();
>  #endif
> 
> +#ifdef CONFIG_CMD_SATA
> +	setup_sata();
> +#endif
> +
>         return 0;
>  }
> 
> diff --git a/include/configs/mx6qsabrelite.h
> b/include/configs/mx6qsabrelite.h index f52c3c7..1d92dd0 100644
> --- a/include/configs/mx6qsabrelite.h
> +++ b/include/configs/mx6qsabrelite.h
> @@ -71,6 +71,19 @@
>  #define CONFIG_CMD_FAT
>  #define CONFIG_DOS_PARTITION
> 
> +#define CONFIG_CMD_SATA
> +/*
> + * SATA Configs
> + */
> +#ifdef CONFIG_CMD_SATA
> +#define CONFIG_DWC_AHSATA
> +#define CONFIG_SYS_SATA_MAX_DEVICE	1
> +#define CONFIG_DWC_AHSATA_PORT_ID	0
> +#define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
> +#define CONFIG_LBA48
> +#define CONFIG_LIBATA
> +#endif
> +
>  #define CONFIG_CMD_PING
>  #define CONFIG_CMD_DHCP
>  #define CONFIG_CMD_MII
Eric Nelson May 1, 2012, 7:53 p.m. UTC | #2
On 05/01/2012 12:25 PM, Marek Vasut wrote:
> Dear Eric Nelson,
>
>> Signed-off-by: Eric Nelson<eric.nelson@boundarydevices.com>
>> ---
>> V2 has been stripped of the board-independent changes and
>> uses clrsetbits_le32() instead of twiddling bits by hand.
>>
>> V3 returns immediately from setup_sata() if enable_sata_clock()
>> returns an error.
>>
>> V4 removes extra #include and addresses a style issue as discussed
>> on the ML.
>
> It's still there ;-)
 >>
 >> <snip>
 >>
>> +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
>> +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
>> +
>
>> +	return 0 ;<---- here :-)
>

My eyes are clearly not as finely tuned as yours...

<thought to self>
What are the odd that I could tweak checkpatch.pl
without introducing another style issue?
</thought to self>

V5 forthcoming...
Marek Vasut May 1, 2012, 9:11 p.m. UTC | #3
Dear Eric Nelson,

> On 05/01/2012 12:25 PM, Marek Vasut wrote:
> > Dear Eric Nelson,
> > 
> >> Signed-off-by: Eric Nelson<eric.nelson@boundarydevices.com>
> >> ---
> >> V2 has been stripped of the board-independent changes and
> >> uses clrsetbits_le32() instead of twiddling bits by hand.
> >> 
> >> V3 returns immediately from setup_sata() if enable_sata_clock()
> >> returns an error.
> >> 
> >> V4 removes extra #include and addresses a style issue as discussed
> >> on the ML.
> > 
> > It's still there ;-)
> > 
>  >> <snip>
> >> 
> >> +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
> >> +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
> >> +
> >> 
> >> +	return 0 ;<---- here :-)
> 
> My eyes are clearly not as finely tuned as yours...

1 dioptry on left eye, lazy-eye blindness on the right one ;-)

> <thought to self>
> What are the odd that I could tweak checkpatch.pl
> without introducing another style issue?
> </thought to self>

That'd be awesome.

> V5 forthcoming...

Thanks :)

Best regards,
Marek Vasut
Eric Nelson May 1, 2012, 9:58 p.m. UTC | #4
On 05/01/2012 02:11 PM, Marek Vasut wrote:
> Dear Eric Nelson,
>
>> On 05/01/2012 12:25 PM, Marek Vasut wrote:
>>> Dear Eric Nelson,
>>>
>>>> Signed-off-by: Eric Nelson<eric.nelson@boundarydevices.com>
>>>> ---
>>>> V2 has been stripped of the board-independent changes and
>>>> uses clrsetbits_le32() instead of twiddling bits by hand.
>>>>
>>>> V3 returns immediately from setup_sata() if enable_sata_clock()
>>>> returns an error.
>>>>
>>>> V4 removes extra #include and addresses a style issue as discussed
>>>> on the ML.
>>>
>>> It's still there ;-)
>>>
>>   >>  <snip>
>>>>
>>>> +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
>>>> +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
>>>> +
>>>>
>>>> +	return 0 ;<---- here :-)
>>
>> My eyes are clearly not as finely tuned as yours...
>
> 1 dioptry on left eye, lazy-eye blindness on the right one ;-)
>

For all that, you seem to see quite well!

>> <thought to self>
>> What are the odd that I could tweak checkpatch.pl
>> without introducing another style issue?
>> </thought to self>
>
> That'd be awesome.
>

Forthcoming...
diff mbox

Patch

diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
index 1d09a72..cdd2f15 100644
--- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
+++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
@@ -25,6 +25,7 @@ 
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/mx6x_pins.h>
 #include <asm/arch/iomux-v3.h>
+#include <asm/arch/clock.h>
 #include <asm/errno.h>
 #include <asm/gpio.h>
 #include <mmc.h>
@@ -267,6 +268,32 @@  int board_eth_init(bd_t *bis)
 	return 0;
 }
 
+#ifdef CONFIG_CMD_SATA
+
+int setup_sata(void)
+{
+	struct iomuxc_base_regs *const iomuxc_regs
+		= (struct iomuxc_base_regs *) IOMUXC_BASE_ADDR;
+	int ret = enable_sata_clock();
+	if (ret)
+		return ret;
+
+	clrsetbits_le32(&iomuxc_regs->gpr[13],
+			IOMUXC_GPR13_SATA_MASK,
+			IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
+			|IOMUXC_GPR13_SATA_PHY_7_SATA2M
+			|IOMUXC_GPR13_SATA_SPEED_3G
+			|(3<<IOMUXC_GPR13_SATA_PHY_6_SHIFT)
+			|IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
+			|IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
+			|IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
+			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
+			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
+
+	return 0 ;
+}
+#endif
+
 int board_early_init_f(void)
 {
        setup_iomux_uart();
@@ -283,6 +310,10 @@  int board_init(void)
 	setup_spi();
 #endif
 
+#ifdef CONFIG_CMD_SATA
+	setup_sata();
+#endif
+
        return 0;
 }
 
diff --git a/include/configs/mx6qsabrelite.h b/include/configs/mx6qsabrelite.h
index f52c3c7..1d92dd0 100644
--- a/include/configs/mx6qsabrelite.h
+++ b/include/configs/mx6qsabrelite.h
@@ -71,6 +71,19 @@ 
 #define CONFIG_CMD_FAT
 #define CONFIG_DOS_PARTITION
 
+#define CONFIG_CMD_SATA
+/*
+ * SATA Configs
+ */
+#ifdef CONFIG_CMD_SATA
+#define CONFIG_DWC_AHSATA
+#define CONFIG_SYS_SATA_MAX_DEVICE	1
+#define CONFIG_DWC_AHSATA_PORT_ID	0
+#define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
+#define CONFIG_LBA48
+#define CONFIG_LIBATA
+#endif
+
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_MII