1f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev/* 2f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * Copyright (c) 2014 Qualcomm Atheros, Inc. 3f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * 4f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * Permission to use, copy, modify, and/or distribute this software for any 5f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * purpose with or without fee is hereby granted, provided that the above 6f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * copyright notice and this permission notice appear in all copies. 7f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * 8f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev */ 16f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 17f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#include "linux/device.h" 18f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#include "wil_platform.h" 19f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 20f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#ifdef CONFIG_WIL6210_PLATFORM_MSM 21f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#include "wil_platform_msm.h" 22f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#endif 23f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 24f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev/** 25f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * wil_platform_init() - wil6210 platform module init 26f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * 27f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * The function must be called before all other functions in this module. 28f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * It returns a handle which is used with the rest of the API 29f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev * 30f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev */ 31f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratievvoid *wil_platform_init(struct device *dev, struct wil_platform_ops *ops) 32f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev{ 33f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev void *handle = NULL; 34f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 35f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev if (!ops) { 36f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev dev_err(dev, "Invalid parameter. Cannot init platform module\n"); 37f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev return NULL; 38f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev } 39f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 40f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#ifdef CONFIG_WIL6210_PLATFORM_MSM 41f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev handle = wil_platform_msm_init(dev, ops); 42f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev if (handle) 43f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev return handle; 44f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev#endif 45f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 46f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev /* other platform specific init functions should be called here */ 47f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev 48f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev return handle; 49f772ebfb941a58af9e7adf9117bc0bb4c7d22f28Vladimir Kondratiev} 50