Commit graph

362070 commits

Author SHA1 Message Date
Alexander Shiyan
1b45acebd4 ARM: dts: Add NFC support for i.MX27 Phytec PCM038 module
Added NFC node to imx27-phytec-phycore DT file.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:40 +08:00
Sascha Hauer
718a35006f ARM: i.MX51: Add PATA support
This adds the PATA device and the pinctrl group for to the i.MX51 dts.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:39 +08:00
Fabio Estevam
89b82915c4 ARM: dts: Add initial support for Wandboard Dual-Lite
Wandboard is a development board that has two variants: one version based
on mx6 dual lite and another one based on mx6 solo.

For more details about Wandboard, please refer to: http://www.wandboard.org/

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:39 +08:00
Shawn Guo
1aa8b3e06f ARM: dts: imx: add initial imx6dl-sabreauto support
Add initial imx6dl-sabreauto support based on the common stuff already
in imx6qdl-sabreauto.dtsi.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:39 +08:00
Shawn Guo
9a8d6d55f6 ARM: dts: imx: add initial imx6dl-sabresd support
Add initial imx6dl-sabresd support based on the common stuff already in
imx6qdl-sabresd.dtsi.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:38 +08:00
Shawn Guo
082d33d08f ARM: dts: imx: make sabreauto and sabresd common
The sabreauto and sabresd boards are common for imx6q and imx6dl.
Create imx6qdl-sabreauto.dtsi and imx6qdl-sabresd.dtsi for those
common parts.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:38 +08:00
Shawn Guo
21e59123a8 pinctrl: add pinctrl driver for imx6sl
Add a pinctrl driver for i.MX6 SoloLite based on pinctrl-imx core
driver.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-04-09 22:53:38 +08:00
Shawn Guo
3f551d6aca pinctrl: add pinctrl driver for imx6dl
The imx6dl is a derivative of imx6q with very limited difference.  These
two SoCs are so compatible that they can be handled as one platform in
software.  That said, we will not have target SOC_IMX6DL but just
reusing SOC_IMX6Q.   That's why the pinctrl-imx6dl driver is added here
with symbol PINCTRL_IMX6Q controlling the build of it.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-04-09 22:53:38 +08:00
Marek Vasut
8807b34476 ARM: dts: imx53: fix SD2_DATA1 pad AUDMUX_AUD4 configuration
The IOMUXC_AUDMUX_P4_INPUT_TXCLK_AMX_SELECT_INPUT must be configured as 1
instead of 0 to have AUD4 muxed on SD2 pins working.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:37 +08:00
Pavel Machek
8593a1a2e8 ARM: dts: MicroSys sbc6x support (i.MX6)
Add support for MicroSys sbc6x board.

