Hemant Pedanekar <[email protected]> writes:
> Note that configuration option CONFIG_DAVINCI_RESET_CLOCKS should _not_ be
> selected if kernel is being built for DM646x PCI target. Slecting this option
> will disable the PCI PSC during kernel boot, thus preventing any access to PCI
> backend configuration (e.g., if PCI window needs to be changed). This problem
> is
> not applicable when kernel is loaded on Dm646x PCI host since the host setup
> code would call clk_enable explicitly.
>
> Signed-off-by: Hemant Pedanekar <[email protected]>
Based on the changelog doesn't really belong here. I would
recommend an additional patch to board-dm646x-evm.c which adds a
function to enable PCI target support. This function would be
documented with the above changelog and simply do a clk_get/clk_enable
on the PCI clock.
We could maybe use or extend the pci= kernel command line argument to
trigger this function.
The rest of the patch looks mostly ok...
> ---
> arch/arm/mach-davinci/dm646x.c | 11 +++++++++++
> arch/arm/mach-davinci/include/mach/mux.h | 6 ++++++
> 2 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
> index 8fa2803..99f4d33 100644
> --- a/arch/arm/mach-davinci/dm646x.c
> +++ b/arch/arm/mach-davinci/dm646x.c
> @@ -306,6 +306,12 @@ static struct clk vpif1_clk = {
> .flags = ALWAYS_ENABLED,
> };
>
> +static struct clk pci_clk = {
> + .name = "pci",
> + .parent = &pll1_sysclk2,
> + .lpsc = DM646X_LPSC_PCI,
> +};
> +
Can you please group this with the other PLL1 SYSCLK2 clocks please.
Like right after edma_tc3_clk.
> struct davinci_clk dm646x_clks[] = {
> CLK(NULL, "ref", &ref_clk),
> CLK(NULL, "aux", &aux_clkin),
> @@ -342,6 +348,7 @@ struct davinci_clk dm646x_clks[] = {
> CLK(NULL, "pwm1", &pwm1_clk),
> CLK(NULL, "timer0", &timer0_clk),
> CLK(NULL, "timer1", &timer1_clk),
> + CLK(NULL, "pci", &pci_clk),
> CLK("watchdog", NULL, &timer2_clk),
> CLK("palm_bk3710", NULL, &ide_clk),
> CLK(NULL, "vpif0", &vpif0_clk),
> @@ -409,6 +416,10 @@ static const struct mux_config dm646x_pins[] = {
> #ifdef CONFIG_DAVINCI_MUX
> MUX_CFG(DM646X, ATAEN, 0, 0, 5, 1, true)
>
> +MUX_CFG(DM646X, PCIEN, 0, 0, 7, 4, true)
> +
> +MUX_CFG(DM646X, HPI32EN, 0, 0, 7, 2, true)
> +
> MUX_CFG(DM646X, AUDCK1, 0, 29, 1, 0, false)
>
> MUX_CFG(DM646X, AUDCK0, 0, 28, 1, 0, false)
> diff --git a/arch/arm/mach-davinci/include/mach/mux.h
> b/arch/arm/mach-davinci/include/mach/mux.h
> index 368fca6..7ea97cf 100644
> --- a/arch/arm/mach-davinci/include/mach/mux.h
> +++ b/arch/arm/mach-davinci/include/mach/mux.h
> @@ -94,6 +94,12 @@ enum davinci_dm646x_index {
> /* ATA function */
> DM646X_ATAEN,
>
> + /* PCI function */
> + DM646X_PCIEN,
> +
> + /* HPI 32-bit */
> + DM646X_HPI32EN,
> +
> /* AUDIO Clock */
> DM646X_AUDCK1,
> DM646X_AUDCK0,
Kevin
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source