- 15 1月, 2013 1 次提交
-
-
由 Dom Cobley 提交于
Add a pm_power_off function that resets the SoC, and indicates to bootcode.bin not to boot. Should allow a lower power 'off' state, even if it's not really off. This is commit 48efdd2 "Add a pm_power_off function that resets us, ..." downstream. Signed-off-by: NDom Cobley <popcornmix@gmail.com> [swarren: Various non-semantic rework for upstreaming] Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
-
- 25 12月, 2012 1 次提交
-
-
由 Stephen Warren 提交于
Now that the only field in struct sys_timer is .init, delete the struct, and replace the machine descriptor .timer field with the initialization function itself. This will enable moving timer drivers into drivers/clocksource without having to place a public prototype of each struct sys_timer object into include/linux; the intent is to create a single of_clocksource_init() function that determines which timer driver to initialize by scanning the device dtree, much like the proposed irqchip_init() at: http://www.spinics.net/lists/arm-kernel/msg203686.html Includes mach-omap2 fixes from Igor Grinberg. Tested-by: NRobert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: NStephen Warren <swarren@nvidia.com>
-
- 26 10月, 2012 2 次提交
-
-
由 Stephen Warren 提交于
Implement the machine restart hook using the SoC's watchdog timer module. To support this, define a DT binding for the watchdog module, and add it to the device tree. The downstream rpi-split branch contains a full watchdog timer driver implementation, which also implements the restart hook. However, the restart function is largely separate from the watchdog driver, so for simplicity, the restart hook is implemented here directly in the main machine source file. Overall structure (separate setup/restart) functions derived from the picoxcell ARM support. Watchdog register IO sequence taken from code by Simon Arlott. Note that the watchdog module is not documented in BCM2835-ARM-Peripherals.pdf. Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
-
由 Domenico Andreoli 提交于
Add two missing static modifiers. Signed-off-by: NDomenico Andreoli <domenico.andreoli@linux.com> Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
-
- 20 9月, 2012 4 次提交
-
-
由 Simon Arlott 提交于
This patch adds a minimal stub clock driver for the BCM2835. Its sole purpose is to allow the PL011 AMBA clk_get() API calls to provide something that looks enough like a clock that the driver probes and operates correctly. This patch was extracted from git://github.com/lp0/linux.git branch rpi-split as of 2012/09/08, and modified as follows: * Reworked to call clk_register_fixed_rate(), and clk_register_clkdev() rather than using static data to represent the clocks. * Moved implementation to drivers/clk/. * Modified .dev_id for UART clocks to match UART DT node names. * s/bcm2708/bcm2835/. * Modified device tree vendor prefix. Signed-off-by: NChris Boot <bootc@bootc.net> Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NDom Cobley <popcornmix@gmail.com> Signed-off-by: NDom Cobley <dc4@broadcom.com> Signed-off-by: NStephen Warren <swarren@wwwdotorg.org> Acked-by: NMike Turquette <mturquette@linaro.org>
-
由 Simon Arlott 提交于
The System Timer peripheral provides four 32-bit timer channels and a single 64-bit free running counter. Each channel has an output compare register, which is compared against the 32 least significant bits of the free running counter values, and generates an interrupt. Timer 3 is used as the Linux timer. The BCM2835 also contains an SP804-based timer module. However, it apparently has significant differences from the standard SP804 IP block, and Broadcom's documentation recommends using the system timer instead. This patch was extracted from git://github.com/lp0/linux.git branch rpi-split as of 2012/09/08, and modified as follows: * s/bcm2708/bcm2835/. * Modified device tree vendor prefix. * Moved to drivers/clocksource/. This looks like the desired location for such code now. * Added DT binding docs. * Moved struct sys_timer bcm2835_timer into time.c to encapsulate it more. * Simplified bcm2835_time_init() to find one matching node and operate on it, rather than looping over all matching nodes. This seems more consistent with other clocksource code. * Simplified bcm2835_time_init() using of_iomap(). * Renamed struct bcm2835_timer.index to match_mask to better represent its purpose. * s/printk(PR_INFO/pr_info(/ Signed-off-by: NChris Boot <bootc@bootc.net> Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NDom Cobley <popcornmix@gmail.com> Signed-off-by: NDom Cobley <dc4@broadcom.com> Signed-off-by: NStephen Warren <swarren@wwwdotorg.org> Acked-by: NArnd Bergmann <arnd@arndb.de>
-
由 Simon Arlott 提交于
The BCM2835 contains a custom interrupt controller, which supports 72 interrupt sources using a 2-level register scheme. The interrupt controller, or the HW block containing it, is referred to occasionally as "armctrl" in the SoC documentation, hence the symbol naming in the code. This patch was extracted from git://github.com/lp0/linux.git branch rpi-split as of 2012/09/08, and modified as follows: * s/bcm2708/bcm2835/. * Modified device tree vendor prefix. * Moved implementation to drivers/irchip/. * Added devicetree documentation, and hence removed list of IRQs from bcm2835.dtsi. * Changed shift in MAKE_HWIRQ() and HWIRQ_BANK() from 8 to 5 to reduce the size of the hwirq space, and pass the total size of the hwirq space to irq_domain_add_linear(), rather than just the number of valid hwirqs; the two are different due to the hwirq space being sparse. * Added the interrupt controller DT node to the top-level of the DT, rather than nesting it inside a /axi node. Hence, changed the reg value since /axi had a ranges property. This seems simpler to me, but I'm not sure if everyone will like this change or not. * Don't set struct irq_domain_ops.map = irq_domain_simple_map, hence removing the need to patch include/linux/irqdomain.h or kernel/irq/irqdomain.c. * Simplified armctrl_of_init() using of_iomap(). * Removed unused IS_VALID_BANK()/IS_VALID_IRQ() macros. * Renamed armctrl_handle_irq() to prevent possible symbol clashes. * Made armctrl_of_init() static. * Removed comment "Each bank is registered as a separate interrupt controller" since this is no longer true. * Removed FSF address from license header. * Added my name to copyright header. Signed-off-by: NChris Boot <bootc@bootc.net> Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NDom Cobley <popcornmix@gmail.com> Signed-off-by: NDom Cobley <dc4@broadcom.com> Signed-off-by: NStephen Warren <swarren@wwwdotorg.org> Acked-by: NArnd Bergmann <arnd@arndb.de>
-
由 Simon Arlott 提交于
The BCM2835 is an ARM SoC from Broadcom. This patch adds very basic support for this SoC. http://www.broadcom.com/products/BCM2835 http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf Note that the documentation in the latter .pdf assumes the MMU setup that's used on the "VideoCore" companion processor, and does not document physical peripheral addresses. Subtract 0x5e000000 to obtain the physical addresses. This is accounted for by the ranges property in the /soc node in the device tree. The BCM2835 SoC is used in the Raspberry Pi. This patch also adds a minimal device tree for this board; enough to see some very early kernel boot messages through earlyprintk. However, this patch does not yet provide a useful booting system. http://www.raspberrypi.org/. This patch was extracted from git://github.com/lp0/linux.git branch rpi-split from 3-4 months ago, and significantly stripped down and modified since. Signed-off-by: NChris Boot <bootc@bootc.net> Signed-off-by: NSimon Arlott <simon@fire.lp0.eu> Signed-off-by: NDom Cobley <popcornmix@gmail.com> Signed-off-by: NDom Cobley <dc4@broadcom.com> Signed-off-by: NStephen Warren <swarren@wwwdotorg.org> Acked-by: NArnd Bergmann <arnd@arndb.de>
-