123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- * Broadcom cable/DSL/settop platforms
- Required properties:
- - compatible: "brcm,bcm3368", "brcm,bcm3384", "brcm,bcm33843"
- "brcm,bcm3384-viper", "brcm,bcm33843-viper"
- "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6362", "brcm,bcm6368",
- "brcm,bcm63168", "brcm,bcm63268",
- "brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360",
- "brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425"
- The experimental -viper variants are for running Linux on the 3384's
- BMIPS4355 cable modem CPU instead of the BMIPS5000 application processor.
- Power management
- ----------------
- For power management (particularly, S2/S3/S5 system suspend), the following SoC
- components are needed:
- = Always-On control block (AON CTRL)
- This hardware provides control registers for the "always-on" (even in low-power
- modes) hardware, such as the Power Management State Machine (PMSM).
- Required properties:
- - compatible : should be one of
- "brcm,bcm7425-aon-ctrl"
- "brcm,bcm7429-aon-ctrl"
- "brcm,bcm7435-aon-ctrl" and
- "brcm,brcmstb-aon-ctrl"
- - reg : the register start and length for the AON CTRL block
- Example:
- syscon@410000 {
- compatible = "brcm,bcm7425-aon-ctrl", "brcm,brcmstb-aon-ctrl";
- reg = <0x410000 0x400>;
- };
- = Memory controllers
- A Broadcom STB SoC typically has a number of independent memory controllers,
- each of which may have several associated hardware blocks, which are versioned
- independently (control registers, DDR PHYs, etc.). One might consider
- describing these controllers as a parent "memory controllers" block, which
- contains N sub-nodes (one for each controller in the system), each of which is
- associated with a number of hardware register resources (e.g., its PHY.
- == MEMC (MEMory Controller)
- Represents a single memory controller instance.
- Required properties:
- - compatible : should contain "brcm,brcmstb-memc" and "simple-bus"
- - ranges : should contain the child address in the parent address
- space, must be 0 here, and the register start and length of
- the entire memory controller (including all sub nodes: DDR PHY,
- arbiter, etc.)
- - #address-cells : must be 1
- - #size-cells : must be 1
- Example:
- memory-controller@0 {
- compatible = "brcm,brcmstb-memc", "simple-bus";
- ranges = <0x0 0x0 0xa000>;
- #address-cells = <1>;
- #size-cells = <1>;
- memc-arb@1000 {
- ...
- };
- memc-ddr@2000 {
- ...
- };
- ddr-phy@6000 {
- ...
- };
- };
- Should contain subnodes for any of the following relevant hardware resources:
- == DDR PHY control
- Control registers for this memory controller's DDR PHY.
- Required properties:
- - compatible : should contain one of these
- "brcm,brcmstb-ddr-phy-v64.5"
- "brcm,brcmstb-ddr-phy"
- - reg : the DDR PHY register range and length
- Example:
- ddr-phy@6000 {
- compatible = "brcm,brcmstb-ddr-phy-v64.5";
- reg = <0x6000 0xc8>;
- };
- == DDR memory controller sequencer
- Control registers for this memory controller's DDR memory sequencer
- Required properties:
- - compatible : should contain one of these
- "brcm,bcm7425-memc-ddr"
- "brcm,bcm7429-memc-ddr"
- "brcm,bcm7435-memc-ddr" and
- "brcm,brcmstb-memc-ddr"
- - reg : the DDR sequencer register range and length
- Example:
- memc-ddr@2000 {
- compatible = "brcm,bcm7425-memc-ddr", "brcm,brcmstb-memc-ddr";
- reg = <0x2000 0x300>;
- };
- == MEMC Arbiter
- The memory controller arbiter is responsible for memory clients allocation
- (bandwidth, priorities etc.) and needs to have its contents restored during
- deep sleep states (S3).
- Required properties:
- - compatible : should contain one of these
- "brcm,brcmstb-memc-arb-v10.0.0.0"
- "brcm,brcmstb-memc-arb"
- - reg : the DDR Arbiter register range and length
- Example:
- memc-arb@1000 {
- compatible = "brcm,brcmstb-memc-arb-v10.0.0.0";
- reg = <0x1000 0x248>;
- };
- == Timers
- The Broadcom STB chips contain a timer block with several general purpose
- timers that can be used.
- Required properties:
- - compatible : should contain one of:
- "brcm,bcm7425-timers"
- "brcm,bcm7429-timers"
- "brcm,bcm7435-timers" and
- "brcm,brcmstb-timers"
- - reg : the timers register range
- - interrupts : the interrupt line for this timer block
- Example:
- timers: timer@4067c0 {
- compatible = "brcm,bcm7425-timers", "brcm,brcmstb-timers";
- reg = <0x4067c0 0x40>;
- interrupts = <&periph_intc 19>;
- };
|