Path: blob/master/Documentation/devicetree/bindings/arm/bcm/brcm,brcmstb.txt
26309 views
ARM Broadcom STB platforms Device Tree Bindings1-----------------------------------------------2Boards with Broadcom Brahma15 ARM-based BCMxxxx (generally BCM7xxx variants)3SoC shall have the following DT organization:45Required root node properties:6- compatible: "brcm,bcm<chip_id>", "brcm,brcmstb"78example:9/ {10#address-cells = <2>;11#size-cells = <2>;12model = "Broadcom STB (bcm7445)";13compatible = "brcm,bcm7445", "brcm,brcmstb";1415Further, syscon nodes that map platform-specific registers used for general16system control is required:1718- compatible: "brcm,bcm<chip_id>-sun-top-ctrl", "syscon"19- compatible: "brcm,bcm<chip_id>-cpu-biu-ctrl",20"brcm,brcmstb-cpu-biu-ctrl",21"syscon"22- compatible: "brcm,bcm<chip_id>-hif-continuation", "syscon"2324cpu-biu-ctrl node25-------------------26SoCs with Broadcom Brahma15 ARM-based and Brahma53 ARM64-based CPUs have a27specific Bus Interface Unit (BIU) block which controls and interfaces the CPU28complex to the different Memory Controller Ports (MCP), one per memory29controller (MEMC). This BIU block offers a feature called Write Pairing which30consists in collapsing two adjacent cache lines into a single (bursted) write31transaction towards the memory controller (MEMC) to maximize write bandwidth.3233Required properties:3435- compatible: must be "brcm,bcm7445-cpu-biu-ctrl", "brcm,brcmstb-cpu-biu-ctrl", "syscon"3637Optional properties:3839- brcm,write-pairing:40Boolean property, which when present indicates that the chip41supports write-pairing.4243example:44rdb {45#address-cells = <1>;46#size-cells = <1>;47compatible = "simple-bus";48ranges = <0 0x00 0xf0000000 0x1000000>;4950sun_top_ctrl: syscon@404000 {51compatible = "brcm,bcm7445-sun-top-ctrl", "syscon";52reg = <0x404000 0x51c>;53};5455hif_cpubiuctrl: syscon@3e2400 {56compatible = "brcm,bcm7445-cpu-biu-ctrl", "brcm,brcmstb-cpu-biu-ctrl", "syscon";57reg = <0x3e2400 0x5b4>;58brcm,write-pairing;59};6061hif_continuation: syscon@452000 {62compatible = "brcm,bcm7445-hif-continuation", "syscon";63reg = <0x452000 0x100>;64};65};6667Nodes that allow for support of SMP initialization and reboot are required:6869smpboot70-------71Required properties:7273- compatible74The string "brcm,brcmstb-smpboot".7576- syscon-cpu77A phandle / integer array property which lets the BSP know the location78of certain CPU power-on registers.7980The layout of the property is as follows:81o a phandle to the "hif_cpubiuctrl" syscon node82o offset to the base CPU power zone register83o offset to the base CPU reset register8485- syscon-cont86A phandle pointing to the syscon node which describes the CPU boot87continuation registers.88o a phandle to the "hif_continuation" syscon node8990example:91smpboot {92compatible = "brcm,brcmstb-smpboot";93syscon-cpu = <&hif_cpubiuctrl 0x88 0x178>;94syscon-cont = <&hif_continuation>;95};9697reboot98-------99Required properties100101- compatible102The string property "brcm,brcmstb-reboot" for 40nm/28nm chips with103the new SYS_CTRL interface, or "brcm,bcm7038-reboot" for 65nm104chips with the old SUN_TOP_CTRL interface.105106- syscon107A phandle / integer array that points to the syscon node which describes108the general system reset registers.109o a phandle to "sun_top_ctrl"110o offset to the "reset source enable" register111o offset to the "software master reset" register112113example:114reboot {115compatible = "brcm,brcmstb-reboot";116syscon = <&sun_top_ctrl 0x304 0x308>;117};118119120121Power management122----------------123124For power management (particularly, S2/S3/S5 system suspend), the following SoC125components are needed:126127= Always-On control block (AON CTRL)128129This hardware provides control registers for the "always-on" (even in low-power130modes) hardware, such as the Power Management State Machine (PMSM).131132Required properties:133- compatible : should contain "brcm,brcmstb-aon-ctrl"134- reg : the register start and length for the AON CTRL block135136Example:137138aon-ctrl@410000 {139compatible = "brcm,brcmstb-aon-ctrl";140reg = <0x410000 0x400>;141};142143= Memory controllers144145A Broadcom STB SoC typically has a number of independent memory controllers,146each of which may have several associated hardware blocks, which are versioned147independently (control registers, DDR PHYs, etc.). One might consider148describing these controllers as a parent "memory controllers" block, which149contains N sub-nodes (one for each controller in the system), each of which is150associated with a number of hardware register resources (e.g., its PHY). See151the example device tree snippet below.152153== MEMC (MEMory Controller)154155Represents a single memory controller instance.156157Required properties:158- compatible : should contain "brcm,brcmstb-memc" and "simple-bus"159160Should contain subnodes for any of the following relevant hardware resources:161162== DDR PHY control163164Control registers for this memory controller's DDR PHY.165166Required properties:167- compatible : should contain one of these168"brcm,brcmstb-ddr-phy-v71.1"169"brcm,brcmstb-ddr-phy-v72.0"170"brcm,brcmstb-ddr-phy-v225.1"171"brcm,brcmstb-ddr-phy-v240.1"172"brcm,brcmstb-ddr-phy-v240.2"173174- reg : the DDR PHY register range175176== DDR SHIMPHY177178Control registers for this memory controller's DDR SHIMPHY.179180Required properties:181- compatible : should contain "brcm,brcmstb-ddr-shimphy-v1.0"182- reg : the DDR SHIMPHY register range183184== MEMC DDR control185186Sequencer DRAM parameters and control registers. Used for Self-Refresh187Power-Down (SRPD), among other things.188189See Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml for a190full list of supported compatible strings and properties.191192Example:193194memory_controllers {195ranges;196compatible = "simple-bus";197198memc@0 {199compatible = "brcm,brcmstb-memc", "simple-bus";200ranges;201202ddr-phy@f1106000 {203compatible = "brcm,brcmstb-ddr-phy-v240.1";204reg = <0xf1106000 0x21c>;205};206207shimphy@f1108000 {208compatible = "brcm,brcmstb-ddr-shimphy-v1.0";209reg = <0xf1108000 0xe4>;210};211212memc-ddr@f1102000 {213reg = <0xf1102000 0x800>;214compatible = "brcm,brcmstb-memc-ddr";215};216};217218memc@1 {219compatible = "brcm,brcmstb-memc", "simple-bus";220ranges;221222ddr-phy@f1186000 {223compatible = "brcm,brcmstb-ddr-phy-v240.1";224reg = <0xf1186000 0x21c>;225};226227shimphy@f1188000 {228compatible = "brcm,brcmstb-ddr-shimphy-v1.0";229reg = <0xf1188000 0xe4>;230};231232memc-ddr@f1182000 {233reg = <0xf1182000 0x800>;234compatible = "brcm,brcmstb-memc-ddr";235};236};237238memc@2 {239compatible = "brcm,brcmstb-memc", "simple-bus";240ranges;241242ddr-phy@f1206000 {243compatible = "brcm,brcmstb-ddr-phy-v240.1";244reg = <0xf1206000 0x21c>;245};246247shimphy@f1208000 {248compatible = "brcm,brcmstb-ddr-shimphy-v1.0";249reg = <0xf1208000 0xe4>;250};251252memc-ddr@f1202000 {253reg = <0xf1202000 0x800>;254compatible = "brcm,brcmstb-memc-ddr";255};256};257};258259260