[BACK]Return to bcm283x.dtsi CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / external / gpl2 / dts / dist / arch / arm / boot / dts

Annotation of src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/bcm283x.dtsi, Revision 1.4.2.2

1.1       jmcneill    1: #include <dt-bindings/pinctrl/bcm2835.h>
                      2: #include <dt-bindings/clock/bcm2835.h>
                      3: #include <dt-bindings/clock/bcm2835-aux.h>
                      4: #include <dt-bindings/gpio/gpio.h>
1.3       jmcneill    5: #include <dt-bindings/interrupt-controller/irq.h>
1.4.2.1   christos    6: #include <dt-bindings/soc/bcm2835-pm.h>
1.1       jmcneill    7:
1.2       skrll       8: /* firmware-provided startup stubs live here, where the secondary CPUs are
                      9:  * spinning.
                     10:  */
                     11: /memreserve/ 0x00000000 0x00001000;
                     12:
1.1       jmcneill   13: /* This include file covers the common peripherals and configuration between
                     14:  * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
                     15:  * bcm2835.dtsi and bcm2836.dtsi.
                     16:  */
                     17:
                     18: / {
                     19:        compatible = "brcm,bcm2835";
                     20:        model = "BCM2835";
                     21:        #address-cells = <1>;
                     22:        #size-cells = <1>;
                     23:
1.2       skrll      24:        aliases {
                     25:                serial0 = &uart0;
                     26:                serial1 = &uart1;
                     27:        };
                     28:
1.1       jmcneill   29:        chosen {
1.2       skrll      30:                stdout-path = "serial0:115200n8";
                     31:        };
                     32:
                     33:        thermal-zones {
                     34:                cpu_thermal: cpu-thermal {
                     35:                        polling-delay-passive = <0>;
                     36:                        polling-delay = <1000>;
                     37:
                     38:                        trips {
                     39:                                cpu-crit {
1.4.2.2 ! martin     40:                                        temperature     = <90000>;
1.2       skrll      41:                                        hysteresis      = <0>;
                     42:                                        type            = "critical";
                     43:                                };
                     44:                        };
                     45:
                     46:                        cooling-maps {
                     47:                        };
                     48:                };
1.1       jmcneill   49:        };
                     50:
                     51:        soc {
                     52:                compatible = "simple-bus";
                     53:                #address-cells = <1>;
                     54:                #size-cells = <1>;
                     55:
1.4.2.2 ! martin     56:                system_timer: timer@7e003000 {
1.1       jmcneill   57:                        compatible = "brcm,bcm2835-system-timer";
                     58:                        reg = <0x7e003000 0x1000>;
                     59:                        interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
                     60:                        /* This could be a reference to BCM2835_CLOCK_TIMER,
                     61:                         * but we don't have the driver using the common clock
                     62:                         * support yet.
                     63:                         */
                     64:                        clock-frequency = <1000000>;
                     65:                };
                     66:
1.4.2.2 ! martin     67:                txp: txp@7e004000 {
1.4.2.1   christos   68:                        compatible = "brcm,bcm2835-txp";
                     69:                        reg = <0x7e004000 0x20>;
                     70:                        interrupts = <1 11>;
                     71:                };
                     72:
1.1       jmcneill   73:                clocks: cprman@7e101000 {
                     74:                        compatible = "brcm,bcm2835-cprman";
                     75:                        #clock-cells = <1>;
                     76:                        reg = <0x7e101000 0x2000>;
                     77:
1.2       skrll      78:                        /* CPRMAN derives almost everything from the
                     79:                         * platform's oscillator.  However, the DSI
                     80:                         * pixel clocks come from the DSI analog PHY.
1.1       jmcneill   81:                         */
1.2       skrll      82:                        clocks = <&clk_osc>,
                     83:                                <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
                     84:                                <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
1.1       jmcneill   85:                };
                     86:
                     87:                rng@7e104000 {
                     88:                        compatible = "brcm,bcm2835-rng";
                     89:                        reg = <0x7e104000 0x10>;
1.4       jmcneill   90:                        interrupts = <2 29>;
1.1       jmcneill   91:                };
                     92:
                     93:                mailbox: mailbox@7e00b880 {
                     94:                        compatible = "brcm,bcm2835-mbox";
                     95:                        reg = <0x7e00b880 0x40>;
                     96:                        interrupts = <0 1>;
                     97:                        #mbox-cells = <0>;
                     98:                };
                     99:
                    100:                gpio: gpio@7e200000 {
                    101:                        compatible = "brcm,bcm2835-gpio";
                    102:                        reg = <0x7e200000 0xb4>;
                    103:                        /*
                    104:                         * The GPIO IP block is designed for 3 banks of GPIOs.
                    105:                         * Each bank has a GPIO interrupt for itself.
                    106:                         * There is an overall "any bank" interrupt.
                    107:                         * In order, these are GIC interrupts 17, 18, 19, 20.
                    108:                         * Since the BCM2835 only has 2 banks, the 2nd bank
                    109:                         * interrupt output appears to be mirrored onto the
                    110:                         * 3rd bank's interrupt signal.
                    111:                         * So, a bank0 interrupt shows up on 17, 20, and
                    112:                         * a bank1 interrupt shows up on 18, 19, 20!
                    113:                         */
                    114:                        interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
                    115:
                    116:                        gpio-controller;
                    117:                        #gpio-cells = <2>;
                    118:
                    119:                        interrupt-controller;
                    120:                        #interrupt-cells = <2>;
                    121:
1.4.2.2 ! martin    122:                        /* Defines common pin muxing groups
1.1       jmcneill  123:                         *
                    124:                         * While each pin can have its mux selected
                    125:                         * for various functions individually, some
                    126:                         * groups only make sense to switch to a
                    127:                         * particular function together.
                    128:                         */
                    129:                        dpi_gpio0: dpi_gpio0 {
                    130:                                brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
                    131:                                             12 13 14 15 16 17 18 19
                    132:                                             20 21 22 23 24 25 26 27>;
                    133:                                brcm,function = <BCM2835_FSEL_ALT2>;
                    134:                        };
                    135:                        emmc_gpio22: emmc_gpio22 {
                    136:                                brcm,pins = <22 23 24 25 26 27>;
                    137:                                brcm,function = <BCM2835_FSEL_ALT3>;
                    138:                        };
                    139:                        emmc_gpio34: emmc_gpio34 {
                    140:                                brcm,pins = <34 35 36 37 38 39>;
                    141:                                brcm,function = <BCM2835_FSEL_ALT3>;
                    142:                                brcm,pull = <BCM2835_PUD_OFF
                    143:                                             BCM2835_PUD_UP
                    144:                                             BCM2835_PUD_UP
                    145:                                             BCM2835_PUD_UP
                    146:                                             BCM2835_PUD_UP
                    147:                                             BCM2835_PUD_UP>;
                    148:                        };
                    149:                        emmc_gpio48: emmc_gpio48 {
                    150:                                brcm,pins = <48 49 50 51 52 53>;
                    151:                                brcm,function = <BCM2835_FSEL_ALT3>;
                    152:                        };
                    153:
                    154:                        gpclk0_gpio4: gpclk0_gpio4 {
                    155:                                brcm,pins = <4>;
                    156:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    157:                        };
                    158:                        gpclk1_gpio5: gpclk1_gpio5 {
                    159:                                brcm,pins = <5>;
                    160:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    161:                        };
                    162:                        gpclk1_gpio42: gpclk1_gpio42 {
                    163:                                brcm,pins = <42>;
                    164:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    165:                        };
                    166:                        gpclk1_gpio44: gpclk1_gpio44 {
                    167:                                brcm,pins = <44>;
                    168:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    169:                        };
                    170:                        gpclk2_gpio6: gpclk2_gpio6 {
                    171:                                brcm,pins = <6>;
                    172:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    173:                        };
                    174:                        gpclk2_gpio43: gpclk2_gpio43 {
                    175:                                brcm,pins = <43>;
                    176:                                brcm,function = <BCM2835_FSEL_ALT0>;
1.3       jmcneill  177:                                brcm,pull = <BCM2835_PUD_OFF>;
1.1       jmcneill  178:                        };
                    179:
                    180:                        i2c0_gpio0: i2c0_gpio0 {
                    181:                                brcm,pins = <0 1>;
                    182:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    183:                        };
1.2       skrll     184:                        i2c0_gpio28: i2c0_gpio28 {
                    185:                                brcm,pins = <28 29>;
1.1       jmcneill  186:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    187:                        };
                    188:                        i2c0_gpio44: i2c0_gpio44 {
                    189:                                brcm,pins = <44 45>;
                    190:                                brcm,function = <BCM2835_FSEL_ALT1>;
                    191:                        };
                    192:                        i2c1_gpio2: i2c1_gpio2 {
                    193:                                brcm,pins = <2 3>;
                    194:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    195:                        };
                    196:                        i2c1_gpio44: i2c1_gpio44 {
                    197:                                brcm,pins = <44 45>;
                    198:                                brcm,function = <BCM2835_FSEL_ALT2>;
                    199:                        };
                    200:
                    201:                        jtag_gpio22: jtag_gpio22 {
                    202:                                brcm,pins = <22 23 24 25 26 27>;
                    203:                                brcm,function = <BCM2835_FSEL_ALT4>;
                    204:                        };
                    205:
                    206:                        pcm_gpio18: pcm_gpio18 {
                    207:                                brcm,pins = <18 19 20 21>;
                    208:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    209:                        };
                    210:                        pcm_gpio28: pcm_gpio28 {
                    211:                                brcm,pins = <28 29 30 31>;
                    212:                                brcm,function = <BCM2835_FSEL_ALT2>;
                    213:                        };
                    214:
                    215:                        sdhost_gpio48: sdhost_gpio48 {
                    216:                                brcm,pins = <48 49 50 51 52 53>;
                    217:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    218:                        };
                    219:
                    220:                        spi0_gpio7: spi0_gpio7 {
                    221:                                brcm,pins = <7 8 9 10 11>;
                    222:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    223:                        };
                    224:                        spi0_gpio35: spi0_gpio35 {
                    225:                                brcm,pins = <35 36 37 38 39>;
                    226:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    227:                        };
                    228:                        spi1_gpio16: spi1_gpio16 {
                    229:                                brcm,pins = <16 17 18 19 20 21>;
                    230:                                brcm,function = <BCM2835_FSEL_ALT4>;
                    231:                        };
                    232:                        spi2_gpio40: spi2_gpio40 {
                    233:                                brcm,pins = <40 41 42 43 44 45>;
                    234:                                brcm,function = <BCM2835_FSEL_ALT4>;
                    235:                        };
                    236:
                    237:                        uart0_gpio14: uart0_gpio14 {
                    238:                                brcm,pins = <14 15>;
                    239:                                brcm,function = <BCM2835_FSEL_ALT0>;
                    240:                        };
                    241:                        /* Separate from the uart0_gpio14 group
                    242:                         * because it conflicts with spi1_gpio16, and
                    243:                         * people often run uart0 on the two pins
1.2       skrll     244:                         * without flow control.
1.1       jmcneill  245:                         */
                    246:                        uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
                    247:                                brcm,pins = <16 17>;
                    248:                                brcm,function = <BCM2835_FSEL_ALT3>;
                    249:                        };
1.2       skrll     250:                        uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
1.1       jmcneill  251:                                brcm,pins = <30 31>;
                    252:                                brcm,function = <BCM2835_FSEL_ALT3>;
1.3       jmcneill  253:                                brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
1.1       jmcneill  254:                        };
1.2       skrll     255:                        uart0_gpio32: uart0_gpio32 {
1.1       jmcneill  256:                                brcm,pins = <32 33>;
                    257:                                brcm,function = <BCM2835_FSEL_ALT3>;
1.3       jmcneill  258:                                brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
1.1       jmcneill  259:                        };
1.2       skrll     260:                        uart0_gpio36: uart0_gpio36 {
                    261:                                brcm,pins = <36 37>;
                    262:                                brcm,function = <BCM2835_FSEL_ALT2>;
                    263:                        };
                    264:                        uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 {
                    265:                                brcm,pins = <38 39>;
                    266:                                brcm,function = <BCM2835_FSEL_ALT2>;
                    267:                        };
1.1       jmcneill  268:
                    269:                        uart1_gpio14: uart1_gpio14 {
                    270:                                brcm,pins = <14 15>;
                    271:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    272:                        };
                    273:                        uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
                    274:                                brcm,pins = <16 17>;
                    275:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    276:                        };
                    277:                        uart1_gpio32: uart1_gpio32 {
                    278:                                brcm,pins = <32 33>;
                    279:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    280:                        };
                    281:                        uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
                    282:                                brcm,pins = <30 31>;
                    283:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    284:                        };
                    285:                        uart1_gpio40: uart1_gpio40 {
                    286:                                brcm,pins = <40 41>;
                    287:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    288:                        };
                    289:                        uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
                    290:                                brcm,pins = <42 43>;
                    291:                                brcm,function = <BCM2835_FSEL_ALT5>;
                    292:                        };
                    293:                };
                    294:
                    295:                uart0: serial@7e201000 {
1.4.2.2 ! martin    296:                        compatible = "arm,pl011", "arm,primecell";
        !           297:                        reg = <0x7e201000 0x200>;
1.1       jmcneill  298:                        interrupts = <2 25>;
                    299:                        clocks = <&clocks BCM2835_CLOCK_UART>,
                    300:                                 <&clocks BCM2835_CLOCK_VPU>;
                    301:                        clock-names = "uartclk", "apb_pclk";
                    302:                        arm,primecell-periphid = <0x00241011>;
                    303:                };
                    304:
