[PATCH 3/4] ARM: mvebu: Add HP T5325 thin client
Jason Cooper
jason at lakedaemon.net
Sun Feb 23 12:30:14 EST 2014
On Sun, Feb 23, 2014 at 06:19:41PM +0100, Andrew Lunn wrote:
> Convert the kirkwood t5325-setup.c to mostly device tree for
> mach-mvebu. Part of the audio setup needs to remain in C for the
> moment until suitable bindings are designed and implemented. So add
> board code, triggered by the compatibility string.
>
> The first version of the dts file was created by Thomas Petazzoni.
>
> Signed-off-by: Andrew Lunn <andrew at lunn.ch>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/kirkwood-t5325.dts | 209 +++++++++++++++++++++++++++++++++++
Please split this in two. dts|mach-mvebu
thx,
Jason.
> arch/arm/mach-mvebu/Kconfig | 7 ++
> arch/arm/mach-mvebu/Makefile | 1 +
> arch/arm/mach-mvebu/board-t5325.c | 41 +++++++
> arch/arm/mach-mvebu/board.h | 22 ++++
> arch/arm/mach-mvebu/kirkwood.c | 11 +-
> 7 files changed, 291 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boot/dts/kirkwood-t5325.dts
> create mode 100644 arch/arm/mach-mvebu/board-t5325.c
> create mode 100644 arch/arm/mach-mvebu/board.h
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 436cc381db4a..20c152faa800 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -132,6 +132,7 @@ kirkwood := \
> kirkwood-rs411.dtb \
> kirkwood-sheevaplug.dtb \
> kirkwood-sheevaplug-esata.dtb \
> + kirkwood-t5325.dtb \
> kirkwood-topkick.dtb \
> kirkwood-ts219-6281.dtb \
> kirkwood-ts219-6282.dtb \
> diff --git a/arch/arm/boot/dts/kirkwood-t5325.dts b/arch/arm/boot/dts/kirkwood-t5325.dts
> new file mode 100644
> index 000000000000..07b0146f31da
> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-t5325.dts
> @@ -0,0 +1,209 @@
> +/*
> + * Device Tree file for HP t5325 Thin Client"
> + *
> + * Copyright (C) 2014
> + *
> + * Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> + * Andrew Lunn <andrew at lunn.ch>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> +*/
> +
> +/dts-v1/;
> +
> +#include "kirkwood.dtsi"
> +#include "kirkwood-6281.dtsi"
> +
> +/ {
> + model = "HP t5325 Thin Client";
> + compatible = "hp,t5325", "marvell,kirkwood-88f6281", "marvell,kirkwood";
> +
> + memory {
> + device_type = "memory";
> + reg = <0x00000000 0x20000000>;
> + };
> +
> + chosen {
> + bootargs = "console=ttyS0,115200n8";
> + };
> +
> + mbus {
> + pcie-controller {
> + status = "okay";
> +
> + pcie at 1,0 {
> + status = "okay";
> + };
> + };
> + };
> +
> + ocp at f1000000 {
> + pinctrl: pinctrl at 10000 {
> + pinctrl-0 = <&pmx_i2s &pmx_sysrst>;
> + pinctrl-names = "default";
> +
> + pmx_button_power: pmx-button_power {
> + marvell,pins = "mpp45";
> + marvell,function = "gpio";
> + };
> +
> + pmx_power_off: pmx-power-off {
> + marvell,pins = "mpp48";
> + marvell,function = "gpio";
> + };
> +
> + pmx_led: pmx-led {
> + marvell,pins = "mpp21";
> + marvell,function = "gpio";
> + };
> +
> + pmx_usb_sata_power_enable: pmx-usb-sata-power-enable {
> + marvell,pins = "mpp44";
> + marvell,function = "gpio";
> + };
> +
> + /*
> + * Redefined from kirkwood-6281.dtsi, because
> + * we don't use SPI CS on MPP0, but on MPP7.
> + */
> + pmx_spi: pmx-spi {
> + marvell,pins = "mpp1", "mpp2", "mpp3", "mpp7";
> + marvell,function = "spi";
> + };
> +
> + pmx_sysrst: pmx-sysrst {
> + marvell,pins = "mpp6";
> + marvell,function = "sysrst";
> + };
> +
> + pmx_i2s: pmx-i2s {
> + marvell,pins = "mpp39", "mpp40", "mpp41", "mpp42",
> + "mpp43";
> + marvell,function = "audio";
> + };
> + };
> +
> + spi at 10600 {
> + pinctrl-0 = <&pmx_spi>;
> + pinctrl-names = "default";
> + status = "okay";
> +
> + flash at 0 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "st,m25p80";
> + spi-max-frequency = <86000000>;
> + reg = <0>;
> + mode = <0>;
> +
> + partition at 0 {
> + reg = <0x0 0x80000>;
> + label = "u-boot";
> + };
> +
> + partition at 1 {
> + reg = <0x80000 0x40000>;
> + label = "SSD firmware";
> + };
> +
> + partition at 2 {
> + reg = <0xc0000 0x10000>;
> + label = "u-boot env";
> + };
> +
> + partition at 3 {
> + reg = <0xd0000 0x10000>;
> + label = "permanent u-boot env";
> + };
> +
> + partition at 4 {
> + reg = <0xd0000 0x10000>;
> + label = "permanent u-boot env";
> + };
> + };
> + };
> +
> + i2c at 11000 {
> + status = "okay";
> +
> + alc5621: alc5621 at 1a {
> + compatible = "realtek,alc5621";
> + reg = <0x1a>;
> + };
> + };
> +
> + serial at 12000 {
> + status = "okay";
> + };
> +
> + sata at 80000 {
> + status = "okay";
> + nr-ports = <2>;
> + };
> +
> + audio: audio-controller at a0000 {
> + status = "okay";
> + };
> + };
> +
> + regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pinctrl-0 = <&pmx_usb_sata_power_enable>;
> + pinctrl-names = "default";
> +
> + usb_power: regulator at 1 {
> + compatible = "regulator-fixed";
> + reg = <1>;
> + regulator-name = "USB-SATA Power";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + regulator-always-on;
> + regulator-boot-on;
> + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + gpio_keys {
> + compatible = "gpio-keys";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pinctrl-0 = <&pmx_button_power>;
> + pinctrl-names = "default";
> +
> + button at 1 {
> + label = "Power Button";
> + linux,code = < KEY_POWER >;
> + gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + gpio_poweroff {
> + compatible = "gpio-poweroff";
> + pinctrl-0 = <&pmx_power_off>;
> + pinctrl-names = "default";
> + gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
> + };
> +
> +};
> +
> +&mdio {
> + status = "okay";
> +
> + ethphy0: ethernet-phy {
> + device_type = "ethernet-phy";
> + reg = <8>;
> + };
> +};
> +
> +ð0 {
> + status = "okay";
> + ethernet0-port at 0 {
> + phy-handle = <ðphy0>;
> + };
> +};
> +
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 529f9164a8ca..f6e928c97a01 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -92,6 +92,13 @@ config MACH_KIRKWOOD
> Say 'Y' here if you want your kernel to support boards based
> on the Marvell Kirkwood device tree.
>
> +config MACH_T5325
> + bool "HP T5325 thin client"
> + depends on MACH_KIRKWOOD
> + help
> + Say 'Y' here if you want your kernel to support the
> + HP T5325 Thin client
> +
> endmenu
>
> endif
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index d7672f1c8a6a..bbeb41ee3e75 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -9,3 +9,4 @@ obj-$(CONFIG_ARCH_MVEBU) += coherency.o coherency_ll.o pmsu.o
> obj-$(CONFIG_SMP) += platsmp.o headsmp.o
> obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
> obj-$(CONFIG_MACH_KIRKWOOD) += kirkwood.o kirkwood-pm.o
> +obj-$(CONFIG_MACH_T5325) += board-t5325.o
> diff --git a/arch/arm/mach-mvebu/board-t5325.c b/arch/arm/mach-mvebu/board-t5325.c
> new file mode 100644
> index 000000000000..65ace6db9f28
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/board-t5325.c
> @@ -0,0 +1,41 @@
> +/*
> + * HP T5325 Board Setup
> + *
> + * Copyright (C) 2014
> + *
> + * Andrew Lunn <andrew at lunn.ch>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/i2c.h>
> +#include <linux/init.h>
> +#include <linux/platform_device.h>
> +#include <sound/alc5623.h>
> +#include "board.h"
> +
> +static struct platform_device hp_t5325_audio_device = {
> + .name = "t5325-audio",
> + .id = -1,
> +};
> +
> +static struct alc5623_platform_data alc5621_data = {
> + .add_ctrl = 0x3700,
> + .jack_det_ctrl = 0x4810,
> +};
> +
> +static struct i2c_board_info i2c_board_info[] __initdata = {
> + {
> + I2C_BOARD_INFO("alc5621", 0x1a),
> + .platform_data = &alc5621_data,
> + },
> +};
> +
> +void __init t5325_init(void)
> +{
> + i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info));
> + platform_device_register(&hp_t5325_audio_device);
> +}
> diff --git a/arch/arm/mach-mvebu/board.h b/arch/arm/mach-mvebu/board.h
> new file mode 100644
> index 000000000000..de7f0a191394
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/board.h
> @@ -0,0 +1,22 @@
> +/*
> + * Board functions for Marvell System On Chip
> + *
> + * Copyright (C) 2014
> + *
> + * Andrew Lunn <andrew at lunn.ch>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef __ARCH_MVEBU_BOARD_H
> +#define __ARCH_MVEBU_BOARD_H
> +
> +#ifdef CONFIG_MACH_T5325
> +void t5325_init(void);
> +#else
> +static inline void t5325_init(void) {};
> +#endif
> +
> +#endif
> diff --git a/arch/arm/mach-mvebu/kirkwood.c b/arch/arm/mach-mvebu/kirkwood.c
> index 8a38b10532e5..120207fc36f1 100644
> --- a/arch/arm/mach-mvebu/kirkwood.c
> +++ b/arch/arm/mach-mvebu/kirkwood.c
> @@ -25,6 +25,7 @@
> #include "kirkwood.h"
> #include "kirkwood-pm.h"
> #include "common.h"
> +#include "board.h"
>
> static struct resource kirkwood_cpufreq_resources[] = {
> [0] = {
> @@ -158,6 +159,11 @@ void kirkwood_disable_mbus_error_propagation(void)
> writel(readl(cpu_config) & ~CPU_CONFIG_ERROR_PROP, cpu_config);
> }
>
> +static struct of_dev_auxdata auxdata[] __initdata = {
> + OF_DEV_AUXDATA("marvell,kirkwood-audio", 0xf10a0000,
> + "mvebu-audio", NULL),
> + { /* sentinel */ }
> +};
>
> static void __init kirkwood_dt_init(void)
> {
> @@ -174,7 +180,10 @@ static void __init kirkwood_dt_init(void)
> kirkwood_pm_init();
> kirkwood_dt_eth_fixup();
>
> - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> + if (of_machine_is_compatible("hp,t5325"))
> + t5325_init();
> +
> + of_platform_populate(NULL, of_default_bus_match_table, auxdata, NULL);
> }
>
> static const char * const kirkwood_dt_board_compat[] = {
> --
> 1.8.5.3
>
More information about the linux-arm-kernel
mailing list