Thread (43 messages) 43 messages, 12 authors, 2013-06-06

Re: [PATCH 10/10] arm: add basic support for Rockchip RK3066a boards

From: Heiko Stübner <heiko@sntech.de>
Date: 2013-06-03 09:47:15
Also in: linux-arm-kernel, linux-mmc, lkml

Am Montag, 3. Juni 2013, 11:22:35 schrieb Arnd Bergmann:
On Monday 03 June 2013 10:23:49 Heiko Stübner wrote:
quoted
Am Montag, 3. Juni 2013, 04:15:46 schrieb Arnd Bergmann:
quoted
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";
		
		};
	
	};
Can't you just have multiple CLOCKSOURCE_OF_DECLARE() lines, one
for each of the nodes?
The timers are of the same type and the clocksource driver just grabs the 
first of them as clockevent and the second as clocksource, so I think two 
CLOCKSOURCE_OF_DECLARE lines won't do.

But I just looked at clocksource_of_init a bit more closely, which does a 
for_each_matching_node_and_match over the nodes. So the init_func could grab 
the device for the clockevent on the first call and the clocksource when it 
gets called for the second matching node.

quoted
quoted
quoted
+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.
Yes, it only showed up in today's linux-next. I thought it was older.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help