1.2       skrll     305:                sdhost: mmc@7e202000 {
                    306:                        compatible = "brcm,bcm2835-sdhost";
                    307:                        reg = <0x7e202000 0x100>;
                    308:                        interrupts = <2 24>;
                    309:                        clocks = <&clocks BCM2835_CLOCK_VPU>;
                    310:                        status = "disabled";
                    311:                };
                    312:
1.1       jmcneill  313:                i2s: i2s@7e203000 {
                    314:                        compatible = "brcm,bcm2835-i2s";
1.3       jmcneill  315:                        reg = <0x7e203000 0x24>;
                    316:                        clocks = <&clocks BCM2835_CLOCK_PCM>;
1.1       jmcneill  317:                        status = "disabled";
                    318:                };
                    319:
                    320:                spi: spi@7e204000 {
                    321:                        compatible = "brcm,bcm2835-spi";
1.4.2.2 ! martin    322:                        reg = <0x7e204000 0x200>;
1.1       jmcneill  323:                        interrupts = <2 22>;
                    324:                        clocks = <&clocks BCM2835_CLOCK_VPU>;
                    325:                        #address-cells = <1>;
                    326:                        #size-cells = <0>;
                    327:                        status = "disabled";
                    328:                };
                    329:
                    330:                i2c0: i2c@7e205000 {
                    331:                        compatible = "brcm,bcm2835-i2c";
1.4.2.2 ! martin    332:                        reg = <0x7e205000 0x200>;
1.1       jmcneill  333:                        interrupts = <2 21>;
                    334:                        clocks = <&clocks BCM2835_CLOCK_VPU>;
                    335:                        #address-cells = <1>;
                    336:                        #size-cells = <0>;
                    337:                        status = "disabled";
                    338:                };
                    339:
1.3       jmcneill  340:                dpi: dpi@7e208000 {
                    341:                        compatible = "brcm,bcm2835-dpi";
                    342:                        reg = <0x7e208000 0x8c>;
                    343:                        clocks = <&clocks BCM2835_CLOCK_VPU>,
                    344:                                 <&clocks BCM2835_CLOCK_DPI>;
                    345:                        clock-names = "core", "pixel";
                    346:                        #address-cells = <1>;
                    347:                        #size-cells = <0>;
                    348:                        status = "disabled";
                    349:                };
                    350:
1.2       skrll     351:                dsi0: dsi@7e209000 {
                    352:                        compatible = "brcm,bcm2835-dsi0";
                    353:                        reg = <0x7e209000 0x78>;
                    354:                        interrupts = <2 4>;
                    355:                        #address-cells = <1>;
                    356:                        #size-cells = <0>;
                    357:                        #clock-cells = <1>;
                    358:
                    359:                        clocks = <&clocks BCM2835_PLLA_DSI0>,
                    360:                                 <&clocks BCM2835_CLOCK_DSI0E>,
                    361:                                 <&clocks BCM2835_CLOCK_DSI0P>;
                    362:                        clock-names = "phy", "escape", "pixel";
                    363:
                    364:                        clock-output-names = "dsi0_byte",
                    365:                                             "dsi0_ddr2",
                    366:                                             "dsi0_ddr";
                    367:
                    368:                };
                    369:
1.3       jmcneill  370:                aux: aux@7e215000 {
1.1       jmcneill  371:                        compatible = "brcm,bcm2835-aux";
                    372:                        #clock-cells = <1>;
                    373:                        reg = <0x7e215000 0x8>;
                    374:                        clocks = <&clocks BCM2835_CLOCK_VPU>;
                    375:                };
                    376:
                    377:                uart1: serial@7e215040 {
                    378:                        compatible = "brcm,bcm2835-aux-uart";
                    379:                        reg = <0x7e215040 0x40>;
                    380:                        interrupts = <1 29>;
                    381:                        clocks = <&aux BCM2835_AUX_CLOCK_UART>;
                    382:                        status = "disabled";
                    383:                };
                    384:
                    385:                spi1: spi@7e215080 {
                    386:                        compatible = "brcm,bcm2835-aux-spi";
                    387:                        reg = <0x7e215080 0x40>;
                    388:                        interrupts = <1 29>;
                    389:                        clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
                    390:                        #address-cells = <1>;
                    391:                        #size-cells = <0>;
                    392:                        status = "disabled";
                    393:                };
                    394:
                    395:                spi2: spi@7e2150c0 {
                    396:                        compatible = "brcm,bcm2835-aux-spi";
                    397:                        reg = <0x7e2150c0 0x40>;
                    398:                        interrupts = <1 29>;
                    399:                        clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
                    400:                        #address-cells = <1>;
                    401:                        #size-cells = <0>;
                    402:                        status = "disabled";
                    403:                };
                    404:
                    405:                pwm: pwm@7e20c000 {
                    406:                        compatible = "brcm,bcm2835-pwm";
                    407:                        reg = <0x7e20c000 0x28>;
                    408:                        clocks = <&clocks BCM2835_CLOCK_PWM>;
                    409:                        assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
                    410:                        assigned-clock-rates = <10000000>;
                    411:                        #pwm-cells = <2>;
                    412:                        status = "disabled";
                    413:                };
                    414:
                    415:                sdhci: sdhci@7e300000 {
                    416:                        compatible = "brcm,bcm2835-sdhci";
                    417:                        reg = <0x7e300000 0x100>;
                    418:                        interrupts = <2 30>;
                    419:                        clocks = <&clocks BCM2835_CLOCK_EMMC>;
                    420:                        status = "disabled";
                    421:                };
                    422:
                    423:                hvs@7e400000 {
                    424:                        compatible = "brcm,bcm2835-hvs";
                    425:                        reg = <0x7e400000 0x6000>;
                    426:                        interrupts = <2 1>;
1.4.2.1   christos  427:                        status = "disabled";
1.1       jmcneill  428:                };
                    429:
