lkml.org 
[lkml]   [2013]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 10/10] arm: add basic support for Rockchip RK3066a boards
    Date
    Am Montag, 3. Juni 2013, 04:15:46 schrieb Arnd Bergmann:
    > On Monday 03 June 2013 01:02:20 Heiko Stübner wrote:
    > > index 0000000..094b37d
    > > --- /dev/null
    > > +++ b/arch/arm/mach-rockchip/rockchip.c
    >
    > If all goes well, this file can be removed again in 3.11 since it's
    > all generic, but let's add it for now.
    >
    > > +
    > > +static void __init rockchip_timer_init(void)
    > > +{
    > > + rockchip_init_clocks();
    > > + dw_apb_timer_init();
    > > +}
    >
    > Can't you use
    >
    > of_clk_init(NULL);
    > clocksource_of_init();
    >
    > here and change the two drivers to provide the respective macros?

    hmm, while this would make a lot of things easier I don't see right now how
    this would work.

    The dw_apb_timer clocksource does not have its own device node, but instead
    uses two timer devices as clocksource and clockevent.

    Hmm ... one idea would be to wrap them in the dt, like

    clocksource {
    compatible = "snps,dw-apb-clocksource"

    timer@2003a000 {
    compatible = "snps,dw-apb-timer-osc";
    reg = <0x2003a000 0x100>;
    interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clk_gates1 1>, <&clk_gates7 8>;
    clock-names = "timer", "pclk";
    };

    timer@2000e000 {
    compatible = "snps,dw-apb-timer-osc";
    reg = <0x2000e000 0x100>;
    interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clk_gates1 2>, <&clk_gates7 9>;
    clock-names = "timer", "pclk";
    };
    };

    > > +
    > > +static void __init rockchip_dt_init(void)
    > > +{
    > > +#ifdef CONFIG_CACHE_L2X0
    > > + l2x0_of_init(0, ~0UL);
    > > +#endif
    > > + of_platform_populate(NULL, of_default_bus_match_table, NULL,
    > > NULL); +}
    >
    > We still need to find a common location to call l2x0_of_init.
    >
    > > +
    > > +static const char * const rockchip_board_dt_compat[] = {
    > > + "rockchip,rk2928", /* single core */
    > > + "rockchip,rk30xx", /* dual cores */
    > > + "rockchip,rk31xx", /* dual and quad cores */
    > > + NULL,
    > > +};
    >
    > Please use real numbers instead of wildcards: rockchip,rk3066
    > not rockchip,rk30xx.

    ok

    > > +DT_MACHINE_START(ROCKCHIP_DT, "Rockchip Cortex-A9 (Device Tree)")
    > > + .map_io = debug_ll_io_init,
    > > + .init_machine = rockchip_dt_init,
    > > + .init_time = rockchip_timer_init,
    > > + .dt_compat = rockchip_board_dt_compat,
    > > +MACHINE_END
    >
    > The map_io line can already get removed.

    Yesterday I did grep thru the linux-next I was using as base looking for the
    debug_ll_io_init default I read about but was not able to find it ... most
    likely my linux-next is a tad to old.


    > What about SMP support? Still working on it?

    I haven't even looked into it yet ;-) . But this is one of the next items on
    my wishlist ... which also contains making the SoC run at more than 600MHz
    (due to the currently read-only pll which starts at this value and needs to be
    set)

    Reading the "upstream" kernel code to get the necessary informations does not
    make this easier ;-)


    Heiko
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2013-06-03 11:02    [W:3.025 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site