Signed-off-by: Pavel Machek <pavel@denx.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:37 +08:00
Philipp Zabel
bd3d924d71 ARM i.MX5: Add System Reset Controller (SRC) support for i.MX51 and i.MX53
The SRC in i.MX51 and i.MX53 is similar to the one in i.MX6q minus
the IPU2 reset line and multi core CPU reset/enable bits.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:53:37 +08:00
Philipp Zabel
8d84c3740f ARM i.MX5: Add system reset controller (SRC) to i.MX51 and i.MX53 device tree
Also, link SRC to IPU via phandle.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:57 +08:00
Philipp Zabel
09ebf36659 ARM i.MX6q: Link system reset controller (SRC) to IPU in DT
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:57 +08:00
Steffen Trumtrar
41c0434288 ARM i.MX6q: Add LDB device to device tree
Add ldb device tree node and clock lookups.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:57 +08:00
Markus Pargmann
371b3f18c5 ARM: imx5 DT init cpufreq-cpu0 device
Add cpufreq-cpu0 platform device for imx5 DT init and register the clock
for imx5.

Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:57 +08:00
Markus Pargmann
b91af27a3c ARM: imx27 DT init cpufreq-cpu0 device
Adds cpufreq-cpu0 platform device for imx27 DT init and adds a clock
registration for cpufreq-cpu0 device.

Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:56 +08:00
Philipp Zabel
420714aaa6 ARM i.MX53: Add LDB device to device tree
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:55 +08:00
Philipp Zabel
5af9f14338 ARM i.MX53: Add IOMUXC GPR to device tree
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:55 +08:00
Philipp Zabel
4438a6a1cc ARM i.MX5: Move IPU clock lookups into device tree
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:55 +08:00
Gwenhael Goavec-Merou
00ba2459f6 ARM: imx: Add support for the Armadeus Systems APF27Dev docking board
The APF27Dev is a docking board for an APF27 SOM

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:54 +08:00
Gwenhael Goavec-Merou
003c70d887 ARM: imx: apf51dev: add ecspi1, ecspi2 and i2c2 support
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:54 +08:00
Sascha Hauer
b700c11983 ARM: i.MX27: Add clocks to GPT devicetree nodes
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:54 +08:00
Sascha Hauer
4efccadd3a ARM: i.MX6: Add clocks to GPT devicetree node
The i.MX6 already has a devicetree node for the GPT, but not yet
has the clocks. Add them.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:53 +08:00
Sascha Hauer
cc8aae9bc6 ARM: i.MX53: Add GPT devicetree node
The GPT is the GPT timer found on i.MX SoCs. This patch adds the
devicetree node for it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:53 +08:00
Sascha Hauer
ed73c63ad9 ARM: i.MX51: Add GPT devicetree node
The GPT is the GPT timer found on i.MX SoCs. This patch adds the
devicetree node for it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:53 +08:00
Sascha Hauer
a44eed9a21 ARM: i.MX31: Add GPT devicetree node
The GPT is the GPT timer found on i.MX SoCs.

Since this is the first user of the AIPS2 this patch also adds it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:52 +08:00
Sascha Hauer
ca26d04143 ARM: i.MX27: Add GPT devicetree nodes
The GPT is the GPT timer found on i.MX SoCs.

This adds the missing GPT devicetree nodes. Also fixup the watchdog
register map size along the way. it's 0x1000, not 0x4000. This didn't
hurt before as the region was not occupied by another device, but now
overlaps with the GPT.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:52 +08:00
Sascha Hauer
c21e5ca874 ARM: i.MX: Add GPT devicetree Documentation
The GPT binding is already used on i.MX6 and i.MX25, but not yet
documented. Add a binding document for it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:52 +08:00
Fabio Estevam
c20736f1ab ARM: mx27: Replace clk_register_clkdev with clock DT lookup
Similarly as it was done for mx6q, use a DT lookup in order to make maintainance
task for the clock devices easier.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:52 +08:00
Gwenhael Goavec-Merou
52c9aa9461 ARM: imx51: Add a second pinctrl group for i2c2
Add a second pinctrl group of pins for i2c2.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:51 +08:00
Gwenhael Goavec-Merou
a15ac4a640 ARM: imx51: Add pinctrl for ecspi2
Add ecspi2 group of pins for imx51.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:51 +08:00
Gwenhael Goavec-Merou
e910b45c9d ARM: imx: Add support for the Armadeus Systems APF51Dev docking board
The APF51Dev is a docking board for an APF51 SOM

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:51 +08:00
Sean Cross
624dbacace ARM: dts: imx6q: Add pinctrl for audmix on AUD3
Allow AUD3 to be used as audio output from the audmux block.

Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:51 +08:00
Sean Cross
d27f512a19 ARM: dts: imx6q: Add pinctrl for i2c2 and i2c3
Add groups to allow i2c2 and i2c3 to be used on imx6q.

Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:50 +08:00
Sean Cross
4820a9ac25 ARM: dts: imx6q: Add pinctrl for ecspi3
Add a group of pins to allow ecspi3 to be used on imx6q.

Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:50 +08:00
Shawn Guo
e16415313c pinctrl: imx: move hard-coding data into device tree
Currently, all imx pinctrl drivers maintain a big array of struct
imx_pin_reg which hard-codes data like register offset and mux mode
setting for each pin function.  Every time a new imx SoC support is
added, we need to add such a big mount of data.  With moving to single
kernel build, it's only matter of time to be blamed on memory consuming.

