linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Nicolas Mederle <mederle_nicolas@yahoo.fr>
To: linuxppc-embedded@ozlabs.org,  linuxppc-dev@ozlabs.org
Subject: Device tree for a custom board with PPC750
Date: Wed, 02 May 2007 08:47:52 +0200	[thread overview]
Message-ID: <46383418.9010804@yahoo.fr> (raw)

I must port Linux on a proprietary board (whitout Open Firmware).
This board uses the PPC750Fx processor with proprietary components.

1. I have write the followind device tree. Can you say me if it's correct?

2. The epicea bridge is a custom component (ASIC), and I will know if 
the compatible field is correct.
   Must I write a file for each component? Can I use a generic file for 
pic or uart?

3. Must I indicate the clock frequency for each component? Or can I 
indicate only the epicea clock frequency?


Thanks


/*
* Device Tree Souce for SMD88ND Thales board
*
* Choose CONFIG_SMD88ND to build a kernel for SMD88ND, or use
* the default configuration smd88nd_defconfig.
*
* Based on sandpoint.dts
*
* 2007 (c) N. MEDERLE <mederle.nicolas@csie.fr>
*
*
* To build:
*   dtc -I dts -O asm -o smd88ng.S -V 16 smd88ng.dts
*   dtc -I dts -O dtb -o smd88ng.dtb -V 16 smd88ng.dts
*/

/ {
    linux,phandle = <1000>;
    model = "smd88ng";
    compatible = "smd88ng";
    #address-cells = <1>;
    #size-cells = <1>;
    /* ===== Processor ===== */
    cpus {
        linux,phandle = <2000>;
        #cpus = <1>;
        #address-cells = <1>;
        #size-cells = <0>;
        /* ===== CPU used ===== */
        PowerPC,603e@0 {				/* Really PPC750FX */
            linux,phandle = <2100>;
            device_type = "cpu";
            reg = <0>;
            clock-frequency = <23C34600>;	/* 600MHz */
            timebase-frequency = <1312D00>;    	/* 20MHz (bus-freq/4) */
            bus-frequency = <4C4B400>;		/* 80MHz */
            i-cache-line-size = <20>;		/* 32 bytes */
            d-cache-line-size = <20>;		/* 32 bytes */
            i-cache-size = <8000>;		/* L1, 32K */
            d-cache-size = <8000>;		/* L1, 32K */
        };
    };
    /* ===== RAM ===== */
    memory {
        linux,phandle = <3000>;
        device_type = "memory";
        reg = <00000000 10000000>;		/* 256Mb */
    };
    /* ===== Bridge Epicea (custom component) ===== */
    epicea@20000000 {
        linux,phandle = <4000>;
        device_type = "epicea-bridge";		/* ??? */
        #address-cells = <1>;
        #size-cells = <1>;
        #interrupt-cells = <2>;
        ranges = <20000000 20000000 02000000>;
        reg = <20000000 02000000>;
        /* ===== Interrupt Controller ===== */
        pic@20006000 {
            linux,phandle = <6000>;
            device_type = "pic";
            compatible = "epicea-pic";		/* ??? */
            #address-cells = <0>;
            #interrupt-cells = <2>;
            reg = <20006000 2000>;
            clock-frequency = <4C4B400>;		/* 0 or 80MHz ??? */
            interrupt-controller;
            built-in;
            big-endian;
        };
        /* ===== DMA #0 ===== */
        dma@20008000 {
            linux,phandle = <8000>;
            device_type = "dma";
            compatible = "epicea-dma";		/* ??? */
            #address-cells = <1>;
            #size-cells = <1>;
            #interrupt-cells = <1>;
            reg = <20008000 2c>;
            clock-frequency = <4C4B400>;		/* or 0 ??? */
            interrupts = <2a 2 2b 2>;		/* level 2a & 2b, Low */
            interrupt-parent = <6000>;
        };
        /* ===== DMA #1 ===== */
        dma@20009000 {
            linux,phandle = <9000>;
            device_type = "dma";
            compatible = "epicea-dma";		/* ??? */
            #address-cells = <1>;
            #size-cells = <1>;
            #interrupt-cells = <1>;
            reg = <20009000 2c>;
            clock-frequency = <4C4B400>;		/* or 0 ??? */
            interrupts = <34 2 35 2>;		/* level 34 & 35, Low */
            interrupt-parent = <6000>;
        };
        /* ===== USART #0 ===== */
        serial@2001a000 {
            linux,phandle = <1A000>;
            device_type = "serial";
            compatible = "epicea-serial";	/* ??? */
            reg = <2001a000 1000>;
            clock-frequency = <4C4B400>;		/* or 0 ?? */
            current-speed = <2580>;		/* 9600 bauds */
            interrupts = <38 2 39 2 3a 2 3b 2>;	/* level 38 to 3b,Low */
            interrupt-parent = <6000>;
        };
        /* ===== USART #1 ===== */
        serial@2001b000 {
            linux,phandle = <1B000>;
            device_type = "serial";
            compatible = "epicea-serial";	/* ??? */
            reg = <2001b000 1000>;
            clock-frequency = <4C4B400>;		/* or 0 ?? */
            current-speed = <2580>;		/* 9600 bauds */
            interrupts = <18 2 19 2 1a 2 1b 2>;	/* level 18 to 1b,Low */
            interrupt-parent = <6000>;
        };
        /* ===== USART #2 ===== */
        serial@2001c000 {
            linux,phandle = <1C000>;
            device_type = "serial";
            compatible = "epicea-serial";	/* ??? */
            reg = <2001c000 1000>;
            clock-frequency = <4C4B400>;		/* or 0 ?? */
            current-speed = <2580>;		/* 9600 bauds */
            interrupts = <10 2 11 2 12 2 13 2>;	/* Level 10 to 13,Low */
            interrupt-parent = <6000>;
        };
        /* ===== I2C bus ===== */
        i2c@20015000 {
            linux,phandle = <15000>;
            device_type = "i2c";
            compatible = "epicea-i2c";		/* ??? */
            reg = <20015000 1000>;
            interrupts = <16 2>;			/* level 16, Low */
            interrupt-parent = <6000>;
        };
        /* ===== DMA for USART ===== */
        udma@2001D000 {
            linux,phandle = <1D000>;
            device_type = "dma";
            compatible = "epicea-dma";		/* ??? */
            #address-cells = <1>;
            #size-cells = <1>;
            #interrupt-cells = <1>;
            reg = <2001D000 20>;
            clock-frequency = <0>;
            interrupts = <36 2 37 2>;		/* Level 36 & 37,Low */
            interrupt-parent = <6000>;
        };
    };
};

-- 
Cordialement,

Nicolas MEDERLE.

                 reply	other threads:[~2007-05-02  6:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46383418.9010804@yahoo.fr \
    --to=mederle_nicolas@yahoo.fr \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=linuxppc-embedded@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).