Changeset 32943


Ignore:
Timestamp:
2012-08-02T11:54:21+02:00 (6 years ago)
Author:
juhosg
Message:

generic: rtl836x: add hw_reset field to struct rtl8366_smi

It will be used to start/stop the switch if that is
supported by the given board.

Location:
trunk/target/linux/generic/files
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c

    r32942 r32943  
    309309EXPORT_SYMBOL_GPL(rtl8366_smi_rmwr); 
    310310 
     311static int rtl8366_reset(struct rtl8366_smi *smi) 
     312{ 
     313        if (smi->hw_reset) { 
     314                smi->hw_reset(true); 
     315                msleep(25); 
     316                smi->hw_reset(false); 
     317                msleep(25); 
     318                return 0; 
     319        } 
     320 
     321        return smi->ops->reset_chip(smi); 
     322} 
     323 
    311324static int rtl8366_mc_is_used(struct rtl8366_smi *smi, int mc_index, int *used) 
    312325{ 
     
    939952        int err; 
    940953 
    941         err = smi->ops->reset_chip(smi); 
     954        err = rtl8366_reset(smi); 
    942955        if (err) 
    943956                return err; 
     
    12281241 
    12291242        spin_lock_init(&smi->lock); 
     1243 
     1244        /* start the switch */ 
     1245        if (smi->hw_reset) { 
     1246                smi->hw_reset(false); 
     1247                msleep(25); 
     1248        } 
     1249 
    12301250        return 0; 
    12311251 
     
    12381258static void __rtl8366_smi_cleanup(struct rtl8366_smi *smi) 
    12391259{ 
     1260        if (smi->hw_reset) 
     1261                smi->hw_reset(true); 
     1262 
    12401263        gpio_free(smi->gpio_sck); 
    12411264        gpio_free(smi->gpio_sda); 
     
    13011324        } 
    13021325 
    1303         err = smi->ops->reset_chip(smi); 
     1326        err = rtl8366_reset(smi); 
    13041327        if (err) 
    13051328                goto err_free_sck; 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h

    r31915 r32943  
    3333        unsigned int            gpio_sda; 
    3434        unsigned int            gpio_sck; 
     35        void                    (*hw_reset)(bool active); 
    3536        unsigned int            clk_delay;      /* ns */ 
    3637        u8                      cmd_read; 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366rb.c

    r31536 r32943  
    11951195        smi->gpio_sda = pdata->gpio_sda; 
    11961196        smi->gpio_sck = pdata->gpio_sck; 
     1197        smi->hw_reset = pdata->hw_reset; 
     1198 
    11971199        smi->clk_delay = 10; 
    11981200        smi->cmd_read = 0xa9; 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366s.c

    r31536 r32943  
    10751075        smi->gpio_sda = pdata->gpio_sda; 
    10761076        smi->gpio_sck = pdata->gpio_sck; 
     1077        smi->hw_reset = pdata->hw_reset; 
     1078 
    10771079        smi->clk_delay = 10; 
    10781080        smi->cmd_read = 0xa9; 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8367.c

    r31917 r32943  
    16931693        smi->gpio_sda = pdata->gpio_sda; 
    16941694        smi->gpio_sck = pdata->gpio_sck; 
     1695        smi->hw_reset = pdata->hw_reset; 
     1696 
    16951697        smi->clk_delay = 1500; 
    16961698        smi->cmd_read = 0xb9; 
  • trunk/target/linux/generic/files/include/linux/rtl8366.h

    r27755 r32943  
    3030        unsigned        gpio_sda; 
    3131        unsigned        gpio_sck; 
     32        void            (*hw_reset)(bool active); 
     33 
    3234        unsigned        num_initvals; 
    3335        struct rtl8366_initval *initvals; 
  • trunk/target/linux/generic/files/include/linux/rtl8367.h

    r29678 r32943  
    5151        unsigned gpio_sda; 
    5252        unsigned gpio_sck; 
     53        void (*hw_reset)(bool active); 
    5354 
    5455        struct rtl8367_extif_config *extif0_cfg; 
Note: See TracChangeset for help on using the changeset viewer.