tinnedkarma commented on code in PR #16999:
URL: https://github.com/apache/nuttx/pull/16999#discussion_r2348054851


##########
include/nuttx/net/mdio.h:
##########
@@ -0,0 +1,208 @@
+/****************************************************************************
+ * include/nuttx/net/mdio.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_NUTTX_NET_MDIO_H
+#define __INCLUDE_NUTTX_NET_MDIO_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/compiler.h>
+#include <stdint.h>
+#include <nuttx/mutex.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+/* Forward references */
+
+struct mdio_bus_s;
+struct mdio_lowerhalf_s;
+
+/* This structure defines the interface for the MDIO lower-half driver.
+ * These methods are called by the upper-half MDIO driver.
+ */
+
+struct mdio_ops_s
+{
+  /* Clause 22 MDIO Read. The first argument is a reference to the
+   * lower-half driver's private state.
+   */
+
+  int (*read)(FAR struct mdio_lowerhalf_s *lower, uint8_t phyaddr,
+              uint8_t regaddr, FAR uint16_t *value);
+
+  /* Clause 22 MDIO Write */
+
+  int (*write)(FAR struct mdio_lowerhalf_s *lower, uint8_t phyaddr,
+               uint8_t regaddr, uint16_t value);
+
+  /* PHY Reset. Optional. */
+
+  int (*reset)(FAR struct mdio_lowerhalf_s *lower, uint8_t phyaddr);
+};
+
+/* This structure defines the state of the MDIO lower-half driver.
+ * The chip-specific MDIO driver must allocate and initialize one instance
+ * of this structure.
+ */
+
+struct mdio_lowerhalf_s
+{
+  /* The vtable of MDIO lower-half operations.
+   * This must be the first field.
+   */
+
+  FAR const struct mdio_ops_s ops;
+
+  /* Opaque pointer to the lower-half driver's private state */
+
+  FAR void *priv;
+};
+
+/* This is the opaque handle used by application code to access the
+ * MDIO bus.
+ */
+
+struct mdio_bus_s

Review Comment:
   I am not sure I can. I need to refactor the whole driver.
   Externally, devices should use this mdio_bus_s (see stm32_ethernet.c, from 
stm32h7, changes are in this PR) not the lowerhalf struct.
   Lowerhalf should also be exported, as a contract between upperhalf and 
hardware dependent code.
   If I do not understand how the upperhalf/lowerhalf approach works, please 
help.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to