]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/karo/common/karo.h
karo: tx6: don't write u-boot image with WITH_DROP_FFS
[karo-tx-uboot.git] / board / karo / common / karo.h
index a4a11ba56b9567435253cd6e0f6b5779c2dc2dd7..d4f5cdb9e8821d3cb46c2979296f32bc5ade9c73 100644 (file)
  * GNU General Public License for more details.
  *
 */
+
+#include <errno.h>
+
 struct fb_videomode;
 
+#ifdef CONFIG_SYS_LVDS_IF
+#define is_lvds()                      1
+#else
+#define is_lvds()                      0
+#endif
+
+void env_cleanup(void);
+
 #ifdef CONFIG_OF_LIBFDT
 void karo_fdt_remove_node(void *blob, const char *node);
 void karo_fdt_move_fdt(void);
 void karo_fdt_fixup_touchpanel(void *blob, const char *panels[],
                        size_t num_panels);
-void karo_fdt_fixup_usb_otg(void *blob, const char *node, const char *phy);
+void karo_fdt_fixup_usb_otg(void *blob, const char *node, const char *phy,
+                       const char *phy_supply);
 void karo_fdt_fixup_flexcan(void *blob, int xcvr_present);
-void karo_fdt_del_prop(void *blob, const char *compat, phys_addr_t offs,
+void karo_fdt_del_prop(void *blob, const char *compat, u32 offs,
                const char *prop);
 void karo_fdt_enable_node(void *blob, const char *node, int enable);
 int karo_fdt_get_fb_mode(void *blob, const char *name,
@@ -31,9 +43,7 @@ int karo_fdt_get_fb_mode(void *blob, const char *name,
 int karo_fdt_update_fb_mode(void *blob, const char *name);
 int karo_fdt_create_fb_mode(void *blob, const char *name,
                        struct fb_videomode *mode);
-int karo_fdt_get_lcd_bus_width(const void *blob, int default_width);
-int karo_fdt_get_lvds_mapping(const void *blob, int default_mapping);
-u8 karo_fdt_get_lvds_channels(const void *blob);
+int karo_fdt_get_backlight_polarity(const void *blob);
 #else
 static inline void karo_fdt_remove_node(void *blob, const char *node)
 {
@@ -46,14 +56,15 @@ static inline void karo_fdt_fixup_touchpanel(void *blob, const char *panels[],
 {
 }
 static inline void karo_fdt_fixup_usb_otg(void *blob, const char *node,
-                                       const char *phy)
+                                       const char *phy,
+                                       const char *phy_supply)
 {
 }
 static inline void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
 {
 }
 static inline void karo_fdt_del_prop(void *blob, const char *compat,
-                               phys_addr_t offs, const char *prop)
+                               u32 offs, const char *prop)
 {
 }
 static inline void karo_fdt_enable_node(void *blob, const char *node,
@@ -75,15 +86,26 @@ static inline int karo_fdt_create_fb_mode(void *blob,
 {
        return 0;
 }
-int karo_fdt_get_lcd_bus_width(const void *blob, int default_width)
+static inline int karo_fdt_get_backlight_polarity(const void *blob)
+{
+       return getenv_yesno("backlight_polarity");
+}
+#endif
+
+#if defined(CONFIG_SYS_LVDS_IF) && defined(CONFIG_OF_LIBFDT)
+int karo_fdt_get_lcd_bus_width(const void *blob, int default_width);
+int karo_fdt_get_lvds_mapping(const void *blob, int default_mapping);
+u8 karo_fdt_get_lvds_channels(const void *blob);
+#else
+static inline int karo_fdt_get_lcd_bus_width(const void *blob, int default_width)
 {
        return default_width;
 }
-int karo_fdt_get_lvds_mapping(const void *blob, int default_mapping)
+static inline int karo_fdt_get_lvds_mapping(const void *blob, int default_mapping)
 {
        return default_mapping;
 }
-u8 karo_fdt_get_lvds_channels(const void *blob)
+static inline u8 karo_fdt_get_lvds_channels(const void *blob)
 {
        return 0;
 }
@@ -118,7 +140,7 @@ static inline int karo_load_nand_part(const char *part, void *addr, size_t len)
 }
 #endif
 
-#ifdef CONFIG_CMD_MMC
+#ifdef CONFIG_ENV_IS_IN_MMC
 int karo_load_mmc_part(const char *part, void *addr, size_t len);
 #else
 static inline int karo_load_mmc_part(const char *part, void *addr, size_t len)
@@ -136,3 +158,5 @@ static inline int karo_load_part(const char *part, void *addr, size_t len)
                return karo_load_mmc_part(part, addr, len);
        return ret;
 }
+
+#define DIV_ROUND(n, d)                (((n) + (d) / 2) / (d))