0hmX/am3352-ddr-track-a-local-dfm-wip-20261007

Experimental RJ45-corrected board with isolated PG indication. 1005/1005 source joins pass; 15 expanded-guard physical errors, sourcing and qualification gates remain. Not fabrication-ready.

Version
0.0.14
License
unset
Stars
0

layout/CloudI2cSclRealPull.tsx

import {Children,cloneElement,isValidElement} from 'react'
import data from '../data/cloud-i2c-scl-real-pull.json'
/** Whole actual 10k R_PWR6 move; real-terminal SCL tree; final SCL midpoint removed.
 * CPU, PMIC and HDMI pads stay fixed. No new signal midpoint. */
export function applyI2cSclRealPull(node:any):any {
 if(Array.isArray(node))return node.map(applyI2cSclRealPull)
 if(!isValidElement(node))return node
 if(typeof node.type==='function')return applyI2cSclRealPull(node.type(node.props))
 const p:any={...node.props},s=data.placement
 if(p.name==='R_PWR6')Object.assign(p,{pcbX:s.center[0],pcbY:s.center[1],pcbRotation:s.rotation,layer:s.layer})
 if(node.type==='via'&&p.connectsTo==='.Power_management > .R_PWR6 > .pin2')Object.assign(p,{pcbX:s.v3[0],pcbY:s.v3[1],fromLayer:'bottom',toLayer:'inner5'})
 if(node.type==='trace'){
  const r=data.routes.find(r=>r.name===p.name)
  if(r){Object.assign(p,{from:r.from,to:r.to,width:.1,pcbPathRelativeTo:'.Processor > .U1 > .A1',pcbPaths:[[r.from,...r.points,r.to]]});delete p.pcbPath}
 }
 if(p.footprint&&isValidElement(p.footprint))p.footprint=applyI2cSclRealPull(p.footprint)
 return cloneElement(node,p,...Children.toArray(node.props.children).map(applyI2cSclRealPull))
}