[PATCH 4/9] ARM: dts: OMAP3: Add support for OMAP3430 SDP board

Jon Hunter jon-hunter at ti.com
Wed Mar 13 08:27:04 EST 2013


On 03/11/2013 09:42 PM, Kumar, Anil wrote:
> 
> On Mon, Mar 11, 2013 at 23:23:32, Hunter, Jon wrote:
>>
>> On 03/08/2013 08:25 PM, Anil Kumar wrote:
>>> Hi Jon,
>>>
>>> On Fri, Mar 8, 2013 at 10:57 PM, Jon Hunter <jon-hunter at ti.com> wrote:
>>>> Adds basic device-tree support for OMAP3430 SDP board which has 256MB
>>>> of RAM and uses the TWL4030 power management IC.
>>>
>>> I think this board support should be in separate patch series with
>>> related patches.
>>
>> Well I wanted to keep them altogether so that I can send a pull request
>> to Benoit and Tony.
> 
> Sorry, but can you please tell what makes you to think that you
> can send pull request only when they are altogether ?

That's not the point.
 
> Is there any logical dependency with other patches except 
> "[PATCH 6/9] ARM: dts: Add OMAP3430 SDP flash memory bindings" is on 
> top of this patch ?

Per the $subject of the series these a various DT patches I have pending.
Yes I could break this series up into many separate series, one for PMU,
one for DMA, one for GPMC, one for OMAP3 SDP, but I thought it would be
easier for Tony and Benoit to pull as a single series.

If Tony or Benoit wish for me to separate these out, I will. 
 
>>
>>>>
>>>> Signed-off-by: Jon Hunter <jon-hunter at ti.com>
>>>> ---
>>>>  arch/arm/boot/dts/Makefile         |    1 +
>>>>  arch/arm/boot/dts/omap3430-sdp.dts |   46 ++++++++++++++++++++++++++++++++++++
>>>>  2 files changed, 47 insertions(+)
>>>>  create mode 100644 arch/arm/boot/dts/omap3430-sdp.dts
>>>>
>>>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>>> index 9c62558..89013ed 100644
>>>> --- a/arch/arm/boot/dts/Makefile
>>>> +++ b/arch/arm/boot/dts/Makefile
>>>> @@ -119,6 +119,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
>>>>         omap3-beagle-xm.dtb \
>>>>         omap3-evm.dtb \
>>>>         omap3-tobi.dtb \
>>>> +       omap3430-sdp.dtb \
>>>>         omap4-panda.dtb \
>>>>         omap4-panda-a4.dtb \
>>>>         omap4-panda-es.dtb \
>>>> diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts
>>>> new file mode 100644
>>>> index 0000000..be0650d
>>>> --- /dev/null
>>>> +++ b/arch/arm/boot/dts/omap3430-sdp.dts
>>>> @@ -0,0 +1,46 @@
>>>> +/*
>>>> + * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify
>>>> + * it under the terms of the GNU General Public License version 2 as
>>>> + * published by the Free Software Foundation.
>>>> + */
>>>> +/dts-v1/;
>>>> +
>>>> +/include/ "omap3.dtsi"
>>>> +
>>>> +/ {
>>>> +       model = "TI OMAP3430 SDP";
>>>> +       compatible = "ti,omap3430-sdp", "ti,omap3";
>>>
>>> I have not seen any related changes in "board-generic.c" for your board.
>>> So just wanted know, how this board is booting ?
>>
>> If you look at board-generic.c you will see that "ti,omap3" will match
>> the OMAP3 generic machine. So you don't need to modify the board-generic.c.
> 
> According to this omap3-beagle.dts and omap3-beagle-xm.dts are also 
> booting in some way. So it is not clear to me, why there two
> "DT_MACHINE_START" for omap3. I have seen there is only one 
> different in "init_time" for the same. 

OMAP3 beagle uses the machine descriptor OMAP3_GP_DT where as OMAP3 
beagle-xm (and OMAP3 SDP) use the machine descriptor OMAP3_DT. The
real difference in these machine descriptors is the init_time
function pointer.
 
>>
>>>> +
>>>> +       memory {
>>>> +               device_type = "memory";
>>>> +               reg = <0x80000000 0x10000000>; /* 256 MB */
>>>> +       };
>>>> +};
>>>> +
>>>> +&i2c1 {
>>>> +       clock-frequency = <2600000>;
>>>> +
>>>> +       twl: twl at 48 {
>>>> +               reg = <0x48>;
>>>> +               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
>>>> +               interrupt-parent = <&intc>;
>>>> +       };
>>>> +};
>>>> +
>>>> +/include/ "twl4030.dtsi"
>>>> +
>>>> +&mmc1 {
>>>> +       vmmc-supply = <&vmmc1>;
>>>> +       vmmc_aux-supply = <&vsim>;
>>>> +       bus-width = <8>;
>>>> +};
>>>> +
>>>> +&mmc2 {
>>>> +       status = "disabled";
>>>> +};
>>>> +
>>>> +&mmc3 {
>>>> +       status = "disabled";
>>>> +};
>>>
>>> I think you should disable modules those are not currently used
>>> as they are enabled by default in omap3.dtsi.
>>>
>>> exp:-
>>>
>>> &mcbsp2 {
>>>         status = "disabled";
>>> };
>>
>> Well may be we could do that in a follow-up patch. If you look at other
>> omap3 boards we have not gone through and disabled all unused modules
>> either. So although I agree, right now I just want to get minimal
>> support added.
>>
> 
> Hmm... But it makes the kernel to call unused driver probe and get failed
> those required some platform date from DT? you can see the kernel boot logs.

