]> Pileus Git - ~andy/linux/blobdiff - Documentation/networking/stmmac.txt
net: stmmac: Allocate and pass soc/board specific data to callbacks
[~andy/linux] / Documentation / networking / stmmac.txt
index cdd916da838d44317974161311d1f81e2db2c233..2090895b08d42636a6bc9a4c4bfffacc04b6c94d 100644 (file)
@@ -127,8 +127,9 @@ struct plat_stmmacenet_data {
        int riwt_off;
        void (*fix_mac_speed)(void *priv, unsigned int speed);
        void (*bus_setup)(void __iomem *ioaddr);
-       int (*init)(struct platform_device *pdev);
-       void (*exit)(struct platform_device *pdev);
+       void *(*setup)(struct platform_device *pdev);
+       int (*init)(struct platform_device *pdev, void *priv);
+       void (*exit)(struct platform_device *pdev, void *priv);
        void *custom_cfg;
        void *custom_data;
        void *bsp_priv;
@@ -169,10 +170,13 @@ Where:
  o bus_setup: perform HW setup of the bus. For example, on some ST platforms
             this field is used to configure the AMBA  bridge to generate more
             efficient STBus traffic.
- o init/exit: callbacks used for calling a custom initialization;
+ o setup/init/exit: callbacks used for calling a custom initialization;
             this is sometime necessary on some platforms (e.g. ST boxes)
             where the HW needs to have set some PIO lines or system cfg
-            registers.
+            registers. setup should return a pointer to private data,
+            which will be stored in bsp_priv, and then passed to init and
+            exit callbacks. init/exit callbacks should not use or modify
+            platform data.
  o custom_cfg/custom_data: this is a custom configuration that can be passed
                           while initializing the resources.
  o bsp_priv: another private pointer.