1.2       skrll     430:                dsi1: dsi@7e700000 {
                    431:                        compatible = "brcm,bcm2835-dsi1";
                    432:                        reg = <0x7e700000 0x8c>;
                    433:                        interrupts = <2 12>;
                    434:                        #address-cells = <1>;
                    435:                        #size-cells = <0>;
                    436:                        #clock-cells = <1>;
                    437:
                    438:                        clocks = <&clocks BCM2835_PLLD_DSI1>,
                    439:                                 <&clocks BCM2835_CLOCK_DSI1E>,
                    440:                                 <&clocks BCM2835_CLOCK_DSI1P>;
                    441:                        clock-names = "phy", "escape", "pixel";
                    442:
                    443:                        clock-output-names = "dsi1_byte",
                    444:                                             "dsi1_ddr2",
                    445:                                             "dsi1_ddr";
                    446:
                    447:                        status = "disabled";
                    448:                };
                    449:
1.1       jmcneill  450:                i2c1: i2c@7e804000 {
                    451:                        compatible = "brcm,bcm2835-i2c";
                    452:                        reg = <0x7e804000 0x1000>;
                    453:                        interrupts = <2 21>;
                    454:                        clocks = <&clocks BCM2835_CLOCK_VPU>;
                    455:                        #address-cells = <1>;
                    456:                        #size-cells = <0>;
                    457:                        status = "disabled";
                    458:                };
                    459:
                    460:                vec: vec@7e806000 {
                    461:                        compatible = "brcm,bcm2835-vec";
                    462:                        reg = <0x7e806000 0x1000>;
                    463:                        clocks = <&clocks BCM2835_CLOCK_VEC>;
                    464:                        interrupts = <2 27>;
                    465:                        status = "disabled";
                    466:                };
                    467:
                    468:                usb: usb@7e980000 {
                    469:                        compatible = "brcm,bcm2835-usb";
                    470:                        reg = <0x7e980000 0x10000>;
                    471:                        interrupts = <1 9>;
                    472:                        #address-cells = <1>;
                    473:                        #size-cells = <0>;
                    474:                        clocks = <&clk_usb>;
                    475:                        clock-names = "otg";
1.2       skrll     476:                        phys = <&usbphy>;
                    477:                        phy-names = "usb2-phy";
1.1       jmcneill  478:                };
                    479:
                    480:        };
                    481:
                    482:        clocks {
                    483:                /* The oscillator is the root of the clock tree. */
1.4.2.2 ! martin    484:                clk_osc: clk-osc {
1.1       jmcneill  485:                        compatible = "fixed-clock";
                    486:                        #clock-cells = <0>;
                    487:                        clock-output-names = "osc";
                    488:                        clock-frequency = <19200000>;
                    489:                };
                    490:
1.4.2.2 ! martin    491:                clk_usb: clk-usb {
1.1       jmcneill  492:                        compatible = "fixed-clock";
                    493:                        #clock-cells = <0>;
                    494:                        clock-output-names = "otg";
                    495:                        clock-frequency = <480000000>;
                    496:                };
                    497:        };
1.2       skrll     498:
                    499:        usbphy: phy {
                    500:                compatible = "usb-nop-xceiv";
1.3       jmcneill  501:                #phy-cells = <0>;
1.2       skrll     502:        };
1.1       jmcneill  503: };

CVSweb <webmaster@jp.NetBSD.org>