Here is the console output I see on the omap3 sdp. There are a few warnings
around pin-mux settings but nothing major AFAICT ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.9.0-rc2-39794-g1c71698 (jenkins at cfasvr1) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70) ) #4 SMP Tue Mar 12 15:59:47 CDT 2013
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: Generic OMAP3 (Flattened Device Tree), model: TI OMAP3430 SDP
[    0.000000] cma: CMA: reserved 16 MiB at 8e800000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] OMAP3430/3530 ES3.1 (l2cache iva sgx neon isp )
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz
[    0.000000] PERCPU: Embedded 9 pages/cpu @c14dc000 s13632 r8192 d15040 u36864
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64768
[    0.000000] Kernel command line: console=ttyO0,115200n8 ip=dhcp earlyprintk
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Memory: 255MB = 255MB total
[    0.000000] Memory: 223080k/223080k available, 39064k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc075f8dc   (7519 kB)
[    0.000000]       .init : 0xc0760000 - 0xc0cda540   (5610 kB)
[    0.000000]       .data : 0xc0cdc000 - 0xc0d75820   ( 615 kB)
[    0.000000]        .bss : 0xc0d75820 - 0xc12d0a88   (5485 kB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: timer1 at 32768 Hz
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[    0.000000] OMAP clocksource: 32k_counter at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.001159] Calibrating delay loop... 395.67 BogoMIPS (lpj=1978368)
[    0.109649] pid_max: default: 32768 minimum: 301
[    0.110290] Security Framework initialized
[    0.110473] Mount-cache hash table entries: 512
[    0.126861] CPU: Testing write buffer coherency: ok
[    0.128692] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.128814] Setting up static identity map for 0xc055bc70 - 0xc055bce0
[    0.132598] Brought up 1 CPUs
[    0.132629] SMP: Total of 1 processors activated (395.67 BogoMIPS).
[    0.132659] CPU: All CPU(s) started in SVC mode.
[    0.136352] devtmpfs: initialized
[    0.196838] pinctrl core: initialized pinctrl subsystem
[    0.204345] regulator-dummy: no parameters
[    0.208740] NET: Registered protocol family 16
[    0.219116] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.239593] Reprogramming SDRC clock to 332000000 Hz
[    0.254455] OMAP GPIO hardware version 2.5
[    0.288085] platform 49022000.mcbsp: alias fck already exists
[    0.289916] platform 49024000.mcbsp: alias fck already exists
[    0.307922] omap-gpmc 6e000000.gpmc: GPMC revision 5.0
[    0.312744] No ATAGs?
[    0.312774] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.318359] OMAP DMA hardware revision 4.0
[    0.320190] Serial: AMBA PL011 UART driver
[    0.401214] bio: create slab <bio-0> at 0
[    0.506225] omap-dma-engine 48056000.dma-controller: OMAP DMA engine driver
[    0.517608] SCSI subsystem initialized
[    0.520904] usbcore: registered new interface driver usbfs
[    0.521545] usbcore: registered new interface driver hub
[    0.522277] usbcore: registered new device driver usb
[    0.525085] omap_i2c i2c.8: did not get pins for i2c error: -19
[    0.527038] omap_i2c i2c.8: bus 0 rev3.3 at 2600 kHz
[    0.542297] twl 0-0048: PIH (irq 23) chaining IRQs 338..346
[    0.542999] twl 0-0048: power (irq 343) chaining IRQs 346..353
[    0.550140] VDAC: 1800 mV 
[    0.554077] VPLL2: 1800 mV 
[    0.557281] VMMC1: 1850 <--> 3150 mV at 3150 mV 
[    0.560607] VUSB1V5: 1500 mV 
[    0.563232] VUSB1V8: 1800 mV 
[    0.565734] VUSB3V1: 3100 mV 
[    0.568542] VSIM: 1800 <--> 3000 mV at 1800 mV 
[    0.572418] twl4030_gpio gpio.26: gpio (irq 338) chaining IRQs 354..371
[    0.575836] omap_i2c i2c.9: did not get pins for i2c error: -19
[    0.577331] omap_i2c i2c.9: bus 1 rev3.3 at 100 kHz
[    0.577636] omap_i2c i2c.10: did not get pins for i2c error: -19
[    0.579223] omap_i2c i2c.10: bus 2 rev3.3 at 100 kHz
[    0.589477] Switching to clocksource 32k_counter
[    0.758361] NET: Registered protocol family 2
[    0.761047] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[    0.761322] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
[    0.762481] TCP: Hash tables configured (established 2048 bind 2048)
[    0.762786] TCP: reno registered
[    0.762817] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.763153] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.764404] NET: Registered protocol family 1
[    0.766204] RPC: Registered named UNIX socket transport module.
[    0.766235] RPC: Registered udp transport module.
[    0.766265] RPC: Registered tcp transport module.
[    0.766265] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.886260] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.886749] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[    1.083740] VFS: Disk quotas dquot_6.5.2
[    1.084136] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.087951] NFS: Registering the id_resolver key type
[    1.088592] Key type id_resolver registered
[    1.088623] Key type id_legacy registered
[    1.088806] jffs2: version 2.2. (NAND) (SUMMARY)  �� 2001-2006 Red Hat, Inc.
[    1.089538] msgmni has been set to 467
[    1.095092] io scheduler noop registered
[    1.095123] io scheduler deadline registered
[    1.095214] io scheduler cfq registered (default)
[    1.098144] pinctrl-single 48002030.pinmux: 742 pins at pa fa002030 size 1484
[    1.099090] pinctrl-single 48002a58.pinmux: 46 pins at pa fa002a58 size 92
[    1.105224] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.114746] omap_uart serial.5: did not get pins for uart0 error: -19
[    1.115478] serial.5: ttyO0 at MMIO 0x4806a000 (irq = 88) is a OMAP UART0
[    1.825805] console [ttyO0] enabled
[    1.832183] omap_uart serial.6: did not get pins for uart1 error: -19
[    1.839385] serial.6: ttyO1 at MMIO 0x4806c000 (irq = 89) is a OMAP UART1
[    1.848999] omap_uart serial.7: did not get pins for uart2 error: -19
[    1.856353] serial.7: ttyO2 at MMIO 0x49020000 (irq = 90) is a OMAP UART2
[    1.907745] brd: module loaded
[    1.936614] loop: module loaded
[    1.946990] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.965362] intel,pf48f6000m0y1be: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000089 Chip ID 0x0088b1
[    1.976928] Intel/Sharp Extended Query Table at 0x010A
[    1.982482] Intel/Sharp Extended Query Table at 0x010A
[    1.987915] Intel/Sharp Extended Query Table at 0x010A
[    1.993469] Intel/Sharp Extended Query Table at 0x010A
[    1.998901] Intel/Sharp Extended Query Table at 0x010A
[    2.004425] Using buffer write method
[    2.008300] Using auto-unlock on power-up/resume
[    2.013214] cfi_cmdset_0001: Erase suspend on write enabled
[    2.026824] 4 ofpart partitions found on MTD device intel,pf48f6000m0y1be
[    2.034118] Creating 4 MTD partitions on "intel,pf48f6000m0y1be":
[    2.041046] 0x000000000000-0x000000040000 : "bootloader-nor"
[    2.055450] 0x000000040000-0x000000080000 : "params-nor"
[    2.066467] 0x000000080000-0x000000280000 : "kernel-nor"
[    2.077606] 0x000000240000-0x000007fc0000 : "filesystem-nor"
[    2.100585] No NAND device found
[    2.104187] Trying ONFI probe in 16 bits mode, aborting !
[    2.109893] No NAND device found
[    2.114166] OneNAND driver initializing
[    2.118804] omap2-onenand omap2-onenand: initializing on CS2, phys base 0x20000000, virtual base d0880000, freq 0 MHz
[    2.130218] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
[    2.135253] OneNAND version = 0x002c
[    2.140991] Scanning device for bad blocks
[    2.157745] OneNAND eraseblock 205 is an initial bad block
[    2.174102] OneNAND eraseblock 390 is an initial bad block
[    2.185363] OneNAND eraseblock 486 is an initial bad block
[    2.194702] OneNAND eraseblock 547 is an initial bad block
[    2.206329] OneNAND eraseblock 651 is an initial bad block
[    2.213439] OneNAND eraseblock 674 is an initial bad block
[    2.259613] OneNAND eraseblock 1398 is an initial bad block
[    2.301971] 5 ofpart partitions found on MTD device omap2-onenand
[    2.308380] Creating 5 MTD partitions on "omap2-onenand":
[    2.314147] 0x000000000000-0x000000080000 : "xloader-onenand"
[    2.325622] 0x000000080000-0x0000000c0000 : "bootloader-onenand"
[    2.337219] 0x0000000c0000-0x0000000e0000 : "params-onenand"
[    2.348480] 0x0000000e0000-0x0000002e0000 : "kernel-onenand"
[    2.360382] 0x0000002e0000-0x000010000000 : "filesystem-onenand"
[    2.384552] omap2_mcspi spi.11: pins are not configured from the driver
[    2.394165] omap2_mcspi spi.12: pins are not configured from the driver
[    2.403106] omap2_mcspi spi.13: pins are not configured from the driver
[    2.411834] omap2_mcspi spi.14: pins are not configured from the driver
[    2.428222] usbcore: registered new interface driver asix
[    2.434753] usbcore: registered new interface driver ax88179_178a
[    2.442382] usbcore: registered new interface driver cdc_ether
[    2.449188] usbcore: registered new interface driver smsc95xx
[    2.456024] usbcore: registered new interface driver net1080
[    2.462707] usbcore: registered new interface driver cdc_subset
[    2.469512] usbcore: registered new interface driver zaurus
[    2.476379] usbcore: registered new interface driver cdc_ncm
[    2.485351] usbcore: registered new interface driver cdc_wdm
[    2.491485] Initializing USB Mass Storage driver...
[    2.497375] usbcore: registered new interface driver usb-storage
[    2.503814] USB Mass Storage support registered.
[    2.509368] usbcore: registered new interface driver usbtest
[    2.518371] mousedev: PS/2 mouse device common for all mice
[    2.532562] twl_rtc rtc.17: Power up reset detected.
[    2.538726] twl_rtc rtc.17: Enabling TWL-RTC
[    2.548553] twl_rtc rtc.17: rtc core: registered rtc.17 as rtc0
[    2.557189] i2c /dev entries driver
[    2.566284] Driver for 1-wire Dallas network protocol.
[    2.577667] omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[    2.592773] omap-dma-engine 48056000.dma-controller: allocating channel for 62
[    2.600738] omap-dma-engine 48056000.dma-controller: allocating channel for 61
[    2.612396] omap_hsmmc mmc.15: pins are not configured from the driver
[    2.667449] ledtrig-cpu: registered to indicate activity on CPUs
[    2.676300] usbcore: registered new interface driver usbhid
[    2.682281] usbhid: USB HID core driver
[    2.690795] oprofile: using arm/armv7
[    2.695739] TCP: cubic registered
[    2.699249] Initializing XFRM netlink socket
[    2.704162] NET: Registered protocol family 17
[    2.708984] NET: Registered protocol family 15
[    2.714263] Key type dns_resolver registered
[    2.718872] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
[    2.727172] ThumbEE CPU extension supported.
[    2.738586] VUSB3V1: disabling
[    2.742706] VUSB1V8: disabling
[    2.746582] VUSB1V5: disabling
[    2.750793] VPLL2: disabling
[    2.754699] VDAC: disabling
[    2.764526] mmc0: SD Status: Invalid Allocation Unit size.
[    2.772277] twl_rtc rtc.17: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[    2.782043] mmc0: host does not support reading read-only switch. assuming write-enable.
[    2.793182] mmc0: new high speed SD card at address b368
[    2.802612] mmcblk0: mmc0:b368 SD1GB 952 MiB 
[    2.814208]  mmcblk0: p1 p2
[   14.917297] Freeing init memory: 5608K


More information about the devicetree-discuss mailing list