mirror of
https://github.com/apache/nuttx.git
synced 2026-05-22 22:20:01 +08:00
Add Cellular link layer support
1.Add cellular link layer enum definition and register flow 2.Add ioctl flow to set cellular NICs parameters Signed-off-by: luojun1 <luojun1@xiaomi.com> Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
@@ -983,7 +983,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
case SIOCMIINOTIFY: /* Set up for PHY event notifications */
|
||||
if (dev->d_ioctl)
|
||||
{
|
||||
struct mii_ioctl_notify_s *notify =
|
||||
FAR struct mii_ioctl_notify_s *notify =
|
||||
&req->ifr_ifru.ifru_mii_notify;
|
||||
ret = dev->d_ioctl(dev, cmd, (unsigned long)(uintptr_t)notify);
|
||||
}
|
||||
@@ -999,7 +999,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
case SIOCSMIIREG: /* Set MII register via MDIO */
|
||||
if (dev->d_ioctl)
|
||||
{
|
||||
struct mii_ioctl_data_s *mii_data =
|
||||
FAR struct mii_ioctl_data_s *mii_data =
|
||||
&req->ifr_ifru.ifru_mii_data;
|
||||
ret = dev->d_ioctl(dev, cmd,
|
||||
(unsigned long)(uintptr_t)mii_data);
|
||||
@@ -1016,7 +1016,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
case SIOCSCANBITRATE: /* Set bitrate of a CAN controller */
|
||||
if (dev->d_ioctl)
|
||||
{
|
||||
struct can_ioctl_data_s *can_bitrate_data =
|
||||
FAR struct can_ioctl_data_s *can_bitrate_data =
|
||||
&req->ifr_ifru.ifru_can_data;
|
||||
ret = dev->d_ioctl(dev, cmd,
|
||||
(unsigned long)(uintptr_t)can_bitrate_data);
|
||||
@@ -1035,7 +1035,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
case SIOCDCANSTDFILTER: /* Delete a standard-ID filter */
|
||||
if (dev->d_ioctl)
|
||||
{
|
||||
struct can_ioctl_filter_s *can_filter =
|
||||
FAR struct can_ioctl_filter_s *can_filter =
|
||||
&req->ifr_ifru.ifru_can_filter;
|
||||
ret = dev->d_ioctl(dev, cmd,
|
||||
(unsigned long)(uintptr_t)can_filter);
|
||||
@@ -1053,6 +1053,21 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_NETDEV_IOCTL) && defined(CONFIG_NET_CELLULAR)
|
||||
case SIOCSCELLNETDEV: /* set params for cellular network devices */
|
||||
{
|
||||
dev = netdev_findbyname(req->ifr_name);
|
||||
if (dev && dev->d_ioctl)
|
||||
{
|
||||
FAR struct cell_ioctl_data_s *cell_netdev_data =
|
||||
&req->ifr_ifru.ifru_cell_data;
|
||||
ret = dev->d_ioctl(dev, cmd,
|
||||
(unsigned long)(uintptr_t)cell_netdev_data);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
ret = -ENOTTY;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user