Commit 1f976f69 authored by Vadim Pasternak's avatar Vadim Pasternak Committed by Darren Hart (VMware)

platform/x86: Move Mellanox platform hotplug driver to platform/mellanox

In preparation for making the hotplug driver build for different
architectures, move mlxcpld-hotplug.c to platform/mellanox and the
header to include/linux/platform_data as mlxreg.h to reflect the new
interface changes to come.

Replace references to CPLD with REG throughout the files, consistent
with the new name.
Signed-off-by: default avatarVadim Pasternak <vadimp@mellanox.com>
Acked-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
[dvhart: update copyright, rewrite commit message]
Signed-off-by: default avatarDarren Hart (VMware) <dvhart@infradead.org>
parent d6fa7588
...@@ -8860,12 +8860,13 @@ W: http://www.mellanox.com ...@@ -8860,12 +8860,13 @@ W: http://www.mellanox.com
Q: http://patchwork.ozlabs.org/project/netdev/list/ Q: http://patchwork.ozlabs.org/project/netdev/list/
F: drivers/net/ethernet/mellanox/mlxfw/ F: drivers/net/ethernet/mellanox/mlxfw/
MELLANOX MLX CPLD HOTPLUG DRIVER MELLANOX HARDWARE PLATFORM SUPPORT
M: Andy Shevchenko <andy@infradead.org>
M: Darren Hart <dvhart@infradead.org>
M: Vadim Pasternak <vadimp@mellanox.com> M: Vadim Pasternak <vadimp@mellanox.com>
L: platform-driver-x86@vger.kernel.org L: platform-driver-x86@vger.kernel.org
S: Supported S: Supported
F: drivers/platform/x86/mlxcpld-hotplug.c F: drivers/platform/mellanox/
F: include/linux/platform_data/mlxcpld-hotplug.h
MELLANOX MLX4 core VPI driver MELLANOX MLX4 core VPI driver
M: Tariq Toukan <tariqt@mellanox.com> M: Tariq Toukan <tariqt@mellanox.com>
......
...@@ -8,3 +8,5 @@ endif ...@@ -8,3 +8,5 @@ endif
source "drivers/platform/goldfish/Kconfig" source "drivers/platform/goldfish/Kconfig"
source "drivers/platform/chrome/Kconfig" source "drivers/platform/chrome/Kconfig"
source "drivers/platform/mellanox/Kconfig"
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
# #
obj-$(CONFIG_X86) += x86/ obj-$(CONFIG_X86) += x86/
obj-$(CONFIG_MELLANOX_PLATFORM) += mellanox/
obj-$(CONFIG_MIPS) += mips/ obj-$(CONFIG_MIPS) += mips/
obj-$(CONFIG_OLPC) += olpc/ obj-$(CONFIG_OLPC) += olpc/
obj-$(CONFIG_GOLDFISH) += goldfish/ obj-$(CONFIG_GOLDFISH) += goldfish/
......
# SPDX-License-Identifier: GPL-2.0
#
# Platform support for Mellanox hardware
#
menuconfig MELLANOX_PLATFORM
bool "Platform support for Mellanox hardware"
depends on X86 || COMPILE_TEST
---help---
Say Y here to get to see options for platform support for
Mellanox systems. This option alone does not add any kernel code.
If you say N, all options in this submenu will be skipped and disabled.
if MELLANOX_PLATFORM
config MLXREG_HOTPLUG
tristate "Mellanox platform hotplug driver support"
depends on HWMON
depends on I2C
---help---
This driver handles hot-plug events for the power suppliers, power
cables and fans on the wide range Mellanox IB and Ethernet systems.
endif # MELLANOX_PLATFORM
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for linux/drivers/platform/mellanox
# Mellanox Platform-Specific Drivers
#
obj-$(CONFIG_MLXREG_HOTPLUG) += mlxreg-hotplug.o
...@@ -1169,14 +1169,6 @@ config MLX_PLATFORM ...@@ -1169,14 +1169,6 @@ config MLX_PLATFORM
If you have a Mellanox system, say Y or M here. If you have a Mellanox system, say Y or M here.
config MLX_CPLD_PLATFORM
tristate "Mellanox platform hotplug driver support"
select HWMON
select I2C
---help---
This driver handles hot-plug events for the power suppliers, power
cables and fans on the wide range Mellanox IB and Ethernet systems.
config INTEL_TURBO_MAX_3 config INTEL_TURBO_MAX_3
bool "Intel Turbo Boost Max Technology 3.0 enumeration driver" bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
depends on X86_64 && SCHED_MC_PRIO depends on X86_64 && SCHED_MC_PRIO
......
...@@ -88,6 +88,5 @@ obj-$(CONFIG_INTEL_TELEMETRY) += intel_telemetry_core.o \ ...@@ -88,6 +88,5 @@ obj-$(CONFIG_INTEL_TELEMETRY) += intel_telemetry_core.o \
obj-$(CONFIG_INTEL_PMC_CORE) += intel_pmc_core.o obj-$(CONFIG_INTEL_PMC_CORE) += intel_pmc_core.o
obj-$(CONFIG_PMC_ATOM) += pmc_atom.o obj-$(CONFIG_PMC_ATOM) += pmc_atom.o
obj-$(CONFIG_MLX_PLATFORM) += mlx-platform.o obj-$(CONFIG_MLX_PLATFORM) += mlx-platform.o
obj-$(CONFIG_MLX_CPLD_PLATFORM) += mlxcpld-hotplug.o
obj-$(CONFIG_INTEL_TURBO_MAX_3) += intel_turbo_max_3.o obj-$(CONFIG_INTEL_TURBO_MAX_3) += intel_turbo_max_3.o
obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN) += intel_chtdc_ti_pwrbtn.o obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN) += intel_chtdc_ti_pwrbtn.o
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/i2c-mux-reg.h> #include <linux/platform_data/i2c-mux-reg.h>
#include <linux/platform_data/mlxcpld-hotplug.h> #include <linux/platform_data/mlxreg.h>
#define MLX_PLAT_DEVICE_NAME "mlxplat" #define MLX_PLAT_DEVICE_NAME "mlxplat"
...@@ -138,7 +138,7 @@ static struct i2c_mux_reg_platform_data mlxplat_mux_data[] = { ...@@ -138,7 +138,7 @@ static struct i2c_mux_reg_platform_data mlxplat_mux_data[] = {
}; };
/* Platform hotplug devices */ /* Platform hotplug devices */
static struct mlxcpld_hotplug_device mlxplat_mlxcpld_psu[] = { static struct mlxreg_hotplug_device mlxplat_mlxcpld_psu[] = {
{ {
.brdinfo = { I2C_BOARD_INFO("24c02", 0x51) }, .brdinfo = { I2C_BOARD_INFO("24c02", 0x51) },
.bus = 10, .bus = 10,
...@@ -149,7 +149,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_psu[] = { ...@@ -149,7 +149,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_psu[] = {
}, },
}; };
static struct mlxcpld_hotplug_device mlxplat_mlxcpld_pwr[] = { static struct mlxreg_hotplug_device mlxplat_mlxcpld_pwr[] = {
{ {
.brdinfo = { I2C_BOARD_INFO("dps460", 0x59) }, .brdinfo = { I2C_BOARD_INFO("dps460", 0x59) },
.bus = 10, .bus = 10,
...@@ -160,7 +160,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_pwr[] = { ...@@ -160,7 +160,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_pwr[] = {
}, },
}; };
static struct mlxcpld_hotplug_device mlxplat_mlxcpld_fan[] = { static struct mlxreg_hotplug_device mlxplat_mlxcpld_fan[] = {
{ {
.brdinfo = { I2C_BOARD_INFO("24c32", 0x50) }, .brdinfo = { I2C_BOARD_INFO("24c32", 0x50) },
.bus = 11, .bus = 11,
...@@ -181,7 +181,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_fan[] = { ...@@ -181,7 +181,7 @@ static struct mlxcpld_hotplug_device mlxplat_mlxcpld_fan[] = {
/* Platform hotplug default data */ /* Platform hotplug default data */
static static
struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_default_data = { struct mlxreg_hotplug_platform_data mlxplat_mlxcpld_default_data = {
.top_aggr_offset = MLXPLAT_CPLD_LPC_REG_AGGR_ADRR, .top_aggr_offset = MLXPLAT_CPLD_LPC_REG_AGGR_ADRR,
.top_aggr_mask = MLXPLAT_CPLD_AGGR_MASK_DEF, .top_aggr_mask = MLXPLAT_CPLD_AGGR_MASK_DEF,
.top_aggr_psu_mask = MLXPLAT_CPLD_AGGR_PSU_MASK_DEF, .top_aggr_psu_mask = MLXPLAT_CPLD_AGGR_PSU_MASK_DEF,
...@@ -203,7 +203,7 @@ struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_default_data = { ...@@ -203,7 +203,7 @@ struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_default_data = {
/* Platform hotplug MSN21xx system family data */ /* Platform hotplug MSN21xx system family data */
static static
struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_msn21xx_data = { struct mlxreg_hotplug_platform_data mlxplat_mlxcpld_msn21xx_data = {
.top_aggr_offset = MLXPLAT_CPLD_LPC_REG_AGGR_ADRR, .top_aggr_offset = MLXPLAT_CPLD_LPC_REG_AGGR_ADRR,
.top_aggr_mask = MLXPLAT_CPLD_AGGR_MASK_MSN21XX, .top_aggr_mask = MLXPLAT_CPLD_AGGR_MASK_MSN21XX,
.top_aggr_pwr_mask = MLXPLAT_CPLD_AGGR_MASK_MSN21XX, .top_aggr_pwr_mask = MLXPLAT_CPLD_AGGR_MASK_MSN21XX,
...@@ -213,11 +213,11 @@ struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_msn21xx_data = { ...@@ -213,11 +213,11 @@ struct mlxcpld_hotplug_platform_data mlxplat_mlxcpld_msn21xx_data = {
}; };
static struct resource mlxplat_mlxcpld_resources[] = { static struct resource mlxplat_mlxcpld_resources[] = {
[0] = DEFINE_RES_IRQ_NAMED(17, "mlxcpld-hotplug"), [0] = DEFINE_RES_IRQ_NAMED(17, "mlxreg-hotplug"),
}; };
static struct platform_device *mlxplat_dev; static struct platform_device *mlxplat_dev;
static struct mlxcpld_hotplug_platform_data *mlxplat_hotplug; static struct mlxreg_hotplug_platform_data *mlxplat_hotplug;
static int __init mlxplat_dmi_default_matched(const struct dmi_system_id *dmi) static int __init mlxplat_dmi_default_matched(const struct dmi_system_id *dmi)
{ {
...@@ -329,7 +329,7 @@ static int __init mlxplat_init(void) ...@@ -329,7 +329,7 @@ static int __init mlxplat_init(void)
} }
priv->pdev_hotplug = platform_device_register_resndata( priv->pdev_hotplug = platform_device_register_resndata(
&mlxplat_dev->dev, "mlxcpld-hotplug", &mlxplat_dev->dev, "mlxreg-hotplug",
PLATFORM_DEVID_NONE, PLATFORM_DEVID_NONE,
mlxplat_mlxcpld_resources, mlxplat_mlxcpld_resources,
ARRAY_SIZE(mlxplat_mlxcpld_resources), ARRAY_SIZE(mlxplat_mlxcpld_resources),
......
/* /*
* include/linux/platform_data/mlxcpld-hotplug.h * Copyright (c) 2017 Mellanox Technologies. All rights reserved.
* Copyright (c) 2016 Mellanox Technologies. All rights reserved. * Copyright (c) 2017 Vadim Pasternak <vadimp@mellanox.com>
* Copyright (c) 2016 Vadim Pasternak <vadimp@mellanox.com>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
...@@ -32,11 +31,11 @@ ...@@ -32,11 +31,11 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __LINUX_PLATFORM_DATA_MLXCPLD_HOTPLUG_H #ifndef __LINUX_PLATFORM_DATA_MLXREG_H
#define __LINUX_PLATFORM_DATA_MLXCPLD_HOTPLUG_H #define __LINUX_PLATFORM_DATA_MLXREG_H
/** /**
* struct mlxcpld_hotplug_device - I2C device data: * struct mlxreg_hotplug_device - I2C device data:
* @adapter: I2C device adapter; * @adapter: I2C device adapter;
* @client: I2C device client; * @client: I2C device client;
* @brdinfo: device board information; * @brdinfo: device board information;
...@@ -45,7 +44,7 @@ ...@@ -45,7 +44,7 @@
* Structure represents I2C hotplug device static data (board topology) and * Structure represents I2C hotplug device static data (board topology) and
* dynamic data (related kernel objects handles). * dynamic data (related kernel objects handles).
*/ */
struct mlxcpld_hotplug_device { struct mlxreg_hotplug_device {
struct i2c_adapter *adapter; struct i2c_adapter *adapter;
struct i2c_client *client; struct i2c_client *client;
struct i2c_board_info brdinfo; struct i2c_board_info brdinfo;
...@@ -53,7 +52,7 @@ struct mlxcpld_hotplug_device { ...@@ -53,7 +52,7 @@ struct mlxcpld_hotplug_device {
}; };
/** /**
* struct mlxcpld_hotplug_platform_data - device platform data: * struct mlxreg_hotplug_platform_data - device platform data:
* @top_aggr_offset: offset of top aggregation interrupt register; * @top_aggr_offset: offset of top aggregation interrupt register;
* @top_aggr_mask: top aggregation interrupt common mask; * @top_aggr_mask: top aggregation interrupt common mask;
* @top_aggr_psu_mask: top aggregation interrupt PSU mask; * @top_aggr_psu_mask: top aggregation interrupt PSU mask;
...@@ -76,24 +75,24 @@ struct mlxcpld_hotplug_device { ...@@ -76,24 +75,24 @@ struct mlxcpld_hotplug_device {
* like FAN, PSU, power cable insertion and removing. This data provides the * like FAN, PSU, power cable insertion and removing. This data provides the
* number of hot-pluggable devices and hardware description for event handling. * number of hot-pluggable devices and hardware description for event handling.
*/ */
struct mlxcpld_hotplug_platform_data { struct mlxreg_hotplug_platform_data {
u16 top_aggr_offset; u16 top_aggr_offset;
u8 top_aggr_mask; u8 top_aggr_mask;
u8 top_aggr_psu_mask; u8 top_aggr_psu_mask;
u16 psu_reg_offset; u16 psu_reg_offset;
u8 psu_mask; u8 psu_mask;
u8 psu_count; u8 psu_count;
struct mlxcpld_hotplug_device *psu; struct mlxreg_hotplug_device *psu;
u8 top_aggr_pwr_mask; u8 top_aggr_pwr_mask;
u16 pwr_reg_offset; u16 pwr_reg_offset;
u8 pwr_mask; u8 pwr_mask;
u8 pwr_count; u8 pwr_count;
struct mlxcpld_hotplug_device *pwr; struct mlxreg_hotplug_device *pwr;
u8 top_aggr_fan_mask; u8 top_aggr_fan_mask;
u16 fan_reg_offset; u16 fan_reg_offset;
u8 fan_mask; u8 fan_mask;
u8 fan_count; u8 fan_count;
struct mlxcpld_hotplug_device *fan; struct mlxreg_hotplug_device *fan;
}; };
#endif /* __LINUX_PLATFORM_DATA_MLXCPLD_HOTPLUG_H */ #endif /* __LINUX_PLATFORM_DATA_MLXREG_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment