linux-next/include/linux/usb/renesas_usbhs.h
Geert Uytterhoeven bd2cd796d2 usb: renesas_usbhs: Remove renesas_usbhs_get_info() wrapper
The renesas_usbhs_get_info() wrapper was useful for legacy board code.
Since commit 1fa59bda21 ("ARM: shmobile: Remove legacy board code
for Armadillo-800 EVA") in v4.3, it is no longer used outside the USBHS
driver, and provides no added value over dev_get_platdata(), while
obfuscating the real operation.

Drop it, and replace it by dev_get_platdata() in its sole user.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Link: https://lore.kernel.org/r/fa296af4452dfe394a58b75fd44c3bb9591936eb.1713282736.git.geert+renesas@glider.be
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-18 16:47:49 +02:00

198 lines
3.6 KiB
C

// SPDX-License-Identifier: GPL-1.0+
/*
* Renesas USB
*
* Copyright (C) 2011 Renesas Solutions Corp.
* Copyright (C) 2019 Renesas Electronics Corporation
* Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
*/
#ifndef RENESAS_USB_H
#define RENESAS_USB_H
#include <linux/notifier.h>
#include <linux/platform_device.h>
#include <linux/usb/ch9.h>
/*
* module type
*
* it will be return value from get_id
*/
enum {
USBHS_HOST = 0,
USBHS_GADGET,
USBHS_MAX,
};
/*
* callback functions for platform
*
* These functions are called from driver for platform
*/
struct renesas_usbhs_platform_callback {
/*
* option:
*
* Hardware init function for platform.
* it is called when driver was probed.
*/
int (*hardware_init)(struct platform_device *pdev);
/*
* option:
*
* Hardware exit function for platform.
* it is called when driver was removed
*/
int (*hardware_exit)(struct platform_device *pdev);
/*
* option:
*
* for board specific clock control
*/
int (*power_ctrl)(struct platform_device *pdev,
void __iomem *base, int enable);
/*
* option:
*
* Phy reset for platform
*/
int (*phy_reset)(struct platform_device *pdev);
/*
* get USB ID function
* - USBHS_HOST
* - USBHS_GADGET
*/
int (*get_id)(struct platform_device *pdev);
/*
* get VBUS status function.
*/
int (*get_vbus)(struct platform_device *pdev);
/*
* option:
*
* VBUS control is needed for Host
*/
int (*set_vbus)(struct platform_device *pdev, int enable);
/*
* option:
* extcon notifier to set host/peripheral mode.
*/
int (*notifier)(struct notifier_block *nb, unsigned long event,
void *data);
};
/*
* parameters for renesas usbhs
*
* some register needs USB chip specific parameters.
* This struct show it to driver
*/
struct renesas_usbhs_driver_pipe_config {
u8 type; /* USB_ENDPOINT_XFER_xxx */
u16 bufsize;
u8 bufnum;
bool double_buf;
};
#define RENESAS_USBHS_PIPE(_type, _size, _num, _double_buf) { \
.type = (_type), \
.bufsize = (_size), \
.bufnum = (_num), \
.double_buf = (_double_buf), \
}
struct renesas_usbhs_driver_param {
/*
* pipe settings
*/
struct renesas_usbhs_driver_pipe_config *pipe_configs;
int pipe_size; /* pipe_configs array size */
/*
* option:
*
* for BUSWAIT :: BWAIT
* see
* renesas_usbhs/common.c :: usbhsc_set_buswait()
* */
int buswait_bwait;
/*
* option:
*
* delay time from notify_hotplug callback
*/
int detection_delay; /* msec */
/*
* option:
*
* dma id for dmaengine
* The data transfer direction on D0FIFO/D1FIFO should be
* fixed for keeping consistency.
* So, the platform id settings will be..
* .d0_tx_id = xx_TX,
* .d1_rx_id = xx_RX,
* or
* .d1_tx_id = xx_TX,
* .d0_rx_id = xx_RX,
*/
int d0_tx_id;
int d0_rx_id;
int d1_tx_id;
int d1_rx_id;
int d2_tx_id;
int d2_rx_id;
int d3_tx_id;
int d3_rx_id;
/*
* option:
*
* pio <--> dma border.
*/
int pio_dma_border; /* default is 64byte */
/*
* option:
*/
u32 has_usb_dmac:1; /* for USB-DMAC */
u32 runtime_pwctrl:1;
u32 has_cnen:1;
u32 cfifo_byte_addr:1; /* CFIFO is byte addressable */
#define USBHS_USB_DMAC_XFER_SIZE 32 /* hardcode the xfer size */
u32 multi_clks:1;
u32 has_new_pipe_configs:1;
};
/*
* option:
*
* platform information for renesas_usbhs driver.
*/
struct renesas_usbhs_platform_info {
/*
* option:
*
* platform set these functions before
* call platform_add_devices if needed
*/
struct renesas_usbhs_platform_callback platform_callback;
/*
* option:
*
* driver use these param for some register
*/
struct renesas_usbhs_driver_param driver_param;
};
#endif /* RENESAS_USB_H */