With DTC pre-processor support in place, the patch moves all these data
into device tree by redefining the PIN_FUNC_ID in imxXX-pinfunc.h and
changing the PIN_FUNC_ID parsing code a little bit.

The pin id gets re-numbered based on mux register offset, or config
register offset if the pin has no mux register, so that kernel can
identify the pin id from register offsets provided by device tree.

As a bonus point of the change, those arbitrary magic numbers standing
for particular PIN_FUNC_ID in device tree sources are now replaced by
macros to improve the readability of dts files.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-04-09 22:52:50 +08:00
Shawn Guo
36dffd8f49 ARM: imx: use #include for all device trees
Replace /include/ (dtc) with #include (C pre-processor) for all imx DT
files, so that gcc -E handles the entire include tree, and hence any of
those files can #include some other file e.g. for constant definitions.

This allows future use of #defines and header files in order to define
names for various constants, such as pinctrl settings. Use of those
features will increase the readability of the device tree files.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:49 +08:00
Peter Chen
a10c22e44b ARM: dts: imx6q-sabresd: Add USB support
Add USB support for imx6q sabresd board

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:49 +08:00
Dirk Behme
218abe6fe3 ARM: dts: imx6q: add PMU
Add ARM Cortex A9 Performance Monitor Unit (PMU) support.
On i.MX6 a combined interrupt on hardware line #126 is used
(i.MX6 TRM: Performance Unit interrupt).

For more details see Documentation/devicetree/bindings/arm/pmu.txt

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:49 +08:00
Shawn Guo
8b9ad9f67d Merge remote-tracking branch 'swarren/for-3.10/dtc-cpp-chroot-std-headers' into imx/dt 2013-04-09 22:52:42 +08:00
Shawn Guo
30dd1877aa The imx cleanup for 3.10:
* Clean up a couple of unneeded function declarations
 * Remove imx specific cpufreq driver as generic cpufreq-cpu0 works well
   as the replacement
 * Remove platform ahci support
 * Clean up unused ARCH/MACH Kconfig symbols
 * Remove a couple of unused files
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJRZBpzAAoJEFBXWFqHsHzOfyAH/RdvhORI0rNhBAOrSxleWlMy
 AMP9x6G5tXNK/fgtxopvCiS4VXw5MB01uqJWMVM9+hx6676oCXWc/L3I6iT5l87B
 qPY/e9LyGJa5aOYczPuUT2sG+Ga8989GhOksA+L6kWHZ2df0BIB9rBRZnoPezEAx
 u2ATdioyzfj2rAnDNFOxsw6oai265mowt/f8J/7EQfxgkAMcKov7/BpVac0po55R
 tv+Hr3T7OBg3p/h5PYi5iAehVCToCKOD31QpnlhS+dmKS52w7tEO6T75INt7HzC8
 CJT0zi5jJ3/tDJsdYJ1SS4MHK4U43y0oV7cw7sO7TzNreyOB6bzTWDqhdJY2oMM=
 =N7xl
 -----END PGP SIGNATURE-----

Merge tag 'imx-cleanup-3.10' into imx/dt

The imx cleanup for 3.10:

* Clean up a couple of unneeded function declarations
* Remove imx specific cpufreq driver as generic cpufreq-cpu0 works well
  as the replacement
* Remove platform ahci support
* Clean up unused ARCH/MACH Kconfig symbols
* Remove a couple of unused files
2013-04-09 22:52:11 +08:00
Paul Bolle
3442a7b51d ARM: i.MX: remove unused ARCH_* configs
This removes the unused Kconfig options ARCH_MX5, ARCH_MX51,
ARCH_MX53 and MACH_MX21.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 21:07:36 +08:00
Sascha Hauer
e27da53bae ARM i.MX53: remove platform ahci support
The i.MX53 ahci platform support is unused in mainline. To demotivate
people using it just remove it from the tree.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 21:07:20 +08:00
Stephen Warren
4be505d4fc ARM: dt: create a DT header for the GIC
The ARM GIC binding defines a few custom cells and flags for its IRQ
specifier. Provide names for those.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:23:24 -06:00
Stephen Warren
840ef8b7cc ARM: dt: add header to define IRQ flags
Many IRQ device tree bindings use the same flags. Create a header to
define those.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:23:19 -06:00
Stephen Warren
71fab21fee ARM: dt: add header to define GPIO flags
Many GPIO device tree bindings use the same flags. Create a header to
define those.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:23:14 -06:00
Stephen Warren
b40b25fff8 kbuild: always run gcc -E on *.dts, remove cmd_dtc_cpp
Replace cmd_dtc with cmd_dtc_cpp, and delete the latter.

Previously, a special file extension (.dtsp) was required to trigger
the C pre-processor to run on device tree files. This was ugly. Now that
previous changes have enhanced cmd_dtc_cpp to collect dependency
information from both gcc -E and dtc, we can transparently run the pre-
processor on all device tree files, irrespective of whether they
use /include/ or #include syntax to include *.dtsi.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:23:07 -06:00
Stephen Warren
85f02be8e5 kbuild: cmd_dtc_cpp: extract deps from both gcc -E and dtc
Prior to this change, when compiling *.dts to *.dtb, the dependency
output from dtc would be used, and when compiling *.dtsp to *.dtb, the
dependency output from gcc -E alone would be used, despite dtc also
being invoked (on a temporary file that was guaranteed to have no
dependencies).

With this change, when compiling *.dtsp to *.dtb, the dependency files
from both gcc -E and dtc are used. This will allow cmd_dtc_cpp to
replace cmd_dtc in a future change. In turn, that will allow the C pre-
processor to be run transparently on *.dts, without the need to a
separate rule or file extension to trigger it.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:23:04 -06:00
Stephen Warren
2ab8a99661 kbuild: fixdep: support concatenated dep files
The current use-case for fixdep is: a source file is run through a single
processing step, which creates a single dependency file as a side-effect,
which fixdep transforms into the file used by the kernel build process.

In order to transparently run the C pre-processor on device-tree files,
we wish to run both gcc -E and dtc on a source file in a single rule.
This generates two dependency files, which must be transformed together
into the file used by the kernel build process. This change modifies
fixdep so it can process the concatenation of multiple separate input
dependency files, and produce a correct unified output.

The code changes have the slight benefit of transforming the loop in
parse_dep_file() into more of a lexer/tokenizer, with the loop body being
more of a parser. Previously, some of this logic was mixed together
before the loop. I also added some comments, which I hope are useful.

Benchmarking shows that on a cross-compiled ARM tegra_defconfig build,
there is less than 0.5 seconds speed decrease with this change, on top
of a build time of ~2m24s. This is probably within the noise.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-04-05 12:22:58 -06:00
Stephen Warren
c58299aa87 kbuild: create an "include chroot" for DT bindings
The recent dtc+cpp support allows header files and C pre-processor
defines/macros to be used when compiling device tree files. These
headers will typically define various constants that are part of the
device tree bindings.

The original patch which set up the dtc+cpp include path only considered
using those headers from device tree files. However, most are also
useful for kernel code which needs to interpret the device tree.

In both the DT files and the kernel, I'd like to include the DT-related
headers in the same way, for example, <dt-bindings/gpio/tegra-gpio.h>.
That will simplify any text which discusses the DT header locations.

Creating a <dt-bindings/> for kernel source to use is as simple as
placing files into include/dt-bindings/.

However, when compiling DT files, the include path should be restricted
so that only the dt-bindings path is available; arbitrary kernel headers
shouldn't be exposed. For this reason, create a specific include
directory for use by dtc+cpp, and symlink dt-bindings from there to the
actual location of include/dt-bindings/. For want of a better location,
place this "include chroot" into the existing dts/ directory.

arch/*/boot/dts/include/dt-bindings -> ../../../../../include/dt-bindings

Some headers used by device tree files may not be useful to the kernel;
they may be used simply to aid in constructing the DT file (e.g. macros
to create a node), but not define any information that the kernel needs
to share. These may be placed directly into arch/*/boot/dts/ along with
the DT files themselves.

Acked-by: Michal Marek <mmarek@suse.cz>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-04-05 12:22:32 -06:00